dtoverlay: Reduce size of PCIE IB window in pcie-32-dma overlay
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Thu, 3 Feb 2022 11:17:16 +0000 (11:17 +0000)
committerDom Cobley <popcornmix@gmail.com>
Mon, 21 Mar 2022 16:04:41 +0000 (16:04 +0000)
The PCIE inbound window is rounded up to a power of 2, so the default
of 3GB rounds up to 4GB starting at 0. This prohibits the MSI vector
sitting at 0x0_fffffffc, and causes warnings from some subsystems
(eg ahci) of a 64bit address on a 32bit configuration.

Reduce the window down to 2GB to avoid this issue.

https://github.com/raspberrypi/linux/issues/4848

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
arch/arm/boot/dts/overlays/pcie-32bit-dma-overlay.dts

index cca3e83..9557035 100644 (file)
        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.
+                        */
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000
+                                     0x0 0x80000000>;
+               };
+       };
+
 };