[PATCH 2/2] ARM: dts: aspeed: Add Asus IPMI card

Anirudh Srinivasan posted 2 patches 4 weeks ago
[PATCH 2/2] ARM: dts: aspeed: Add Asus IPMI card
Posted by Anirudh Srinivasan 4 weeks ago
Add device tree for Asus IPMI card, an AST2600 BMC PCIe card

Signed-off-by: Anirudh Srinivasan <anirudhsriniv@gmail.com>
---
 arch/arm/boot/dts/aspeed/Makefile             |   1 +
 .../dts/aspeed/aspeed-bmc-asus-ipmi-card.dts  | 136 ++++++++++++++++++
 2 files changed, 137 insertions(+)
 create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts

diff --git a/arch/arm/boot/dts/aspeed/Makefile b/arch/arm/boot/dts/aspeed/Makefile
index 9adf9278dc94..ff40d9ab88b7 100644
--- a/arch/arm/boot/dts/aspeed/Makefile
+++ b/arch/arm/boot/dts/aspeed/Makefile
@@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
 	aspeed-bmc-asrock-spc621d8hm3.dtb \
 	aspeed-bmc-asrock-x570d4u.dtb \
 	aspeed-bmc-asus-x4tf.dtb \
+	aspeed-bmc-asus-ipmi-card.dtb \
 	aspeed-bmc-bytedance-g220a.dtb \
 	aspeed-bmc-delta-ahe50dc.dtb \
 	aspeed-bmc-facebook-bletchley.dtb \
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts
new file mode 100644
index 000000000000..fea94360245c
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts
@@ -0,0 +1,136 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// Copyright 2025 Anirudh Srinivasan
+
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+#include "aspeed-g6-pinctrl.dtsi"
+#include <dt-bindings/i2c/i2c.h>
+#include <dt-bindings/gpio/aspeed-gpio.h>
+
+/ {
+	model = "ASUS IPMI Card BMC";
+	compatible = "asus,ipmi-card-bmc", "aspeed,ast2600";
+
+	aliases {
+		serial4 = &uart5;
+	};
+
+	chosen {
+		stdout-path = "serial4:115200n8";
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x80000000 0x40000000>;
+	};
+
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		video_engine_memory: video {
+			size = <0x04000000>;
+			alignment = <0x01000000>;
+			compatible = "shared-dma-pool";
+			reusable;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led-fault {
+			gpios = <&gpio1 ASPEED_GPIO(C, 5) GPIO_ACTIVE_HIGH>;
+			panic-indicator;
+			default-state = "off";
+		};
+
+		led-heartbeat {
+			gpios = <&gpio0 ASPEED_GPIO(A, 7) GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "timer";
+		};
+
+	};
+};
+
+&mdio2 {
+	status = "okay";
+
+	ethphy2: ethernet-phy@0 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = <0>;
+	};
+};
+
+&mac2 {
+	status = "okay";
+
+	/* Bootloader sets up the MAC to insert delay */
+	phy-mode = "rgmii";
+	phy-handle = <&ethphy2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_rgmii3_default>;
+};
+
+
+&fmc {
+	status = "okay";
+
+	flash@0 {
+		status = "okay";
+		m25p,fast-read;
+		label = "bmc";
+		spi-max-frequency = <50000000>;
+#include "openbmc-flash-layout-64.dtsi"
+	};
+};
+
+&video {
+	status = "okay";
+	memory-region = <&video_engine_memory>;
+};
+
+&vhub {
+	status = "okay";
+};
+
+&gpio0 {
+	gpio-line-names =
+	/*A0 0*/	"", "", "", "", "", "", "", "BMC_HBLED",
+	/*B0 8*/	"", "", "", "", "", "", "", "",
+	/*C0 16*/	"", "", "", "", "", "", "", "",
+	/*D0 24*/	"", "", "", "", "", "", "", "",
+	/*E0 32*/	"", "", "", "", "", "", "", "",
+	/*F0 40*/	"", "", "", "", "", "", "", "",
+	/*G0 48*/	"", "", "", "", "", "", "", "",
+	/*H0 56*/	"", "", "", "", "", "", "", "",
+	/*I0 64*/	"", "", "", "BMC_RSTBTN", "", "", "", "",
+	/*J0 72*/	"", "", "", "", "", "", "", "",
+	/*K0 80*/	"", "", "", "", "", "", "", "",
+	/*L0 88*/	"", "", "", "", "", "", "", "",
+	/*M0 96*/	"", "", "", "", "", "", "", "",
+	/*N0 104*/	"", "", "", "", "", "", "", "",
+	/*O0 112*/	"", "", "", "", "", "", "", "",
+	/*P0 120*/	"", "", "", "", "", "", "", "",
+	/*Q0 128*/	"", "", "", "", "", "", "", "",
+	/*R0 136*/	"", "", "", "", "", "", "", "",
+	/*S0 144*/	"", "", "", "", "", "", "", "",
+	/*T0 152*/	"", "", "", "", "", "", "", "",
+	/*U0 160*/	"", "", "", "", "", "", "", "",
+	/*V0 168*/	"", "", "", "", "BMC_PWRBTN", "", "MB_S0_DETECT", "",
+	/*W0 176*/	"", "", "", "", "", "", "", "",
+	/*X0 184*/	"", "", "", "", "", "", "", "",
+	/*Y0 192*/	"", "", "", "", "", "", "", "",
+	/*Z0 200*/	"", "", "", "", "", "", "", "";
+};
+
+&gpio1 {
+	gpio-line-names =
+	/*18A0 0*/  "","","","","","","","",
+	/*18B0 8*/  "","","","","","","","",
+	/*18C0 16*/ "","","","","","BMC_MLED","","",
+	/*18D0 24*/ "","","","","","","","",
+	/*18E0 32*/ "","","","","","","","";
+};
-- 
2.52.0
Re: [PATCH 2/2] ARM: dts: aspeed: Add Asus IPMI card
Posted by Krzysztof Kozlowski 3 weeks, 6 days ago
On Sun, Jan 11, 2026 at 02:10:32PM -0600, Anirudh Srinivasan wrote:
> Add device tree for Asus IPMI card, an AST2600 BMC PCIe card
> 
> Signed-off-by: Anirudh Srinivasan <anirudhsriniv@gmail.com>
> ---
>  arch/arm/boot/dts/aspeed/Makefile             |   1 +
>  .../dts/aspeed/aspeed-bmc-asus-ipmi-card.dts  | 136 ++++++++++++++++++
>  2 files changed, 137 insertions(+)
>  create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts
> 
> diff --git a/arch/arm/boot/dts/aspeed/Makefile b/arch/arm/boot/dts/aspeed/Makefile
> index 9adf9278dc94..ff40d9ab88b7 100644
> --- a/arch/arm/boot/dts/aspeed/Makefile
> +++ b/arch/arm/boot/dts/aspeed/Makefile
> @@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
>  	aspeed-bmc-asrock-spc621d8hm3.dtb \
>  	aspeed-bmc-asrock-x570d4u.dtb \
>  	aspeed-bmc-asus-x4tf.dtb \
> +	aspeed-bmc-asus-ipmi-card.dtb \
>  	aspeed-bmc-bytedance-g220a.dtb \
>  	aspeed-bmc-delta-ahe50dc.dtb \
>  	aspeed-bmc-facebook-bletchley.dtb \
> diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts
> new file mode 100644
> index 000000000000..fea94360245c
> --- /dev/null
> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts
> @@ -0,0 +1,136 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +// Copyright 2025 Anirudh Srinivasan
> +
> +/dts-v1/;
> +
> +#include "aspeed-g6.dtsi"
> +#include "aspeed-g6-pinctrl.dtsi"
> +#include <dt-bindings/i2c/i2c.h>
> +#include <dt-bindings/gpio/aspeed-gpio.h>
> +
> +/ {
> +	model = "ASUS IPMI Card BMC";
> +	compatible = "asus,ipmi-card-bmc", "aspeed,ast2600";
> +
> +	aliases {
> +		serial4 = &uart5;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial4:115200n8";
> +	};
> +
> +	memory@80000000 {
> +		device_type = "memory";
> +		reg = <0x80000000 0x40000000>;
> +	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		video_engine_memory: video {
> +			size = <0x04000000>;
> +			alignment = <0x01000000>;
> +			compatible = "shared-dma-pool";
> +			reusable;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led-fault {
> +			gpios = <&gpio1 ASPEED_GPIO(C, 5) GPIO_ACTIVE_HIGH>;
> +			panic-indicator;
> +			default-state = "off";

Missing color and function. Or at least label.

> +		};
> +
> +		led-heartbeat {
> +			gpios = <&gpio0 ASPEED_GPIO(A, 7) GPIO_ACTIVE_LOW>;
> +			linux,default-trigger = "timer";
> +		};
> +

Drop redundant blank lines.

> +	};
> +};
> +
> +&mdio2 {
> +	status = "okay";
> +
> +	ethphy2: ethernet-phy@0 {
> +		compatible = "ethernet-phy-ieee802.3-c22";
> +		reg = <0>;
> +	};
> +};
> +
> +&mac2 {
> +	status = "okay";
> +
> +	/* Bootloader sets up the MAC to insert delay */
> +	phy-mode = "rgmii";
> +	phy-handle = <&ethphy2>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_rgmii3_default>;
> +};
> +
> +

Like this as well. It's a sign of sloppy coding.

> +&fmc {
> +	status = "okay";
> +
> +	flash@0 {
> +		status = "okay";
> +		m25p,fast-read;
> +		label = "bmc";
> +		spi-max-frequency = <50000000>;
> +#include "openbmc-flash-layout-64.dtsi"
> +	};
> +};

Best regards,
Krzysztof
Re: [PATCH 2/2] ARM: dts: aspeed: Add Asus IPMI card
Posted by Anirudh Srinivasan 3 weeks, 6 days ago
Hi Krzysztof,

On Mon, Jan 12, 2026 at 5:48 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> > +
> > +     leds {
> > +             compatible = "gpio-leds";
> > +
> > +             led-fault {
> > +                     gpios = <&gpio1 ASPEED_GPIO(C, 5) GPIO_ACTIVE_HIGH>;
> > +                     panic-indicator;
> > +                     default-state = "off";
>
> Missing color and function. Or at least label.

I will add this.

>
> > +             };
> > +
> > +             led-heartbeat {
> > +                     gpios = <&gpio0 ASPEED_GPIO(A, 7) GPIO_ACTIVE_LOW>;
> > +                     linux,default-trigger = "timer";
> > +             };
> > +
>
> Drop redundant blank lines.
>
> > +&mac2 {
> > +     status = "okay";
> > +
> > +     /* Bootloader sets up the MAC to insert delay */
> > +     phy-mode = "rgmii";
> > +     phy-handle = <&ethphy2>;
> > +     pinctrl-names = "default";
> > +     pinctrl-0 = <&pinctrl_rgmii3_default>;
> > +};
> > +
> > +
>
> Like this as well. It's a sign of sloppy coding.

Will remove

>
> > +&fmc {
> > +     status = "okay";
> > +
> > +     flash@0 {
> > +             status = "okay";
> > +             m25p,fast-read;
> > +             label = "bmc";
> > +             spi-max-frequency = <50000000>;
> > +#include "openbmc-flash-layout-64.dtsi"
> > +     };
> > +};
>
> Best regards,
> Krzysztof
>

-- 
Regards
Anirudh Srinivasan
Re: [PATCH 2/2] ARM: dts: aspeed: Add Asus IPMI card
Posted by Andrew Jeffery 4 weeks ago
Hi Anirudh,

On Sun, 2026-01-11 at 14:10 -0600, Anirudh Srinivasan wrote:
> Add device tree for Asus IPMI card, an AST2600 BMC PCIe card
> 
> Signed-off-by: Anirudh Srinivasan <anirudhsriniv@gmail.com>
> ---
>  arch/arm/boot/dts/aspeed/Makefile             |   1 +
>  .../dts/aspeed/aspeed-bmc-asus-ipmi-card.dts  | 136 ++++++++++++++++++
>  2 files changed, 137 insertions(+)
>  create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts
> 
> diff --git a/arch/arm/boot/dts/aspeed/Makefile b/arch/arm/boot/dts/aspeed/Makefile
> index 9adf9278dc94..ff40d9ab88b7 100644
> --- a/arch/arm/boot/dts/aspeed/Makefile
> +++ b/arch/arm/boot/dts/aspeed/Makefile
> @@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
>  	aspeed-bmc-asrock-spc621d8hm3.dtb \
>  	aspeed-bmc-asrock-x570d4u.dtb \
>  	aspeed-bmc-asus-x4tf.dtb \
> +	aspeed-bmc-asus-ipmi-card.dtb \
>  	aspeed-bmc-bytedance-g220a.dtb \
>  	aspeed-bmc-delta-ahe50dc.dtb \
>  	aspeed-bmc-facebook-bletchley.dtb \
> diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts
> new file mode 100644
> index 000000000000..fea94360245c
> --- /dev/null
> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-ipmi-card.dts
> @@ -0,0 +1,136 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +// Copyright 2025 Anirudh Srinivasan
> +
> +/dts-v1/;
> +
> +#include "aspeed-g6.dtsi"
> +#include "aspeed-g6-pinctrl.dtsi"
> +#include <dt-bindings/i2c/i2c.h>
> +#include <dt-bindings/gpio/aspeed-gpio.h>
> +
> +/ {
> +	model = "ASUS IPMI Card BMC";

I'd drop the "BMC" from the model description as well (wrt the
discussion on patch 1/2).

> +	compatible = "asus,ipmi-card-bmc", "aspeed,ast2600";
> +
> +	aliases {
> +		serial4 = &uart5;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial4:115200n8";
> +	};
> +
> +	memory@80000000 {
> +		device_type = "memory";
> +		reg = <0x80000000 0x40000000>;
> +	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		video_engine_memory: video {
> +			size = <0x04000000>;
> +			alignment = <0x01000000>;
> +			compatible = "shared-dma-pool";
> +			reusable;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led-fault {
> +			gpios = <&gpio1 ASPEED_GPIO(C, 5) GPIO_ACTIVE_HIGH>;
> +			panic-indicator;
> +			default-state = "off";
> +		};
> +
> +		led-heartbeat {
> +			gpios = <&gpio0 ASPEED_GPIO(A, 7) GPIO_ACTIVE_LOW>;
> +			linux,default-trigger = "timer";
> +		};
> +
> +	};
> +};
> +
> +&mdio2 {
> +	status = "okay";
> +
> +	ethphy2: ethernet-phy@0 {
> +		compatible = "ethernet-phy-ieee802.3-c22";
> +		reg = <0>;
> +	};
> +};
> +
> +&mac2 {

This looks good in general.

For the purpose of review I've started requesting that phandle
references be ordered alphabetically, because it's tedious to confirm
they're ordered by unit address, and it's nice to have consistency
across the files. Can you please fix that along with Andrew Lunn's
concern about the phy-mode?

Andrew
Re: [PATCH 2/2] ARM: dts: aspeed: Add Asus IPMI card
Posted by Anirudh Srinivasan 4 weeks ago
Hi Andrew,

On Sun, Jan 11, 2026 at 7:47 PM Andrew Jeffery
<andrew@codeconstruct.com.au> wrote:
>
> > +/ {
> > +     model = "ASUS IPMI Card BMC";
>
> I'd drop the "BMC" from the model description as well (wrt the
> discussion on patch 1/2).

Yes, I realized sticking to its official name everywhere might just
make better sense.

I'll make this name "ASUS IPMI Expansion Card", change the compatible
to "asus,ipmi-expansion-card" and the dtb name to
"aspeed-bmc-asus-ipmi-expansion-card.dtb".

>
> This looks good in general.
>
> For the purpose of review I've started requesting that phandle
> references be ordered alphabetically, because it's tedious to confirm
> they're ordered by unit address, and it's nice to have consistency
> across the files. Can you please fix that along with Andrew Lunn's
> concern about the phy-mode?

Will fix this up and resend another series. Thanks for your quick response.

--
Regards
Anirudh Srinivasan
Re: [PATCH 2/2] ARM: dts: aspeed: Add Asus IPMI card
Posted by Andrew Lunn 4 weeks ago
> +&mac2 {
> +	status = "okay";
> +
> +	/* Bootloader sets up the MAC to insert delay */
> +	phy-mode = "rgmii";

There has been many discussions about this. This is broken, 'rgmii'
means the PCB adds the delays, not the MAC/PHY pair.

Please drop Ethernet support until aspeed fix the broken MAC driver.

       Andrew
Re: [PATCH 2/2] ARM: dts: aspeed: Add Asus IPMI card
Posted by Anirudh Srinivasan 4 weeks ago
On Sun, Jan 11, 2026 at 3:09 PM Andrew Lunn <andrew@lunn.ch> wrote:
>
> > +&mac2 {
> > +     status = "okay";
> > +
> > +     /* Bootloader sets up the MAC to insert delay */
> > +     phy-mode = "rgmii";
>
> There has been many discussions about this. This is broken, 'rgmii'
> means the PCB adds the delays, not the MAC/PHY pair.
>
> Please drop Ethernet support until aspeed fix the broken MAC driver.
>
>        Andrew

Understood, I will remove it for now.