I am trying to upgrade the Linux kernel version of my board from 4.4 to 4.19. However, I notice that during the boot of my board, there is a problem of virtual memory mapping of my pci bus (00:00:03.0).
I tried to compile my Linux version without openpowerlink module, so my pci bus was mapped correctly.
So I think that the openpowerlink module is the cause of this issue.
The dmesg logs that I have obtained are :
igb : probe of 0000:03:00.0 failed with error -5
.
.
pci 0000:03:00.0: BAR 0: no space for [mem size 0x00080000]
pci 0000:03:00.0: BAR 0: failed to assign [mem size 0x00080000]
pci 0000:03:00.0: BAR 3: no space for [mem size 0x00004000]
pci 0000:03:00.0: BAR 3: failed to assign [mem size 0x00004000]
pci 0000:03:00.0: BAR 2: no space for [io size 0x0020]
pci 0000:03:00.0: BAR 2: failed to assign [io size 0x0020]
Does someone have any idea about this issue please ?
Note : I am using openpowerlink 2.7.1
Thank for advance.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am using a board wich contains the CPU Kontron.
I was tested with two types of CPU (DFI and Kontron), and the problem was reproduced only with one type of CPU (Kontron).
I have executed the Linux command "lshw" to see the difference between the two CPUs, and I have obtained this result :
For the DFI :
bus info: pci@0000:03:00.0
version: 03
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress cap_list
configuration: latency=0 resources: memory:b4b00000-b4b7ffff ioport:d000(size=32) memory:b4b80000-b4b83fff
For the Kontron:
bus info: pci@0000:03:00.0
version: 03
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress cap_list
configuration: latency=0 resources: memory:94100000-9417ffff ioport:5000(size=32) memory:94180000-94183fff
The difference between the two CPUs is in the resources memory.
Otherwise, I don't have a problem when uploading the kernel module Openpowerlink.
The steps of test are :
Building the module Openpowerlink 2.7.1.
Integrating the openpowerlink module in my Linux.
Booting the Linux.
Uploading the openpowerlink in the Linux.
==> The problem is reproduced
Error message is : igb : probe of 0000:03:00.0 failed with error -5
.
.
pci 0000:03:00.0: BAR 0: no space for [mem size 0x00080000]
pci 0000:03:00.0: BAR 0: failed to assign [mem size 0x00080000]
pci 0000:03:00.0: BAR 3: no space for [mem size 0x00004000]
pci 0000:03:00.0: BAR 3: failed to assign [mem size 0x00004000]
pci 0000:03:00.0: BAR 2: no space for [io size 0x0020]
pci 0000:03:00.0: BAR 2: failed to assign [io size 0x0020]
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
currently, we cannot reproduce the problem. However, it seems that the 'ioremap_nocache' function (in 'pciedrv.c') fails to map the corresponding memory regions.
Between Linux kernel version 4.4 and 4.19, a few changes have been released in the context of this function. Maybe these changes result in the observed behavior.
Apart from that, the mentioned function is not recommended to be used for mapping of PCIe BARs. The corresponding recommended PCIe function would be 'pci_iomap'.
Maybe replacing the used function could solve the problem.
Best regards,
CTYopenAutomation Team
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I am trying to upgrade the Linux kernel version of my board from 4.4 to 4.19. However, I notice that during the boot of my board, there is a problem of virtual memory mapping of my pci bus (00:00:03.0).
I tried to compile my Linux version without openpowerlink module, so my pci bus was mapped correctly.
So I think that the openpowerlink module is the cause of this issue.
The dmesg logs that I have obtained are :
igb : probe of 0000:03:00.0 failed with error -5
.
.
pci 0000:03:00.0: BAR 0: no space for [mem size 0x00080000]
pci 0000:03:00.0: BAR 0: failed to assign [mem size 0x00080000]
pci 0000:03:00.0: BAR 3: no space for [mem size 0x00004000]
pci 0000:03:00.0: BAR 3: failed to assign [mem size 0x00004000]
pci 0000:03:00.0: BAR 2: no space for [io size 0x0020]
pci 0000:03:00.0: BAR 2: failed to assign [io size 0x0020]
Does someone have any idea about this issue please ?
Note : I am using openpowerlink 2.7.1
Thank for advance.
Hi Omar, which board are you using ? Can you provide the steps used by you.
Do you have problem when you load the powerlink module ?
Best Regards,
#aeicoriiotteam
Hello,
I am using a board wich contains the CPU Kontron.
I was tested with two types of CPU (DFI and Kontron), and the problem was reproduced only with one type of CPU (Kontron).
I have executed the Linux command "lshw" to see the difference between the two CPUs, and I have obtained this result :
For the DFI :
bus info: pci@0000:03:00.0
version: 03
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress cap_list
configuration: latency=0
resources: memory:b4b00000-b4b7ffff ioport:d000(size=32) memory:b4b80000-b4b83fff
For the Kontron:
bus info: pci@0000:03:00.0
version: 03
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress cap_list
configuration: latency=0
resources: memory:94100000-9417ffff ioport:5000(size=32) memory:94180000-94183fff
The difference between the two CPUs is in the resources memory.
Otherwise, I don't have a problem when uploading the kernel module Openpowerlink.
The steps of test are :
==> The problem is reproduced
Error message is :
igb : probe of 0000:03:00.0 failed with error -5
.
.
pci 0000:03:00.0: BAR 0: no space for [mem size 0x00080000]
pci 0000:03:00.0: BAR 0: failed to assign [mem size 0x00080000]
pci 0000:03:00.0: BAR 3: no space for [mem size 0x00004000]
pci 0000:03:00.0: BAR 3: failed to assign [mem size 0x00004000]
pci 0000:03:00.0: BAR 2: no space for [io size 0x0020]
pci 0000:03:00.0: BAR 2: failed to assign [io size 0x0020]
Hello Omar,
currently, we cannot reproduce the problem. However, it seems that the 'ioremap_nocache' function (in 'pciedrv.c') fails to map the corresponding memory regions.
Between Linux kernel version 4.4 and 4.19, a few changes have been released in the context of this function. Maybe these changes result in the observed behavior.
Apart from that, the mentioned function is not recommended to be used for mapping of PCIe BARs. The corresponding recommended PCIe function would be 'pci_iomap'.
Maybe replacing the used function could solve the problem.
Best regards,
CTYopenAutomation Team