|
From 581bc47dfe0ef7d5c7c671c975851ee13415f383 Mon Sep 17 00:00:00 2001 |
|
From: Tyler Baker <tyler.baker@oss.qualcomm.com> |
|
Date: Fri, 16 Oct 2026 00:41:43 -0400 |
|
Subject: [PATCH 2/8] arm64: dts: qcom: glymur: reserve the boot firmware |
|
carve-outs |
|
|
|
Besides the TZ carve-outs, the boot firmware keeps several other DDR |
|
regions on Glymur that glymur.dtsi does not describe: the LLCC LPI region, |
|
the CPUCP firmware and its tags, the XBL RAM dump area, the AOP image, |
|
configuration and logs, the shared secure data, the ACPI TA and SoCCP SDI |
|
regions, TZ diagnostics, the SPU and ADSP RPC shared memory, the gaps of |
|
the PIL region, BERT and the OOB GLINK area. The stock UEFI leaves them |
|
all out of the memory map it gives the OS. A boot firmware that takes the |
|
memory map from the device tree (U-Boot here) hands them to Linux, which |
|
can then overwrite running firmware such as CPUCP. |
|
|
|
Describe them as no-map reserved memory. |
|
|
|
Signed-off-by: Tyler Baker <tyler.baker@oss.qualcomm.com> |
|
--- |
|
arch/arm64/boot/dts/qcom/glymur.dtsi | 95 ++++++++++++++++++++++++++++ |
|
1 file changed, 95 insertions(+) |
|
|
|
diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi |
|
index 22168ff8a81a3..e1feeb5799da5 100644 |
|
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi |
|
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi |
|
@@ -579,22 +579,82 @@ reserved-memory { |
|
#size-cells = <2>; |
|
ranges; |
|
|
|
+ llcc_lpi_mem: llcc-lpi@80000000 { |
|
+ reg = <0x0 0x80000000 0x0 0x900000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ cpucp_mem: cpucp@80900000 { |
|
+ reg = <0x0 0x80900000 0x0 0xb00000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
pdp_mem: pdp@81400000 { |
|
reg = <0x0 0x81400000 0x0 0x100000>; |
|
no-map; |
|
}; |
|
|
|
+ cpucp_tags_mem: cpucp-tags@81500000 { |
|
+ reg = <0x0 0x81500000 0x0 0x360000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ xbl_ramdump_mem: xbl-ramdump@81860000 { |
|
+ reg = <0x0 0x81860000 0x0 0x200000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ aop_image_mem: aop-image@81c00000 { |
|
+ reg = <0x0 0x81c00000 0x0 0x60000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
aop_cmd_db_mem: aop-cmd-db@81c60000 { |
|
compatible = "qcom,cmd-db"; |
|
reg = <0x0 0x81c60000 0x0 0x20000>; |
|
no-map; |
|
}; |
|
|
|
+ reserved-region@81c80000 { |
|
+ reg = <0x0 0x81c80000 0x0 0x80000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ reserved-region@81d60000 { |
|
+ reg = <0x0 0x81d60000 0x0 0x7c000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
pdp_ns_shared_mem: pdp-ns-shared@81e00000 { |
|
reg = <0x0 0x81e00000 0x0 0x200000>; |
|
no-map; |
|
}; |
|
|
|
+ acpi_ta_mem: acpi-ta@82000000 { |
|
+ reg = <0x0 0x82000000 0x0 0x200000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ soccp_sdi_mem: soccp-sdi@823a0000 { |
|
+ reg = <0x0 0x823a0000 0x0 0x140000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ tz_stat_mem: tz-stat@82700000 { |
|
+ reg = <0x0 0x82700000 0x0 0x100000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ spu_shared_mem: spu-shared@84900000 { |
|
+ reg = <0x0 0x84900000 0x0 0x100000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ adsp_rpc_heap_mem: adsp-rpc-heap@84a00000 { |
|
+ reg = <0x0 0x84a00000 0x0 0x900000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
oobdaretag_mem: oobdaretag@86e10000 { |
|
reg = <0x0 0x86e10000 0x0 0x360000>; |
|
no-map; |
|
@@ -615,6 +675,11 @@ oobdtboem_mem: oobdtboem@87d50000 { |
|
no-map; |
|
}; |
|
|
|
+ reserved-region@87d70000 { |
|
+ reg = <0x0 0x87d70000 0x0 0x90000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
oob_nonsecure_mem: oob-nonsecure@87e00000 { |
|
reg = <0x0 0x87e00000 0x0 0xc00000>; |
|
no-map; |
|
@@ -635,6 +700,11 @@ soccpdtb_mem: soccpdtb@89200000 { |
|
no-map; |
|
}; |
|
|
|
+ reserved-region@89220000 { |
|
+ reg = <0x0 0x89220000 0x0 0x4e0000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
cvp_mem: cvp@89700000 { |
|
reg = <0x0 0x89700000 0x0 0x700000>; |
|
no-map; |
|
@@ -650,6 +720,11 @@ q6_adsp_dtb_mem: q6-adsp-dtb@8d800000 { |
|
no-map; |
|
}; |
|
|
|
+ reserved-region@8d880000 { |
|
+ reg = <0x0 0x8d880000 0x0 0x80000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
cdsp_mem: cdsp@8d900000 { |
|
reg = <0x0 0x8d900000 0x0 0x4000000>; |
|
no-map; |
|
@@ -660,6 +735,11 @@ q6_cdsp_dtb_mem: q6-cdsp-dtb@91900000 { |
|
no-map; |
|
}; |
|
|
|
+ reserved-region@91980000 { |
|
+ reg = <0x0 0x91980000 0x0 0x7e000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
gpu_microcode_mem: gpu-microcode@919fe000 { |
|
reg = <0x0 0x919fe000 0x0 0x2000>; |
|
no-map; |
|
@@ -680,6 +760,16 @@ video_mem: video@92900000 { |
|
no-map; |
|
}; |
|
|
|
+ reserved-region@93500000 { |
|
+ reg = <0x0 0x93500000 0x0 0xa00000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
+ bert_mem: bert@d6f00000 { |
|
+ reg = <0x0 0xd6f00000 0x0 0x100000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
xbl_sc_mem: xbl-sc@d7019000 { |
|
reg = <0x0 0xd7019000 0x0 0x60000>; |
|
no-map; |
|
@@ -705,6 +795,11 @@ tags_mem: tags@d9400000 { |
|
no-map; |
|
}; |
|
|
|
+ oob_glink_mem: oob-glink@fec00000 { |
|
+ reg = <0x0 0xfec00000 0x0 0x180000>; |
|
+ no-map; |
|
+ }; |
|
+ |
|
smem_mem: smem@ffe00000 { |
|
compatible = "qcom,smem"; |
|
reg = <0x0 0xffe00000 0x0 0x200000>; |
|
-- |
|
2.47.3 |
|
|