[PATCH v4 2/2] ARM: dts: aspeed: Add ASRock Rack B650D4U BMC
Prasanth
prasanth.padarthi10 at gmail.com
Mon Aug 31 05:47:02 PDT 2026
Hi Tan,
Thanks, this is very helpful, especially since you have tested the same board.
I will rework the next revision to use the existing ASRock Rack DTS
patterns, including the I2C7 EEPROM/NVMEM MAC address handling and the
standard 64 MiB OpenBMC flash layout. I will also investigate the
GPIOs and video memory reservation you mentioned.
For MAC0, I will change the PHY mode to rgmii-id and remove the claim
that the board requires RX-only PHY delay. I will also investigate the
ASPEED SoC-specific MAC delay configuration and the difference between
upstream U-Boot and openbmc/u-boot before sending the next revision.
Thanks,
Prasanth
On Mon, Aug 31, 2026 at 6:07 PM Tan Siewert <tan.siewert at 9elements.com> wrote:
>
> Hi Prasanth,
>
> On 8/30/26 8:20 PM, Prasanth Kumar Padarthi wrote:
> > Add the device tree for the ASRock Rack B650D4U BMC, which is
> > based on the ASPEED AST2600 SoC.
> >
> > Describe the BMC memory, SPI NOR flash layout, UART console, and
> > MAC0 connected to an RTL8211F Ethernet PHY.
>
> Why no GPIOs? Why no I2C buses? You'd need at least i2c7 with an at24c128 to
> populate the MAC address on MAC0.
>
> >
> > The MAC0 RGMII RX delay configuration was validated on hardware.
> > The RTL8211F requires its internal RX delay for reliable operation,
> > while an additional TX delay is not required.
>
> No, it does not. The traces have the same length and don't require special
> delays. If you use u-boot/next, then it might be true because it still misses
> the correct SoC-specific delays. This is, however, fixed in openbmc/u-boot.
>
> I know that this is not optimal. I'm already working on getting this fixed in
> upstream U-Boot too.
>
> >
> > Signed-off-by: Prasanth Kumar Padarthi <prasanth.padarthi10 at gmail.com>
> >
> > diff --git a/arch/arm/boot/dts/aspeed/Makefile b/arch/arm/boot/dts/aspeed/Makefile
> > index 6b68671f9379..b109491d5c8f 100644
> > --- a/arch/arm/boot/dts/aspeed/Makefile
> > +++ b/arch/arm/boot/dts/aspeed/Makefile
> > @@ -10,6 +10,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
> > aspeed-bmc-ampere-mtmitchell.dtb \
> > aspeed-bmc-arm-stardragon4800-rep2.dtb \
> > aspeed-bmc-asrock-altrad8.dtb \
> > + aspeed-bmc-asrock-b650d4u.dtb \
> > aspeed-bmc-asrock-e3c246d4i.dtb \
> > aspeed-bmc-asrock-e3c256d4i.dtb \
> > aspeed-bmc-asrock-paul-ipmi-card.dtb \
> > diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
> > new file mode 100644
> > index 000000000000..aa623f0ca36c
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
> > @@ -0,0 +1,95 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/dts-v1/;
> > +
> > +#include "aspeed-g6.dtsi"
> > +
> > +/ {
> > + model = "ASRock Rack B650D4U BMC";
> > + compatible = "asrock,b650d4u-bmc", "aspeed,ast2600";
> > +
> > + aliases {
> > + serial0 = &uart5;
> > + };
> > +
> > + chosen {
> > + stdout-path = "serial0:115200n8";
> > + };
> > +
> > + memory at 80000000 {
> > + device_type = "memory";
> > + reg = <0x80000000 0x20000000>;
> > + };
>
> Where's the reservation for video?
>
> > +};
> > +
> > +&fmc {
> > + status = "okay";
> > +
> > + flash at 0 {
> > + compatible = "jedec,spi-nor";
> > + reg = <0>;
>
> That's already defined in aspeed-g6.dtsi
>
> > + label = "bmc";
> > + m25p,fast-read;
> > + spi-max-frequency = <50000000>;
> > + spi-rx-bus-width = <4>;
> > + status = "okay";
> > +
> > + partitions {
> > + compatible = "fixed-partitions";
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > +
> > + u-boot at 0 {
> > + reg = <0x00000000 0x000e0000>;
> > + label = "u-boot";
> > + read-only;
> > + };
> > +
> > + u-boot-env at e0000 {
> > + reg = <0x000e0000 0x00020000>;
> > + label = "u-boot-env";
> > + };
> > +
> > + kernel at 200000 {
> > + reg = <0x00200000 0x00800000>;
> > + label = "kernel";
> > + };
> > +
> > + rofs at a00000 {
> > + reg = <0x00a00000 0x02000000>;
> > + label = "rofs";
> > + read-only;
> > + };
> > +
> > + rwfs at 2a00000 {
> > + reg = <0x02a00000 0x01600000>;
> > + label = "rwfs";
> > + };
>
> No. Include the partitions via `#include openbmc-flash-layout-64.dtsi`.
>
> > + };
> > + };
> > +};
> > +
> > +&mac0 {
> > + status = "okay";
> > +
> > + /*
> > + * The RTL8211F provides the required RGMII RX delay. No additional
> > + * TX delay is required for this board.
> > + */
>
> No? I do have this board myself with a custom BMC ROM and I can tell you that
> you don't have to set delays other than the described SoC-specific delays, but
> this is, as mentioned, already done in the BSP. (And no, I haven't upstreamed
> my DTS yet bc I haven't had the time to do it.)
>
> > + phy-mode = "rgmii-rxid";
>
> `rgmii-id`
>
> > + phy-handle = <ðphy0>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_rgmii1_default>;
>
> No nvmem cell to set the MAC address? i2c7 at 57 offset 0x3f80? Please see the
> other device-trees for ASRock Rack mainboards.
>
> For me, it is a:
>
> NACKed-by: Tan Siewert <tan.siewert at 9elements.com>
>
> Tan
>
> --
> Tan Siewert <tan.siewert at 9elements.com>
More information about the linux-arm-kernel
mailing list