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)

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:

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.

FirmwareTestSuite/Reference/pciirq (last edited 2016-01-11 07:24:07 by anthonywong)