mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
20ea6adbf1
Build system: x86_64 Build-tested: bcm2708, bcm2709, bcm2710, bcm2711 Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B Signed-off-by: Marty Jones <mj8263788@gmail.com> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
52 lines
1.5 KiB
Diff
52 lines
1.5 KiB
Diff
From e4402c2622756ab56d02159a8ff3c54165ab577c Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Thu, 3 Feb 2022 11:17:16 +0000
|
|
Subject: [PATCH] dtoverlay: Reduce size of PCIE IB window in
|
|
pcie-32-dma overlay
|
|
|
|
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>
|
|
---
|
|
.../dts/overlays/pcie-32bit-dma-overlay.dts | 20 +++++++++++++++++++
|
|
1 file changed, 20 insertions(+)
|
|
|
|
--- 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,28 @@
|
|
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>;
|
|
+ };
|
|
+ };
|
|
+
|
|
};
|