[PATCH 0/2] Fixup non-prefetchable 64-bit host bridge windows

From: Punit Agrawal
Date: Thu May 27 2021 - 11:08:10 EST


Hi,

The couple of patches in the set are looking to address the issue of
failure to allocate bus addresses for endpoints requiring
non-prefetchable memory range on RK3399. The issue surfaced as a
fallout of commit 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to
resource flags for 64-bit memory addresses").

The fix requires a change in the PCI ranges attributes for host bridge
windows advertised in the device tree (Patch 2) but as there are
already existing platforms out there, a device tree fix alone isn't
sufficient.

Patch 1 introduces an override to drop 64-bit attribute if a host
bridge window lies entirely in the 32bit address range. This overcomes
the limitation of PCI-to-PCI bridges that can only map
non-prefetchable windows in the 32bit address space.

The patches are based on v5.13-rc3 and have been tested on a
RockPro64.

Thanks,
Punit

[0] https://lore.kernel.org/r/7a1e2ebc-f7d8-8431-d844-41a9c36a8911@xxxxxxx

Punit Agrawal (2):
PCI: of: Override 64-bit flag for non-prefetchable memory below 4GB
arm64: dts: rockchip: Update PCI host bridge window to 32-bit address
memory

arch/arm64/boot/dts/rockchip/rk3399.dtsi | 2 +-
drivers/pci/of.c | 8 ++++++--
2 files changed, 7 insertions(+), 3 deletions(-)

--
2.30.2