Re: [PATCH v4 0/2] PCI: iproc-bcma: Use EROM instead of devicetree
From: Bjorn Helgaas
Date: Thu Oct 15 2026 - 16:51:25 EST
On Thu, Oct 15, 2026 at 12:10:22PM -0700, Florian Fainelli wrote:
> On 10/15/26 11:51, Semih Baskan wrote:
> > > Humm, this is not materially different for me before/after applying tihs
> > > patch and unfortunately but here is what I am getting with these two
> > > patches applied on top of Linus' master at
> > > 0fcb05b72344f40806cbe810de8872f1698bf053:
> > [...]
> > > Unhandled fault: external abort on non-linefetch (0x1008) at 0xc896df40
> > [...]
> > > r3 : c896df40 r2 : 0000ffff r1 : 00000f40 r0 : c1ce1a00
> > [...]
> > > pci_host_probe from iproc_pcie_setup+0x8a0/0xd94
> > > iproc_pcie_setup from iproc_pltfm_pcie_probe+0x10c/0x1d4
> >
> > The series only changes the pcie-iproc-bcma path, and this kernel probes
> > the controller with pcie-iproc-platform, so the patches do not run here.
>
> Yes, clearly not enough coffee, thank you Semih.
>
> > I think the abort is the read of APB_ERR_EN at offset 0xf40 (r1). I
> > measured the same on an RT-N18U (core revision 0x01) in September: the
> > platform-only kernel does not come up, and with this one line it boots
> > and enumerates the BCM4360 [1]:
> >
> > --- a/drivers/pci/controller/pcie-iproc.c
> > +++ b/drivers/pci/controller/pcie-iproc.c
> > @@ -1388,7 +1388,7 @@
> > break;
> > case IPROC_PCIE_PAXB:
> > regs = iproc_pcie_reg_paxb;
> > - pcie->has_apb_err_disable = true;
> > + pcie->has_apb_err_disable = false;
> > if (pcie->need_ob_cfg) {
> > pcie->ob_map = paxb_ob_map;
> > pcie->ob.nr_windows = ARRAY_SIZE(paxb_ob_map);
>
> Yes that works for me, and I was able to establish the last working baseline
> was v7.0 which did not include 76701239797698b620f2b7ec713fe08ef50ee664
> ("ARM: dts: BCM5301X: Describe PCIe controllers fully"), whereas v7.1 and
> onwards crashes unless your patch is applied.
I assume this means
https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/commit/?h=controller/iproc-bcma&id=9850907ee1dd4376c09c4129e0adbe3b39d191b7
is ok after all?
I do think it's unexpected that the kernel would panic even if the
correct driver hasn't been loaded.
If we don't have the right driver for the PCI controller, ideally the
wrong driver's .probe() method wouldn't be called at all, and if it
*is* called, its .probe() should fail gracefully.
The kernel shouldn't panic until it fails to find a root filesystem.
> Also, the good thing is that my local test bed has been resurrected and will
> be more regularly testing now.
>
> >
> > [1] https://lore.kernel.org/all/CAAsRjRnV-RTddO6h2XCUz2N5pB0pS8i_-_2XRcD=WOTA7AAFZQ@xxxxxxxxxxxxxx/
> >
> > Best regards,
> > Semih
>
>
> --
> Florian