linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* BUG: no PCI/PCIe devices found in 85xx architecture
@ 2013-06-25 18:40 Stefani Seibold
  2013-06-25 23:46 ` Scott Wood
  0 siblings, 1 reply; 3+ messages in thread
From: Stefani Seibold @ 2013-06-25 18:40 UTC (permalink / raw)
  To: linuxppc-dev

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?

- Stefani

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: BUG: no PCI/PCIe devices found in 85xx architecture
  2013-06-25 18:40 BUG: no PCI/PCIe devices found in 85xx architecture Stefani Seibold
@ 2013-06-25 23:46 ` Scott Wood
  2013-06-26  5:21   ` Stefani Seibold
  0 siblings, 1 reply; 3+ messages in thread
From: Scott Wood @ 2013-06-25 23:46 UTC (permalink / raw)
  To: Stefani Seibold; +Cc: linuxppc-dev

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=

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: BUG: no PCI/PCIe devices found in 85xx architecture
  2013-06-25 23:46 ` Scott Wood
@ 2013-06-26  5:21   ` Stefani Seibold
  0 siblings, 0 replies; 3+ messages in thread
From: Stefani Seibold @ 2013-06-26  5:21 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev

Am Dienstag, den 25.06.2013, 18:46 -0500 schrieb Scott Wood:
> On 06/25/2013 01:40:14 PM, Stefani Seibold wrote:
> > 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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-06-26  5:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-25 18:40 BUG: no PCI/PCIe devices found in 85xx architecture Stefani Seibold
2013-06-25 23:46 ` Scott Wood
2013-06-26  5:21   ` Stefani Seibold

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).