Page 1 of 1

MP table irq routing

Posted: Fri Jul 17, 2020 8:43 am
by 8infy
Hi. I have a question about IRQ sources in the MP tables and how to handle them.

(bottom are busses, and their ids, and above are IOAPIC IRQs src, dst, modes, bus id)
Here's the IOAPIC irq routing in my Bochs, nothing special about it:
Image

QEMU, also nothing special:
Image

And here's VMWare, looks crazy:
Image

Why are there 2 IRQ0 sources from the ISA bus?
Does that mean they're shared?
How would I know for example, which one of them I'm looking for when mapping them in IOAPIC, do I redirect both to the same handler?
What other device can possibly be IRQ0 on the ISA bus other than the PIT?

Thanks.

Re: MP table irq routing

Posted: Fri Jul 17, 2020 9:17 am
by bzt
8infy wrote:What other device can possibly be IRQ0 on the ISA bus other than the PIT?
HPET. It also uses IRQ2, so this could be a workaround to keep compatibility with HPET regardless if the guest OS uses PIC or IOAPIC with legacy-replacement mode. I bet on VMWare you can find a record for HPET in the ACPI tables.

Cheers,
bzt