Messages in this thread Patch in this message |  | | Date | Thu, 31 Mar 2022 08:10:17 +0100 (BST) | From | "Maciej W. Rozycki" <> | Subject | [RESEND][PATCH v2 2/4] x86/PCI: Include function number in $PIR table dump |
| |
Contrary to the PCI BIOS specification[1] some systems include the PCI function number for motherboard devices in their $PIR table, e.g. this is what the Tyan Tomcat IV S1564D board reports:
00:14 slot=01 0:60/deb8 1:61/deb8 2:62/deb8 3:63/deb8
00:13 slot=02 0:61/deb8 1:62/deb8 2:63/deb8 3:60/deb8
00:12 slot=03 0:62/deb8 1:63/deb8 2:60/deb8 3:61/deb8
00:11 slot=04 0:63/deb8 1:60/deb8 2:61/deb8 3:62/deb8
00:07 slot=00 0:00/deb8 1:00/deb8 2:00/deb8 3:00/deb8
00:07 slot=00 0:00/deb8 1:00/deb8 2:00/deb8 3:63/deb8
Print the function number then in the debug $PIR table dump:
00:14.0 slot=01 0:60/deb8 1:61/deb8 2:62/deb8 3:63/deb8
00:13.0 slot=02 0:61/deb8 1:62/deb8 2:63/deb8 3:60/deb8
00:12.0 slot=03 0:62/deb8 1:63/deb8 2:60/deb8 3:61/deb8
00:11.0 slot=04 0:63/deb8 1:60/deb8 2:61/deb8 3:62/deb8
00:07.1 slot=00 0:00/deb8 1:00/deb8 2:00/deb8 3:00/deb8
00:07.2 slot=00 0:00/deb8 1:00/deb8 2:00/deb8 3:63/deb8
References:
[1] "PCI BIOS Specification", Revision 2.1, PCI Special Interest Group, August 26, 1994, Table 4-1 "Layout of IRQ routing table entry.", p. 12
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk> --- No change from v1. --- arch/x86/pci/irq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
linux-x86-debug-pirq-fn.diff Index: linux-macro/arch/x86/pci/irq.c =================================================================== --- linux-macro.orig/arch/x86/pci/irq.c +++ linux-macro/arch/x86/pci/irq.c @@ -135,7 +135,8 @@ static void __init pirq_peer_trick(void) #ifdef DEBUG { int j; - DBG(KERN_DEBUG "%02x:%02x slot=%02x", e->bus, e->devfn/8, e->slot); + DBG(KERN_DEBUG "%02x:%02x.%x slot=%02x", + e->bus, e->devfn / 8, e->devfn % 8, e->slot); for (j = 0; j < 4; j++) DBG(" %d:%02x/%04x", j, e->irq[j].link, e->irq[j].bitmap); DBG("\n");
|  |