Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5
6#include "sm8550.dtsi"
7
8/delete-node/ &reserved_memory;
9
10/ {
11 reserved_memory: reserved-memory {
12 #address-cells = <2>;
13 #size-cells = <2>;
14 ranges;
15
16
17 /* These are 3 types of reserved memory regions here:
18 * 1. Firmware related regions which aren't shared with kernel.
19 * The device tree source in kernel doesn't need to have node to
20 * indicate the firmware related reserved information. Bootloader
21 * conveys the information by updating devicetree at runtime.
22 * This will be described as: UEFI saves the physical address of
23 * the UEFI System Table to dts file's chosen node. Kernel read this
24 * table and add reserved memory regions to efi config table. Current
25 * reserved memory region may have reserved region which was not yet
26 * used, release note of the firmware have such kind of information.
27 * 2. Firmware related memory regions which are shared with Kernel
28 * The device tree source in the kernel needs to include nodes
29 * that indicate fimware-related shared information. A label name
30 * is suggested because this type of shared information needs to
31 * be referenced by specific drivers for handling purposes.
32 * Unlike previous platforms, QCS8550 boots using EFI and describes
33 * most reserved regions in the ESRT memory map. As a result, reserved
34 * memory regions which aren't relevant to the kernel(like the hypervisor
35 ( region) don't need to be described in DT.
36 * 3. Remoteproc regions.
37 * Remoteproc regions will be reserved and then assigned to
38 * subsystem firmware later.
39 * Here is a reserved memory map for this platform:
40 * 0x80000000 +-------------------+
41 * | |
42 * | Firmware Related |
43 * | |
44 * 0x8a800000 +-------------------+
45 * | |
46 * | Remoteproc Region |
47 * | |
48 * 0xa7000000 +-------------------+
49 * | |
50 * | Kernel Available |
51 * | |
52 * 0xd4d00000 +-------------------+
53 * | |
54 * | Firmware Related |
55 * | |
56 * 0x100000000 +-------------------+
57 */
58
59 aop_image_mem: aop-image-region@81c00000 {
60 reg = <0x0 0x81c00000 0x0 0x60000>;
61 no-map;
62 };
63
64 aop_cmd_db_mem: aop-cmd-db-region@81c60000 {
65 compatible = "qcom,cmd-db";
66 reg = <0x0 0x81c60000 0x0 0x20000>;
67 no-map;
68 };
69
70 aop_config_mem: aop-config-region@81c80000 {
71 no-map;
72 reg = <0x0 0x81c80000 0x0 0x20000>;
73 };
74
75 smem_mem: smem-region@81d00000 {
76 compatible = "qcom,smem";
77 reg = <0x0 0x81d00000 0x0 0x200000>;
78 hwlocks = <&tcsr_mutex 3>;
79 no-map;
80 };
81
82 adsp_mhi_mem: adsp-mhi-region@81f00000 {
83 reg = <0x0 0x81f00000 0x0 0x20000>;
84 no-map;
85 };
86
87 mpss_mem: mpss-region@8a800000 {
88 reg = <0x0 0x8a800000 0x0 0x10800000>;
89 no-map;
90 };
91
92 q6_mpss_dtb_mem: q6-mpss-dtb-region@9b000000 {
93 reg = <0x0 0x9b000000 0x0 0x80000>;
94 no-map;
95 };
96
97 ipa_fw_mem: ipa-fw-region@9b080000 {
98 reg = <0x0 0x9b080000 0x0 0x10000>;
99 no-map;
100 };
101
102 ipa_gsi_mem: ipa-gsi-region@9b090000 {
103 reg = <0x0 0x9b090000 0x0 0xa000>;
104 no-map;
105 };
106
107 gpu_micro_code_mem: gpu-micro-code-region@9b09a000 {
108 reg = <0x0 0x9b09a000 0x0 0x2000>;
109 no-map;
110 };
111
112 spss_region_mem: spss-region@9b100000 {
113 reg = <0x0 0x9b100000 0x0 0x180000>;
114 no-map;
115 };
116
117 spu_secure_shared_memory_mem: spu-secure-shared-memory-region@9b280000 {
118 reg = <0x0 0x9b280000 0x0 0x80000>;
119 no-map;
120 };
121
122 camera_mem: camera-region@9b300000 {
123 reg = <0x0 0x9b300000 0x0 0x800000>;
124 no-map;
125 };
126
127 video_mem: video-region@9bb00000 {
128 reg = <0x0 0x9bb00000 0x0 0x700000>;
129 no-map;
130 };
131
132 cvp_mem: cvp-region@9c200000 {
133 reg = <0x0 0x9c200000 0x0 0x700000>;
134 no-map;
135 };
136
137 cdsp_mem: cdsp-region@9c900000 {
138 reg = <0x0 0x9c900000 0x0 0x2000000>;
139 no-map;
140 };
141
142 q6_cdsp_dtb_mem: q6-cdsp-dtb-region@9e900000 {
143 reg = <0x0 0x9e900000 0x0 0x80000>;
144 no-map;
145 };
146
147 q6_adsp_dtb_mem: q6-adsp-dtb-region@9e980000 {
148 reg = <0x0 0x9e980000 0x0 0x80000>;
149 no-map;
150 };
151
152 adspslpi_mem: adspslpi-region@9ea00000 {
153 reg = <0x0 0x9ea00000 0x0 0x4080000>;
154 no-map;
155 };
156
157 mpss_dsm_mem: mpss-dsm-region@d4d00000 {
158 reg = <0x0 0xd4d00000 0x0 0x3300000>;
159 no-map;
160 };
161 };
162};