Re: [PATCH] ARM: dts: BCM5301X: drop extra AXI bus ranges that break PCIe

"Arnd Bergmann" <[email protected]> Wed, 29 Jul 2026 17:40:32 +0200
Newsgroups dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree
Message-ID <[email protected]>
I saw this in the fixes pull request, and the descriptions
below don't make much sense to me. I'll hold off on the pull
request until someone can come up with a fix that they
can accurately describe.

On Sat, Jul 4, 2026, at 00:17, Rosen Penev wrote:
> On Sun, Jun 28, 2026 at 4:27 PM <[email protected]> wrote:
>>
>> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
>> - [High] Removing the PCI memory ranges from the parent `axi@18000000` bus breaks outbound PCIe memory mapping because the child `pcie` nodes can no longer translate their addresses to CPU physical addresses.

This makes sense to me, but doesn't explain what caused
the observed bug

>> commit 4f061464281d4964ce46dab60d36a09328f14862
>> Author: Rosen Penev <[email protected]>
>>
>> ARM: dts: BCM5301X: drop extra AXI bus ranges that break PCIe
>>
>> This commit removes extra AXI bus ranges that overlap with DRAM on
>> BCM5301X/BCM470X SoCs. The intention is to restore the original
>> single-entry mapping and fix PCIe routing issues.

The DRAM ranges on this chip are at 0x00000000 and 0x88000000
and don't overlap with the axi bus ranges at
0x18000000/0x08000000/0x20000000/0x28000000, so the initial
analysis is wrong.

> With need_ob_cfg = false (no brcm,pcie-ob in bcm-ns.dtsi),
> iproc_pcie_map_ranges() is never called. The bootloader has already
> configured the PCIe controller's outbound windows correctly. By
> removing the extra AXI bus ranges, of_translate_address() fails, those
> bogus resources are skipped (the OF_BAD_ADDR check at
> drivers/pci/of.c:377), and the kernel stops registering DRAM addresses
> as PCI MMIO windows. The hardware continues working with its
> pre-configured outbound windows.

This sounds like the bootloader configured ranges don't
match the ones in the devicetree description, which would
leave three options:

- change the bootloader to match the dts
- change the dts to match the bootloader
- change the driver to reconfigure the windows according to DT

Can you check how the OB windows are actually configured
by the bootloader on your board?

      Arnd