[SeaBIOS] [PATCH] Revert "mptable: Don't describe pci-to-pci bridges."

Kevin O'Connor kevin at koconnor.net
Fri Nov 30 20:25:56 CET 2018

On Wed, Nov 28, 2018 at 06:49:51PM +0200, Liran Alon wrote:
> From: Arbel Moshe <arbel.moshe at oracle.com>
> This reverts commit
> 3c3a3fa6522f ("mptable: Don't describe pci-to-pci bridges.”)
> The reverted commit removed the description of non-root PCI busses
> from the MPTable in claim they are not necessary.
> However, it seems that some guests rely on this information in order to
> correclty configure IOAPIC redirection-table entries for interrupts
> originated from PCI devices on non-root PCI busses.
> One such guest is "Extreme Networks OS".
> We observed that if this guest is setup with an E1000 NIC behind a PCI
> bridge, the OS wouldn't configure the IOAPIC redirection-table entry for
> the IRQ that the E1000 PIN is connected to. Therefore, interrupts from
> the NIC were not delivered to OS which caused guest to not have network
> connectivity.

At the top of mptable.c is:

// MPTable generation (on emulators)
// DO NOT ADD NEW FEATURES HERE.  (See paravirt.c / biostables.c instead.)

These tables are considered static in SeaBIOS.  We've found that any
change to these legacy tables tends to break something.  We moved the
generation of SMBIOS and ACPI to QEMU for this reason.  I don't think
MPTable was moved into QEMU, but I think that should be the way
forward if a particular guest needs different content in this table.


More information about the SeaBIOS mailing list