On Fri, Apr 15, 2022 at 04:33:34PM +0530, Jay Khandkar wrote: > Set the correct IOAPIC INTIN pin number for pci bus interrupt > sources during MP spec table generation (on emulators). Currently, > the pin number is set to the interrupt line field in the device's > configuration space, which is set to either IRQ 10 or 11 as the > boot rom driver expects. This works since qemu maps all ISA > compatible PIC IRQs onto IOAPIC pins 0-15, including PIRQs. But it > will break if, for some reason, the IRQ is routed to something > other than the INTLINE value using, for eg. ACPI _CRS. This patch > ensures the pin number is set to the correct value (16-23) that the > INTx pin is routed to in APIC mode, in agreement with the ACPI _PRT > provided routing. > > Tested on a Linux 5.17.2 guest on qemu with the pci=nomsi and > acpi=noirq boot parameters to force MP table parsing for interrupt > sources. > > Signed-off-by: Jay Khandkar <jaykhandkar2...@gmail.com> > --- > src/fw/mptable.c | 30 ++++++++++++++++++++++++++++-- > 1 file changed, 28 insertions(+), 2 deletions(-) > > diff --git a/src/fw/mptable.c b/src/fw/mptable.c > index 47385cc..3a7b02f 100644 > --- a/src/fw/mptable.c > +++ b/src/fw/mptable.c
If you look at the top of that file you'll see the notice: // DO NOT ADD NEW FEATURES HERE. (See paravirt.c / biostables.c instead.) The mptable.c file in seabios is no longer modified. If a guest OS needs a different mptable then it will be necessary to extend qemu to pass the desired mptable to seabios (as is done for smbios and acpi). Cheers, -Kevin _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org