xref: /rk3399_ARM-atf/plat/mediatek/drivers/apusys/devapc/apusys_dapc_v1.h (revision 999503d285475f8920111f3fd760312ddf1d5b5b)
1777e3b71SKarl Li /*
2*31a0b877SKarl Li  * Copyright (c) 2023-2024, MediaTek Inc. All rights reserved.
3777e3b71SKarl Li  *
4777e3b71SKarl Li  * SPDX-License-Identifier: BSD-3-Clause
5777e3b71SKarl Li  */
6777e3b71SKarl Li 
7777e3b71SKarl Li #ifndef APUSYS_DAPC_V1_H
8777e3b71SKarl Li #define APUSYS_DAPC_V1_H
9777e3b71SKarl Li 
10777e3b71SKarl Li #include <lib/mmio.h>
11777e3b71SKarl Li 
12777e3b71SKarl Li /******************************************************************************
13777e3b71SKarl Li  * STRUCTURE DEFINITION
14777e3b71SKarl Li  ******************************************************************************/
15777e3b71SKarl Li enum apusys_apc_err_status {
16777e3b71SKarl Li 	APUSYS_APC_OK				= 0x0,
17*31a0b877SKarl Li 	APUSYS_APC_ERR_GENERIC			= 0x1000,
18*31a0b877SKarl Li 	APUSYS_APC_ERR_INVALID_CMD		= 0x1001,
19*31a0b877SKarl Li 	APUSYS_APC_ERR_SLAVE_TYPE_NOT_SUPPORTED	= 0x1002,
20*31a0b877SKarl Li 	APUSYS_APC_ERR_SLAVE_IDX_NOT_SUPPORTED	= 0x1003,
21*31a0b877SKarl Li 	APUSYS_APC_ERR_DOMAIN_NOT_SUPPORTED	= 0x1004,
22*31a0b877SKarl Li 	APUSYS_APC_ERR_PERMISSION_NOT_SUPPORTED	= 0x1005,
23*31a0b877SKarl Li 	APUSYS_APC_ERR_OUT_OF_BOUNDARY		= 0x1006,
24*31a0b877SKarl Li 	APUSYS_APC_ERR_REQ_TYPE_NOT_SUPPORTED	= 0x1007,
25777e3b71SKarl Li };
26777e3b71SKarl Li 
27777e3b71SKarl Li enum apusys_apc_perm_type {
28777e3b71SKarl Li 	NO_PROTECTION	= 0,
29777e3b71SKarl Li 	SEC_RW_ONLY	= 1,
30777e3b71SKarl Li 	SEC_RW_NS_R	= 2,
31777e3b71SKarl Li 	FORBIDDEN	= 3,
32777e3b71SKarl Li 	PERM_NUM	= 4,
33777e3b71SKarl Li };
34777e3b71SKarl Li 
35777e3b71SKarl Li enum apusys_apc_domain_id {
36777e3b71SKarl Li 	DOMAIN_0	=  0,
37777e3b71SKarl Li 	DOMAIN_1	=  1,
38777e3b71SKarl Li 	DOMAIN_2	=  2,
39777e3b71SKarl Li 	DOMAIN_3	=  3,
40777e3b71SKarl Li 	DOMAIN_4	=  4,
41777e3b71SKarl Li 	DOMAIN_5	=  5,
42777e3b71SKarl Li 	DOMAIN_6	=  6,
43777e3b71SKarl Li 	DOMAIN_7	=  7,
44777e3b71SKarl Li 	DOMAIN_8	=  8,
45777e3b71SKarl Li 	DOMAIN_9	=  9,
46777e3b71SKarl Li 	DOMAIN_10	= 10,
47777e3b71SKarl Li 	DOMAIN_11	= 11,
48777e3b71SKarl Li 	DOMAIN_12	= 12,
49777e3b71SKarl Li 	DOMAIN_13	= 13,
50777e3b71SKarl Li 	DOMAIN_14	= 14,
51777e3b71SKarl Li 	DOMAIN_15	= 15,
52777e3b71SKarl Li };
53777e3b71SKarl Li 
54777e3b71SKarl Li struct apc_dom_16 {
55777e3b71SKarl Li 	unsigned char d0_permission;
56777e3b71SKarl Li 	unsigned char d1_permission;
57777e3b71SKarl Li 	unsigned char d2_permission;
58777e3b71SKarl Li 	unsigned char d3_permission;
59777e3b71SKarl Li 	unsigned char d4_permission;
60777e3b71SKarl Li 	unsigned char d5_permission;
61777e3b71SKarl Li 	unsigned char d6_permission;
62777e3b71SKarl Li 	unsigned char d7_permission;
63777e3b71SKarl Li 	unsigned char d8_permission;
64777e3b71SKarl Li 	unsigned char d9_permission;
65777e3b71SKarl Li 	unsigned char d10_permission;
66777e3b71SKarl Li 	unsigned char d11_permission;
67777e3b71SKarl Li 	unsigned char d12_permission;
68777e3b71SKarl Li 	unsigned char d13_permission;
69777e3b71SKarl Li 	unsigned char d14_permission;
70777e3b71SKarl Li 	unsigned char d15_permission;
71777e3b71SKarl Li };
72777e3b71SKarl Li 
73777e3b71SKarl Li #define APUSYS_APC_AO_ATTR(DEV_NAME,					       \
74777e3b71SKarl Li 			   PERM_ATTR0,  PERM_ATTR1,  PERM_ATTR2,  PERM_ATTR3,  \
75777e3b71SKarl Li 			   PERM_ATTR4,  PERM_ATTR5,  PERM_ATTR6,  PERM_ATTR7,  \
76777e3b71SKarl Li 			   PERM_ATTR8,  PERM_ATTR9,  PERM_ATTR10, PERM_ATTR11, \
77777e3b71SKarl Li 			   PERM_ATTR12, PERM_ATTR13, PERM_ATTR14, PERM_ATTR15) \
78777e3b71SKarl Li 	{(unsigned char)PERM_ATTR0,  (unsigned char)PERM_ATTR1,  \
79777e3b71SKarl Li 	 (unsigned char)PERM_ATTR2,  (unsigned char)PERM_ATTR3,  \
80777e3b71SKarl Li 	 (unsigned char)PERM_ATTR4,  (unsigned char)PERM_ATTR5,  \
81777e3b71SKarl Li 	 (unsigned char)PERM_ATTR6,  (unsigned char)PERM_ATTR7,  \
82777e3b71SKarl Li 	 (unsigned char)PERM_ATTR8,  (unsigned char)PERM_ATTR9,  \
83777e3b71SKarl Li 	 (unsigned char)PERM_ATTR10, (unsigned char)PERM_ATTR11, \
84777e3b71SKarl Li 	 (unsigned char)PERM_ATTR12, (unsigned char)PERM_ATTR13, \
85777e3b71SKarl Li 	 (unsigned char)PERM_ATTR14, (unsigned char)PERM_ATTR15}
86777e3b71SKarl Li 
87777e3b71SKarl Li typedef enum apusys_apc_err_status (*dapc_cfg_func)(uint32_t slave,
88777e3b71SKarl Li 						    enum apusys_apc_domain_id domain_id,
89777e3b71SKarl Li 						    enum apusys_apc_perm_type perm);
90777e3b71SKarl Li 
91777e3b71SKarl Li /* Register */
92777e3b71SKarl Li #define DEVAPC_DOM_SIZE			(0x40)
93777e3b71SKarl Li #define DEVAPC_REG_SIZE			(4)
94777e3b71SKarl Li 
95777e3b71SKarl Li /* APUSYS APC offsets */
96777e3b71SKarl Li #define APUSYS_DAPC_CON_VIO_MASK	(0x80000000)
97777e3b71SKarl Li #define APUSYS_DAPC_CON(base)		((base) + 0x00f00)
98777e3b71SKarl Li 
99777e3b71SKarl Li /******************************************************************************
100777e3b71SKarl Li  * DAPC Common Function
101777e3b71SKarl Li  ******************************************************************************/
102777e3b71SKarl Li #define SET_APUSYS_DAPC_V1(dapc, cfg) \
103777e3b71SKarl Li 	set_apusys_dapc_v1(dapc, ARRAY_SIZE(dapc), cfg)
104777e3b71SKarl Li 
105777e3b71SKarl Li #define DUMP_APUSYS_DAPC_V1(apc) \
106777e3b71SKarl Li 	dump_apusys_dapc_v1(#apc, apc##_BASE, \
107777e3b71SKarl Li 			    (apc##_SLAVE_NUM / apc##_SLAVE_NUM_IN_1_DOM), apc##_DOM_NUM)
108777e3b71SKarl Li 
109777e3b71SKarl Li enum apusys_apc_err_status set_apusys_dapc_v1(const struct apc_dom_16 *dapc,
110777e3b71SKarl Li 					      uint32_t size, dapc_cfg_func cfg);
111777e3b71SKarl Li 
112777e3b71SKarl Li void dump_apusys_dapc_v1(const char *name, uintptr_t base, uint32_t reg_num, uint32_t dom_num);
113777e3b71SKarl Li 
114777e3b71SKarl Li /******************************************************************************
115777e3b71SKarl Li  * DAPC Permission Policy
116777e3b71SKarl Li  ******************************************************************************/
1175986ae57SKarl Li #define SLAVE_FORBID_EXCEPT_D0_SEC_RW(domain)				 \
1185986ae57SKarl Li 	APUSYS_APC_AO_ATTR(domain,					 \
1195986ae57SKarl Li 			   SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, FORBIDDEN, \
1205986ae57SKarl Li 			   FORBIDDEN,   FORBIDDEN, FORBIDDEN, FORBIDDEN, \
1215986ae57SKarl Li 			   FORBIDDEN,   FORBIDDEN, FORBIDDEN, FORBIDDEN, \
1225986ae57SKarl Li 			   FORBIDDEN,   FORBIDDEN, FORBIDDEN, FORBIDDEN)
1235986ae57SKarl Li 
124777e3b71SKarl Li #define SLAVE_FORBID_EXCEPT_D0_SEC_RW_D5_NO_PROTECT(domain)		     \
125777e3b71SKarl Li 	APUSYS_APC_AO_ATTR(domain,					     \
126777e3b71SKarl Li 			   SEC_RW_ONLY, FORBIDDEN,     FORBIDDEN, FORBIDDEN, \
127777e3b71SKarl Li 			   FORBIDDEN,   NO_PROTECTION, FORBIDDEN, FORBIDDEN, \
128777e3b71SKarl Li 			   FORBIDDEN,   FORBIDDEN,     FORBIDDEN, FORBIDDEN, \
129777e3b71SKarl Li 			   FORBIDDEN,   FORBIDDEN,     FORBIDDEN, FORBIDDEN)
130777e3b71SKarl Li 
131777e3b71SKarl Li #define SLAVE_FORBID_EXCEPT_D5_NO_PROTECT(domain)			   \
132777e3b71SKarl Li 	APUSYS_APC_AO_ATTR(domain,					   \
133777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN,     FORBIDDEN, FORBIDDEN, \
134777e3b71SKarl Li 			   FORBIDDEN, NO_PROTECTION, FORBIDDEN, FORBIDDEN, \
135777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN,     FORBIDDEN, FORBIDDEN, \
136777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN,     FORBIDDEN, FORBIDDEN)
137777e3b71SKarl Li 
138777e3b71SKarl Li #define SLAVE_FORBID_EXCEPT_D0_SEC_RW_NS_R_D5_NO_PROTECT(domain)	     \
139777e3b71SKarl Li 	APUSYS_APC_AO_ATTR(domain,					     \
140777e3b71SKarl Li 			   SEC_RW_NS_R, FORBIDDEN,     FORBIDDEN, FORBIDDEN, \
141777e3b71SKarl Li 			   FORBIDDEN,   NO_PROTECTION, FORBIDDEN, FORBIDDEN, \
142777e3b71SKarl Li 			   FORBIDDEN,   FORBIDDEN,     FORBIDDEN, FORBIDDEN, \
143777e3b71SKarl Li 			   FORBIDDEN,   FORBIDDEN,     FORBIDDEN, FORBIDDEN)
144777e3b71SKarl Li 
145777e3b71SKarl Li #define SLAVE_FORBID_EXCEPT_D7_NO_PROTECT(domain)			   \
146777e3b71SKarl Li 	APUSYS_APC_AO_ATTR(domain,					   \
147777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN,     \
148777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN, FORBIDDEN, NO_PROTECTION, \
149777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN,     \
150777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN)
151777e3b71SKarl Li 
152777e3b71SKarl Li #define SLAVE_FORBID_EXCEPT_D5_D7_NO_PROTECT(domain)			       \
153777e3b71SKarl Li 	APUSYS_APC_AO_ATTR(domain,					       \
154777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN,     FORBIDDEN, FORBIDDEN,     \
155777e3b71SKarl Li 			   FORBIDDEN, NO_PROTECTION, FORBIDDEN, NO_PROTECTION, \
156777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN,     FORBIDDEN, FORBIDDEN,     \
157777e3b71SKarl Li 			   FORBIDDEN, FORBIDDEN,     FORBIDDEN, FORBIDDEN)
158777e3b71SKarl Li 
159777e3b71SKarl Li #define SLAVE_FORBID_EXCEPT_D0_D5_NO_PROTECT(domain)			       \
160777e3b71SKarl Li 	APUSYS_APC_AO_ATTR(domain,					       \
161777e3b71SKarl Li 			   NO_PROTECTION, FORBIDDEN,     FORBIDDEN, FORBIDDEN, \
162777e3b71SKarl Li 			   FORBIDDEN,     NO_PROTECTION, FORBIDDEN, FORBIDDEN, \
163777e3b71SKarl Li 			   FORBIDDEN,     FORBIDDEN,     FORBIDDEN, FORBIDDEN, \
164777e3b71SKarl Li 			   FORBIDDEN,     FORBIDDEN,     FORBIDDEN, FORBIDDEN)
165*31a0b877SKarl Li 
166*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_D11_NO_PROTECT_D3_D5_D8_SEC_RW(domain) \
167*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
168*31a0b877SKarl Li 			   NO_PROTECTION, FORBIDDEN,   FORBIDDEN, SEC_RW_ONLY, \
169*31a0b877SKarl Li 			   FORBIDDEN,     SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
170*31a0b877SKarl Li 			   SEC_RW_ONLY,   FORBIDDEN,   FORBIDDEN, NO_PROTECTION, \
171*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN)
172*31a0b877SKarl Li 
173*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_SEC_RW_NS_R_D3_D5_SEC_RW(domain) \
174*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
175*31a0b877SKarl Li 			   SEC_RW_NS_R, FORBIDDEN,   FORBIDDEN, SEC_RW_ONLY, \
176*31a0b877SKarl Li 			   FORBIDDEN,   SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
177*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
178*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN)
179*31a0b877SKarl Li 
180*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D5_SEC_RW(domain) \
181*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
182*31a0b877SKarl Li 			   FORBIDDEN, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
183*31a0b877SKarl Li 			   FORBIDDEN, SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
184*31a0b877SKarl Li 			   FORBIDDEN, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
185*31a0b877SKarl Li 			   FORBIDDEN, FORBIDDEN,   FORBIDDEN, FORBIDDEN)
186*31a0b877SKarl Li 
187*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_SEC_RW_NS_R_D5_SEC_RW(domain) \
188*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
189*31a0b877SKarl Li 			   SEC_RW_NS_R, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
190*31a0b877SKarl Li 			   FORBIDDEN,   SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
191*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
192*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN)
193*31a0b877SKarl Li 
194*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_NO_PROTECT_D3_D5_SEC_RW(domain) \
195*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
196*31a0b877SKarl Li 			   NO_PROTECTION, FORBIDDEN,   FORBIDDEN, SEC_RW_ONLY, \
197*31a0b877SKarl Li 			   FORBIDDEN,     SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
198*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
199*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN)
200*31a0b877SKarl Li 
201*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D3_D5_SEC_RW_D0_D4_D11_NO_PROTECT(domain) \
202*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
203*31a0b877SKarl Li 			   NO_PROTECTION, FORBIDDEN,   FORBIDDEN, SEC_RW_ONLY, \
204*31a0b877SKarl Li 			   NO_PROTECTION, SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
205*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, NO_PROTECTION, \
206*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN)
207*31a0b877SKarl Li 
208*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D5_SEC_RW_D0_NO_PROTECT(domain) \
209*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
210*31a0b877SKarl Li 			   NO_PROTECTION, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
211*31a0b877SKarl Li 			   FORBIDDEN,     SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
212*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
213*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN)
214*31a0b877SKarl Li 
215*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_D5_SEC_RW(domain) \
216*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
217*31a0b877SKarl Li 			   SEC_RW_ONLY, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
218*31a0b877SKarl Li 			   FORBIDDEN,   SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
219*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
220*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN)
221*31a0b877SKarl Li 
222*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_NO_PROTECT_D5_SEC_RW(domain) \
223*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
224*31a0b877SKarl Li 			   NO_PROTECTION, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
225*31a0b877SKarl Li 			   FORBIDDEN,     SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
226*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
227*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN)
228*31a0b877SKarl Li 
229*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D3_D5_SEC_RW_D0_D11_NO_PROTECT(domain) \
230*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
231*31a0b877SKarl Li 			   NO_PROTECTION, FORBIDDEN,   FORBIDDEN, SEC_RW_ONLY, \
232*31a0b877SKarl Li 			   FORBIDDEN,     SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
233*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, NO_PROTECTION, \
234*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN)
235*31a0b877SKarl Li 
236*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_NO_PROTECT_D5_D8_SEC_RW(domain) \
237*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
238*31a0b877SKarl Li 			   NO_PROTECTION, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
239*31a0b877SKarl Li 			   FORBIDDEN,     SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
240*31a0b877SKarl Li 			   SEC_RW_ONLY,   FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
241*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,   FORBIDDEN, FORBIDDEN)
242*31a0b877SKarl Li 
243*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_D3_D5_SEC_RW(domain) \
244*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
245*31a0b877SKarl Li 			   SEC_RW_ONLY, FORBIDDEN,   FORBIDDEN, SEC_RW_ONLY, \
246*31a0b877SKarl Li 			   FORBIDDEN,   SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
247*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
248*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN)
249*31a0b877SKarl Li 
250*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_SEC_RW_NS_R_D5_D8_SEC_RW(domain) \
251*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
252*31a0b877SKarl Li 			   SEC_RW_NS_R, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
253*31a0b877SKarl Li 			   FORBIDDEN,   SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
254*31a0b877SKarl Li 			   SEC_RW_ONLY, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
255*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN)
256*31a0b877SKarl Li 
257*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D5_D8_SEC_RW(domain) \
258*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
259*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
260*31a0b877SKarl Li 			   FORBIDDEN,   SEC_RW_ONLY, FORBIDDEN, FORBIDDEN, \
261*31a0b877SKarl Li 			   SEC_RW_ONLY, FORBIDDEN,   FORBIDDEN, FORBIDDEN, \
262*31a0b877SKarl Li 			   FORBIDDEN,   FORBIDDEN,   FORBIDDEN, FORBIDDEN)
263*31a0b877SKarl Li 
264*31a0b877SKarl Li #define SLAVE_FORBID_EXCEPT_D0_D5_D7_D14_NO_PROTECT(domain) \
265*31a0b877SKarl Li 	APUSYS_APC_AO_ATTR(domain, \
266*31a0b877SKarl Li 			   NO_PROTECTION, FORBIDDEN,     FORBIDDEN,     FORBIDDEN, \
267*31a0b877SKarl Li 			   FORBIDDEN,     NO_PROTECTION, FORBIDDEN,     NO_PROTECTION, \
268*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,     FORBIDDEN,     FORBIDDEN, \
269*31a0b877SKarl Li 			   FORBIDDEN,     FORBIDDEN,     NO_PROTECTION, FORBIDDEN)
270*31a0b877SKarl Li 
271777e3b71SKarl Li #endif /* APUSYS_DAPC_V1_H */
272