XenOS wrote:Actually it's not the same information. Compare the results carefully:
Oops, sorry. That was a typo introduced by me. The MP tables also report APIC ID 0x00 for the BSP.
So again, corrected, that is:
- My OS with MP Spec tables
- CPU: enabled, BSP, APIC ID = 0x00, APIC version = 0x10
- CPU: enabled, AP, APIC ID = 0x01, APIC version = 0x10
- CPU: disabled, AP, APIC ID = 0x00, APIC version = 0x10
- CPU: disabled, AP, APIC ID = 0x00, APIC version = 0x10
- IOAPIC: address = 0xFEC00000, APIC ID = 0x01
- Linux with ACPI tables
- LAPIC with ID 0, enabled
- LAPIC with ID 1, enabled
- LAPIC with ID 0, disabled
- LAPIC with ID 0, disabled
- IOAPIC with ID 1
XenOS wrote:The IOAPIC IDs are located in a separate numbering scheme, so there is no conflict if there is some local APIC and some IOAPIC with the same ID number.
Oh, interesting. I had assumed that the IDs have to be unique amongst
all APICs (including both Local APICs and IO APICs). You tell me that the APIC IDs of IOAPICs have to be unique over all IOAPICs and APIC IDs of LocalAPICs have to be unique over all LocalAPICs. Correct?
Hmm... That seems odd to me. I mean in ancient times there was the dedicated APIC bus and the APIC IDs were used to address entities on that bus. So the IDs should have been unique amongst all the APICs back then. It's likely that it is not relevant anymore (maybe in modern systems the IOAPICs don't need a ID at all). But that's just me guessing.
Can someone verify/falsify this?