arm64: dts: qcom: msm8939: Reserve firmware memory dynamically
authorStephan Gerhold <stephan@gerhold.net>
Mon, 11 Sep 2023 17:41:48 +0000 (19:41 +0200)
committerBjorn Andersson <andersson@kernel.org>
Wed, 20 Sep 2023 16:27:45 +0000 (09:27 -0700)
Follow the example of MSM8916 and reserve the firmware memory regions
dynamically to allow boards to define only the device-specific parts.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20230911-msm8916-rmem-v1-6-b7089ec3e3a1@gerhold.net
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/msm8939.dtsi

index b0a64e468629d0dd9b0a6e8c6b27ddef126043d4..ebea6de1177b7f0badc36d924d3ba3af998a7634 100644 (file)
                };
 
                mpss_mem: mpss@86800000 {
+                       /*
+                        * The memory region for the mpss firmware is generally
+                        * relocatable and could be allocated dynamically.
+                        * However, many firmware versions tend to fail when
+                        * loaded to some special addresses, so it is hard to
+                        * define reliable alloc-ranges.
+                        *
+                        * alignment = <0x0 0x400000>;
+                        * alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
+                        */
                        reg = <0x0 0x86800000 0x0 0x5500000>;
                        no-map;
                };
 
-               wcnss_mem: wcnss@8bd00000 {
-                       reg = <0x0 0x8bd00000 0x0 0x600000>;
+               wcnss_mem: wcnss {
+                       size = <0x0 0x600000>;
+                       alignment = <0x0 0x100000>;
+                       alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
                        no-map;
                };
 
-               venus_mem: venus@8c300000 {
-                       reg = <0x0 0x8c300000 0x0 0x800000>;
+               venus_mem: venus {
+                       size = <0x0 0x800000>;
+                       alignment = <0x0 0x100000>;
+                       alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
                        no-map;
                };
 
-               mba_mem: mba@8cb00000 {
-                       reg = <0x0 0x8cb00000 0x0 0x100000>;
+               mba_mem: mba {
+                       size = <0x0 0x100000>;
+                       alignment = <0x0 0x100000>;
+                       alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
                        no-map;
                };
        };