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

From: Scott Wood <[email-masked]>
Date: Tue, 25 Jun 2013 18:46:35 -0500

On 06/25/2013 01:40:14 PM, Stefani Seibold wrote:
> Hi,
>=20
> there is a bug in kernel 3.9 which the new fsl_pci platform driver. =20
> The
> pcibios_init in pci_32.c will be called before the platform driver =20
> probe
> will be invoked.
>=20
> The call order for a p2020 board with linux 3.9 is currently:
>=20
> fsl_pci_init
> pcibios_init
> fsl_pci_probe
> fsl_pci_probe
> fsl_pci_probe
>=20
> Therefore the PCI/PCIe bridge will be added after the PCI/PCIe busses
> was scanned for devices. So no PCI/PCIe devices are available.
>=20
> 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.
>=20
> Any solution for this issue?

I can't reproduce this on p3041 -- pcibios_init gets called after =20
fsl_pci_probe, and its PCIe e1000 gets detected and used.

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

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

-Scott=