xref: /rk3399_ARM-atf/plat/renesas/common/bl2_secure_setting.c (revision 499c2713f05c602e6f22467c18be30cf9697c42d)
1*499c2713SBiju Das /*
2*499c2713SBiju Das  * Copyright (c) 2015-2020, Renesas Electronics Corporation. All rights reserved.
3*499c2713SBiju Das  *
4*499c2713SBiju Das  * SPDX-License-Identifier: BSD-3-Clause
5*499c2713SBiju Das  */
6*499c2713SBiju Das 
7*499c2713SBiju Das #include <lib/mmio.h>
8*499c2713SBiju Das #include <lib/utils_def.h>
9*499c2713SBiju Das 
10*499c2713SBiju Das #include "axi_registers.h"
11*499c2713SBiju Das #include "lifec_registers.h"
12*499c2713SBiju Das #include "micro_delay.h"
13*499c2713SBiju Das 
14*499c2713SBiju Das static void lifec_security_setting(void);
15*499c2713SBiju Das static void axi_security_setting(void);
16*499c2713SBiju Das 
17*499c2713SBiju Das static const struct {
18*499c2713SBiju Das 	uint32_t reg;
19*499c2713SBiju Das 	uint32_t val;
20*499c2713SBiju Das } lifec[] = {
21*499c2713SBiju Das 	/*
22*499c2713SBiju Das 	 * LIFEC0 (SECURITY) settings
23*499c2713SBiju Das 	 * Security attribute setting for master ports
24*499c2713SBiju Das 	 * Bit 0: ARM realtime core (Cortex-R7) master port
25*499c2713SBiju Das 	 *        0: Non-Secure
26*499c2713SBiju Das 	 */
27*499c2713SBiju Das 	{ SEC_SRC, 0x0000001EU },
28*499c2713SBiju Das 	/*
29*499c2713SBiju Das 	 * Security attribute setting for slave ports 0 to 15
30*499c2713SBiju Das 	 *      {SEC_SEL0,              0xFFFFFFFFU},
31*499c2713SBiju Das 	 *      {SEC_SEL1,              0xFFFFFFFFU},
32*499c2713SBiju Das 	 *	{SEC_SEL2,              0xFFFFFFFFU},
33*499c2713SBiju Das 	 * Bit19: AXI-Bus (Main Memory domain AXI) slave ports
34*499c2713SBiju Das 	 *        0: registers accessed from secure resource only
35*499c2713SBiju Das 	 * Bit 9: DBSC4 register access slave ports.
36*499c2713SBiju Das 	 *        0: registers accessed from secure resource only.
37*499c2713SBiju Das 	 */
38*499c2713SBiju Das #if (LIFEC_DBSC_PROTECT_ENABLE == 1)
39*499c2713SBiju Das 	{ SEC_SEL3, 0xFFF7FDFFU },
40*499c2713SBiju Das #else /* LIFEC_DBSC_PROTECT_ENABLE == 1 */
41*499c2713SBiju Das 	{ SEC_SEL3, 0xFFFFFFFFU },
42*499c2713SBiju Das #endif /* LIFEC_DBSC_PROTECT_ENABLE == 1 */
43*499c2713SBiju Das 	/*
44*499c2713SBiju Das 	 *	{SEC_SEL4,              0xFFFFFFFFU},
45*499c2713SBiju Das 	 * Bit 6: Boot ROM slave ports.
46*499c2713SBiju Das 	 *        0: registers accessed from secure resource only
47*499c2713SBiju Das 	 */
48*499c2713SBiju Das 	{ SEC_SEL5, 0xFFFFFFBFU },
49*499c2713SBiju Das 	/*
50*499c2713SBiju Das 	 * Bit13: SCEG PKA (secure APB) slave ports
51*499c2713SBiju Das 	 *        0: registers accessed from secure resource only
52*499c2713SBiju Das 	 *        1: Reserved[R-Car E3]
53*499c2713SBiju Das 	 * Bit12: SCEG PKA (public APB) slave ports
54*499c2713SBiju Das 	 *	  0: registers accessed from secure resource only
55*499c2713SBiju Das 	 *	  1: Reserved[R-Car E3]
56*499c2713SBiju Das 	 * Bit10: SCEG Secure Core slave ports
57*499c2713SBiju Das 	 *	  0: registers accessed from secure resource only
58*499c2713SBiju Das 	 */
59*499c2713SBiju Das #if (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3)
60*499c2713SBiju Das 	{ SEC_SEL6, 0xFFFFFBFFU },
61*499c2713SBiju Das #else /*  (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3) */
62*499c2713SBiju Das 	{ SEC_SEL6, 0xFFFFCBFFU },
63*499c2713SBiju Das #endif /*  (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3) */
64*499c2713SBiju Das 	/*
65*499c2713SBiju Das 	 *	{SEC_SEL7,              0xFFFFFFFFU},
66*499c2713SBiju Das 	 *	{SEC_SEL8,              0xFFFFFFFFU},
67*499c2713SBiju Das 	 *	{SEC_SEL9,              0xFFFFFFFFU},
68*499c2713SBiju Das 	 *	{SEC_SEL10,             0xFFFFFFFFU},
69*499c2713SBiju Das 	 *	{SEC_SEL11,             0xFFFFFFFFU},
70*499c2713SBiju Das 	 *	{SEC_SEL12,             0xFFFFFFFFU},
71*499c2713SBiju Das 	 * Bit22: RPC slave ports.
72*499c2713SBiju Das 	 *	  0: registers accessed from secure resource only.
73*499c2713SBiju Das 	 */
74*499c2713SBiju Das #if (RCAR_RPC_HYPERFLASH_LOCKED == 1)
75*499c2713SBiju Das 	{ SEC_SEL13, 0xFFBFFFFFU },
76*499c2713SBiju Das #endif /* (RCAR_RPC_HYPERFLASH_LOCKED == 1) */
77*499c2713SBiju Das 	/*
78*499c2713SBiju Das 	 * Bit27: System Timer (SCMT) slave ports
79*499c2713SBiju Das 	 *	  0: registers accessed from secure resource only
80*499c2713SBiju Das 	 * Bit26: System Watchdog Timer (SWDT) slave ports
81*499c2713SBiju Das 	 *	  0: registers accessed from secure resource only
82*499c2713SBiju Das 	 */
83*499c2713SBiju Das 	{ SEC_SEL14, 0xF3FFFFFFU },
84*499c2713SBiju Das 	/*
85*499c2713SBiju Das 	 * Bit13: RST slave ports.
86*499c2713SBiju Das 	 *	  0: registers accessed from secure resource only
87*499c2713SBiju Das 	 * Bit 7: Life Cycle 0 slave ports
88*499c2713SBiju Das 	 *	  0: registers accessed from secure resource only
89*499c2713SBiju Das 	 */
90*499c2713SBiju Das 	{ SEC_SEL15, 0xFFFFFF3FU },
91*499c2713SBiju Das 	/*
92*499c2713SBiju Das 	 * Security group 0 attribute setting for master ports 0
93*499c2713SBiju Das 	 * Security group 1 attribute setting for master ports 0
94*499c2713SBiju Das 	 *	{SEC_GRP0CR0,           0x00000000U},
95*499c2713SBiju Das 	 *	{SEC_GRP1CR0,           0x00000000U},
96*499c2713SBiju Das 	 * Security group 0 attribute setting for master ports 1
97*499c2713SBiju Das 	 * Security group 1 attribute setting for master ports 1
98*499c2713SBiju Das 	 *	{SEC_GRP0CR1,           0x00000000U},
99*499c2713SBiju Das 	 *	{SEC_GRP1CR1,           0x00000000U},
100*499c2713SBiju Das 	 * Security group 0 attribute setting for master ports 2
101*499c2713SBiju Das 	 * Security group 1 attribute setting for master ports 2
102*499c2713SBiju Das 	 * Bit17: SCEG Secure Core master ports.
103*499c2713SBiju Das 	 *	  SecurityGroup3
104*499c2713SBiju Das 	 */
105*499c2713SBiju Das 	{ SEC_GRP0CR2, 0x00020000U },
106*499c2713SBiju Das 	{ SEC_GRP1CR2, 0x00020000U },
107*499c2713SBiju Das 	/*
108*499c2713SBiju Das 	 * Security group 0 attribute setting for master ports 3
109*499c2713SBiju Das 	 * Security group 1 attribute setting for master ports 3
110*499c2713SBiju Das 	 *	{SEC_GRP0CR3,           0x00000000U},
111*499c2713SBiju Das 	 *	{SEC_GRP1CR3,           0x00000000U},
112*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 0
113*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 0
114*499c2713SBiju Das 	 *	{SEC_GRP0COND0,         0x00000000U},
115*499c2713SBiju Das 	 *	{SEC_GRP1COND0,         0x00000000U},
116*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 1
117*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 1
118*499c2713SBiju Das 	 *	{SEC_GRP0COND1,         0x00000000U},
119*499c2713SBiju Das 	 *	{SEC_GRP1COND1,         0x00000000U},
120*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 2
121*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 2
122*499c2713SBiju Das 	 *	{SEC_GRP0COND2,         0x00000000U},
123*499c2713SBiju Das 	 *	{SEC_GRP1COND2,         0x00000000U},
124*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 3
125*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 3
126*499c2713SBiju Das 	 * Bit19: AXI-Bus (Main Memory domain AXI) slave ports.
127*499c2713SBiju Das 	 *	  SecurityGroup3
128*499c2713SBiju Das 	 * Bit 9: DBSC4 register access slave ports.
129*499c2713SBiju Das 	 *        SecurityGroup3
130*499c2713SBiju Das 	 */
131*499c2713SBiju Das #if (LIFEC_DBSC_PROTECT_ENABLE == 1)
132*499c2713SBiju Das 	{ SEC_GRP0COND3, 0x00080200U },
133*499c2713SBiju Das 	{ SEC_GRP1COND3, 0x00080200U },
134*499c2713SBiju Das #else /* (LIFEC_DBSC_PROTECT_ENABLE == 1) */
135*499c2713SBiju Das 	{ SEC_GRP0COND3, 0x00000000U },
136*499c2713SBiju Das 	{ SEC_GRP1COND3, 0x00000000U },
137*499c2713SBiju Das #endif /* (LIFEC_DBSC_PROTECT_ENABLE == 1) */
138*499c2713SBiju Das 	/*
139*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 4
140*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 4
141*499c2713SBiju Das 	 *	{SEC_GRP0COND4,         0x00000000U},
142*499c2713SBiju Das 	 *	{SEC_GRP1COND4,         0x00000000U},
143*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 5
144*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 5
145*499c2713SBiju Das 	 * Bit 6: Boot ROM slave ports
146*499c2713SBiju Das 	 *	  SecurityGroup3
147*499c2713SBiju Das 	 */
148*499c2713SBiju Das 	{ SEC_GRP0COND5, 0x00000040U },
149*499c2713SBiju Das 	{ SEC_GRP1COND5, 0x00000040U },
150*499c2713SBiju Das 	/*
151*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 6
152*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 6
153*499c2713SBiju Das 	 * Bit13: SCEG PKA (secure APB) slave ports
154*499c2713SBiju Das 	 *	  SecurityGroup3
155*499c2713SBiju Das 	 *	  Reserved[R-Car E3]
156*499c2713SBiju Das 	 * Bit12: SCEG PKA (public APB) slave ports
157*499c2713SBiju Das 	 *	  SecurityGroup3
158*499c2713SBiju Das 	 *	  Reserved[R-Car E3]
159*499c2713SBiju Das 	 * Bit10: SCEG Secure Core slave ports
160*499c2713SBiju Das 	 *	  SecurityGroup3
161*499c2713SBiju Das 	 */
162*499c2713SBiju Das #if RCAR_LSI == RCAR_E3
163*499c2713SBiju Das 	{ SEC_GRP0COND6, 0x00000400U },
164*499c2713SBiju Das 	{ SEC_GRP1COND6, 0x00000400U },
165*499c2713SBiju Das #else /* RCAR_LSI == RCAR_E3 */
166*499c2713SBiju Das 	{ SEC_GRP0COND6, 0x00003400U },
167*499c2713SBiju Das 	{ SEC_GRP1COND6, 0x00003400U },
168*499c2713SBiju Das #endif /* RCAR_LSI == RCAR_E3 */
169*499c2713SBiju Das 	/*
170*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 7
171*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 7
172*499c2713SBiju Das 	 *	{SEC_GRP0COND7,         0x00000000U},
173*499c2713SBiju Das 	 *	{SEC_GRP1COND7,         0x00000000U},
174*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 8
175*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 8
176*499c2713SBiju Das 	 *	{SEC_GRP0COND8,         0x00000000U},
177*499c2713SBiju Das 	 *	{SEC_GRP1COND8,         0x00000000U},
178*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 9
179*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 9
180*499c2713SBiju Das 	 *	{SEC_GRP0COND9,         0x00000000U},
181*499c2713SBiju Das 	 *	{SEC_GRP1COND9,         0x00000000U},
182*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 10
183*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 10
184*499c2713SBiju Das 	 *	{SEC_GRP0COND10,        0x00000000U},
185*499c2713SBiju Das 	 *	{SEC_GRP1COND10,        0x00000000U},
186*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 11
187*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 11
188*499c2713SBiju Das 	 *	{SEC_GRP0COND11,        0x00000000U},
189*499c2713SBiju Das 	 *	{SEC_GRP1COND11,        0x00000000U},
190*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 12
191*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 12
192*499c2713SBiju Das 	 *	{SEC_GRP0COND12,        0x00000000U},
193*499c2713SBiju Das 	 *	{SEC_GRP1COND12,        0x00000000U},
194*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 13
195*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 13
196*499c2713SBiju Das 	 * Bit22: RPC slave ports.
197*499c2713SBiju Das 	 *	  SecurityGroup3
198*499c2713SBiju Das 	 */
199*499c2713SBiju Das #if (RCAR_RPC_HYPERFLASH_LOCKED == 1)
200*499c2713SBiju Das 	    { SEC_GRP0COND13,     0x00400000U },
201*499c2713SBiju Das 	    { SEC_GRP1COND13,     0x00400000U },
202*499c2713SBiju Das #endif /* (RCAR_RPC_HYPERFLASH_LOCKED == 1) */
203*499c2713SBiju Das 	/*
204*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 14
205*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 14
206*499c2713SBiju Das 	 * Bit26: System Timer (SCMT) slave ports
207*499c2713SBiju Das 	 *	  SecurityGroup3
208*499c2713SBiju Das 	 * Bit27: System Watchdog Timer (SWDT) slave ports
209*499c2713SBiju Das 	 *	  SecurityGroup3
210*499c2713SBiju Das 	 */
211*499c2713SBiju Das 	{ SEC_GRP0COND14, 0x0C000000U },
212*499c2713SBiju Das 	{ SEC_GRP1COND14, 0x0C000000U },
213*499c2713SBiju Das 	/*
214*499c2713SBiju Das 	 * Security group 0 attribute setting for slave ports 15
215*499c2713SBiju Das 	 * Security group 1 attribute setting for slave ports 15
216*499c2713SBiju Das 	 * Bit13: RST slave ports
217*499c2713SBiju Das 	 *	  SecurityGroup3
218*499c2713SBiju Das 	 * Bit 7: Life Cycle 0 slave ports
219*499c2713SBiju Das 	 *	  SecurityGroup3
220*499c2713SBiju Das 	 * Bit 6: TDBG slave ports
221*499c2713SBiju Das 	 *	  SecurityGroup3
222*499c2713SBiju Das 	 */
223*499c2713SBiju Das 	{ SEC_GRP0COND15, 0x000000C0U },
224*499c2713SBiju Das 	{ SEC_GRP1COND15, 0x000000C0U },
225*499c2713SBiju Das 	/*
226*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 0
227*499c2713SBiju Das 	 *	{SEC_READONLY0,         0x00000000U},
228*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 1
229*499c2713SBiju Das 	 *	{SEC_READONLY1,         0x00000000U},
230*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 2
231*499c2713SBiju Das 	 *	{SEC_READONLY2,         0x00000000U},
232*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 3
233*499c2713SBiju Das 	 *	{SEC_READONLY3,         0x00000000U},
234*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 4
235*499c2713SBiju Das 	 *	{SEC_READONLY4,         0x00000000U},
236*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 5
237*499c2713SBiju Das 	 *	{SEC_READONLY5,         0x00000000U},
238*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 6
239*499c2713SBiju Das 	 *	{SEC_READONLY6,         0x00000000U},
240*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 7
241*499c2713SBiju Das 	 *	{SEC_READONLY7,         0x00000000U},
242*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 8
243*499c2713SBiju Das 	 *	{SEC_READONLY8,         0x00000000U},
244*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 9
245*499c2713SBiju Das 	 *	{SEC_READONLY9,         0x00000000U},
246*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 10
247*499c2713SBiju Das 	 *	{SEC_READONLY10,        0x00000000U},
248*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 11
249*499c2713SBiju Das 	 *	{SEC_READONLY11,        0x00000000U},
250*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 12
251*499c2713SBiju Das 	 *	{SEC_READONLY12,        0x00000000U},
252*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 13
253*499c2713SBiju Das 	 *	{SEC_READONLY13,        0x00000000U},
254*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 14
255*499c2713SBiju Das 	 *	{SEC_READONLY14,        0x00000000U},
256*499c2713SBiju Das 	 * Security write protection attribute setting slave ports 15
257*499c2713SBiju Das 	 *	{SEC_READONLY15,        0x00000000U}
258*499c2713SBiju Das 	 */
259*499c2713SBiju Das };
260*499c2713SBiju Das 
261*499c2713SBiju Das /* AXI settings */
262*499c2713SBiju Das static const struct {
263*499c2713SBiju Das 	uint32_t reg;
264*499c2713SBiju Das 	uint32_t val;
265*499c2713SBiju Das } axi[] = {
266*499c2713SBiju Das 	/*
267*499c2713SBiju Das 	 * DRAM protection
268*499c2713SBiju Das 	 * AXI dram protected area division
269*499c2713SBiju Das 	 */
270*499c2713SBiju Das 	{AXI_DPTDIVCR0,  0x0E0403F0U},
271*499c2713SBiju Das 	{AXI_DPTDIVCR1,  0x0E0407E0U},
272*499c2713SBiju Das 	{AXI_DPTDIVCR2,  0x0E080000U},
273*499c2713SBiju Das 	{AXI_DPTDIVCR3,  0x0E080000U},
274*499c2713SBiju Das 	{AXI_DPTDIVCR4,  0x0E080000U},
275*499c2713SBiju Das 	{AXI_DPTDIVCR5,  0x0E080000U},
276*499c2713SBiju Das 	{AXI_DPTDIVCR6,  0x0E080000U},
277*499c2713SBiju Das 	{AXI_DPTDIVCR7,  0x0E080000U},
278*499c2713SBiju Das 	{AXI_DPTDIVCR8,  0x0E080000U},
279*499c2713SBiju Das 	{AXI_DPTDIVCR9,  0x0E080000U},
280*499c2713SBiju Das 	{AXI_DPTDIVCR10, 0x0E080000U},
281*499c2713SBiju Das 	{AXI_DPTDIVCR11, 0x0E080000U},
282*499c2713SBiju Das 	{AXI_DPTDIVCR12, 0x0E080000U},
283*499c2713SBiju Das 	{AXI_DPTDIVCR13, 0x0E080000U},
284*499c2713SBiju Das 	{AXI_DPTDIVCR14, 0x0E080000U},
285*499c2713SBiju Das 	/* AXI dram protected area setting */
286*499c2713SBiju Das 	{AXI_DPTCR0,  0x0E000000U},
287*499c2713SBiju Das 	{AXI_DPTCR1,  0x0E000E0EU},
288*499c2713SBiju Das 	{AXI_DPTCR2,  0x0E000000U},
289*499c2713SBiju Das 	{AXI_DPTCR3,  0x0E000000U},
290*499c2713SBiju Das 	{AXI_DPTCR4,  0x0E000000U},
291*499c2713SBiju Das 	{AXI_DPTCR5,  0x0E000000U},
292*499c2713SBiju Das 	{AXI_DPTCR6,  0x0E000000U},
293*499c2713SBiju Das 	{AXI_DPTCR7,  0x0E000000U},
294*499c2713SBiju Das 	{AXI_DPTCR8,  0x0E000000U},
295*499c2713SBiju Das 	{AXI_DPTCR9,  0x0E000000U},
296*499c2713SBiju Das 	{AXI_DPTCR10, 0x0E000000U},
297*499c2713SBiju Das 	{AXI_DPTCR11, 0x0E000000U},
298*499c2713SBiju Das 	{AXI_DPTCR12, 0x0E000000U},
299*499c2713SBiju Das 	{AXI_DPTCR13, 0x0E000000U},
300*499c2713SBiju Das 	{AXI_DPTCR14, 0x0E000000U},
301*499c2713SBiju Das 	{AXI_DPTCR15, 0x0E000000U},
302*499c2713SBiju Das 	/*
303*499c2713SBiju Das 	 * SRAM ptotection
304*499c2713SBiju Das 	 * AXI sram protected area division
305*499c2713SBiju Das 	 */
306*499c2713SBiju Das 	{AXI_SPTDIVCR0,  0x0E0E6304U},
307*499c2713SBiju Das 	{AXI_SPTDIVCR1,  0x0E0E6360U},
308*499c2713SBiju Das 	{AXI_SPTDIVCR2,  0x0E0E6360U},
309*499c2713SBiju Das 	{AXI_SPTDIVCR3,  0x0E0E6360U},
310*499c2713SBiju Das 	{AXI_SPTDIVCR4,  0x0E0E6360U},
311*499c2713SBiju Das 	{AXI_SPTDIVCR5,  0x0E0E6360U},
312*499c2713SBiju Das 	{AXI_SPTDIVCR6,  0x0E0E6360U},
313*499c2713SBiju Das 	{AXI_SPTDIVCR7,  0x0E0E6360U},
314*499c2713SBiju Das 	{AXI_SPTDIVCR8,  0x0E0E6360U},
315*499c2713SBiju Das 	{AXI_SPTDIVCR9,  0x0E0E6360U},
316*499c2713SBiju Das 	{AXI_SPTDIVCR10, 0x0E0E6360U},
317*499c2713SBiju Das 	{AXI_SPTDIVCR11, 0x0E0E6360U},
318*499c2713SBiju Das 	{AXI_SPTDIVCR12, 0x0E0E6360U},
319*499c2713SBiju Das 	{AXI_SPTDIVCR13, 0x0E0E6360U},
320*499c2713SBiju Das 	{AXI_SPTDIVCR14, 0x0E0E6360U},
321*499c2713SBiju Das 	/* AXI sram protected area setting */
322*499c2713SBiju Das 	{AXI_SPTCR0,  0x0E000E0EU},
323*499c2713SBiju Das 	{AXI_SPTCR1,  0x0E000000U},
324*499c2713SBiju Das 	{AXI_SPTCR2,  0x0E000000U},
325*499c2713SBiju Das 	{AXI_SPTCR3,  0x0E000000U},
326*499c2713SBiju Das 	{AXI_SPTCR4,  0x0E000000U},
327*499c2713SBiju Das 	{AXI_SPTCR5,  0x0E000000U},
328*499c2713SBiju Das 	{AXI_SPTCR6,  0x0E000000U},
329*499c2713SBiju Das 	{AXI_SPTCR7,  0x0E000000U},
330*499c2713SBiju Das 	{AXI_SPTCR8,  0x0E000000U},
331*499c2713SBiju Das 	{AXI_SPTCR9,  0x0E000000U},
332*499c2713SBiju Das 	{AXI_SPTCR10, 0x0E000000U},
333*499c2713SBiju Das 	{AXI_SPTCR11, 0x0E000000U},
334*499c2713SBiju Das 	{AXI_SPTCR12, 0x0E000000U},
335*499c2713SBiju Das 	{AXI_SPTCR13, 0x0E000000U},
336*499c2713SBiju Das 	{AXI_SPTCR14, 0x0E000000U},
337*499c2713SBiju Das 	{AXI_SPTCR15, 0x0E000000U}
338*499c2713SBiju Das };
339*499c2713SBiju Das 
340*499c2713SBiju Das static void lifec_security_setting(void)
341*499c2713SBiju Das {
342*499c2713SBiju Das 	uint32_t i;
343*499c2713SBiju Das 
344*499c2713SBiju Das 	for (i = 0; i < ARRAY_SIZE(lifec); i++)
345*499c2713SBiju Das 		mmio_write_32(lifec[i].reg, lifec[i].val);
346*499c2713SBiju Das }
347*499c2713SBiju Das 
348*499c2713SBiju Das /* SRAM/DRAM protection setting */
349*499c2713SBiju Das static void axi_security_setting(void)
350*499c2713SBiju Das {
351*499c2713SBiju Das 	uint32_t i;
352*499c2713SBiju Das 
353*499c2713SBiju Das 	for (i = 0; i < ARRAY_SIZE(axi); i++)
354*499c2713SBiju Das 		mmio_write_32(axi[i].reg, axi[i].val);
355*499c2713SBiju Das }
356*499c2713SBiju Das 
357*499c2713SBiju Das void bl2_secure_setting(void)
358*499c2713SBiju Das {
359*499c2713SBiju Das 	lifec_security_setting();
360*499c2713SBiju Das 	axi_security_setting();
361*499c2713SBiju Das 	rcar_micro_delay(10U);
362*499c2713SBiju Das }
363