summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi
diff options
context:
space:
mode:
authorStephan Gerhold <stephan@gerhold.net>2023-09-11 20:41:46 +0300
committerBjorn Andersson <andersson@kernel.org>2023-09-20 19:27:44 +0300
commit0ed3d82862e8451cc2b14ddb1b064e72ba3e5a60 (patch)
tree75e2d77bf4fb5030be5839b8b6d49a95b4fa29d5 /arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi
parent40eb256e5fd1fd49813a27a252b7f45ccca89fde (diff)
downloadlinux-0ed3d82862e8451cc2b14ddb1b064e72ba3e5a60.tar.xz
arm64: dts: qcom: msm8916: Reserve firmware memory dynamically
Most of the reserved firmware memory on MSM8916 can be relocated when respecting the required alignment. To avoid having to precompute the reserved memory regions in every board DT, describe the actual requirements (size, alignment, alloc-ranges) using the dynamic reserved memory allocation. This approach has several advantages: 1. We can define "templates" for the reserved memory regions in msm8916.dtsi and keep only device-specific details in the board DT. This is useful for the "mpss" region size for example, which varies from device to device. It is no longer necessary to redefine all firmware regions to shift their addresses. 2. When some of the functionality (e.g. WCNSS, Modem, Venus) is not enabled or needed for a device, the reserved memory can stay disabled, freeing up the unused reservation for Linux. 3. Devices with special requirements for one of the firmware regions are handled automatically. For example, msm8916-longcheer-l8150 has non-relocatable "wcnss" firmware that must be loaded exactly at address 0x8b600000. When this is defined as a static region, the other dynamic allocations automatically adjust to a different place with suitable alignment. All in all this approach significantly reduces the boilerplate necessary to define the different firmware regions, and makes it easier to enable functionality on the different devices. Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Link: https://lore.kernel.org/r/20230911-msm8916-rmem-v1-4-b7089ec3e3a1@gerhold.net Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi')
-rw-r--r--arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi11
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi b/arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi
index 69f268db4df9..1d92c2e57216 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916-ufi.dtsi
@@ -17,13 +17,6 @@
stdout-path = "serial0";
};
- reserved-memory {
- mpss_mem: mpss@86800000 {
- reg = <0x0 0x86800000 0x0 0x5500000>;
- no-map;
- };
- };
-
gpio-keys {
compatible = "gpio-keys";
@@ -91,6 +84,10 @@
status = "okay";
};
+&mpss_mem {
+ reg = <0x0 0x86800000 0x0 0x5500000>;
+};
+
&pm8916_usbin {
status = "okay";
};