xref: /linux/arch/arm64/boot/dts/qcom/qcs8550.dtsi (revision 7f71507851fc7764b36a3221839607d3a45c2025)
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};
163