Subject: Re: Kernel cannot see PCI device

From: Benjamin Herrenschmidt <[email-masked]>
Date: Fri, 20 May 2011 09:12:31 +1000

On Thu, 2011-05-19 at 11:58 -0600, Bjorn Helgaas wrote:
> The scan below PCIX0 (bus 0001:00) doesn't find anything.  You really
> need a powerpc expert to help here, but in their absence, my guess
> would be something's wrong with config space access, so I would start
> by just adding some printks to ppc4xx_probe_pcix_bridge() to see if
> the rsrc_cfg address looks reasonable.  You might need a chip spec or
> maybe you can compare it to the device tree (I have no idea what the
> relation between the device tree and OF is).
> 
> You mentioned the u-boot "pci 2" command earlier.  It found a device
> on bus 2, which means there must be at least one P2P bridge to get you
> from bus 0 to bus 2.  So the output of "pci 0", "pci 1", "pci 80", and
> "pci 81" (to compare with what Linux found) would be interesting.

Well, if it's PCIe, there's the "virtual" P2P bridge of the root
complex.

The question is on what PCIe is his device connected, the one that we
see or the one that's disabled in the device-tree.

In the former case, maybe something Linux does kills it. IE. we reset
and re-train the link on these chips afaik, at least from memory, check
what's happening in ppc4xx_pci.c there. Maybe the card doesn't like it
or we're doing something wrong....

In the later case, then something in the device-tree is saying Linux not
to touch that bridge, usually the "status" property.

Cheers,
Ben.