Thread (3 messages) 3 messages, 2 authors, 2013-06-26

Re: BUG: no PCI/PCIe devices found in 85xx architecture

From: Stefani Seibold <stefani@seibold.net>
Date: 2013-06-26 05:21:26

Am Dienstag, den 25.06.2013, 18:46 -0500 schrieb Scott Wood:
On 06/25/2013 01:40:14 PM, Stefani Seibold wrote:
quoted
Hi,

there is a bug in kernel 3.9 which the new fsl_pci platform driver.  
The
pcibios_init in pci_32.c will be called before the platform driver  
probe
will be invoked.

The call order for a p2020 board with linux 3.9 is currently:

fsl_pci_init
pcibios_init
fsl_pci_probe
fsl_pci_probe
fsl_pci_probe

Therefore the PCI/PCIe bridge will be added after the PCI/PCIe busses
was scanned for devices. So no PCI/PCIe devices are available.

Everything works fine by reverting the fsl_pci.[ch] to the version in
linux 3.4, because the PCI/PCIe bridges will be added in
the ..._setup_arch() function, before the pcibios_init function is
called.

Any solution for this issue?
I can't reproduce this on p3041 -- pcibios_init gets called after  
fsl_pci_probe, and its PCIe e1000 gets detected and used.

fsl_pci_probe should be called when of_platform_bus_probe is called,  
which is in a machine_arch_initcall.  pcibios_init is a  
subsys_initcall, which should happen later.

Which p2020 board are you using?  Could you check when it is calling  
of_platform_bus_probe?

-Scott
Great, you are my hero. This is the solution.

In my old board support package for the kernel 3.4 there was a
machine_device_initcall(). I did not saw the tiny difference against
machine_arch_initcall() used by the other 85xx boards as i ported it to
3.9.

Thanks

- Stefani
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help