Anyone know anything about IRQ Routing Tables?

Only for programmers and BIOS gurus with technical questions.
Post Reply
jonfaquit
New visitors - please read the rules.
Posts: 8
Joined: Sun Apr 02, 2006 6:02 pm

I get a "PCI IRQ Routing table error [0:05:00]" on POST.
Would there be an error in the table if the BIOS doesn't include an entry for bus 0, device 5?

This is the table:
(microsoft spec: http://www.microsoft.com/whdc/archive/pciirq.mspx)

Code: Select all

00: 24 50 49 52 00 01 D0 00-00 88 00 00 06 11 27 32   $PIR..........'2
10: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 47   ...............G
20: 00 08 01 F8 DC 02 F8 DC-00 00 00 00 00 00 00 00   ................
30: 00 88 00 00 00 00 00 00-03 F8 DC 00 00 00 00 00   ................
40: 00 80 01 F8 DC 02 F8 DC-03 F8 DC 05 F8 DC 00 00   ................
50: 00 78 02 F8 DC 03 F8 DC-05 F8 DC 01 F8 DC 00 00   .x..............
60: 00 40 01 F8 DC 02 F8 DC-03 F8 DC 05 F8 DC 01 00   .@..............
70: 00 48 02 F8 DC 03 F8 DC-05 F8 DC 01 F8 DC 02 00   .H..............
80: 00 50 03 F8 DC 05 F8 DC-01 F8 DC 02 F8 DC 03 00   .P..............
90: 00 58 05 F8 DC 01 F8 DC-02 F8 DC 03 F8 DC 04 00   .X..............
A0: 00 60 02 F8 DC 03 F8 DC-05 F8 DC 01 F8 DC 05 00   .`..............
B0: 00 70 02 F8 DC 03 F8 DC-05 F8 DC 01 F8 DC 05 00   .p..............
C0: 00 90 03 F8 DC 05 F8 DC-01 F8 DC 02 F8 DC 00 00   ................
--Table---------
0x00 - 03: signature = '$PIR'
0x04 - 05: version = 1.0
0x06 - 07: size = 0xD0 (bytes 00->CF)
0x20 - 0x2F: first slot entry (slots start at '1' for you 0-based thinkers)
0x30 - 0x3F: second slot entry
...
0xC0 - 0xCF: last slot entry, in my case the 11th slot entry

--Slot Entry (0x00-0x0F)----------
0x00: bus number
0x01: dev number (in upper five bits...readable would be byte shift-right 3)
0x02: link value for INTA# pci-connector pin
0x03-0x04: irq bitmap for INTA#
..
0x0C-0x0D: irq bitmap for INTD#
0x0E: slot number (0=system, non-zero = expansion slot number)


So if I'm looking for device 5, that would be byte 0x01 shifted-right 3 bits should equal 5 (or 5 shift-left 3 should equal (slot_entry_byte_01 & F8) == 0x28).

Problem is, there is none that match a device number of 5! Is that the error? Where is the device number of 05 coming from? I thought device number specifies the pci-bus's 'slot' (which is not necessarily an expansion slot). The expansion slot I have the card in right now is #2. Based on byte 0x7E being 2, this is the system 'slot' the card is using. It has a device number "byte" of 0x48 which, shifted-right 3 is device number 9. Why is the card showing up as device 5 instead of 9?

Any ideas?
Post Reply