mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 14:13:16 +00:00
42 lines
1.3 KiB
Diff
42 lines
1.3 KiB
Diff
|
From f3e5f85353153a6941fc9e32871b5037e875d1ae Mon Sep 17 00:00:00 2001
|
||
|
From: Phil Elwell <phil@raspberrypi.com>
|
||
|
Date: Wed, 17 May 2023 13:39:18 +0100
|
||
|
Subject: [PATCH] ARM: dts: bcm2711-rpi: Set a 1GB ZONE_DMA limit
|
||
|
|
||
|
The arm64 initialisation uses the physical address reachable by all
|
||
|
DMA controllers to set the size of ZONE_DMA. This fails on BCM2711
|
||
|
with the current dts files because the declaration of the I/O space
|
||
|
fools it into thinking the legacy 30-bit DMA channels can see most
|
||
|
of the 32-bit space.
|
||
|
|
||
|
Take advantage of the simple nature of the implementation by adding
|
||
|
a node with a restricted dma-ranges property solely so to act as the
|
||
|
limiting factor in the calculation.
|
||
|
|
||
|
See: https://github.com/raspberrypi/linux/issues/5470
|
||
|
|
||
|
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||
|
---
|
||
|
arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 10 ++++++++++
|
||
|
1 file changed, 10 insertions(+)
|
||
|
|
||
|
--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi
|
||
|
+++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi
|
||
|
@@ -63,6 +63,16 @@
|
||
|
spi6 = &spi6;
|
||
|
/delete-property/ intc;
|
||
|
};
|
||
|
+
|
||
|
+ /*
|
||
|
+ * Add a node with a dma-ranges value that exists only to be found
|
||
|
+ * by of_dma_get_max_cpu_address, and hence limit the DMA zone.
|
||
|
+ */
|
||
|
+ zone_dma {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <1>;
|
||
|
+ dma-ranges = <0x0 0x0 0x0 0x40000000>;
|
||
|
+ };
|
||
|
};
|
||
|
|
||
|
&vc4 {
|