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

Liran Alon liran.alon at oracle.com
Fri Nov 30 20:53:05 CET 2018



> On 30 Nov 2018, at 21:25, Kevin O'Connor <kevin at koconnor.net> wrote:
> 
> 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.
> 
> -Kevin

Makes sense.

Until that MPTable will be propagated to SeaBIOS via fw_cfg from QEMU, don’t you think it makes sense to revert this commit for now?
As it caused a real guest workload to break (with non-trivial issue to diagnose) and doesn’t provide a real value of it’s own (or am I missing something?).

-Liran




More information about the SeaBIOS mailing list