## page was renamed from Kernel/Reference/fwts/pciirq == Firmware Test Suite - pciirq test == This test dumps and sanity checks the legacy BIOS PCI IRQ Routing Table, described in pages 233-238 of the [[PCI System Architecture, Fourth Edition, Mindshare, Inc.(1999)||http://mindshare.com/files/ebooks/PCI%20Express%20System%20Architecture.pdf]] The PCI IRQ Routing Table only really knows about ISA IRQs and is generally not used with APIC. This is a legacy BIOS table. Currently six specific tests are performed: * Check for a valid Compatible PCI Interrupt Router ID * Check for a correctly sized table * Check reserved fields are zero * Check for a connected link if a slot bitmap is defined * Check for a slot bitmap if a connected link is defined * Check for the more than 1 instance of this table Typical output from this test is as follows: {{{ Check PCI IRQ Routing Table. -------------------------------------------------------------------------------- Test 1 of 1: PCI IRQ Routing Table. This test tries to find and sanity check the PCI IRQ Routing Table, as defined by http://www.microsoft.com/taiwan/whdc/archive/pciirq.mspx and described in pages 233-238 of PCI System Architecture, Fourth Edition, Mindshare, Inc. (1999). NOTE: The PCI IRQ Routing Table only really knows about ISA IRQs and is generally not used with APIC. Found PCI IRQ Routing Table at 0x000fbc40 Signature : $PIR Version : 0x0100 (1.0) Table Size : 0x01c0 bytes (26 slot entries) PCI Router ID : 00:1f.0 PCI Exclusive IRQs : 0x0000 (none) Compatible PCI Router : 8086:122e Miniport Data : 0x00000000 (none) Reserved : 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 Checksum : 0xe1 Bus:Dev Slot INTA# INTB# INTC# INTD# 00:1b 00 6a/8c80 00:04 00 60/8c80 61/8c80 62/8c80 63/8c80 00:06 00 63/8c80 60/8c80 61/8c80 62/8c80 00:1d 00 6b/8c80 63/8c80 60/8c80 62/8c80 00:1a 00 60/8c80 69/8c80 62/8c80 63/8c80 00:19 00 68/8c80 00:16 00 60/8c80 63/8c80 62/8c80 61/8c80 00:00 00 60/8c80 61/8c80 62/8c80 63/8c80 00:02 00 60/8c80 00:1f 00 69/8c80 63/8c80 62/8c80 60/8c80 00:07 00 60/8c80 ef:00 04 60/8c80 61/8c80 62/8c80 63/8c80 00:01 00 60/8c80 61/8c80 62/8c80 63/8c80 00:1c 00 60/8c80 61/8c80 62/8c80 63/8c80 02:00 05 60/8c80 61/8c80 62/8c80 63/8c80 03:00 06 61/8c80 62/8c80 63/8c80 60/8c80 eb:00 07 62/8c80 63/8c80 60/8c80 61/8c80 ea:00 08 63/8c80 60/8c80 61/8c80 62/8c80 e9:00 09 60/8c80 61/8c80 62/8c80 63/8c80 e8:00 0a 61/8c80 62/8c80 63/8c80 60/8c80 e7:00 0b 62/8c80 63/8c80 60/8c80 61/8c80 e6:00 0c 63/8c80 60/8c80 61/8c80 62/8c80 ee:00 01 69/8c80 6a/8c80 6b/8c80 68/8c80 ee:01 02 6a/8c80 69/8c80 68/8c80 6b/8c80 ee:05 03 62/8c80 68/8c80 6a/8c80 69/8c80 00:14 00 60/8c80 PASSED: Test 1, The Compatible PCI Interrupt Router is defined. PASSED: Test 1, Table size was correct for 26 slot entries. PASSED: Test 1, Reserved region is set to zero. PASSED: Test 1, All 26 slots have sane looking link and IRQ bitmaps. ================================================================================ 4 passed, 0 failed, 0 warnings, 0 aborted, 0 skipped, 0 info only. ================================================================================ }}} === Examples: === {{{ sudo fwts pciirq - }}} ..runs the pciirq test on your machine and dumps the output to stdout. {{{ sudo fwts pciirq }}} ..runs the pciirq test on your machine and appends the output to the default logfile results.log == Explanation of test results == Certain test results may require a little more explanation. This section will try and give some context to specific test failures. ||Error ID||Explanation|| ||PCIIRQBadCompatPCIRouterID||A badly formed Compatible PCI Interrupt Router was defined.|| ||PCIIRQBadTableSize||Bad table size, possibly too large for the number of slots entries defined. This won't cause any problems, but does mean wasted table space.|| ||PCIIRQBadReserved||The reserved area defined for future use should be zero, and it isn't.|| ||PCIIRQLinkBitmap||Either a slot has a defined bitmap but no link defined, or a link and no bitmap defined. This could lead to incorrect behaviour because of poorly configured PCI interrupt slots.|| ||PCIIRQMultipleTables||More than one instance of the table was found. There should be only one table in the system.||