1 /*
2  * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef DEVAPC_H
8 #define DEVAPC_H
9 
10 #include <stdint.h>
11 
12 #define DEVAPC_AO_INFRA_BASE      0x1000E000
13 #define DEVAPC_AO_MM_BASE         0x1001C000
14 #define DEVAPC_AO_MD_BASE         0x10019000
15 
16 #define DEVAPC_INFRA_D0_APC_0     (DEVAPC_AO_INFRA_BASE + 0x0000)
17 #define DEVAPC_INFRA_MAS_DOM_0    (DEVAPC_AO_INFRA_BASE + 0x0A00)
18 #define DEVAPC_INFRA_MAS_SEC_0    (DEVAPC_AO_INFRA_BASE + 0x0B00)
19 #define DEVAPC_INFRA_DOM_RMP_0    (DEVAPC_AO_INFRA_BASE + 0x0D00)
20 #define DEVAPC_INFRA_DOM_RMP_1    (DEVAPC_AO_INFRA_BASE + 0x0D04)
21 #define DEVAPC_INFRA_APC_CON      (DEVAPC_AO_INFRA_BASE + 0x0F00)
22 
23 #define DEVAPC_MD_APC_CON         (DEVAPC_AO_MD_BASE + 0x0F00)
24 
25 #define DEVAPC_MM_D0_APC_0        (DEVAPC_AO_MM_BASE + 0x0000)
26 #define DEVAPC_MM_DOM_RMP_0       (DEVAPC_AO_MM_BASE + 0x0D00)
27 #define DEVAPC_MM_APC_CON         (DEVAPC_AO_MM_BASE + 0x0F00)
28 
29 #define MOD_NO_IN_1_DEVAPC        16
30 #define MASTER_MOD_NO_IN_1_DEVAPC 8
31 #define SLAVE_INFRA_MAX_INDEX     195
32 #define SLAVE_MM_MAX_INDEX        140
33 
34 enum {
35 	MASTER_SCP = 0,
36 	MASTER_SPM = 10,
37 	MASTER_SSPM = 27
38 };
39 
40 enum MASK_DOM {
41 	DOMAIN_0 = 0,
42 	DOMAIN_1,
43 	DOMAIN_2,
44 	DOMAIN_3,
45 	DOMAIN_4,
46 	DOMAIN_5,
47 	DOMAIN_6,
48 	DOMAIN_7,
49 	DOMAIN_8,
50 	DOMAIN_9,
51 	DOMAIN_10,
52 	DOMAIN_11
53 };
54 
55 enum TRANSACTION {
56 	NON_SECURE_TRANSACTION = 0,
57 	SECURE_TRANSACTION
58 };
59 
60 enum DAPC_SLAVE_TYPE {
61 	DAPC_INFRA_SLAVE = 0,
62 	DAPC_MM_SLAVE
63 };
64 
65 enum APC_ATTR {
66 	NO_SEC = 0,
67 	S_RW_ONLY,
68 	S_RW_NS_R,
69 	FORBID,
70 };
71 
72 struct DEVICE_INFO {
73 	uint8_t d0_permission;
74 	uint8_t d1_permission;
75 	uint8_t d2_permission;
76 };
77 
78 #define PERMISSION(DEV_NAME, ATTR1, ATTR2, ATTR3) \
79 {(uint8_t)ATTR1, (uint8_t)ATTR2, (uint8_t)ATTR3}
80 
81 static const struct DEVICE_INFO D_APC_INFRA_Devices[] = {
82 /* module,                                      domain0, domain1, domain2 */
83 
84 /* 0 */
85 PERMISSION("INFRA_AO_TOPCKGEN",                    NO_SEC, NO_SEC, NO_SEC),
86 PERMISSION("INFRA_AO_INFRASYS_CONFIG_REGS",        NO_SEC, FORBID, NO_SEC),
87 PERMISSION("IO_CFG",                               NO_SEC, FORBID, NO_SEC),
88 PERMISSION("INFRA_AO_PERICFG",                     NO_SEC, FORBID, NO_SEC),
89 PERMISSION("INFRA_AO_EFUSE_AO_DEBUG",              NO_SEC, FORBID, NO_SEC),
90 PERMISSION("INFRA_AO_GPIO",                        NO_SEC, FORBID, NO_SEC),
91 PERMISSION("INFRA_AO_SLEEP_CONTROLLER",            NO_SEC, FORBID, NO_SEC),
92 PERMISSION("INFRA_AO_TOPRGU",                      NO_SEC, FORBID, NO_SEC),
93 PERMISSION("INFRA_AO_APXGPT",                      NO_SEC, FORBID, NO_SEC),
94 PERMISSION("INFRA_AO_RESERVE",                     NO_SEC, FORBID, NO_SEC),
95 
96 /* 10 */
97 PERMISSION("INFRA_AO_SEJ",                         NO_SEC, FORBID, NO_SEC),
98 PERMISSION("INFRA_AO_AP_CIRQ_EINT",                NO_SEC, FORBID, NO_SEC),
99 PERMISSION("INFRA_AO_APMIXEDSYS",                  NO_SEC, NO_SEC, NO_SEC),
100 PERMISSION("INFRA_AO_PMIC_WRAP",                   NO_SEC, FORBID, NO_SEC),
101 PERMISSION("INFRA_AO_DEVICE_APC_AO_INFRA_PERI",    NO_SEC, FORBID, NO_SEC),
102 PERMISSION("INFRA_AO_SLEEP_CONTROLLER_MD",         NO_SEC, FORBID, NO_SEC),
103 PERMISSION("INFRA_AO_KEYPAD",                      NO_SEC, FORBID, NO_SEC),
104 PERMISSION("INFRA_AO_TOP_MISC",                    NO_SEC, FORBID, NO_SEC),
105 PERMISSION("INFRA_AO_DVFS_CTRL_PROC",              NO_SEC, FORBID, NO_SEC),
106 PERMISSION("INFRA_AO_MBIST_AO_REG",                NO_SEC, FORBID, NO_SEC),
107 
108 /* 20 */
109 PERMISSION("INFRA_AO_CLDMA_AO_AP",                 NO_SEC, FORBID, NO_SEC),
110 PERMISSION("INFRA_AO_DEVICE_MPU",                  NO_SEC, FORBID, NO_SEC),
111 PERMISSION("INFRA_AO_AES_TOP_0",                   NO_SEC, FORBID, NO_SEC),
112 PERMISSION("INFRA_AO_SYS_TIMER",                   NO_SEC, FORBID, NO_SEC),
113 PERMISSION("INFRA_AO_MDEM_TEMP_SHARE",             NO_SEC, FORBID, NO_SEC),
114 PERMISSION("INFRA_AO_DEVICE_APC_AO_MD",            NO_SEC, FORBID, NO_SEC),
115 PERMISSION("INFRA_AO_SECURITY_AO",                 NO_SEC, FORBID, NO_SEC),
116 PERMISSION("INFRA_AO_TOPCKGEN_REG",                NO_SEC, FORBID, NO_SEC),
117 PERMISSION("INFRA_AO_DEVICE_APC_AO_MM",            NO_SEC, FORBID, NO_SEC),
118 PERMISSION("INFRASYS_RESERVE",                     NO_SEC, FORBID, NO_SEC),
119 
120 /* 30 */
121 PERMISSION("INFRASYS_RESERVE",                     NO_SEC, FORBID, NO_SEC),
122 PERMISSION("INFRASYS_RESERVE",                     NO_SEC, FORBID, NO_SEC),
123 PERMISSION("INFRASYS_RESERVE",                     NO_SEC, FORBID, NO_SEC),
124 PERMISSION("INFRASYS_SYS_CIRQ",                    NO_SEC, FORBID, NO_SEC),
125 PERMISSION("INFRASYS_MM_IOMMU",                    NO_SEC, FORBID, NO_SEC),
126 PERMISSION("INFRASYS_EFUSE_PDN_DEBUG",             NO_SEC, FORBID, NO_SEC),
127 PERMISSION("INFRASYS_DEVICE_APC",                  NO_SEC, FORBID, NO_SEC),
128 PERMISSION("INFRASYS_DBG_TRACKER",                 NO_SEC, FORBID, NO_SEC),
129 PERMISSION("INFRASYS_CCIF0_AP",                    NO_SEC, FORBID, NO_SEC),
130 PERMISSION("INFRASYS_CCIF0_MD",                    NO_SEC, FORBID, NO_SEC),
131 
132 /* 40 */
133 PERMISSION("INFRASYS_CCIF1_AP",                    NO_SEC, FORBID, NO_SEC),
134 PERMISSION("INFRASYS_CCIF1_MD",                    NO_SEC, FORBID, NO_SEC),
135 PERMISSION("INFRASYS_MBIST",                       NO_SEC, FORBID, NO_SEC),
136 PERMISSION("INFRASYS_INFRA_PDN_REGISTER",          NO_SEC, FORBID, NO_SEC),
137 PERMISSION("INFRASYS_TRNG",                        NO_SEC, FORBID, NO_SEC),
138 PERMISSION("INFRASYS_DX_CC",                       NO_SEC, FORBID, NO_SEC),
139 PERMISSION("MD_CCIF_MD1",                          NO_SEC, FORBID, NO_SEC),
140 PERMISSION("INFRASYS_CQ_DMA",                      NO_SEC, FORBID, NO_SEC),
141 PERMISSION("MD_CCIF_MD2",                          NO_SEC, FORBID, NO_SEC),
142 PERMISSION("INFRASYS_SRAMROM",                     NO_SEC, FORBID, NO_SEC),
143 
144 /* 50 */
145 PERMISSION("ANA_MIPI_DSI0",                        NO_SEC, FORBID, NO_SEC),
146 PERMISSION("INFRASYS_RESERVE",                     NO_SEC, FORBID, NO_SEC),
147 PERMISSION("ANA_MIPI_CSI0",                        NO_SEC, FORBID, NO_SEC),
148 PERMISSION("ANA_MIPI_CSI1",                        NO_SEC, FORBID, NO_SEC),
149 PERMISSION("INFRASYS_EMI",                         NO_SEC, FORBID, NO_SEC),
150 PERMISSION("INFRASYS_RESERVE",                     NO_SEC, FORBID, NO_SEC),
151 PERMISSION("INFRASYS_CLDMA_PDN",                   NO_SEC, FORBID, NO_SEC),
152 PERMISSION("CLDMA_PDN_MD_MISC",                    NO_SEC, FORBID, NO_SEC),
153 PERMISSION("INFRA_MD",                             NO_SEC, FORBID, NO_SEC),
154 PERMISSION("BPI_BSI_SLV0",                         NO_SEC, FORBID, NO_SEC),
155 
156 /* 60 */
157 PERMISSION("BPI_BSI_SLV1",                         NO_SEC, FORBID, NO_SEC),
158 PERMISSION("BPI_BSI_SLV2",                         NO_SEC, FORBID, NO_SEC),
159 PERMISSION("INFRASYS_EMI_MPU",                     NO_SEC, FORBID, NO_SEC),
160 PERMISSION("INFRASYS_DVFS_PROC",                   NO_SEC, FORBID, NO_SEC),
161 PERMISSION("INFRASYS_DRAMC_CH0_TOP0",              NO_SEC, FORBID, NO_SEC),
162 PERMISSION("INFRASYS_DRAMC_CH0_TOP1",              NO_SEC, FORBID, NO_SEC),
163 PERMISSION("INFRASYS_DRAMC_CH0_TOP2",              NO_SEC, FORBID, NO_SEC),
164 PERMISSION("INFRASYS_DRAMC_CH0_TOP3",              NO_SEC, FORBID, NO_SEC),
165 PERMISSION("INFRASYS_DRAMC_CH0_TOP4",              NO_SEC, FORBID, NO_SEC),
166 PERMISSION("INFRASYS_DRAMC_CH1_TOP0",              NO_SEC, FORBID, NO_SEC),
167 
168 /* 70 */
169 PERMISSION("INFRASYS_DRAMC_CH1_TOP1",              NO_SEC, FORBID, NO_SEC),
170 PERMISSION("INFRASYS_DRAMC_CH1_TOP2",              NO_SEC, FORBID, NO_SEC),
171 PERMISSION("INFRASYS_DRAMC_CH1_TOP3",              NO_SEC, FORBID, NO_SEC),
172 PERMISSION("INFRASYS_DRAMC_CH1_TOP4",              NO_SEC, FORBID, NO_SEC),
173 PERMISSION("INFRASYS_GCE",                         NO_SEC, FORBID, NO_SEC),
174 PERMISSION("INFRASYS_CCIF2_AP",                    NO_SEC, FORBID, NO_SEC),
175 PERMISSION("INFRASYS_CCIF2_MD",                    NO_SEC, FORBID, NO_SEC),
176 PERMISSION("INFRASYS_CCIF3_AP",                    NO_SEC, FORBID, NO_SEC),
177 PERMISSION("INFRASYS_CCIF3_MD",                    NO_SEC, FORBID, NO_SEC),
178 PERMISSION("INFRA_AO_PWRMCU Partition 1",          S_RW_NS_R, FORBID, NO_SEC),
179 
180 /* 80 */
181 PERMISSION("INFRA_AO_PWRMCU Partition 2",          S_RW_NS_R, FORBID, NO_SEC),
182 PERMISSION("INFRA_AO_PWRMCU Partition 3",          S_RW_NS_R, FORBID, NO_SEC),
183 PERMISSION("INFRA_AO_PWRMCU Partition 4",          S_RW_NS_R, FORBID, NO_SEC),
184 PERMISSION("INFRA_AO_PWRMCU Partition 5",          S_RW_NS_R, FORBID, NO_SEC),
185 PERMISSION("INFRA_AO_PWRMCU Partition 6",          S_RW_NS_R, FORBID, NO_SEC),
186 PERMISSION("INFRA_AO_PWRMCU Partition 7",          S_RW_NS_R, FORBID, NO_SEC),
187 PERMISSION("INFRA_AO_PWRMCU Partition 8",          S_RW_NS_R, FORBID, NO_SEC),
188 PERMISSION("INFRA_AO_SCP",                         NO_SEC, NO_SEC, NO_SEC),
189 PERMISSION("INFRA_AO_MCUCFG",                      NO_SEC, FORBID, NO_SEC),
190 PERMISSION("INFRASYS_DBUGSYS",                     NO_SEC, FORBID, NO_SEC),
191 
192 /* 90 */
193 PERMISSION("PERISYS_APDMA",                        NO_SEC, FORBID, NO_SEC),
194 PERMISSION("PERISYS_AUXADC",                       NO_SEC, FORBID, NO_SEC),
195 PERMISSION("PERISYS_UART0",                        NO_SEC, NO_SEC, NO_SEC),
196 PERMISSION("PERISYS_UART1",                        NO_SEC, FORBID, NO_SEC),
197 PERMISSION("PERISYS_UART2",                        NO_SEC, FORBID, NO_SEC),
198 PERMISSION("PERISYS_I2C6",                         NO_SEC, FORBID, NO_SEC),
199 PERMISSION("PERISYS_PWM",                          NO_SEC, FORBID, NO_SEC),
200 PERMISSION("PERISYS_I2C0",                         NO_SEC, FORBID, NO_SEC),
201 PERMISSION("PERISYS_I2C1",                         NO_SEC, FORBID, NO_SEC),
202 PERMISSION("PERISYS_I2C2",                         NO_SEC, FORBID, NO_SEC),
203 
204 /* 100 */
205 PERMISSION("PERISYS_SPI0",                         NO_SEC, FORBID, NO_SEC),
206 PERMISSION("PERISYS_PTP",                          NO_SEC, FORBID, NO_SEC),
207 PERMISSION("PERISYS_BTIF",                         NO_SEC, FORBID, NO_SEC),
208 PERMISSION("RESERVE",                              NO_SEC, FORBID, NO_SEC),
209 PERMISSION("PERISYS_DISP_PWM",                     NO_SEC, FORBID, NO_SEC),
210 PERMISSION("PERISYS_I2C3",                         NO_SEC, FORBID, NO_SEC),
211 PERMISSION("PERISYS_SPI1",                         NO_SEC, FORBID, NO_SEC),
212 PERMISSION("PERISYS_I2C4",                         NO_SEC, FORBID, NO_SEC),
213 PERMISSION("PERISYS_SPI2",                         NO_SEC, FORBID, NO_SEC),
214 PERMISSION("PERISYS_SPI3",                         NO_SEC, FORBID, NO_SEC),
215 
216 /* 110 */
217 PERMISSION("PERISYS_I2C1_IMM",                     NO_SEC, FORBID, NO_SEC),
218 PERMISSION("PERISYS_I2C2_IMM",                     NO_SEC, FORBID, NO_SEC),
219 PERMISSION("PERISYS_I2C5",                         NO_SEC, FORBID, NO_SEC),
220 PERMISSION("PERISYS_I2C5_IMM",                     NO_SEC, FORBID, NO_SEC),
221 PERMISSION("PERISYS_SPI4",                         NO_SEC, FORBID, NO_SEC),
222 PERMISSION("PERISYS_SPI5",                         NO_SEC, FORBID, NO_SEC),
223 PERMISSION("PERISYS_I2C7",                         NO_SEC, FORBID, NO_SEC),
224 PERMISSION("PERISYS_I2C8",                         NO_SEC, FORBID, NO_SEC),
225 PERMISSION("PERISYS_USB",                          NO_SEC, FORBID, NO_SEC),
226 PERMISSION("PERISYS_USB_2_0_SUB",                  NO_SEC, FORBID, NO_SEC),
227 
228 /* 120 */
229 PERMISSION("PERISYS_AUDIO",                        NO_SEC, FORBID, NO_SEC),
230 PERMISSION("PERISYS_MSDC0",                        NO_SEC, FORBID, NO_SEC),
231 PERMISSION("PERISYS_MSDC1",                        NO_SEC, FORBID, NO_SEC),
232 PERMISSION("PERISYS_MSDC2",                        NO_SEC, FORBID, NO_SEC),
233 PERMISSION("RESERVE",                              NO_SEC, FORBID, NO_SEC),
234 PERMISSION("PERISYS_UFS",                          NO_SEC, FORBID, NO_SEC),
235 PERMISSION("RESERVE",                              NO_SEC, FORBID, NO_SEC),
236 PERMISSION("RESERVE",                              NO_SEC, FORBID, NO_SEC),
237 PERMISSION("PERISYS_RESERVE",                      NO_SEC, FORBID, NO_SEC),
238 PERMISSION("EAST_RESERVE_0",                       NO_SEC, FORBID, NO_SEC),
239 
240 /* 130 */
241 PERMISSION("EAST_RESERVE_1",                       NO_SEC, FORBID, NO_SEC),
242 PERMISSION("EAST_RESERVE_2",                       NO_SEC, FORBID, NO_SEC),
243 PERMISSION("EAST_RESERVE_3",                       NO_SEC, FORBID, NO_SEC),
244 PERMISSION("EAST_RESERVE_4",                       NO_SEC, FORBID, NO_SEC),
245 PERMISSION("EAST_IO_CFG_RT",                       NO_SEC, FORBID, NO_SEC),
246 PERMISSION("EAST_RESERVE_6",                       NO_SEC, FORBID, NO_SEC),
247 PERMISSION("EAST_RESERVE_7",                       NO_SEC, FORBID, NO_SEC),
248 PERMISSION("EAST_CSI0_TOP_AO",                     NO_SEC, FORBID, NO_SEC),
249 PERMISSION("RESERVE",                              NO_SEC, FORBID, NO_SEC),
250 PERMISSION("EAST_RESERVE_A",                       NO_SEC, FORBID, NO_SEC),
251 
252 /* 140 */
253 PERMISSION("EAST_RESERVE_B",                       NO_SEC, FORBID, NO_SEC),
254 PERMISSION("EAST_RESERVE_C",                       NO_SEC, FORBID, NO_SEC),
255 PERMISSION("EAST_RESERVE_D",                       NO_SEC, FORBID, NO_SEC),
256 PERMISSION("EAST_RESERVE_E",                       NO_SEC, FORBID, NO_SEC),
257 PERMISSION("EAST_RESERVE_F",                       NO_SEC, FORBID, NO_SEC),
258 PERMISSION("SOUTH_RESERVE_0",                      NO_SEC, FORBID, NO_SEC),
259 PERMISSION("SOUTH_RESERVE_1",                      NO_SEC, FORBID, NO_SEC),
260 PERMISSION("SOUTH_IO_CFG_RM",                      NO_SEC, FORBID, NO_SEC),
261 PERMISSION("SOUTH_IO_CFG_RB",                      NO_SEC, FORBID, NO_SEC),
262 PERMISSION("SOUTH_EFUSE",                          NO_SEC, FORBID, NO_SEC),
263 
264 /* 150 */
265 PERMISSION("SOUTH_RESERVE_5",                      NO_SEC, FORBID, NO_SEC),
266 PERMISSION("SOUTH_RESERVE_6",                      NO_SEC, FORBID, NO_SEC),
267 PERMISSION("SOUTH_RESERVE_7",                      NO_SEC, FORBID, NO_SEC),
268 PERMISSION("SOUTH_RESERVE_8",                      NO_SEC, FORBID, NO_SEC),
269 PERMISSION("SOUTH_RESERVE_9",                      NO_SEC, FORBID, NO_SEC),
270 PERMISSION("SOUTH_RESERVE_A",                      NO_SEC, FORBID, NO_SEC),
271 PERMISSION("SOUTH_RESERVE_B",                      NO_SEC, FORBID, NO_SEC),
272 PERMISSION("SOUTH_RESERVE_C",                      NO_SEC, FORBID, NO_SEC),
273 PERMISSION("SOUTH_RESERVE_D",                      NO_SEC, FORBID, NO_SEC),
274 PERMISSION("SOUTH_RESERVE_E",                      NO_SEC, FORBID, NO_SEC),
275 
276 /* 160 */
277 PERMISSION("SOUTH_RESERVE_F",                      NO_SEC, FORBID, NO_SEC),
278 PERMISSION("WEST_RESERVE_0",                       NO_SEC, FORBID, NO_SEC),
279 PERMISSION("WEST_MSDC1_PAD_MACRO",                 NO_SEC, FORBID, NO_SEC),
280 PERMISSION("WEST_RESERVE_2",                       NO_SEC, FORBID, NO_SEC),
281 PERMISSION("WEST_RESERVE_3",                       NO_SEC, FORBID, NO_SEC),
282 PERMISSION("WEST_RESERVE_4",                       NO_SEC, FORBID, NO_SEC),
283 PERMISSION("WEST_MIPI_TX_CONFIG",                  NO_SEC, FORBID, NO_SEC),
284 PERMISSION("WEST_RESERVE_6",                       NO_SEC, FORBID, NO_SEC),
285 PERMISSION("WEST_IO_CFG_LB",                       NO_SEC, FORBID, NO_SEC),
286 PERMISSION("WEST_IO_CFG_LM",                       NO_SEC, FORBID, NO_SEC),
287 
288 /* 170 */
289 PERMISSION("WEST_IO_CFG_BL",                       NO_SEC, FORBID, NO_SEC),
290 PERMISSION("WEST_RESERVE_A",                       NO_SEC, FORBID, NO_SEC),
291 PERMISSION("WEST_RESERVE_B",                       NO_SEC, FORBID, NO_SEC),
292 PERMISSION("WEST_RESERVE_C",                       NO_SEC, FORBID, NO_SEC),
293 PERMISSION("WEST_RESERVE_D",                       NO_SEC, FORBID, NO_SEC),
294 PERMISSION("WEST_RESERVE_E",                       NO_SEC, FORBID, NO_SEC),
295 PERMISSION("WEST_RESERVE_F",                       NO_SEC, FORBID, NO_SEC),
296 PERMISSION("NORTH_RESERVE_0",                      NO_SEC, FORBID, NO_SEC),
297 PERMISSION("EFUSE_TOP",                            NO_SEC, FORBID, NO_SEC),
298 PERMISSION("NORTH_IO_CFG_LT",                      NO_SEC, FORBID, NO_SEC),
299 
300 /* 180 */
301 PERMISSION("NORTH_IO_CFG_TL",                      NO_SEC, FORBID, NO_SEC),
302 PERMISSION("NORTH_USB20 PHY",                      NO_SEC, FORBID, NO_SEC),
303 PERMISSION("NORTH_MSDC0 PAD MACRO",                NO_SEC, FORBID, NO_SEC),
304 PERMISSION("NORTH_RESERVE_6",                      NO_SEC, FORBID, NO_SEC),
305 PERMISSION("NORTH_RESERVE_7",                      NO_SEC, FORBID, NO_SEC),
306 PERMISSION("NORTH_RESERVE_8",                      NO_SEC, FORBID, NO_SEC),
307 PERMISSION("NORTH_RESERVE_9",                      NO_SEC, FORBID, NO_SEC),
308 PERMISSION("NORTH_UFS_MPHY",                       NO_SEC, FORBID, NO_SEC),
309 PERMISSION("NORTH_RESERVE_B",                      NO_SEC, FORBID, NO_SEC),
310 PERMISSION("NORTH_RESERVE_C",                      NO_SEC, FORBID, NO_SEC),
311 
312 /* 190 */
313 PERMISSION("NORTH_RESERVE_D",                      NO_SEC, FORBID, NO_SEC),
314 PERMISSION("NORTH_RESERVE_E",                      NO_SEC, FORBID, NO_SEC),
315 PERMISSION("NORTH_RESERVE_F",                      NO_SEC, FORBID, NO_SEC),
316 PERMISSION("PERISYS_CONN",                         NO_SEC, FORBID, NO_SEC),
317 PERMISSION("PERISYS_MD_VIOLATION",                 NO_SEC, FORBID, NO_SEC),
318 PERMISSION("PERISYS_RESERVE",                      NO_SEC, FORBID, NO_SEC)
319 };
320 
321 static const struct DEVICE_INFO D_APC_MM_Devices[] = {
322 /* module,                             domain0, domain1, domain2 */
323 
324 /* 0 */
325 PERMISSION("G3D_CONFIG",                  NO_SEC, FORBID, NO_SEC),
326 PERMISSION("MFG VAD",                     NO_SEC, FORBID, NO_SEC),
327 PERMISSION("SC0 VAD",                     NO_SEC, FORBID, NO_SEC),
328 PERMISSION("MFG_OTHERS",                  NO_SEC, FORBID, NO_SEC),
329 PERMISSION("MMSYS_CONFIG",                NO_SEC, NO_SEC, NO_SEC),
330 PERMISSION("MDP_RDMA0",                   NO_SEC, NO_SEC, NO_SEC),
331 PERMISSION("MDP_RDMA1",                   NO_SEC, NO_SEC, NO_SEC),
332 PERMISSION("MDP_RSZ0",                    NO_SEC, NO_SEC, NO_SEC),
333 PERMISSION("MDP_RSZ1",                    NO_SEC, NO_SEC, NO_SEC),
334 PERMISSION("MDP_WROT0",                   NO_SEC, NO_SEC, NO_SEC),
335 
336 /* 10 */
337 PERMISSION("MDP_WDMA",                    NO_SEC, NO_SEC, NO_SEC),
338 PERMISSION("MDP_TDSHP",                   NO_SEC, FORBID, NO_SEC),
339 PERMISSION("DISP_OVL0",                   NO_SEC, FORBID, NO_SEC),
340 PERMISSION("DISP_OVL0_2L",                NO_SEC, FORBID, NO_SEC),
341 PERMISSION("DISP_OVL1_2L",                NO_SEC, FORBID, NO_SEC),
342 PERMISSION("DISP_RDMA0",                  NO_SEC, FORBID, NO_SEC),
343 PERMISSION("DISP_RDMA1",                  NO_SEC, FORBID, NO_SEC),
344 PERMISSION("DISP_WDMA0",                  NO_SEC, FORBID, NO_SEC),
345 PERMISSION("DISP_COLOR0",                 NO_SEC, FORBID, NO_SEC),
346 PERMISSION("DISP_CCORR0",                 NO_SEC, FORBID, NO_SEC),
347 
348 /* 20 */
349 PERMISSION("DISP_AAL0",                   NO_SEC, FORBID, NO_SEC),
350 PERMISSION("DISP_GAMMA0",                 NO_SEC, FORBID, NO_SEC),
351 PERMISSION("DISP_DITHER0",                NO_SEC, FORBID, NO_SEC),
352 PERMISSION("DSI_SPLIT",                   NO_SEC, FORBID, NO_SEC),
353 PERMISSION("DSI0",                        NO_SEC, FORBID, NO_SEC),
354 PERMISSION("DPI",                         NO_SEC, FORBID, NO_SEC),
355 PERMISSION("MM_MUTEX",                    NO_SEC, FORBID, NO_SEC),
356 PERMISSION("SMI_LARB0",                   NO_SEC, FORBID, NO_SEC),
357 PERMISSION("SMI_LARB1",                   NO_SEC, FORBID, NO_SEC),
358 PERMISSION("SMI_COMMON",                  NO_SEC, FORBID, NO_SEC),
359 
360 /* 30 */
361 PERMISSION("DISP_RSZ",                    NO_SEC, FORBID, NO_SEC),
362 PERMISSION("MDP_AAL",                     NO_SEC, NO_SEC, NO_SEC),
363 PERMISSION("MDP_CCORR",                   NO_SEC, NO_SEC, NO_SEC),
364 PERMISSION("DBI",                         NO_SEC, FORBID, NO_SEC),
365 PERMISSION("MMSYS_OTHERS",                NO_SEC, FORBID, NO_SEC),
366 PERMISSION("IMGSYS_CONFIG",               NO_SEC, NO_SEC, NO_SEC),
367 PERMISSION("IMGSYS_SMI_LARB1",            NO_SEC, FORBID, NO_SEC),
368 PERMISSION("IMGSYS_DISP_A0",              NO_SEC, NO_SEC, NO_SEC),
369 PERMISSION("IMGSYS_DISP_A1",              NO_SEC, FORBID, NO_SEC),
370 PERMISSION("IMGSYS_DISP_A2",              NO_SEC, FORBID, NO_SEC),
371 
372 /* 40 */
373 PERMISSION("IMGSYS_DISP_A3",              NO_SEC, FORBID, NO_SEC),
374 PERMISSION("IMGSYS_DISP_A4",              NO_SEC, FORBID, NO_SEC),
375 PERMISSION("IMGSYS_DISP_A5",              NO_SEC, FORBID, NO_SEC),
376 PERMISSION("IMGSYS_DPE",                  NO_SEC, FORBID, NO_SEC),
377 PERMISSION("IMGSYS_RSC",                  NO_SEC, FORBID, NO_SEC),
378 PERMISSION("IMGSYS_WPEA",                 NO_SEC, FORBID, NO_SEC),
379 PERMISSION("IMGSYS_FDVT",                 NO_SEC, NO_SEC, NO_SEC),
380 PERMISSION("IMGSYS_OWE",                  NO_SEC, FORBID, NO_SEC),
381 PERMISSION("IMGSYS_WPEB",                 NO_SEC, FORBID, NO_SEC),
382 PERMISSION("IMGSYS_MFB",                  NO_SEC, FORBID, NO_SEC),
383 
384 /* 50 */
385 PERMISSION("IMGSYS_SMI_LARB2",            NO_SEC, FORBID, NO_SEC),
386 PERMISSION("IMGSYS_OTHERS",               NO_SEC, FORBID, NO_SEC),
387 PERMISSION("VENCSYS_GLOBAL_CON",          NO_SEC, NO_SEC, NO_SEC),
388 PERMISSION("VENCSYSSYS_SMI_LARB4",        NO_SEC, NO_SEC, NO_SEC),
389 PERMISSION("VENCSYS_VENC",                NO_SEC, NO_SEC, NO_SEC),
390 PERMISSION("VENCSYS_JPGENC",              NO_SEC, FORBID, NO_SEC),
391 PERMISSION("VENCSYS_MBIST_CTRL",          NO_SEC, FORBID, NO_SEC),
392 PERMISSION("VENCSYS_OTHERS",              NO_SEC, FORBID, NO_SEC),
393 PERMISSION("VDECSYS_GLOBAL_CON",          NO_SEC, NO_SEC, NO_SEC),
394 PERMISSION("VDECSYS_SMI_LARB1",           NO_SEC, FORBID, NO_SEC),
395 
396 /* 60 */
397 PERMISSION("VDECSYS_FULL_TOP",            NO_SEC, NO_SEC, NO_SEC),
398 PERMISSION("VDECSYS_OTHERS",              NO_SEC, FORBID, NO_SEC),
399 PERMISSION("CAMSYS_CAMSYS_TOP",           NO_SEC, FORBID, NO_SEC),
400 PERMISSION("CAMSYS_LARB6",                NO_SEC, NO_SEC, NO_SEC),
401 PERMISSION("CAMSYS_LARB3",                NO_SEC, NO_SEC, NO_SEC),
402 PERMISSION("CAMSYS_CAM_TOP",              NO_SEC, NO_SEC, NO_SEC),
403 PERMISSION("CAMSYS_CAM_A",                NO_SEC, NO_SEC, NO_SEC),
404 PERMISSION("CAMSYS_CAM_A",                NO_SEC, NO_SEC, NO_SEC),
405 PERMISSION("CAMSYS_CAM_B",                NO_SEC, NO_SEC, NO_SEC),
406 PERMISSION("CAMSYS_CAM_B",                NO_SEC, NO_SEC, NO_SEC),
407 
408 /* 70 */
409 PERMISSION("CAMSYS_CAM_C",                NO_SEC, NO_SEC, NO_SEC),
410 PERMISSION("CAMSYS_CAM_C",                NO_SEC, NO_SEC, NO_SEC),
411 PERMISSION("CAMSYS_CAM_TOP_SET",          NO_SEC, FORBID, NO_SEC),
412 PERMISSION("CAMSYS_CAM_A_SET",            NO_SEC, FORBID, NO_SEC),
413 PERMISSION("CAMSYS_CAM_A_SET",            NO_SEC, FORBID, NO_SEC),
414 PERMISSION("CAMSYS_CAM_B_SET",            NO_SEC, FORBID, NO_SEC),
415 PERMISSION("CAMSYS_CAM_B_SET",            NO_SEC, FORBID, NO_SEC),
416 PERMISSION("CAMSYS_CAM_C_SET",            NO_SEC, FORBID, NO_SEC),
417 PERMISSION("CAMSYS_CAM_C_SET",            NO_SEC, FORBID, NO_SEC),
418 PERMISSION("CAMSYS_CAM_TOP_INNER",        NO_SEC, FORBID, NO_SEC),
419 
420 /* 80 */
421 PERMISSION("CAMSYS_CAM_A_INNER",          NO_SEC, FORBID, NO_SEC),
422 PERMISSION("CAMSYS_CAM_A_INNER",          NO_SEC, FORBID, NO_SEC),
423 PERMISSION("CAMSYS_CAM_B_INNER",          NO_SEC, FORBID, NO_SEC),
424 PERMISSION("CAMSYS_CAM_B_INNER",          NO_SEC, FORBID, NO_SEC),
425 PERMISSION("CAMSYS_CAM_C_INNER",          NO_SEC, FORBID, NO_SEC),
426 PERMISSION("CAMSYS_CAM_C_INNER",          NO_SEC, FORBID, NO_SEC),
427 PERMISSION("CAMSYS_CAM_A_EXT",            NO_SEC, FORBID, NO_SEC),
428 PERMISSION("CAMSYS_CAM_B_EXT",            NO_SEC, FORBID, NO_SEC),
429 PERMISSION("CAMSYS_CAM_C_EXT",            NO_SEC, FORBID, NO_SEC),
430 PERMISSION("CAMSYS_CAM_TOP_CLR",          NO_SEC, FORBID, NO_SEC),
431 
432 /* 90 */
433 PERMISSION("CAMSYS_CAM_A_CLR",            NO_SEC, FORBID, NO_SEC),
434 PERMISSION("CAMSYS_CAM_A_CLR",            NO_SEC, FORBID, NO_SEC),
435 PERMISSION("CAMSYS_CAM_B_CLR",            NO_SEC, FORBID, NO_SEC),
436 PERMISSION("CAMSYS_CAM_B_CLR",            NO_SEC, FORBID, NO_SEC),
437 PERMISSION("CAMSYS_CAM_C_CLR",            NO_SEC, FORBID, NO_SEC),
438 PERMISSION("CAMSYS_CAM_C_CLR",            NO_SEC, FORBID, NO_SEC),
439 PERMISSION("CAMSYS_CAM_A_EXT",            NO_SEC, FORBID, NO_SEC),
440 PERMISSION("CAMSYS_CAM_B_EXT",            NO_SEC, FORBID, NO_SEC),
441 PERMISSION("CAMSYS_CAM_C_EXT",            NO_SEC, FORBID, NO_SEC),
442 PERMISSION("CAMSYS_CAM_RESERVE",          NO_SEC, FORBID, NO_SEC),
443 
444 /* 100 */
445 PERMISSION("CAMSYS_SENINF_A",             NO_SEC, FORBID, NO_SEC),
446 PERMISSION("CAMSYS_SENINF_B",             NO_SEC, FORBID, NO_SEC),
447 PERMISSION("CAMSYS_SENINF_C",             NO_SEC, FORBID, NO_SEC),
448 PERMISSION("CAMSYS_SENINF_D",             NO_SEC, FORBID, NO_SEC),
449 PERMISSION("CAMSYS_SENINF_E",             NO_SEC, FORBID, NO_SEC),
450 PERMISSION("CAMSYS_SENINF_F",             NO_SEC, FORBID, NO_SEC),
451 PERMISSION("CAMSYS_SENINF_G",             NO_SEC, FORBID, NO_SEC),
452 PERMISSION("CAMSYS_SENINF_H",             NO_SEC, FORBID, NO_SEC),
453 PERMISSION("CAMSYS_CAMSV_A",              NO_SEC, FORBID, NO_SEC),
454 PERMISSION("CAMSYS_CAMSV_B",              NO_SEC, FORBID, NO_SEC),
455 
456 /* 110 */
457 PERMISSION("CAMSYS_CAMSV_C",              NO_SEC, FORBID, NO_SEC),
458 PERMISSION("CAMSYS_CAMSV_D",              NO_SEC, FORBID, NO_SEC),
459 PERMISSION("CAMSYS_MD32 DMEM_12",         NO_SEC, FORBID, NO_SEC),
460 PERMISSION("CAMSYS_RESEVE",               NO_SEC, FORBID, NO_SEC),
461 PERMISSION("CAMSYS_CCU_CTL",              NO_SEC, FORBID, NO_SEC),
462 PERMISSION("CAMSYS_CCU_H2T_A",            NO_SEC, FORBID, NO_SEC),
463 PERMISSION("CAMSYS_CCU_T2H_A",            NO_SEC, FORBID, NO_SEC),
464 PERMISSION("CAMSYS_RESERVE",              NO_SEC, FORBID, NO_SEC),
465 PERMISSION("CAMSYS_RESERVE",              NO_SEC, FORBID, NO_SEC),
466 PERMISSION("CAMSYS_CCU_DMA",              NO_SEC, FORBID, NO_SEC),
467 
468 /* 120 */
469 PERMISSION("CAMSYS_TSF",                  NO_SEC, FORBID, NO_SEC),
470 PERMISSION("CAMSYS_MD32_PMEM_24",         NO_SEC, FORBID, NO_SEC),
471 PERMISSION("CAMSYS_OTHERS",               NO_SEC, FORBID, NO_SEC),
472 PERMISSION("VPUSYS_CFG",                  NO_SEC, FORBID, NO_SEC),
473 PERMISSION("VPUSYS_ADL_CTRL",             NO_SEC, FORBID, NO_SEC),
474 PERMISSION("VPUSYS_COREA_DMEM_0_128KB",   NO_SEC, FORBID, NO_SEC),
475 PERMISSION("VPUSYS_COREA_DMEM_128_256KB", NO_SEC, FORBID, NO_SEC),
476 PERMISSION("VPUSYS_COREA_IMEM_256KB",     NO_SEC, FORBID, NO_SEC),
477 PERMISSION("VPUSYS_COREA_CONTROL",        NO_SEC, FORBID, NO_SEC),
478 PERMISSION("VPUSYS_COREA_DEBUG",          NO_SEC, FORBID, NO_SEC),
479 
480 /* 130 */
481 PERMISSION("VPUSYS_COREB_DMEM_0_128KB",   NO_SEC, FORBID, NO_SEC),
482 PERMISSION("VPUSYS_COREB_DMEM_128_256KB", NO_SEC, FORBID, NO_SEC),
483 PERMISSION("VPUSYS_COREB_IMEM_256KB",     NO_SEC, FORBID, NO_SEC),
484 PERMISSION("VPUSYS_COREB_CONTROL",        NO_SEC, FORBID, NO_SEC),
485 PERMISSION("VPUSYS_COREB_DEBUG",          NO_SEC, FORBID, NO_SEC),
486 PERMISSION("VPUSYS_COREC_DMEM_0_128KB",   NO_SEC, FORBID, NO_SEC),
487 PERMISSION("VPUSYS_COREC_DMEM_128_256KB", NO_SEC, FORBID, NO_SEC),
488 PERMISSION("VPUSYS_COREC_IMEM_256KB",     NO_SEC, FORBID, NO_SEC),
489 PERMISSION("VPUSYS_COREC_CONTROL",        NO_SEC, FORBID, NO_SEC),
490 PERMISSION("VPUSYS_COREC_DEBUG",          NO_SEC, FORBID, NO_SEC),
491 
492 /* 140 */
493 PERMISSION("VPUSYS_OTHERS",               NO_SEC, FORBID, NO_SEC)
494 };
495 
496 void devapc_init(void);
497 
498 #endif /* DEVAPC_H */
499 
500