The reserved-memory regions are mostly undocumented by QCA and are named
very unspecific in the QSDK device trees. It was tried to clean them up by
commit
71ed9f10a33e ("ipq40xx: Use detailed reserved memory for A42") and
similar changes.
The features which require these regions were mostly unknown but
Senthilkumar N L <snlakshm@qti.qualcomm.com> and Sricharan Ramabadhran
<srichara@qti.qualcomm.com> provided some more insight in some of them:
* crash dump feature
- a couple of regions used when 'qca,scm_restart_reason' dt node has the
value 'dload_status' not set to 1
+ apps_bl <0x87000000 0x400000>
+ sbl <0x87400000 0x100000>
+ cnss_debug <0x87400000 0x100000>
+ cpu_context_dump <0x87b00000 0x080000>
- required driver not available in Linux
- safe to remove
* QSEE app execution
- region tz_apps <0x87b80000 0x280000>
- required driver not available in Linux
- safe to remove
* communication with TZ/QSEE
- region smem <0x87b80000 0x280000>
- driver changes not yet upstreamed
- must not be removed because any access can crash kernel/program
* trustzone (QSEE) private memory
- region tz <0x87e80000 0x180000>
- must not be removed because any access can crash kernel/program
Removing the unnecessary regions saves some kilobyte of reserved-memory and
cleans up the device tree:
* 2560 KiB
- 8devices Jalapeno
- AVM FRITZ!Box 4040
- Compex WPJ428
- Meraki MR33 Access Point
- OpenMesh A42
* 14336 KiB
- GL.iNet GL-B1300
- Qualcomm Technologies, Inc. IPQ40xx/AP-DK01.1-C1
Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
#size-cells = <0x1>;
ranges;
- tz_apps@87b80000 {
- reg = <0x87b80000 0x280000>;
- no-map;
- };
-
smem@87e00000 {
reg = <0x87e00000 0x080000>;
no-map;
#size-cells = <0x1>;
ranges;
- tz_apps@87b80000 {
- reg = <0x87b80000 0x280000>;
- reusable;
- };
-
smem@87e00000 {
reg = <0x87e00000 0x080000>;
no-map;
#size-cells = <0x1>;
ranges;
- tz_apps@87b80000 {
- reg = <0x87b80000 0x280000>;
- no-map;
- };
-
smem@87e00000 {
reg = <0x87e00000 0x080000>;
no-map;
#size-cells = <0x1>;
ranges;
- tz_apps@87b80000 {
- reg = <0x87b80000 0x280000>;
- no-map;
- };
-
smem@87e00000 {
reg = <0x87e00000 0x080000>;
no-map;
#size-cells = <0x1>;
ranges;
- apps_bl@87000000 {
- reg = <0x87000000 0x400000>;
- no-map;
- };
-
- sbl@87400000 {
- reg = <0x87400000 0x100000>;
- no-map;
- };
-
- cnss_debug@87500000 {
- reg = <0x87500000 0x600000>;
- no-map;
- };
-
- cpu_context_dump@87b00000 {
- reg = <0x87b00000 0x080000>;
- no-map;
- };
-
- tz_apps@87b80000 {
- reg = <0x87b80000 0x280000>;
- no-map;
- };
-
smem@87e00000 {
reg = <0x87e00000 0x080000>;
no-map;
#size-cells = <0x1>;
ranges;
- tz_apps@87b80000 {
- reg = <0x87b80000 0x280000>;
- reusable;
- };
-
smem@87e00000 {
reg = <0x87e00000 0x080000>;
no-map;
--- a/arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dts
+++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dts
-@@ -19,4 +19,112 @@
+@@ -19,4 +19,87 @@
/ {
model = "Qualcomm Technologies, Inc. IPQ40xx/AP-DK01.1-C1";
+ #size-cells = <0x1>;
+ ranges;
+
-+ apps_bl@87000000 {
-+ reg = <0x87000000 0x400000>;
-+ no-map;
-+ };
-+
-+ sbl@87400000 {
-+ reg = <0x87400000 0x100000>;
-+ no-map;
-+ };
-+
-+ cnss_debug@87500000 {
-+ reg = <0x87500000 0x600000>;
-+ no-map;
-+ };
-+
-+ cpu_context_dump@87b00000 {
-+ reg = <0x87b00000 0x080000>;
-+ no-map;
-+ };
-+
-+ tz_apps@87b80000 {
-+ reg = <0x87b80000 0x280000>;
-+ no-map;
-+ };
-+
+ smem@87e00000 {
+ reg = <0x87e00000 0x080000>;
+ no-map;