On Thu, Oct 8, 2026 at 4:27 PM Phil Rosenthal via B4 Relay <[email protected]> wrote: > > From: Phil Rosenthal <[email protected]> > > On systems with an ASPEED BMC, the IPMI Serial over LAN (SOL) console > shows the firmware and the boot loader but goes silent once Linux > starts. The UART that the BMC bridges to SOL is not a legacy COM port: > it sits behind a PCIe function that no driver claims. > > ASPEED BMCs such as the AST2600 present this "BMC device" function to > the host (1a03:2402, class 0c0701). Besides KCS, the BMC firmware can > expose up to two 16550-compatible virtual UARTs through it, and host > firmware redirects its console to them, for example "IPMI Card SOL/COM2 > (Pci Bus9,Dev1,Func0,Port0)" in the AMI setup of the ASUS Pro WS > W680-ACE IPMI. Register these UARTs so that the kernel console and a > getty can be used over SOL. > > The UART registers are in BAR1 at the VUART's LPC I/O address shifted > left by two, one 32-bit register per 4 bytes: VUART0 at 0xfe0 > (0x3f8 << 2) and VUART1 at 0xbe0 (0x2f8 << 2). A VUART that the BMC has > not enabled reads back as all ones; skip it so that the ports present > are numbered contiguously. If the BMC exposes no VUART at all, decline > the device so that it stays available to other drivers such as ipmi_si, > whose PCI table matches the same class code. > > The function has no INTx pin and advertises 32 MSI vectors. On the ASUS > board (BMC firmware 1.3.13) no interrupt was delivered on MSI vector 16, > which is the vector ASPEED's own host driver uses for VUART0: transmit > stalled and nothing was received. Poll the ports instead. > > The same function also exposes the BMC's KCS interface in BAR1. > 8250_pci does not request the BAR, so an ipmi_si interface described by > firmware (ACPI or SMBIOS) can still use those registers. ipmi_si's PCI > driver, which matches the function by class code, can no longer bind it > while a VUART is enabled. > > Tested on an ASUS Pro WS W680-ACE IPMI (BMC firmware 1.3.13): the kernel > console and a getty run on ttyS5 over IPMI SOL, while a non-PCI ipmi_si > interface uses the KCS registers in the same BAR. > > The register layout and MSI vector assignment follow the host driver > from ASPEED's SDK as posted in 2023, which was not merged.
There is already a driver for this 8250_aspeed_vuart.c. Please, do not add new quirks to 8250_pci.c. -- With Best Regards, Andy Shevchenko _______________________________________________ Openipmi-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openipmi-developer
