User Tools

Site Tools


linux:system:pcibus:pcibus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:system:pcibus:pcibus [2025/09/20 15:28] – [Understand PCI Bus Structure] oscarlinux:system:pcibus:pcibus [2025/09/20 15:56] (current) – [Query via lspci] oscar
Line 36: Line 36:
 The portion in brackets on the first line (**//[0000:00]-+-00.0//**) is the domain and bus that everything under this point in the tree is on. This is domain 0000 and bus 00, which is generally the root of the PCIe topology. The first couple of devices are directly on Bus 00. The portion in brackets on the first line (**//[0000:00]-+-00.0//**) is the domain and bus that everything under this point in the tree is on. This is domain 0000 and bus 00, which is generally the root of the PCIe topology. The first couple of devices are directly on Bus 00.
  
-However, the following devices are on Bus 1 and Bus 2 respectively: +However, the following devices are not directly on bus 0, but on Bus 1 and Bus 2 respectively: 
-           +-1c.0-[01]----00.0  Realtek PCI Express Gigabit Ethernet Controller +  +-1c.0-[01]----00.0  Realtek PCI Express Gigabit Ethernet Controller 
-           +-1d.0-[02]----00.0  Micron Technology NVMe SSD+  +-1d.0-[02]----00.0  Micron Technology NVMe SSD
  
-This is not directly on bus 00; instead it is accessed through a device at 01.on this bus, which thus has the (abbreviated) PCIe address of 00:01.1. 'lspci -v' tells me that this is a PCIe bridge, as expected:+The Micron NVMe SSD is accessed through a device at 1d.on this bus, which thus has the (abbreviated) PCIe address of 00:1d.0. 'lspci -v' tells me that this is a PCIe bridge, as expected: 
 +  * 00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0) (prog-if 00 [Normal decode])
  
-    00:01.1 PCI bridge: Advanced Micro DevicesInc. [AMDFamily 17h (Models 00h-0fh) PCIe GPP Bridge [...]+Much like the []s of the root of the treethe '[02]' bit after it in 'lspci -tv' means that all PCIe devices under this bridge are on bus 02, and there is only one of them, the NVMe drive, which will thus have the PCIe address 02:00.0:
  
-Much like the []s of the root of the tree, the '[01]' bit after it in 'lspci -tv' means that all PCIe devices under this bridge are on bus 01, and there is only one of them, the NVMe drive, which will thus have the PCIe address 01:00.0:+  * Unordered List Item02:00.0 Non-Volatile memory controllerMicron Technology Inc 2200S NVMe SSD
  
-    01:00.0 Non-Volatile memory controller: Kingston Technology Company, Inc. Device 2263 [...] +===== Query via sysfs =====
- +
-===== sysfs PCI support =====+
 The Linux kernel represents PCI devices as pseudo-devices in the sysfs file system. Linux lists these devices in **///sys/bus/pci/devices//**. The Linux kernel represents PCI devices as pseudo-devices in the sysfs file system. Linux lists these devices in **///sys/bus/pci/devices//**.
 <code> <code>
Line 73: Line 72:
 lrwxrwxrwx 1 root root 0 20 sep 13:53 0000:02:00.0 -> ../../../devices/pci0000:00/0000:00:1d.0/0000:02:00.0 lrwxrwxrwx 1 root root 0 20 sep 13:53 0000:02:00.0 -> ../../../devices/pci0000:00/0000:00:1d.0/0000:02:00.0
 </code> </code>
 +
 +===== Query via lspci =====
 +<code>
 +# lspci -n
 +
 +00:00.0 0600: 8086:3ec2 (rev 07)
 +00:02.0 0300: 8086:3e92
 +00:08.0 0880: 8086:1911
 +00:12.0 1180: 8086:a379 (rev 10)
 +00:14.0 0c03: 8086:a36d (rev 10)
 +00:14.2 0500: 8086:a36f (rev 10)
 +00:16.0 0780: 8086:a360 (rev 10)
 +00:17.0 0106: 8086:a352 (rev 10)
 +00:1c.0 0604: 8086:a33c (rev f0)
 +00:1d.0 0604: 8086:a330 (rev f0)
 +00:1f.0 0601: 8086:a304 (rev 10)
 +00:1f.3 0403: 8086:a348 (rev 10)
 +00:1f.4 0c05: 8086:a323 (rev 10)
 +00:1f.5 0c80: 8086:a324 (rev 10)
 +01:00.0 0200: 10ec:8168 (rev 15)
 +02:00.0 0108: 1344:5410 (rev 01)
 +</code>
 +
 +We can break each line down like this:
 +  * Field 1 : 02:00.0 : bus number (02), device number (00) and function (0)
 +  * Field 2 : 0108    : device class
 +  * Field 3 : 1344    : vendor ID
 +  * Field 4 : 5410    : device ID
 +
linux/system/pcibus/pcibus.1758382127.txt.gz · Last modified: by oscar