diff --git a/arch/arm/boot/dts/overlays/pcie-32bit-dma-overlay.dts b/arch/arm/boot/dts/overlays/pcie-32bit-dma-overlay.dts index cca3e83721b743..e01c9ceeab08b4 100644 --- a/arch/arm/boot/dts/overlays/pcie-32bit-dma-overlay.dts +++ b/arch/arm/boot/dts/overlays/pcie-32bit-dma-overlay.dts @@ -11,8 +11,26 @@ fragment@0 { target-path = "/aliases"; __overlay__ { + /* + * Removing this alias stops the firmware patching the + * PCIE DT dma-ranges based on the detected chip + * revision. + */ pcie0 = ""; }; }; + fragment@1 { + target = <&pcie0>; + __overlay__ { + /* + * The size of the range is rounded up to a power of 2, + * so the range ends up being 0-4GB, and the MSI vector + * gets pushed beyond 4GB. + */ + dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 + 0x0 0x80000000>; + }; + }; + };