1
\$\begingroup\$

When looking for the pci devices on the host machine, I have seen something like this in lspci:

....
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller (rev 06)
....
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 04)
....
04:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41)

and something like this in dmesg:

....
[    0.617223] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff window]
[    0.624701] pci_bus 0000:00: root bus resource [mem 0xbfa00000-0xfeafffff window]
[    0.632182] pci_bus 0000:00: root bus resource [bus 00-3e]
[    0.637685] pci 0000:00:00.0: [8086:0c00] type 00 class 0x060000
[    0.637887] pci 0000:00:01.0: [8086:0c01] type 01 class 0x060400
[    0.637938] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.638163] pci 0000:00:01.0: System wakeup disabled by ACPI
[    0.643883] pci 0000:00:01.1: [8086:0c05] type 01 class 0x060400
[    0.643934] pci 0000:00:01.1: PME# supported from D0 D3hot D3cold
....

In lspci, the addresses seem to have 3 parts and in dmesg they seem to have 4 parts. What all can I understand by looking at it?

\$\endgroup\$

1 Answer 1

2
\$\begingroup\$

lspci without any flags lists bus:device.function.

dmesg lists domain:bus:device.function, where domain is the root complex.

More here: https://wiki.xen.org/wiki/Bus:Device.Function_(BDF)_Notation

If you do lspci -D, it shows domain also, same as what you see in dmesg.

lspci -t also shows domain.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.