[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