mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-02-15 04:42:02 +00:00
97 lines
2.9 KiB
Diff
97 lines
2.9 KiB
Diff
From 6a747c331be8221f74feb2a56daa13e8037ec96c Mon Sep 17 00:00:00 2001
|
|
From: Rodrigo Rosmaninho <quico.rosmaninho@gmail.com>
|
|
Date: Tue, 23 Jan 2024 18:50:19 +0000
|
|
Subject: [PATCH 0860/1002] Add pcie-32bit-dma-overlay-pi5 to enable 32bit DMA
|
|
on the Pi 5's external PCIe
|
|
|
|
Changes dma-ranges in the pcie1 component of the bcm2712 dts in order to ensure that the DMA addressing space is 32bits, at the expense of having to bounce buffers.
|
|
|
|
Signed-off-by: Rodrigo Rosmaninho <r.rosmaninho@ua.pt>
|
|
---
|
|
arch/arm/boot/dts/overlays/Makefile | 1 +
|
|
arch/arm/boot/dts/overlays/README | 6 +++++
|
|
arch/arm/boot/dts/overlays/overlay_map.dts | 5 ++++
|
|
.../overlays/pcie-32bit-dma-pi5-overlay.dts | 26 +++++++++++++++++++
|
|
4 files changed, 38 insertions(+)
|
|
create mode 100644 arch/arm/boot/dts/overlays/pcie-32bit-dma-pi5-overlay.dts
|
|
|
|
diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
|
|
index 63ebdd9bd455..8028c4e6b8b0 100644
|
|
--- a/arch/arm/boot/dts/overlays/Makefile
|
|
+++ b/arch/arm/boot/dts/overlays/Makefile
|
|
@@ -183,6 +183,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
|
pca953x.dtbo \
|
|
pcf857x.dtbo \
|
|
pcie-32bit-dma.dtbo \
|
|
+ pcie-32bit-dma-pi5.dtbo \
|
|
pibell.dtbo \
|
|
pifacedigital.dtbo \
|
|
pifi-40.dtbo \
|
|
diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
|
|
index 6fa3cf20f287..181799b43d51 100644
|
|
--- a/arch/arm/boot/dts/overlays/README
|
|
+++ b/arch/arm/boot/dts/overlays/README
|
|
@@ -3394,6 +3394,12 @@ Load: dtoverlay=pcie-32bit-dma
|
|
Params: <None>
|
|
|
|
|
|
+Name: pcie-32bit-dma-pi5
|
|
+Info: Force PCIe config to support 32bit DMA addresses at the expense of
|
|
+ having to bounce buffers (on the Pi 5).
|
|
+Load: dtoverlay=pcie-32bit-dma-pi5
|
|
+Params: <None>
|
|
+
|
|
[ The pcf2127-rtc overlay has been deleted. See i2c-rtc. ]
|
|
|
|
|
|
diff --git a/arch/arm/boot/dts/overlays/overlay_map.dts b/arch/arm/boot/dts/overlays/overlay_map.dts
|
|
index 1261ab521afd..030b59745add 100644
|
|
--- a/arch/arm/boot/dts/overlays/overlay_map.dts
|
|
+++ b/arch/arm/boot/dts/overlays/overlay_map.dts
|
|
@@ -185,6 +185,11 @@ mpu6050 {
|
|
|
|
pcie-32bit-dma {
|
|
bcm2711;
|
|
+ bcm2712 = "pcie-32bit-dma-pi5";
|
|
+ };
|
|
+
|
|
+ pcie-32bit-dma-pi5 {
|
|
+ bcm2712;
|
|
};
|
|
|
|
pi3-act-led {
|
|
diff --git a/arch/arm/boot/dts/overlays/pcie-32bit-dma-pi5-overlay.dts b/arch/arm/boot/dts/overlays/pcie-32bit-dma-pi5-overlay.dts
|
|
new file mode 100644
|
|
index 000000000000..f9908494f101
|
|
--- /dev/null
|
|
+++ b/arch/arm/boot/dts/overlays/pcie-32bit-dma-pi5-overlay.dts
|
|
@@ -0,0 +1,26 @@
|
|
+/*
|
|
+ * pcie-32bit-dma-pi5-overlay.dts
|
|
+ */
|
|
+
|
|
+/dts-v1/;
|
|
+/plugin/;
|
|
+
|
|
+/ {
|
|
+ compatible = "brcm,bcm2712";
|
|
+
|
|
+ fragment@0 {
|
|
+ target = <&pcie1>;
|
|
+ __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>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+};
|
|
--
|
|
2.44.0
|
|
|