[PATCH v4 0/2] PCI: iproc-bcma: Use EROM instead of devicetree

Semih Baskan strst.gs at gmail.com
Thu Oct 15 11:51:00 PDT 2026


> 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.

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);

[1] https://lore.kernel.org/all/CAAsRjRnV-RTddO6h2XCUz2N5pB0pS8i_-_2XRcD=WOTA7AAFZQ@mail.gmail.com/

Best regards,
Semih



More information about the linux-arm-kernel mailing list