44f60d610f6e22d5234fb7d61cf0582a010e9c98
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.4 / 950-0420-ARM-dts-bcm2711-force-CMA-into-first-GB-of-memory.patch
1 From 4bcb99a967998d255ef009bb0b6880ae99c6f6bf Mon Sep 17 00:00:00 2001
2 From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
3 Date: Wed, 6 Nov 2019 10:59:44 +0100
4 Subject: [PATCH] ARM: dts: bcm2711: force CMA into first GB of memory
5
6 arm64 places the CMA in ZONE_DMA32, which is not good enough for the
7 Raspberry Pi 4 since it contains peripherals that can only address the
8 first GB of memory. Explicitly place the CMA into that area.
9
10 Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
11 Acked-by: Stefan Wahren <wahrenst@gmx.net>
12 Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
13 ---
14 arch/arm/boot/dts/bcm2711.dtsi | 20 ++++++++++++++++++++
15 1 file changed, 20 insertions(+)
16
17 --- a/arch/arm/boot/dts/bcm2711.dtsi
18 +++ b/arch/arm/boot/dts/bcm2711.dtsi
19 @@ -12,6 +12,26 @@
20
21 interrupt-parent = <&gicv2>;
22
23 + reserved-memory {
24 + #address-cells = <2>;
25 + #size-cells = <1>;
26 + ranges;
27 +
28 + /*
29 + * arm64 reserves the CMA by default somewhere in ZONE_DMA32,
30 + * that's not good enough for the BCM2711 as some devices can
31 + * only address the lower 1G of memory (ZONE_DMA).
32 + */
33 + linux,cma {
34 + compatible = "shared-dma-pool";
35 + size = <0x2000000>; /* 32MB */
36 + alloc-ranges = <0x0 0x00000000 0x40000000>;
37 + reusable;
38 + linux,cma-default;
39 + };
40 + };
41 +
42 +
43 soc {
44 /*
45 * Defined ranges: