MP table irq routing

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
8infy
Member
Member
Posts: 188
Joined: Sun Apr 05, 2020 1:01 pm

MP table irq routing

Post 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.
User avatar
bzt
Member
Member
Posts: 1584
Joined: Thu Oct 13, 2016 4:55 pm
Contact:

Re: MP table irq routing

Post 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
Post Reply