Re: [PATCH v4 0/2] PCI: iproc-bcma: Use EROM instead of devicetree
From: Florian Fainelli
Date: Thu Oct 15 2026 - 15:10:34 EST
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.
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