Thread (41 messages) 41 messages, 7 authors, 2018-06-04

[PATCH 0/1] PCI set flag PCI_SCAN_ALL_PCIE_DEVS for P.A. Semi boards

flat view
STALE3053d

From: Christian Zigotzky <hidden>
Date: 2018-03-16 12:10:58
Also in: linux-pci

On 02 December 2017 at 00:27PM, Bjorn Helgaas wrote:
On Fri, Dec 01, 2017 at 11:08:46PM +0100, Christian Zigotzky wrote:
quoted
On 30.11.2017 23:42, Bjorn Helgaas wrote:
quoted
00:11.0 claims to be a PCIe Root Port leading to [bus 05-06]. That
means there's a Link (presumably this A-Link II Express thing), and the
downstream end of the Link *should* be a PCIe Upstream Port on bus 05,
but no such device is visible.  I suppose the SB600 does implement
some sort of PCIe Port there, but keeps it invisible to software, and
at the same time, contains an invisible bridge that connects the Link
to all the conventional PCI devices on bus 05.

When we scan bus 05, we do this:

   pci_scan_child_bus_extend(bus=05)
     for (devfn = 0; devfn < 0x100; devfn += 8)
       pci_scan_slot(05, 00.0)
         pci_scan_single_device
           pci_scan_device(05, 00.0)           # fails; no 05:00.0
       pci_scan_slot(05, 01.0)
         only_one_child(bus=05)
           parent = 00:11.0
           pci_pcie_type(00:11.0) == ROOT_PORT # returns true

Since only_one_child() sees that 00:11.0 is a Root Port, we give up
before we even get to the PCI_SCAN_ALL_PCIE_DEVS test.

I *think* something like the patch below should make this work if you
use the "pci=pcie_scan_all" parameter.  We have some x86 DMI quirks
that set PCI_SCAN_ALL_PCIE_DEVS automatically.  I don't know how to do
something similar on powerpc, but maybe you do?
Hi Bjorn,

I tested your new patch today. It boots with the boot argument
"pci=pcie_scan_all". Well done! :-)

It doesn't boot without the boot argument "pci=pcie_scan_all".
Thanks for testing that.  I'll merge a similar patch for v4.16.

I don't think using "pci=pcie_scan_all" is really an acceptable
long-term answer for you, though.  Is there some way we can identify
at run-time whether we're on a Nemo system?  If so, we can make this
happen automatically.

Bjorn
Hi Bjorn,
Hi All,

Olof Johansson has created a patch for us. With this patch, "pci=pcie_scan_all" executes automatically on P.A. Semi boards. We don't need to add 'pci=pcie_scan_all' to the
kernel boot arguments anymore. Could you please add Olof's patch to the official kernel source code?

arch/powerpc/platforms/pasemi/pci.c | 2 ++
 1 file changed, 2 insertions(+)

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