.../bindings/arm/aspeed/aspeed.yaml | 1 + arch/arm/boot/dts/aspeed/Makefile | 1 + .../dts/aspeed/aspeed-bmc-asrock-b650d4u.dts | 95 +++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
Add device tree support for the ASRock Rack B650D4U BMC, which is based on the ASPEED AST2600 SoC. The series adds the board compatible and describes the BMC memory, SPI NOR flash layout, UART console, and MAC0 connected to an RTL8211F Ethernet PHY. The MAC0 RGMII timing configuration was validated on B650D4U hardware. With plain "rgmii", the PHY negotiated 1000baseT/Full but received no valid packets and accumulated RX CRC errors. With "rgmii-rxid", a 5000-packet test completed with 0% packet loss and no RX CRC errors. "rgmii-id" was also tested successfully, but the additional TX delay is not required, so "rgmii-rxid" is retained. Changes in v4: - Validate the MAC0 RGMII timing configuration on B650D4U hardware. - Keep phy-mode = "rgmii-rxid" based on hardware A/B testing. - Add the SPI NOR fixed partition layout validated on B650D4U hardware. - Correct the BMC memory size to 512 MiB. - Order peripheral nodes alphabetically by label. Prasanth Kumar Padarthi (2): dt-bindings: arm: aspeed: Add ASRock Rack B650D4U ARM: dts: aspeed: Add ASRock Rack B650D4U BMC .../bindings/arm/aspeed/aspeed.yaml | 1 + arch/arm/boot/dts/aspeed/Makefile | 1 + .../dts/aspeed/aspeed-bmc-asrock-b650d4u.dts | 95 +++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts -- 2.47.3
Add device tree support for the ASRock Rack B650D4U BMC, which is based on the ASPEED AST2600 SoC. The series adds the board compatible and describes the BMC memory, SPI NOR flash layout, UART console, GPIO line names, graphics reserved memory, I2C EEPROM, and MAC0 connected to an RTL8211F Ethernet PHY. MAC0 uses the EEPROM on I2C7 as the NVMEM provider for its MAC address and is configured to use the RTL8211F in RGMII-ID mode. Changes in v5: - Use the I2C7 EEPROM as the NVMEM provider for the MAC0 address. - Configure MAC0 to use the RTL8211F in RGMII-ID mode. - Use the standard OpenBMC 64 MiB flash layout. - Add confirmed GPIO line names for the reset button and host power control. - Add the reusable 16 MiB reserved-memory pool used by the graphics device. - Drop the previous RX-delay-specific description. Changes in v4: - Validate the MAC0 RGMII timing configuration on B650D4U hardware. - Keep phy-mode = "rgmii-rxid" based on hardware A/B testing. - Add the SPI NOR fixed partition layout validated on B650D4U hardware. - Correct the BMC memory size to 512 MiB. - Order peripheral nodes alphabetically by label. Prasanth Kumar Padarthi (2): dt-bindings: arm: aspeed: Add ASRock Rack B650D4U ARM: dts: aspeed: Add ASRock Rack B650D4U BMC .../bindings/arm/aspeed/aspeed.yaml | 1 + arch/arm/boot/dts/aspeed/Makefile | 1 + .../dts/aspeed/aspeed-bmc-asrock-b650d4u.dts | 120 ++++++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts base-commit: fcf94f5431858d83003cf18d60df67bd87b20ad2 -- 2.47.3
> Add device tree support for the ASRock Rack B650D4U BMC, which is > based on the ASPEED AST2600 SoC. > > The series adds the board compatible and describes the BMC memory, > SPI NOR flash layout, UART console, GPIO line names, graphics > reserved memory, I2C EEPROM, and MAC0 connected to an RTL8211F > Ethernet PHY. > > MAC0 uses the EEPROM on I2C7 as the NVMEM provider for its MAC > address and is configured to use the RTL8211F in RGMII-ID mode. > Your threading seems to be broken (`In-reply-to` + `References` are set to the previous version). Please keep that in mind for the next revision. See [0] for more information. [0] https://www.kernel.org/doc/html/latest/process/submitting-patches.html#explicit-in-reply-to-headers Tan -- Tan Siewert <tan.siewert@9elements.com>
Add the compatible string for the ASRock Rack B650D4U BMC,
which is an AST2600-based server motherboard.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Prasanth Kumar Padarthi <prasanth.padarthi10@gmail.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 9ba195b8f22d..4c9e96801c1a 100644
--- a/Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml
+++ b/Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml
@@ -81,6 +81,7 @@ properties:
- ampere,mtmitchell-bmc
- aspeed,ast2600-evb
- aspeed,ast2600-evb-a1
+ - asrock,b650d4u-bmc
- asus,ast2600-kommando-ipmi-card
- asus,x4tf-bmc
- facebook,anacapa-bmc
--
2.47.3
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,
GPIO line names, video framebuffer memory, I2C EEPROM, and MAC0
connected to an RTL8211F Ethernet PHY.
Use the EEPROM on I2C7 as the NVMEM provider for the MAC0 address.
Configure MAC0 to use the RTL8211F in RGMII-ID mode.
Signed-off-by: Prasanth Kumar Padarthi <prasanth.padarthi10@gmail.com>
---
arch/arm/boot/dts/aspeed/Makefile | 1 +
.../dts/aspeed/aspeed-bmc-asrock-b650d4u.dts | 120 ++++++++++++++++++
2 files changed, 121 insertions(+)
create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
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..6585bda56a4c
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
@@ -0,0 +1,120 @@
+// 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@80000000 {
+ device_type = "memory";
+ reg = <0x80000000 0x20000000>;
+ };
+
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ gfx_memory: framebuffer {
+ size = <0x01000000>;
+ alignment = <0x01000000>;
+ compatible = "shared-dma-pool";
+ reusable;
+ };
+ };
+};
+
+&gfx {
+ status = "okay";
+ memory-region = <&gfx_memory>;
+};
+
+&gpio0 {
+ gpio-line-names =
+ /* A0-A7 */ "","","","","","","","",
+ /* B0-B7 */ "","","","","","","","",
+ /* C0-C7 */ "","","","","","","","",
+ /* D0-D7 */ "","","","","","","","",
+ /* E0-E7 */ "","","","","","","","",
+ /* F0-F7 */ "","","","","","button-reset-n","","",
+ /* G0-G7 */ "","","","","","","","",
+ /* H0-H7 */ "","","","","","","","",
+ /* I0-I7 */ "","","","","","","","",
+ /* J0-J7 */ "","","","","","","","",
+ /* K0-K7 */ "","","","","","","","",
+ /* L0-L7 */ "","","","","","","","",
+ /* M0-M7 */ "","","","","","","","",
+ /* N0-N7 */ "","","","","","","","",
+ /* O0-O7 */ "","","","","","","","",
+ /* P0-P3 */ "","","","control-power-n";
+};
+
+&fmc {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ label = "bmc";
+ m25p,fast-read;
+ spi-max-frequency = <50000000>;
+ spi-rx-bus-width = <4>;
+ status = "okay";
+
+#include "openbmc-flash-layout-64.dtsi"
+ };
+};
+
+&mac0 {
+ status = "okay";
+ phy-mode = "rgmii-id";
+ phy-handle = <ðphy0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_rgmii1_default>;
+
+ nvmem-cells = <ð0_macaddress>;
+ nvmem-cell-names = "mac-address";
+};
+
+&mdio0 {
+ status = "okay";
+
+ ethphy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ };
+};
+
+&uart5 {
+ status = "okay";
+};
+
+&i2c7 {
+ status = "okay";
+
+ eeprom@57 {
+ compatible = "atmel,24c128";
+ reg = <0x57>;
+ pagesize = <16>;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ eth0_macaddress: macaddress@3f80 {
+ reg = <0x3f80 6>;
+ };
+ };
+ };
+};
--
2.47.3
> 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,
> GPIO line names, video framebuffer memory, I2C EEPROM, and MAC0
> connected to an RTL8211F Ethernet PHY.
>
> Use the EEPROM on I2C7 as the NVMEM provider for the MAC0 address.
>
> Configure MAC0 to use the RTL8211F in RGMII-ID mode.
>
> Signed-off-by: Prasanth Kumar Padarthi <prasanth.padarthi10@gmail.com>
dt-check-style --mode strict reports issues:
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:8: [property-order] property 'compatible' out of canonical order (should sort before 'model')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:26: [property-order] property 'ranges' out of canonical order (should sort before '#size-cells')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:30: [property-order] property 'alignment' out of canonical order (should sort before 'size')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:31: [property-order] property 'compatible' out of canonical order (should sort before 'alignment')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:39: [property-order] property 'memory-region' out of canonical order (should sort before 'status')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:70: [property-order] property 'spi-max-frequency' out of canonical order (should sort before 'm25p,fast-read')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:72: [required-blank-lines] "status" must be preceded by a blank line
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:80: [property-order] property 'phy-mode' out of canonical order (should sort before 'status')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:81: [property-order] property 'phy-handle' out of canonical order (should sort before 'phy-mode')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:83: [property-order] property 'pinctrl-0' out of canonical order (should sort before 'pinctrl-names')
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:85: [property-order] property 'nvmem-cells' out of canonical order (should sort before 'pinctrl-0')
>
> 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..6585bda56a4c
> --- /dev/null
> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
> @@ -0,0 +1,120 @@
> +// 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@80000000 {
> + device_type = "memory";
> + reg = <0x80000000 0x20000000>;
> + };
> +
> + reserved-memory {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + gfx_memory: framebuffer {
> + size = <0x01000000>;
> + alignment = <0x01000000>;
> + compatible = "shared-dma-pool";
> + reusable;
> + };
> + };
> +};
> +
> +&gfx {
> + status = "okay";
> + memory-region = <&gfx_memory>;
> +};
> +
> +&gpio0 {
> + gpio-line-names =
> + /* A0-A7 */ "","","","","","","","",
> + /* B0-B7 */ "","","","","","","","",
> + /* C0-C7 */ "","","","","","","","",
> + /* D0-D7 */ "","","","","","","","",
> + /* E0-E7 */ "","","","","","","","",
> + /* F0-F7 */ "","","","","","button-reset-n","","",
How did you confirm this? According to the schematic it should be P0 (P0-P5
have GPIO passthrough functionality).
> + /* G0-G7 */ "","","","","","","","",
> + /* H0-H7 */ "","","","","","","","",
> + /* I0-I7 */ "","","","","","","","",
> + /* J0-J7 */ "","","","","","","","",
> + /* K0-K7 */ "","","","","","","","",
> + /* L0-L7 */ "","","","","","","","",
> + /* M0-M7 */ "","","","","","","","",
> + /* N0-N7 */ "","","","","","","","",
> + /* O0-O7 */ "","","","","","","","",
> + /* P0-P3 */ "","","","control-power-n";
Personally, I'm not a fan when `gpio-line-names` doesn't match with the amount
of defined `ngpios`, but that doesn't mean it's wrong. Maybe Andrew Jeffrey has
a different opinion on that.
> +};
> +
> +&fmc {
> + status = "okay";
> +
> + flash@0 {
> + compatible = "jedec,spi-nor";
> + reg = <0>;
> + label = "bmc";
> + m25p,fast-read;
> + spi-max-frequency = <50000000>;
> + spi-rx-bus-width = <4>;
> + status = "okay";
> +
> +#include "openbmc-flash-layout-64.dtsi"
> + };
> +};
> +
> +&mac0 {
> + status = "okay";
> + phy-mode = "rgmii-id";
> + phy-handle = <ðphy0>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_rgmii1_default>;
> +
> + nvmem-cells = <ð0_macaddress>;
> + nvmem-cell-names = "mac-address";
> +};
> +
> +&mdio0 {
> + status = "okay";
> +
> + ethphy0: ethernet-phy@0 {
> + compatible = "ethernet-phy-ieee802.3-c22";
> + reg = <0>;
> + };
> +};
> +
> +&uart5 {
> + status = "okay";
> +};
> +
> +&i2c7 {
Please sort your nodes, as per the device-tree style guideline [0].
[0] https://docs.kernel.org/devicetree/bindings/dts-coding-style.html
Tan
--
Tan Siewert <tan.siewert@9elements.com>
Hi Tan,
Thanks for pointing this out. I had identified P3 from runtime GPIO
observations while exercising host power control, but after checking
the AST2600 pinctrl definitions I see that P0-P5 provide the
THRUIN/THRUOUT functions, so that observation alone was not sufficient
to establish the board-level signal mapping. I'll update this in the
next revision based on your schematic information.
Thanks,
Prasanth
On Wed, Sep 16, 2026 at 2:43 PM Tan Siewert <tan.siewert@9elements.com> 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,
> > GPIO line names, video framebuffer memory, I2C EEPROM, and MAC0
> > connected to an RTL8211F Ethernet PHY.
> >
> > Use the EEPROM on I2C7 as the NVMEM provider for the MAC0 address.
> >
> > Configure MAC0 to use the RTL8211F in RGMII-ID mode.
> >
> > Signed-off-by: Prasanth Kumar Padarthi <prasanth.padarthi10@gmail.com>
>
> dt-check-style --mode strict reports issues:
>
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:8: [property-order] property 'compatible' out of canonical order (should sort before 'model')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:26: [property-order] property 'ranges' out of canonical order (should sort before '#size-cells')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:30: [property-order] property 'alignment' out of canonical order (should sort before 'size')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:31: [property-order] property 'compatible' out of canonical order (should sort before 'alignment')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:39: [property-order] property 'memory-region' out of canonical order (should sort before 'status')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:70: [property-order] property 'spi-max-frequency' out of canonical order (should sort before 'm25p,fast-read')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:72: [required-blank-lines] "status" must be preceded by a blank line
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:80: [property-order] property 'phy-mode' out of canonical order (should sort before 'status')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:81: [property-order] property 'phy-handle' out of canonical order (should sort before 'phy-mode')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:83: [property-order] property 'pinctrl-0' out of canonical order (should sort before 'pinctrl-names')
> arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts:85: [property-order] property 'nvmem-cells' out of canonical order (should sort before 'pinctrl-0')
>
> >
> > 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..6585bda56a4c
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
> > @@ -0,0 +1,120 @@
> > +// 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@80000000 {
> > + device_type = "memory";
> > + reg = <0x80000000 0x20000000>;
> > + };
> > +
> > + reserved-memory {
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + ranges;
> > +
> > + gfx_memory: framebuffer {
> > + size = <0x01000000>;
> > + alignment = <0x01000000>;
> > + compatible = "shared-dma-pool";
> > + reusable;
> > + };
> > + };
> > +};
> > +
> > +&gfx {
> > + status = "okay";
> > + memory-region = <&gfx_memory>;
> > +};
> > +
> > +&gpio0 {
> > + gpio-line-names =
> > + /* A0-A7 */ "","","","","","","","",
> > + /* B0-B7 */ "","","","","","","","",
> > + /* C0-C7 */ "","","","","","","","",
> > + /* D0-D7 */ "","","","","","","","",
> > + /* E0-E7 */ "","","","","","","","",
> > + /* F0-F7 */ "","","","","","button-reset-n","","",
>
> How did you confirm this? According to the schematic it should be P0 (P0-P5
> have GPIO passthrough functionality).
>
> > + /* G0-G7 */ "","","","","","","","",
> > + /* H0-H7 */ "","","","","","","","",
> > + /* I0-I7 */ "","","","","","","","",
> > + /* J0-J7 */ "","","","","","","","",
> > + /* K0-K7 */ "","","","","","","","",
> > + /* L0-L7 */ "","","","","","","","",
> > + /* M0-M7 */ "","","","","","","","",
> > + /* N0-N7 */ "","","","","","","","",
> > + /* O0-O7 */ "","","","","","","","",
> > + /* P0-P3 */ "","","","control-power-n";
>
> Personally, I'm not a fan when `gpio-line-names` doesn't match with the amount
> of defined `ngpios`, but that doesn't mean it's wrong. Maybe Andrew Jeffrey has
> a different opinion on that.
>
> > +};
> > +
> > +&fmc {
> > + status = "okay";
> > +
> > + flash@0 {
> > + compatible = "jedec,spi-nor";
> > + reg = <0>;
> > + label = "bmc";
> > + m25p,fast-read;
> > + spi-max-frequency = <50000000>;
> > + spi-rx-bus-width = <4>;
> > + status = "okay";
> > +
> > +#include "openbmc-flash-layout-64.dtsi"
> > + };
> > +};
> > +
> > +&mac0 {
> > + status = "okay";
> > + phy-mode = "rgmii-id";
> > + phy-handle = <ðphy0>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_rgmii1_default>;
> > +
> > + nvmem-cells = <ð0_macaddress>;
> > + nvmem-cell-names = "mac-address";
> > +};
> > +
> > +&mdio0 {
> > + status = "okay";
> > +
> > + ethphy0: ethernet-phy@0 {
> > + compatible = "ethernet-phy-ieee802.3-c22";
> > + reg = <0>;
> > + };
> > +};
> > +
> > +&uart5 {
> > + status = "okay";
> > +};
> > +
> > +&i2c7 {
>
> Please sort your nodes, as per the device-tree style guideline [0].
>
> [0] https://docs.kernel.org/devicetree/bindings/dts-coding-style.html
>
> Tan
>
> --
> Tan Siewert <tan.siewert@9elements.com>
> +&mac0 {
> + status = "okay";
> + phy-mode = "rgmii-id";
> + phy-handle = <ðphy0>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_rgmii1_default>;
> +
> + nvmem-cells = <ð0_macaddress>;
> + nvmem-cell-names = "mac-address";
> +};
> +
> +&mdio0 {
> + status = "okay";
> +
> + ethphy0: ethernet-phy@0 {
> + compatible = "ethernet-phy-ieee802.3-c22";
> + reg = <0>;
> + };
> +};
For these nodes only:
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
On Sun, Aug 30, 2026 at 11:50:34PM +0530, Prasanth Kumar Padarthi wrote:
> Add device tree support for the ASRock Rack B650D4U BMC, which is
> based on the ASPEED AST2600 SoC.
>
> The series adds the board compatible and describes the BMC memory,
> SPI NOR flash layout, UART console, and MAC0 connected to an
> RTL8211F Ethernet PHY.
>
> The MAC0 RGMII timing configuration was validated on B650D4U
> hardware. With plain "rgmii", the PHY negotiated 1000baseT/Full but
> received no valid packets and accumulated RX CRC errors. With
> "rgmii-rxid", a 5000-packet test completed with 0% packet loss and
> no RX CRC errors. "rgmii-id" was also tested successfully, but the
> additional TX delay is not required, so "rgmii-rxid" is retained.
Please take a read of:
https://elixir.bootlin.com/linux/v6.15/source/Documentation/devicetree/bindings/net/ethernet-controller.yaml#L287
Does the PCB have 2ns of delay for TX, but notR RX?
Andrew
Hi Andrew, I do not currently have the PCB layout or RGMII trace-length information, so I cannot confirm that the PCB provides approximately 2 ns of TX delay but no RX delay. My hardware results are: rgmii negotiates 1000baseT/Full, but RX traffic fails with CRC errors. rgmii-rxid passes a 5000-packet test with no loss or RX CRC errors. rgmii-id also passes the same test. These results indicate that an RX delay is required, but they do not establish whether the TX delay is provided by the PCB, MAC, or PHY. I therefore agree that the traffic test alone is insufficient to justify rgmii-rxid. I have contacted ASRock Rack requesting confirmation of the RGMII timing and PCB trace-delay configuration. I will wait for that information before selecting the phy-mode for the next revision or making a claim about where the TX delay is implemented. Thanks, Prasanth On Mon, Aug 31, 2026 at 1:53 AM Andrew Lunn <andrew@lunn.ch> wrote: > > On Sun, Aug 30, 2026 at 11:50:34PM +0530, Prasanth Kumar Padarthi wrote: > > Add device tree support for the ASRock Rack B650D4U BMC, which is > > based on the ASPEED AST2600 SoC. > > > > The series adds the board compatible and describes the BMC memory, > > SPI NOR flash layout, UART console, and MAC0 connected to an > > RTL8211F Ethernet PHY. > > > > The MAC0 RGMII timing configuration was validated on B650D4U > > hardware. With plain "rgmii", the PHY negotiated 1000baseT/Full but > > received no valid packets and accumulated RX CRC errors. With > > "rgmii-rxid", a 5000-packet test completed with 0% packet loss and > > no RX CRC errors. "rgmii-id" was also tested successfully, but the > > additional TX delay is not required, so "rgmii-rxid" is retained. > > Please take a read of: > > https://elixir.bootlin.com/linux/v6.15/source/Documentation/devicetree/bindings/net/ethernet-controller.yaml#L287 > > Does the PCB have 2ns of delay for TX, but notR RX? > > Andrew
© 2016 - 2026 Red Hat, Inc.