summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/qcom/qcs8550.dtsi
blob: 07b314834d88f7b69e43f599e27ba5ac2eb83469 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
 */

#include "sm8550.dtsi"

/delete-node/ &reserved_memory;

/ {
	reserved_memory: reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;


		/* These are 3 types of reserved memory regions here:
		 * 1. Firmware related regions which aren't shared with kernel.
		 *     The device tree source in kernel doesn't need to have node to
		 * indicate the firmware related reserved information. Bootloader
		 * conveys the information by updating devicetree at runtime.
		 *     This will be described as: UEFI saves the physical address of
		 * the UEFI System Table to dts file's chosen node. Kernel read this
		 * table and add reserved memory regions to efi config table. Current
		 * reserved memory region may have reserved region which was not yet
		 * used, release note of the firmware have such kind of information.
		 * 2. Firmware related memory regions which are shared with Kernel
		 *     The device tree source in the kernel needs to include nodes
		 * that indicate fimware-related shared information. A label name
		 * is suggested because this type of shared information needs to
		 * be referenced by specific drivers for handling purposes.
		 *     Unlike previous platforms, QCS8550 boots using EFI and describes
		 * most reserved regions in the ESRT memory map. As a result, reserved
		 * memory regions which aren't relevant to the kernel(like the hypervisor
		 ( region) don't need to be described in DT.
		 * 3. Remoteproc regions.
		 *     Remoteproc regions will be reserved and then assigned to
		 * subsystem firmware later.
		 * Here is a reserved memory map for this platform:
		 *  0x80000000 +-------------------+
		 *             |                   |
		 *             | Firmware Related  |
		 *             |                   |
		 *  0x8a800000 +-------------------+
		 *             |                   |
		 *             | Remoteproc Region |
		 *             |                   |
		 *  0xa7000000 +-------------------+
		 *             |                   |
		 *             | Kernel Available  |
		 *             |                   |
		 *  0xd4d00000 +-------------------+
		 *             |                   |
		 *             | Firmware Related  |
		 *             |                   |
		 * 0x100000000 +-------------------+
		 */

		aop_image_mem: aop-image-region@81c00000 {
			reg = <0x0 0x81c00000 0x0 0x60000>;
			no-map;
		};

		aop_cmd_db_mem: aop-cmd-db-region@81c60000 {
			compatible = "qcom,cmd-db";
			reg = <0x0 0x81c60000 0x0 0x20000>;
			no-map;
		};

		aop_config_mem: aop-config-region@81c80000 {
			no-map;
			reg = <0x0 0x81c80000 0x0 0x20000>;
		};

		smem_mem: smem-region@81d00000 {
			compatible = "qcom,smem";
			reg = <0x0 0x81d00000 0x0 0x200000>;
			hwlocks = <&tcsr_mutex 3>;
			no-map;
		};

		adsp_mhi_mem: adsp-mhi-region@81f00000 {
			reg = <0x0 0x81f00000 0x0 0x20000>;
			no-map;
		};

		mpss_mem: mpss-region@8a800000 {
			reg = <0x0 0x8a800000 0x0 0x10800000>;
			no-map;
		};

		q6_mpss_dtb_mem: q6-mpss-dtb-region@9b000000 {
			reg = <0x0 0x9b000000 0x0 0x80000>;
			no-map;
		};

		ipa_fw_mem: ipa-fw-region@9b080000 {
			reg = <0x0 0x9b080000 0x0 0x10000>;
			no-map;
		};

		ipa_gsi_mem: ipa-gsi-region@9b090000 {
			reg = <0x0 0x9b090000 0x0 0xa000>;
			no-map;
		};

		gpu_micro_code_mem: gpu-micro-code-region@9b09a000 {
			reg = <0x0 0x9b09a000 0x0 0x2000>;
			no-map;
		};

		spss_region_mem: spss-region@9b100000 {
			reg = <0x0 0x9b100000 0x0 0x180000>;
			no-map;
		};

		spu_secure_shared_memory_mem: spu-secure-shared-memory-region@9b280000 {
			reg = <0x0 0x9b280000 0x0 0x80000>;
			no-map;
		};

		camera_mem: camera-region@9b300000 {
			reg = <0x0 0x9b300000 0x0 0x800000>;
			no-map;
		};

		video_mem: video-region@9bb00000 {
			reg = <0x0 0x9bb00000 0x0 0x700000>;
			no-map;
		};

		cvp_mem: cvp-region@9c200000 {
			reg = <0x0 0x9c200000 0x0 0x700000>;
			no-map;
		};

		cdsp_mem: cdsp-region@9c900000 {
			reg = <0x0 0x9c900000 0x0 0x2000000>;
			no-map;
		};

		q6_cdsp_dtb_mem: q6-cdsp-dtb-region@9e900000 {
			reg = <0x0 0x9e900000 0x0 0x80000>;
			no-map;
		};

		q6_adsp_dtb_mem: q6-adsp-dtb-region@9e980000 {
			reg = <0x0 0x9e980000 0x0 0x80000>;
			no-map;
		};

		adspslpi_mem: adspslpi-region@9ea00000 {
			reg = <0x0 0x9ea00000 0x0 0x4080000>;
			no-map;
		};

		mpss_dsm_mem: mpss_dsm_region@d4d00000 {
			reg = <0x0 0xd4d00000 0x0 0x3300000>;
			no-map;
		};
	};
};