Created attachment 130261 [details] Output of dmesg and lspci -vv Hello All, I'm trying to associate all network interfaces on my linux host with their corresponding network ports. For PCIe hotplug slots, this could be done easily using the info exposed in sysfs by the pci_slot driver. The PCIe slots on my platform don't support hotplug so I cannot use the pci_slot. My question is: could it be possible to export the physical PCI slot number even if hotplug is not implemented? Thank you, Cristina
Created attachment 142321 [details] lspci (slot 10 occupied) Federico Vaga reported a similar problem [1]. He wants to associate a device with a physical slot, but Linux doesn't expose any slot number information, partly because the system doesn't support hotplug. This lspci output is with a card in slot 10: 00:01.0 82Q35 Root Port to [bus 05] PCIe SltCap slot #21 05:00.0 CERN/ECP/EDU Device slot 10 00:1c.0 82801I Express Port 1 to [bus 04] PCIe SltCap slot #22 00:1c.3 (not present at all) 00:1c.4 82801I Express Port 5 to [bus 03] PCIe SltCap slot #0 03:00.0 Realtek NIC [1] http://lkml.kernel.org/r/280883016.9onmf0miLq@pcbe13110.cern.ch
Created attachment 142331 [details] lspci (slot 11 occupied) This lspci output is with a card in slot 11: 00:01.0 (not present at all) 00:1c.0 82801I Express Port 1 to [bus 05] PCIe SltCap slot #22 00:1c.3 82801I Express Port 4 to [bus 04] PCIe SltCap slot #25 04:00.0 CERN/ECP/EDU Device slot 11 00:1c.4 82801I Express Port 5 to [bus 03] PCIe SltCap slot #0 03:00.0 Realtek NIC Note that the BIOS disabled the 00:01.0 Root Port and changed the bus numbering a bit. So the PCI bus numbers are not a reliable way to associate a device with a slot. The PCIe SltCap slot numbers might be useful, but we don't currently expose them.
Here the output of biosdecode when the card is in slot 11 --------------------------------------------------------- # biosdecode 2.12 BIOS32 Service Directory present. Revision: 0 Calling Interface Address: 0x000E6810 PCI Interrupt Routing 1.0 present. Router ID: 00:1f.0 Exclusive IRQs: None Compatible Router: 8086:2914 Slot Entry 1: ID 00:02, on-board Slot Entry 2: ID 00:03, on-board Slot Entry 3: ID 00:1f, on-board Slot Entry 4: ID 00:1b, on-board Slot Entry 5: ID 00:01, on-board Slot Entry 6: ID 05:00, slot number 21 Slot Entry 7: ID 00:19, on-board Slot Entry 8: ID 00:1a, on-board Slot Entry 9: ID 00:1c, on-board Slot Entry 10: ID 04:00, slot number 22 Slot Entry 11: ID 03:00, on-board Slot Entry 12: ID 00:1d, on-board Slot Entry 13: ID 01:01, on-board Slot Entry 14: ID 01:0b, on-board Slot Entry 15: ID 01:0c, slot number 4 Slot Entry 16: ID 01:0d, slot number 3 Slot Entry 17: ID 01:0e, slot number 2 Slot Entry 18: ID 01:0f, slot number 1 PNP BIOS 1.0 present. Event Notification: Not Supported Real Mode 16-bit Code Address: F000:71F2 Real Mode 16-bit Data Address: F000:0000 16-bit Protected Mode Code Address: 0x000F721A 16-bit Protected Mode Data Address: 0x000F0000 ACPI 2.0 present. OEM Identifier: ACPIAM RSD Table 32-bit Address: 0xBF580000 XSD Table 64-bit Address: 0x00000000BF580100 SMBIOS 2.6 present. Structure Table Length: 3456 bytes Structure Table Address: 0x000E7110 Number Of Structures: 79 Maximum Structure Size: 189 bytes Here the output of biosdecode when the card is in slot 11 --------------------------------------------------------- # biosdecode 2.12 BIOS32 Service Directory present. Revision: 0 Calling Interface Address: 0x000E6810 PCI Interrupt Routing 1.0 present. Router ID: 00:1f.0 Exclusive IRQs: None Compatible Router: 8086:2914 Slot Entry 1: ID 00:02, on-board Slot Entry 2: ID 00:03, on-board Slot Entry 3: ID 00:1f, on-board Slot Entry 4: ID 00:1b, on-board Slot Entry 5: ID 00:01, on-board Slot Entry 6: ID 00:19, on-board Slot Entry 7: ID 00:1a, on-board Slot Entry 8: ID 00:1c, on-board Slot Entry 9: ID 05:00, slot number 22 Slot Entry 10: ID 04:00, slot number 25 Slot Entry 11: ID 03:00, on-board Slot Entry 12: ID 00:1d, on-board Slot Entry 13: ID 01:01, on-board Slot Entry 14: ID 01:0b, on-board Slot Entry 15: ID 01:0c, slot number 4 Slot Entry 16: ID 01:0d, slot number 3 Slot Entry 17: ID 01:0e, slot number 2 Slot Entry 18: ID 01:0f, slot number 1 PNP BIOS 1.0 present. Event Notification: Not Supported Real Mode 16-bit Code Address: F000:71F2 Real Mode 16-bit Data Address: F000:0000 16-bit Protected Mode Code Address: 0x000F721A 16-bit Protected Mode Data Address: 0x000F0000 ACPI 2.0 present. OEM Identifier: ACPIAM RSD Table 32-bit Address: 0xBF580000 XSD Table 64-bit Address: 0x00000000BF580100 SMBIOS 2.6 present. Structure Table Length: 3456 bytes Structure Table Address: 0x000E7110 Number Of Structures: 79 Maximum Structure Size: 189 bytes I copy also the output form a different crate with a different backplane which has problably a PCI bridge on it. --------------------------------- # biosdecode 2.11 BIOS32 Service Directory present. Revision: 0 Calling Interface Address: 0x000F0010 PCI Interrupt Routing 1.0 present. Router ID: 00:1f.0 Exclusive IRQs: None Compatible Router: 8086:2914 Slot Entry 1: ID 00:02, on-board Slot Entry 2: ID 00:03, on-board Slot Entry 3: ID 00:1f, on-board Slot Entry 4: ID 00:1b, on-board Slot Entry 5: ID 00:01, on-board Slot Entry 6: ID 02:00, slot number 21 Slot Entry 7: ID 00:19, on-board Slot Entry 8: ID 00:1a, on-board Slot Entry 9: ID 00:1c, on-board Slot Entry 10: ID 00:1d, on-board Slot Entry 11: ID 01:01, on-board Slot Entry 12: ID 01:0b, on-board Slot Entry 13: ID 01:0c, slot number 4 Slot Entry 14: ID 01:0d, slot number 3 Slot Entry 15: ID 01:0e, slot number 2 Slot Entry 16: ID 01:0f, slot number 1 PNP BIOS 1.0 present. Event Notification: Not Supported Real Mode 16-bit Code Address: F000:77F2 Real Mode 16-bit Data Address: F000:0000 16-bit Protected Mode Code Address: 0x000F781A 16-bit Protected Mode Data Address: 0x000F0000 ACPI 2.0 present. OEM Identifier: ACPIAM RSD Table 32-bit Address: 0xBF580000 XSD Table 64-bit Address: 0x00000000BF580100 SMBIOS 2.6 present. Structure Table Length: 3456 bytes Structure Table Address: 0x000E6910 Number Of Structures: 79 Maximum Structure Size: 189 bytes 00:01.0 PCI bridge: Intel Corporation 82Q35 Express PCI Express Root Port (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) 02:00.0 PCI bridge: PLX Technology, Inc. PEX 8649 48-lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev aa) 03:10.0 PCI bridge: PLX Technology, Inc. PEX 8649 48-lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev aa) 03:11.0 PCI bridge: PLX Technology, Inc. PEX 8649 48-lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev aa) 03:12.0 PCI bridge: PLX Technology, Inc. PEX 8649 48-lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev aa) 03:13.0 PCI bridge: PLX Technology, Inc. PEX 8649 48-lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev aa) 03:14.0 PCI bridge: PLX Technology, Inc. PEX 8649 48-lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev aa) -[0000:00]-+-00.0 +-01.0-[02-08]----00.0-[03-08]--+-10.0-[08]-- | +-11.0-[07]----00.0 | +-12.0-[06]-- | +-13.0-[05]-- | \-14.0-[04]-- +-02.0 +-03.0 +-03.2 +-03.3 +-19.0 +-1a.0 +-1a.1 +-1a.2 +-1a.7 +-1d.0 +-1d.1 +-1d.2 +-1d.7 +-1e.0-[01]--+-0d.0 | +-0e.0 | \-0f.0 +-1f.0 +-1f.3 \-1f.6
Created attachment 142421 [details] biosdecode output with a backplane without bridges
Created attachment 142431 [details] biosdecode output with a backplane with bridges