sibislaw
sibislaw

Reputation: 123

Why somewhere between linux kernel 3.14 and 4.9 PCI devices naming has changed?

i have device with two xilinx PCI cards connected to PCIe and the device architecture is PowerPC. I can switch the kernel version by making symlink in the /boot directory.

On 3.14 kernel lspci produces:

0000:00:00.0 Class 0604: Device 1957:0070 (rev 21)
0000:01:00.0 Class 0200: Device 1234:0045 (rev 78)
0001:02:00.0 Class 0604: Device 1957:0070 (rev 21)
0001:03:00.0 Class 0200: Device 1234:0100 (rev 63)

And on 4.9 kernel lspci produces:

9000:00:00.0 Class 0604: Device 1957:0070 (rev 21)
9000:01:00.0 Class 0200: Device 1234:0045 (rev 78)
a000:02:00.0 Class 0604: Device 1957:0070 (rev 21)
a000:03:00.0 Class 0200: Device 1234:0100 (rev 63)

lspci output corresponds to /sys/bus/pci/devices/ directory content. My question is why somwehere between kernel 3.14 and 4.9 pci device naming has changed? For both kernels we have same hardware, dtb device tree and everything else common.

Upvotes: 0

Views: 309

Answers (2)

michaeljt
michaeljt

Reputation: 1176

Re-doing my comment as an answer, since their was no response to my comment. The question is why the reported domain parts of the PCI Ids which were 0 and 1 with Linux 3.19 are 0x9000 and 0xa000 with Linux 4.9. Commit 63a72284 in Linux 4.7 changes the values assigned to domains to be predictable values based on the device tree information instead of consecutive numbers starting at 0. I think it is a safe assumption that this commit is the reason for the change.

Upvotes: 0

Rami Rosen
Rami Rosen

Reputation: 350

I would assume that there are other PCI devices on your system. If indeed so, do you see difference with other PCI devices in context of output of lspci between these two kernels ?

Rami Rosen

Upvotes: 0

Related Questions