Hi,
pradeep wrote:AC97 is hardwired to PIRQB#. What is this PIRQB#? What is it's importance?
Roughly, each PCI "slot" can use up to 4 IRQ lines, called PIRQA#, PIRQB#, PIRQC# and PIRQD#. These lines are rotated along the bus, so for the first slot the card's PIRQA# might be connected to the buses PIRQA#, but the second card's PIRQA# would be connected to the buses PIRQB#, and the third card's PIRQA# would be connected to the buses PIRQC#.
For example:
Slot 1 = cardA->busA, cardB->busB, cardC->busC, cardD->busD
Slot 2 = cardA->busB, cardB->busC, cardC->busD, cardD->busA
Slot 3 = cardA->busC, cardB->busD, cardC->busA, cardD->busB
Slot 4 = cardA->busD, cardB->busA, cardC->busB, cardD->busC
Slot 5 = cardA->busA, cardB->busB, cardC->busC, cardD->busD
Because most cards use PIRQA# (and maybe PIRQB#), this rotation helps to spread the PCI IRQs across all IRQ lines on the PCI bus.
Then, the IRQ lines on the bus are connected to a PCI IRQ router. This thing is part of the chipset and is programmable. It determines which PIC (and/or I/O APIC) input pins the PCI IRQs are connected to.
The PCI IRQ router is configured by the BIOS during boot, and can usually be changed using the BIOS's "setup screen". It can also be changed by the OS, either directly (if you know what chipset is present and which I/O ports to use, etc), via. the
PCI BIOS Specification functions, or using ACPI.
Cheers,
Brendan