Re: [PATCH] ARM: dts: BCM5301X: drop extra AXI bus ranges that break PCIe
Rosen Penev <[email protected]> Wed, 29 Jul 2026 11:13:09 -0700
| Newsgroups | dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree |
|---|---|
| Message-ID | <CAKxU2N9Nt+HF-4TzB3+_5ta=28wb0xCCLuUVO6Bm=LW3ZnNmHw@mail.gmail.com> |
On Wed, Jul 29, 2026 at 8:40 AM Arnd Bergmann <[email protected]> wrote: > > 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 patch can be dropped. https://lore.kernel.org/all/[email protected]/ is the proper solution to the problem. > >> > >> 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