Support for Asus IPMI Card

Anirudh Srinivasan anirudhsriniv at gmail.com
Mon Jan 12 13:13:14 AEDT 2026


Hi Andrew,

Thanks for your response.

On Sun, Jan 11, 2026 at 6:25 PM Andrew Jeffery
<andrew at codeconstruct.com.au> wrote:

> I'd be surprised. 100M mode might indicate an NC-SI configuration.

Yeah not sure what's going on here. On the vendor fw, I see a usb0 nic
on the host and the aspeed, but I don't see it on my openbmc (with
this 100M phy disabled). Maybe something worth trying to enable.

> > Anyway, I got a build of OpenBMC up and running after a lot of trial
> > and error. I didn't have the hace enabled in the u-boot device tree,
> > so u-boot kept failing at the fitImage sha verification stage.
> >
>
> So this was fixed by enabling the HACE in the devicetree?

Yes, in the u-boot DT. It's disabled by default in the .dtsi.

> >  I also
> > ended up wiping the u-boot data partition that stores the ethernet MAC
> > address for the NIC, so I had to manually add that in to u-boot (is
> > this how the ethernet MAC is programmed or is it read from the chip?).
>
> It varies. Storing the MAC address in the u-boot environment isn't
> uncommon.

I see that some other Aspeed DTs read the ethernet MAC from an EEPROM.
When I reflashed vendor fw on my card by rewriting the whole flash
chip (that should have wiped any MAC stored in u-boot), vendor u-boot
seemed to pick up the correct ethernet MAC somehow. So this
information is stored somewhere.


> What motherboard are you plugging the card into? The card's user manual
> suggests there are alternative firmwares for ASUS motherboards that
> integrate with the card (section 2.3). If you have both (an ASUS
> motherboard and appropriate host firmware) then it may be sensible to
> enable some of these devices.

I have an older Asus motherboard that doesn't have the BMC header and
isn't on their supported list. Based on their support list, only
"higher end" models seem to have this functionality.

> > On the vendor firmware, an additional pcie device (other than the VGA
> > controller) appears on the host the card is plugged into
> >
> > 09:01.0 IPMI Interface: ASPEED Technology, Inc. Device 2402 (rev 01)
> > (prog-if 01 [KCS])
> >     Subsystem: ASPEED Technology, Inc. Device 2402
> >     Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
> > ParErr- Stepping- SERR- FastB2B- DisINTx-
> >     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
> > <TAbort- <MAbort- >SERR- <PERR- INTx-
> >     IOMMU group: 13
> >     Region 0: Memory at fc000000 (32-bit, non-prefetchable) [size=1M]
> >     Region 1: Memory at fc100000 (32-bit, non-prefetchable) [size=256K]
> >     Capabilities: [40] Power Management version 3
> >         Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
> > PME(D0+,D1+,D2+,D3hot+,D3cold+)
> >         Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >     Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+
> >         Address: 0000000000000000  Data: 0000
> >     Kernel modules: ipmi_si
> >
> > However, on 2 systems I've tried, the ipmi_smi module fails to probe
> > for this device.
> >
> > [   13.118009] IPMI message handler: version 39.2
> > [   13.122585] ipmi device interface
> > [   13.133364] ipmi_si: IPMI System Interface driver
> > [   13.133407] ipmi_si 0000:09:01.0: probing via PCI
> > [   13.133452] ipmi_si 0000:09:01.0: enabling device (0000 -> 0002)
> > [   13.133506] ipmi_si 0000:09:01.0: Could not setup I/O space
> > [   13.133508] ipmi_si 0000:09:01.0: [mem 0xfc000000-0xfc0fffff]
> > regsize 1 spacing 1 irq 0
> > [   13.133512] ipmi_si: Adding PCI-specified kcs state machine
> > [   13.133531] ipmi_si: Trying PCI-specified kcs state machine at mem
> > address 0xfc000000, slave address 0x0, irq 0
> > [   13.133572] ipmi_si 0000:09:01.0: Interface detection failed
>
> Possibly this is a result of not enabling the devices discussed above
> (along with the necessary PCIe bridge settings).

I should clarify, these errors (on the host) are from the vendor fw,
not from openbmc.

> > Some searching online [5] shows that this functionality might only
> > work for certain Asus motherboards with a BIOS that specifically
> > supports this functionality.  The vendor DT has a special
> > bmc_dev at 1e7e0000 of type "aspeed,ast2600-bmc-device". This doesn't
> > seem to be supported upstream.
> >  I see it in Aspeed's kernel fork on
> > github [6]. I am guessing this is what provides the pcie ipmi device.
>
> One of the important bits there is enabling
> SCU_PCIE_CONF_BMC_DEV_EN_E2L, which exposes the LPC peripherals such as
> KCS and UARTs over PCIe. I expect that will help with the ipmi_si
> errors above.
>
> Note that these can also be enabled on the VGA device though there's
> probably a question of whether the pieces are in place on the host-side
> to support that.

Since the ipmi device is failing to probe (on the host) even on the
vendor fw, I don't have hopes of getting it working easily on openbmc.
I will try your suggestions and report back if I have any luck.

If this device just requires a custom bios on the host to expose some
additional info over pcie (and doesn't require the BMC header
connection), maybe passing the card through to a VM with a custom edk2
build might make it work. But this seems like a bit of a long shot.

Regards
Anirudh Srinivasan


More information about the openbmc mailing list