* [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard
@ 2025-11-27 0:43 Marc Olberding
2025-11-27 0:43 ` [PATCH v5 1/2] dt-bindings: arm: aspeed: Add Nvidia msx4 board Marc Olberding
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Marc Olberding @ 2025-11-27 0:43 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley,
Andrew Jeffery
Cc: devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
Marc Olberding, Conor Dooley
Patch 1 Adds the binding for the MSX4 CX8 switchboard
Patch 2 Adds the device tree for the MSX4 CX8 switchboard reference implementation.
This is an Aspeed AST2600 based reference implementation for a BMC
managing the NVIDIA MGX CX8 switchboard.
Reference to Ast2600 Soc [1].
Reference to host architecture [2].
Link: https://www.aspeedtech.com/server_ast2600/ [1]
Link: https://developer.nvidia.com/blog/nvidia-connectx-8-supernics-advance-ai-platform-architecture-with-pcie-gen6-connectivity/ [2]
Signed-off-by: Marc Olberding <molberding@nvidia.com>
---
Changes in v5:
- Fixed the spi-lane count for flash0 on the fmc.
- Cleaned up the commit messages per Andrew Jeffery's request
- Link to v4: https://lore.kernel.org/r/20251124-msx1_devicetree-v4-0-a3ebe3110a67@nvidia.com
Changes in v4:
- Changed model name to be accurate per Andrew Jeffery
- Added comments about why there are no i2c devices described here per Andrew Jeffery
- Added support for probing the backup spi device through fmc
- Link to v3: https://lore.kernel.org/r/20251108-msx1_devicetree-v3-0-c7cb477ade27@nvidia.com
Changes in v3:
- Removed mac and mdio node completely per Andrew Lunn's request. Will add back
once the mac driver is fixed
- Link to v2: https://lore.kernel.org/r/20251107-msx1_devicetree-v2-0-6e36eb878db2@nvidia.com
Changes in v2:
- Added ack by Conor Dooley on patch 1
- Changed phy-mode attribute after discussion with Andrew Jeffery and feedback from Andrew Lunn
and added a comment with a better explanation
- Link to v1: https://lore.kernel.org/r/20250918-msx1_devicetree-v1-1-18dc07e02118@nvidia.com
---
Marc Olberding (2):
dt-bindings: arm: aspeed: Add Nvidia msx4 board
ARM: dts: aspeed: Add NVIDIA MSX4 HPM
.../devicetree/bindings/arm/aspeed/aspeed.yaml | 1 +
arch/arm/boot/dts/aspeed/Makefile | 1 +
.../boot/dts/aspeed/aspeed-bmc-nvidia-msx4-bmc.dts | 246 +++++++++++++++++++++
3 files changed, 248 insertions(+)
---
base-commit: ac3fd01e4c1efce8f2c054cdeb2ddd2fc0fb150d
change-id: 20250908-msx1_devicetree-7af2c1fc15d0
Best regards,
--
Marc Olberding <molberding@nvidia.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v5 1/2] dt-bindings: arm: aspeed: Add Nvidia msx4 board
2025-11-27 0:43 [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard Marc Olberding
@ 2025-11-27 0:43 ` Marc Olberding
2025-11-27 0:43 ` [PATCH v5 2/2] ARM: dts: aspeed: Add NVIDIA MSX4 HPM Marc Olberding
2025-12-04 0:29 ` [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard Andrew Jeffery
2 siblings, 0 replies; 4+ messages in thread
From: Marc Olberding @ 2025-11-27 0:43 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley,
Andrew Jeffery
Cc: devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
Marc Olberding, Conor Dooley
Adds a compatible string for NVIDIAs msx4 BMC board.
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Marc Olberding <molberding@nvidia.com>
---
Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml b/Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml
index aedefca7cf4a80b5c9d14098b60ce277391fcdcb..5933eda3371b33f16a1129cbb84933c1393c9b2a 100644
--- a/Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml
+++ b/Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml
@@ -104,6 +104,7 @@ properties:
- inventec,transformer-bmc
- jabil,rbp-bmc
- nvidia,gb200nvl-bmc
+ - nvidia,msx4-bmc
- qcom,dc-scm-v1-bmc
- quanta,s6q-bmc
- ufispace,ncplite-bmc
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v5 2/2] ARM: dts: aspeed: Add NVIDIA MSX4 HPM
2025-11-27 0:43 [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard Marc Olberding
2025-11-27 0:43 ` [PATCH v5 1/2] dt-bindings: arm: aspeed: Add Nvidia msx4 board Marc Olberding
@ 2025-11-27 0:43 ` Marc Olberding
2025-12-04 0:29 ` [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard Andrew Jeffery
2 siblings, 0 replies; 4+ messages in thread
From: Marc Olberding @ 2025-11-27 0:43 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley,
Andrew Jeffery
Cc: devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
Marc Olberding
The NVIDIA MSX4 HPM (host platform module) is a reference
board for managing up to 8 PCIe connected NVIDIA GPU's via
ConnectX-8 (CX8) SuperNICs. The BMC manages all GPU's and CX8's
for both telemetry and firmware update via MCTP over USB.
The host CPU's are dual socket Intel Granite Rapids processors.
For more detail on this architecture:
https://developer.nvidia.com/blog/nvidia-connectx-8-supernics-advance-ai-platform-architecture-with-pcie-gen6-connectivity/
Signed-off-by: Marc Olberding <molberding@nvidia.com>
---
arch/arm/boot/dts/aspeed/Makefile | 1 +
.../boot/dts/aspeed/aspeed-bmc-nvidia-msx4-bmc.dts | 246 +++++++++++++++++++++
2 files changed, 247 insertions(+)
diff --git a/arch/arm/boot/dts/aspeed/Makefile b/arch/arm/boot/dts/aspeed/Makefile
index 0f0b5b7076545e6babb2f25f302b5d70b71d8a19..c3ce0d218b53f2b4c37061cace483f5f2c6d3bf1 100644
--- a/arch/arm/boot/dts/aspeed/Makefile
+++ b/arch/arm/boot/dts/aspeed/Makefile
@@ -56,6 +56,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-lenovo-hr855xg2.dtb \
aspeed-bmc-microsoft-olympus.dtb \
aspeed-bmc-nvidia-gb200nvl-bmc.dtb \
+ aspeed-bmc-nvidia-msx4-bmc.dtb \
aspeed-bmc-opp-lanyang.dtb \
aspeed-bmc-opp-mowgli.dtb \
aspeed-bmc-opp-nicole.dtb \
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-nvidia-msx4-bmc.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-nvidia-msx4-bmc.dts
new file mode 100644
index 0000000000000000000000000000000000000000..44f95a3986cb9e2c6902ba9b3c1ed56e782438b3
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-nvidia-msx4-bmc.dts
@@ -0,0 +1,246 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+ model = "AST2600 MSX4 BMC";
+ compatible = "nvidia,msx4-bmc", "aspeed,ast2600";
+
+ aliases {
+ serial0 = &uart1;
+ serial1 = &uart2;
+ serial2 = &uart3;
+ serial3 = &uart4;
+ serial4 = &uart5;
+ };
+
+ chosen {
+ stdout-path = "uart5:115200n8";
+ };
+
+ memory@80000000 {
+ device_type = "memory";
+ reg = <0x80000000 0x80000000>;
+ };
+
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ gfx_memory: framebuffer {
+ compatible = "shared-dma-pool";
+ size = <0x01000000>;
+ alignment = <0x01000000>;
+ reusable;
+ };
+
+ video_engine_memory: jpegbuffer {
+ compatible = "shared-dma-pool";
+ size = <0x02000000>; /* 32M */
+ alignment = <0x01000000>;
+ reusable;
+ };
+ };
+};
+
+&ehci1 {
+ status = "okay";
+};
+
+&fmc {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ label = "bmc";
+ status = "okay";
+ #include "openbmc-flash-layout-128.dtsi"
+ };
+
+ flash@1 {
+ compatible = "jedec,spi-nor";
+ label = "alt-bmc";
+ spi-tx-bus-width = <1>;
+ spi-rx-bus-width = <1>;
+ status = "okay";
+ };
+};
+
+&gfx {
+ memory-region = <&gfx_memory>;
+ status = "okay";
+};
+
+&gpio0 {
+ gpio-line-names =
+ /*A0-A7*/ "","","","","","","","",
+ /*B0-B7*/ "ASSERT_BMC_READY","","","","","","","",
+ /*C0-C7*/ "MON_PWR_GOOD","","","","","","","FP_ID_LED_N",
+ /*D0-D7*/ "","","","","","","","",
+ /*E0-E7*/ "","","","","","","","",
+ /*F0-F7*/ "","","","","","","","",
+ /*G0-G7*/ "","","FP_LED_STATUS_GREEN_N","FP_LED_STATUS_AMBER_N",
+ "","","","",
+ /*H0-H7*/ "","","","","","","","",
+ /*I0-I7*/ "","","","","","","","",
+ /*J0-J7*/ "","","","","","","","",
+ /*K0-K7*/ "","","","","","","","",
+ /*L0-L7*/ "","","","","","","","",
+ /*M0-M7*/ "","","","","","","","",
+ /*N0-N7*/ "","","","","","","","",
+ /*O0-O7*/ "","","","","","","","",
+ /*P0-P7*/ "MON_PWR_BTN_L","ASSERT_PWR_BTN_L","MON_RST_BTN_L",
+ "ASSERT_RST_BTN_L","","ASSERT_NMI_BTN_L","","",
+ /*Q0-Q7*/ "","","MEMORY_HOT_0","MEMORY_HOT_1","","","","",
+ /*R0-R7*/ "ID_BTN","","","","","VBAT_GPIO","","",
+ /*S0-S7*/ "","","RST_PCA_MUX","","","","","",
+ /*T0-T7*/ "","","","","","","","",
+ /*U0-U7*/ "","","","","","","","",
+ /*V0-V7*/ "","","","","","","","",
+ /*W0-W7*/ "","","","","","","","",
+ /*X0-X7*/ "","","","","","","","",
+ /*Y0-Y7*/ "","","","","","","","",
+ /*Z0-Z7*/ "","","","","","","","";
+};
+
+&gpio1 {
+ gpio-line-names =
+ /*18A0-18A7*/ "","","","","","","","",
+ /*18B0-18B7*/ "","","","","","","","",
+ /*18C0-18C7*/ "","","","","","","","",
+ /*18D0-18D7*/ "","","","","","","","",
+ /*18E0-18E3*/ "","","BMC_INIT_DONE","";
+};
+
+// Devices on these busses are available after POST
+// however there isn't a great way to defer probing
+// until that point today, as the BMC doesn't
+// have direct control over when the host completes
+// POST, especially from the kernel.
+&i2c0 {
+ status = "okay";
+};
+
+&i2c1 {
+ status = "okay";
+};
+
+&i2c2 {
+ status = "okay";
+};
+
+&i2c3 {
+ status = "okay";
+};
+
+&i2c4 {
+ status = "okay";
+
+ eeprom@51 {
+ compatible = "atmel,24c256";
+ reg = <0x51>;
+ pagesize = <64>;
+ label = "sku";
+ };
+};
+
+&i2c5 {
+ status = "okay";
+};
+
+&i2c6 {
+ status = "okay";
+};
+
+&i2c7 {
+ status = "okay";
+};
+
+&i2c8 {
+ status = "okay";
+};
+
+&i2c9 {
+ status = "okay";
+};
+
+&i2c10 {
+ status = "okay";
+};
+
+&i2c11 {
+ status = "okay";
+};
+
+&i2c12 {
+ status = "okay";
+};
+
+&i2c13 {
+ status = "okay";
+};
+
+&i2c15 {
+ status = "okay";
+};
+
+&kcs1 {
+ aspeed,lpc-io-reg = <0xca0>;
+ status = "okay";
+};
+
+&kcs2 {
+ aspeed,lpc-io-reg = <0xca8>;
+ status = "okay";
+};
+
+&kcs3 {
+ aspeed,lpc-io-reg = <0xca2>;
+ status = "okay";
+};
+
+&lpc_reset {
+ status = "okay";
+};
+
+&rtc {
+ status = "okay";
+};
+
+&sgpiom0 {
+ ngpios = <80>;
+ status = "okay";
+};
+
+&uart_routing {
+ status = "okay";
+};
+
+&uart1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart3 {
+ status = "okay";
+};
+
+&uart4 {
+ status = "okay";
+};
+
+&uart5 {
+ status = "okay";
+};
+
+&video {
+ memory-region = <&video_engine_memory>;
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard
2025-11-27 0:43 [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard Marc Olberding
2025-11-27 0:43 ` [PATCH v5 1/2] dt-bindings: arm: aspeed: Add Nvidia msx4 board Marc Olberding
2025-11-27 0:43 ` [PATCH v5 2/2] ARM: dts: aspeed: Add NVIDIA MSX4 HPM Marc Olberding
@ 2025-12-04 0:29 ` Andrew Jeffery
2 siblings, 0 replies; 4+ messages in thread
From: Andrew Jeffery @ 2025-12-04 0:29 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley,
Marc Olberding
Cc: devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
Conor Dooley
On Wed, 26 Nov 2025 16:43:05 -0800, Marc Olberding wrote:
> Patch 1 Adds the binding for the MSX4 CX8 switchboard
> Patch 2 Adds the device tree for the MSX4 CX8 switchboard reference implementation.
>
> This is an Aspeed AST2600 based reference implementation for a BMC
> managing the NVIDIA MGX CX8 switchboard.
>
> Reference to Ast2600 Soc [1].
> Reference to host architecture [2].
>
> [...]
Thanks, I've applied this to the BMC tree.
--
Andrew Jeffery <andrew@codeconstruct.com.au>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-12-04 0:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-27 0:43 [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard Marc Olberding
2025-11-27 0:43 ` [PATCH v5 1/2] dt-bindings: arm: aspeed: Add Nvidia msx4 board Marc Olberding
2025-11-27 0:43 ` [PATCH v5 2/2] ARM: dts: aspeed: Add NVIDIA MSX4 HPM Marc Olberding
2025-12-04 0:29 ` [PATCH v5 0/2] Add device tree for NVIDIA BMC MSX4 CX8 switchboard Andrew Jeffery
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox