Re: [PATCH v4 2/2] ARM: dts: aspeed: Add NVIDIA VR-NVL BMC

Rob Herring <[email protected]> Tue, 28 Jul 2026 09:39:52 -0500
Newsgroups org.ozlabs.lists.openbmc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.ozlabs.lists.linux-aspeed
Message-ID <[email protected]>
On Tue, Jul 28, 2026 at 05:55:10PM +0900, Jacky Huang wrote:
> Add the device tree for the Aspeed AST2600 BMC for NVIDIA's Vera
> Rubin NVL compute platform.
> 
> MAC0 uses phy-mode = "rgmii-id" because the on-board PHY supplies
> both RGMII internal delays. The matching U-Boot device tree does not
> enable SoC-side MAC clock delays, leaving the MAC internal delay at
> zero so the PHY-provided delay is not doubled by the MAC controller.
> 
> The corresponding U-Boot change has been submitted to openbmc/u-boot:
> Link: https://lore.kernel.org/all/[email protected]/
> 
> Reviewed-by: Andrew Lunn <[email protected]>
> Signed-off-by: Jacky Huang <[email protected]>
> ---
> v4: address dt-check-style findings for property and child node ordering,
>     required blank lines, and line length. Retain 8 conventional multi-line
>     block comments with mixed-indent and 22 meaningful unused labels for
>     source readability and future references. They can be removed if
>     preferred.
> 
>  arch/arm/boot/dts/aspeed/Makefile             |   1 +
>  .../aspeed/aspeed-bmc-nvidia-vr-nvl-bmc.dts   | 923 ++++++++++++++++++
>  2 files changed, 924 insertions(+)
>  create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-nvidia-vr-nvl-bmc.dts
> 
> diff --git a/arch/arm/boot/dts/aspeed/Makefile b/arch/arm/boot/dts/aspeed/Makefile
> index 6b68671f9379..07e10083a8bd 100644
> --- a/arch/arm/boot/dts/aspeed/Makefile
> +++ b/arch/arm/boot/dts/aspeed/Makefile
> @@ -65,6 +65,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
>  	aspeed-bmc-microsoft-olympus.dtb \
>  	aspeed-bmc-nvidia-gb200nvl-bmc.dtb \
>  	aspeed-bmc-nvidia-msx4-bmc.dtb \
> +	aspeed-bmc-nvidia-vr-nvl-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-vr-nvl-bmc.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-nvidia-vr-nvl-bmc.dts
> new file mode 100644
> index 000000000000..1c04fd3e627c
> --- /dev/null
> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-nvidia-vr-nvl-bmc.dts
> @@ -0,0 +1,923 @@
> +// SPDX-License-Identifier: GPL-2.0
> +// Copyright (c) 2026 NVIDIA Corporation


> +&ehci1 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	status = "okay";
> +
> +	hub@1 {
> +		reg = <1>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		hub@1 {
> +			reg = <1>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			hub@4 {
> +				reg = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +
> +				/* port 1: BlueField-4 SMA mgmt */
> +				device@1 {
> +					reg = <1>;
> +					#address-cells = <2>;
> +					#size-cells = <0>;
> +
> +					interface@1 {
> +						reg = <1 1>;
> +					};
> +				};
> +
> +				cp2112g: device@2 {

This and other devices should have a compatible string and associated 
schema. The hub probably should too.

> +					reg = <2>;
> +					#gpio-cells = <2>;
> +					gpio-controller;
> +					gpio-line-names =
> +						"BF4_USB_MCU_RECOVERY_L",
> +						"BF4_USB_MCU_RST_L",
> +						"BF4_USB_FORCE_FNP_L",
> +						"BF4_GLOBAL_WP",
> +						"BF4_FORCE_POR_L",
> +						"BF4_BMC_EROT_RST_L",
> +						"BF4_BMC_EROT_RECOVERY_L",
> +						"BF4_THERM_SHUTDOWN";
> +					#interrupt-cells = <2>;
> +					interrupt-controller;
> +				};
> +			};
> +		};
> +

> +&fmc {
> +	status = "okay";
> +
> +	flash@0 {

Needs a compatible.

> +		label = "bmc";
> +
> +		status = "okay";

okay is the default, so not needed.

> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition@0 {
> +				reg = <0x0 0xe0000>;		/* 896 KiB */
> +				label = "u-boot";
> +			};
> +
> +			partition@100000 {
> +				reg = <0x100000 0x900000>;	/* 9 MiB */
> +				label = "kernel";
> +			};
> +
> +			partition@a00000 {
> +				/*
> +				 * extends to end of 64 MiB - 4 KiB; last
> +				 * 4 KiB reserved for EROT image
> +				 */
> +				reg = <0xa00000 0x35ff000>;
> +				label = "rofs";
> +			};
> +		};
> +	};
> +};


> +&spi2 {
> +	pinctrl-0 = <&pinctrl_spi2_default>;
> +	pinctrl-names = "default";
> +
> +	status = "okay";
> +
> +	flash@0 {
> +		label = "config";

Needs a compatible.

> +
> +		status = "okay";

Drop

> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition@0 {
> +				reg = <0x0 0x40000>;	/* 256 KiB */
> +				label = "u-boot-env";
> +			};
> +
> +			partition@40000 {
> +				reg = <0x40000 0x1000000>;	/* 16 MiB */
> +				label = "rwfs";
> +			};
> +
> +			partition@1040000 {
> +				reg = <0x1040000 0x2800000>;	/* 40 MiB */
> +				label = "log";
> +			};
> +		};
> +	};
> +};