Skip to content

Commit

Permalink
Kernel changes for support of elba DSS (#389)
Browse files Browse the repository at this point in the history
This patchset adds support for AMD-Pensando DPU on MtFuji DSS.
MtFuji is a DSS being developed in collaboration with AMD-Pensando and
Cisco for data center applications.
MtFuji mounts elba based nic which is an AMD-Pensando PCI Distributed
Services Card (DSC) whose support has been added in SONiC.

The changes are verified on Pensando DSS-MTFUJI card.
There is one 200G uplink port and no management port.
The link and traffic has been tested on the port.

Signed-off-by: Shantanu Shrivastava <[email protected]>
Signed-off-by: Sahil Chaudhari <[email protected]>
Co-authored-by: Saikrishna Arcot <[email protected]>
  • Loading branch information
shanshri and saiarcot895 authored May 8, 2024
1 parent b0dec2c commit f182d03
Show file tree
Hide file tree
Showing 8 changed files with 637 additions and 0 deletions.
242 changes: 242 additions & 0 deletions patch/0025-dts-changes-for-mtfuji-and-lipari.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
From d7e9aa21a1554e5d7d02ef56d162fc238bf9ef4a Mon Sep 17 00:00:00 2001
From: Shantanu Shrivastava <[email protected]>
Date: Wed, 27 Mar 2024 16:03:00 +0000
Subject: [PATCH] dts changes for mtfuji and lipari

Bringup changes for mtfuji and lipari. Both are distributed
smart switches.

Signed-off-by: Hiren Mehta <[email protected]>
Signed-off-by: Shantanu Shrivastava <[email protected]>
---
arch/arm64/boot/dts/pensando/Makefile | 5 +-
.../dts/pensando/elba-asic-psci-lipari.dts | 26 +++++
.../dts/pensando/elba-asic-psci-mtfuji.dts | 26 +++++
.../boot/dts/pensando/elba-asic-psci.dts | 26 +++++
.../dts/pensando/elba-flash128-parts.dtsi | 101 ++++++++++++++++++
5 files changed, 182 insertions(+), 2 deletions(-)
create mode 100644 arch/arm64/boot/dts/pensando/elba-asic-psci-lipari.dts
create mode 100644 arch/arm64/boot/dts/pensando/elba-asic-psci-mtfuji.dts
create mode 100644 arch/arm64/boot/dts/pensando/elba-asic-psci.dts
create mode 100644 arch/arm64/boot/dts/pensando/elba-flash128-parts.dtsi

diff --git a/arch/arm64/boot/dts/pensando/Makefile b/arch/arm64/boot/dts/pensando/Makefile
index 8971be416..b13afe86d 100644
--- a/arch/arm64/boot/dts/pensando/Makefile
+++ b/arch/arm64/boot/dts/pensando/Makefile
@@ -1,6 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
-dtb-$(CONFIG_ARCH_PENSANDO_ELBA_SOC) += \
- elba-asic.dtb
+dtb-$(CONFIG_ARCH_PENSANDO_ELBA_SOC) += elba-asic-psci.dtb \
+ elba-asic-psci-mtfuji.dtb elba-asic-psci-lipari.dtb \
+ elba-asic.dtb

always-y := $(dtb-y)
subdir-y := $(dts-dirs)
diff --git a/arch/arm64/boot/dts/pensando/elba-asic-psci-lipari.dts b/arch/arm64/boot/dts/pensando/elba-asic-psci-lipari.dts
new file mode 100644
index 000000000..dfa6deaa0
--- /dev/null
+++ b/arch/arm64/boot/dts/pensando/elba-asic-psci-lipari.dts
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/dts-v1/;
+
+/ {
+ model = "Elba ASIC Board";
+ compatible = "pensando,elba";
+
+ aliases {
+ serial0 = &uart0;
+ spi0 = &spi0;
+ spi1 = &qspi;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+};
+
+#include "elba.dtsi"
+#include "elba-16core.dtsi"
+#include "elba-16core-psci.dtsi"
+#include "elba-asic-common.dtsi"
+#include "elba-flash-parts.dtsi"
+#include "elba-asic-memory.dtsi"
+#include "elba-mdev.dtsi"
diff --git a/arch/arm64/boot/dts/pensando/elba-asic-psci-mtfuji.dts b/arch/arm64/boot/dts/pensando/elba-asic-psci-mtfuji.dts
new file mode 100644
index 000000000..714094b57
--- /dev/null
+++ b/arch/arm64/boot/dts/pensando/elba-asic-psci-mtfuji.dts
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/dts-v1/;
+
+/ {
+ model = "Elba ASIC Board";
+ compatible = "pensando,elba";
+
+ aliases {
+ serial0 = &uart0;
+ spi0 = &spi0;
+ spi1 = &qspi;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+};
+
+#include "elba.dtsi"
+#include "elba-16core.dtsi"
+#include "elba-16core-psci.dtsi"
+#include "elba-asic-common.dtsi"
+#include "elba-flash128-parts.dtsi"
+#include "elba-asic-memory.dtsi"
+#include "elba-mdev.dtsi"
diff --git a/arch/arm64/boot/dts/pensando/elba-asic-psci.dts b/arch/arm64/boot/dts/pensando/elba-asic-psci.dts
new file mode 100644
index 000000000..dfa6deaa0
--- /dev/null
+++ b/arch/arm64/boot/dts/pensando/elba-asic-psci.dts
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/dts-v1/;
+
+/ {
+ model = "Elba ASIC Board";
+ compatible = "pensando,elba";
+
+ aliases {
+ serial0 = &uart0;
+ spi0 = &spi0;
+ spi1 = &qspi;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+};
+
+#include "elba.dtsi"
+#include "elba-16core.dtsi"
+#include "elba-16core-psci.dtsi"
+#include "elba-asic-common.dtsi"
+#include "elba-flash-parts.dtsi"
+#include "elba-asic-memory.dtsi"
+#include "elba-mdev.dtsi"
diff --git a/arch/arm64/boot/dts/pensando/elba-flash128-parts.dtsi b/arch/arm64/boot/dts/pensando/elba-flash128-parts.dtsi
new file mode 100644
index 000000000..ddb961b79
--- /dev/null
+++ b/arch/arm64/boot/dts/pensando/elba-flash128-parts.dtsi
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: GPL-2.0
+
+&flash0 {
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ partition@0 {
+ label = "flash";
+ reg = <0x10000 0x7ff0000>;
+ };
+
+ partition@f0000 {
+ label = "golduenv";
+ reg = <0xf0000 0x10000>;
+ };
+
+ partition@100000 {
+ label = "boot0";
+ reg = <0x100000 0x80000>;
+ };
+
+ partition@180000 {
+ label = "golduboot";
+ reg = <0x180000 0x200000>;
+ };
+
+ partition@380000 {
+ label = "brdcfg0";
+ reg = <0x380000 0x10000>;
+ };
+
+ partition@390000 {
+ label = "brdcfg1";
+ reg = <0x390000 0x10000>;
+ };
+
+ partition@400000 {
+ label = "goldfw";
+ reg = <0x400000 0x3c00000>;
+ };
+
+ partition@4010000 {
+ label = "fwmap";
+ reg = <0x4010000 0x20000>;
+ };
+
+ partition@4030000 {
+ label = "fwsel";
+ reg = <0x4030000 0x20000>;
+ };
+
+ partition@4090000 {
+ label = "bootlog";
+ reg = <0x4090000 0x20000>;
+ };
+
+ partition@40b0000 {
+ label = "panicbuf";
+ reg = <0x40b0000 0x20000>;
+ };
+
+ partition@40d0000 {
+ label = "uservars";
+ reg = <0x40d0000 0x20000>;
+ };
+
+ partition@4200000 {
+ label = "uboota";
+ reg = <0x4200000 0x400000>;
+ };
+
+ partition@4600000 {
+ label = "ubootb";
+ reg = <0x4600000 0x400000>;
+ };
+
+ partition@4a00000 {
+ label = "mainfwa";
+ reg = <0x4a00000 0x1000000>;
+ };
+
+ partition@5a00000 {
+ label = "mainfwb";
+ reg = <0x5a00000 0x1000000>;
+ };
+
+ partition@7fe0000 {
+ label = "ubootenv";
+ reg = <0x7fe0000 0x10000>;
+ };
+ };
+};
+
+&soc {
+ panicdump@740b0000 {
+ compatible = "pensando,capri-crash";
+ pensando,crash-ctrl = <&qspi>;
+ reg = <0x0 0x740b0000 0x0 0x20000>;
+ };
+};
--
2.25.1

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
From b0a9046ed50928c3dd41a8b9b6f998d5e74c32ac Mon Sep 17 00:00:00 2001
From: Shantanu Shrivastava <[email protected]>
Date: Mon, 5 Feb 2024 15:25:58 +0000
Subject: [PATCH] Add support for new qspi macronix flash - mx66u1g45g

Changes for supporting new qspi macronix flash mx66u1g45g

Signed-off-by: Shantanu Shrivastava <[email protected]>
---
drivers/mtd/spi-nor/macronix.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/mtd/spi-nor/macronix.c b/drivers/mtd/spi-nor/macronix.c
index d81a4cb28..9b7f0d86c 100644
--- a/drivers/mtd/spi-nor/macronix.c
+++ b/drivers/mtd/spi-nor/macronix.c
@@ -100,6 +100,9 @@ static const struct flash_info macronix_nor_parts[] = {
{ "mx66u2g45g", INFO(0xc2253c, 0, 64 * 1024, 4096)
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
FIXUP_FLAGS(SPI_NOR_4B_OPCODES) },
+ { "mx66u1g45g", INFO(0xc2253b, 0, 64 * 1024, 2048)
+ NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
+ FIXUP_FLAGS(SPI_NOR_4B_OPCODES) },
};

static void macronix_nor_default_init(struct spi_nor *nor)
--
2.25.1

Loading

0 comments on commit f182d03

Please sign in to comment.