Originally posted by: VirtualLarry
Yes, if the chipset supports an IOAPIC, and the CPU supports APIC, and the BIOS supports the MPS spec, then the system can be switched from "legacy 8259 PIC emulation mode", to either a half-emulated/half-native mode, in which the APIC adds 8 IRQs to the existing 16, to a fully-native, non-legacy-compatible mode, that allows nearly as many IRQs as you want. Unfortunately, on most mobos, the PCI IRQ routing is done using physical "wire-OR"s, which means more than just logical sharing of IRQ numbers at the PIC/APIC.
For example, my MSI KT4V-L, support IOAPIC and MPS spec revision 1.4, and I installed W2K, XP, etc., and it auto-detects the MPS Uniprocessor HAL. (I have ACPI disabled, because it's mostly crap, and I always disable all power-management features because they never do anything but cause problems, in the long run.) When the BIOS boots up, it shows only the legacy IRQs (many shared), but after W2K boots, it shows as seperate IRQs for everything, with the AGP getting IRQ 128, the legacy/ISA IRQs getting 0-15, onboard devices getting 64-70, and PCI cards getting 20-23, 24-27, etc., basically 4 logical IRQs for each PCI slot, matching PCI INTA-INTD for each slot. Unfortunately, there is still IRQ contention, because of the physical interrupt-line wire-OR sharing, unfortunately.
When I boot Win98se (rarely), it doesn't support APICs, so it is always using the shared legacy IRQ routing. Interestingly enough, I *have* to use APIC mode in W2K, because although Via provides an IRQ routing miniport for Win98x (required for allowing proper PCI IRQ sharing), they don't provide one for W2K, claiming that one is not needed. Yet, if you install W2K on this board with the "Standard PC HAL", it clearly shows an error due to not having a driver for PCI IRQ routing. Via is full of it. I guess that they are just lazy, or want to force people to use ACPI mode or something instead. (Yes, I meant ACPI there, not APIC - MS has been trying to force ACPI upon everyone, by decreeing that mobos would not qualify/pass WHQL/PC'XXXX testing unless the "ACPI disable" setting in the BIOS was hidden or removed entirely. Most BIOS makers responded by simply making an option with a different name that does the same thing. ACPI is basically the worst thing in the world, because it has the tendency to cause all interruptss to be overlapped onto the same IRQ, which causes horrid hardware-latency problems. Yet it is the shipping default for the vast majority of systems. So sad, what the MS monopoly has done.)