1499c2713SBiju Das /*
2*e9afde1aSToshiyuki Ogasahara * Copyright (c) 2015-2023, Renesas Electronics Corporation. All rights reserved.
3499c2713SBiju Das *
4499c2713SBiju Das * SPDX-License-Identifier: BSD-3-Clause
5499c2713SBiju Das */
6499c2713SBiju Das
7499c2713SBiju Das #include <lib/mmio.h>
8499c2713SBiju Das #include <lib/utils_def.h>
9499c2713SBiju Das
10499c2713SBiju Das #include "axi_registers.h"
11499c2713SBiju Das #include "lifec_registers.h"
12499c2713SBiju Das #include "micro_delay.h"
13499c2713SBiju Das
14499c2713SBiju Das static void lifec_security_setting(void);
15499c2713SBiju Das static void axi_security_setting(void);
16499c2713SBiju Das
17499c2713SBiju Das static const struct {
18499c2713SBiju Das uint32_t reg;
19499c2713SBiju Das uint32_t val;
20499c2713SBiju Das } lifec[] = {
21499c2713SBiju Das /*
22499c2713SBiju Das * LIFEC0 (SECURITY) settings
23499c2713SBiju Das * Security attribute setting for master ports
24499c2713SBiju Das * Bit 0: ARM realtime core (Cortex-R7) master port
25499c2713SBiju Das * 0: Non-Secure
26499c2713SBiju Das */
27499c2713SBiju Das { SEC_SRC, 0x0000001EU },
28499c2713SBiju Das /*
29499c2713SBiju Das * Security attribute setting for slave ports 0 to 15
30499c2713SBiju Das * {SEC_SEL0, 0xFFFFFFFFU},
31499c2713SBiju Das * {SEC_SEL1, 0xFFFFFFFFU},
32499c2713SBiju Das * {SEC_SEL2, 0xFFFFFFFFU},
33499c2713SBiju Das * Bit19: AXI-Bus (Main Memory domain AXI) slave ports
34499c2713SBiju Das * 0: registers accessed from secure resource only
35499c2713SBiju Das * Bit 9: DBSC4 register access slave ports.
36499c2713SBiju Das * 0: registers accessed from secure resource only.
37499c2713SBiju Das */
38499c2713SBiju Das #if (LIFEC_DBSC_PROTECT_ENABLE == 1)
39499c2713SBiju Das { SEC_SEL3, 0xFFF7FDFFU },
40499c2713SBiju Das #else /* LIFEC_DBSC_PROTECT_ENABLE == 1 */
41499c2713SBiju Das { SEC_SEL3, 0xFFFFFFFFU },
42499c2713SBiju Das #endif /* LIFEC_DBSC_PROTECT_ENABLE == 1 */
43499c2713SBiju Das /*
44499c2713SBiju Das * {SEC_SEL4, 0xFFFFFFFFU},
45499c2713SBiju Das * Bit 6: Boot ROM slave ports.
46499c2713SBiju Das * 0: registers accessed from secure resource only
47499c2713SBiju Das */
48499c2713SBiju Das { SEC_SEL5, 0xFFFFFFBFU },
49499c2713SBiju Das /*
50499c2713SBiju Das * Bit13: SCEG PKA (secure APB) slave ports
51499c2713SBiju Das * 0: registers accessed from secure resource only
525460f828SToshiyuki Ogasahara * 1: Reserved[R-Car E3/D3]
53499c2713SBiju Das * Bit12: SCEG PKA (public APB) slave ports
54499c2713SBiju Das * 0: registers accessed from secure resource only
555460f828SToshiyuki Ogasahara * 1: Reserved[R-Car E3/D3]
56499c2713SBiju Das * Bit10: SCEG Secure Core slave ports
57499c2713SBiju Das * 0: registers accessed from secure resource only
58499c2713SBiju Das */
59499c2713SBiju Das #if (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3)
60499c2713SBiju Das { SEC_SEL6, 0xFFFFFBFFU },
61499c2713SBiju Das #else /* (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3) */
62499c2713SBiju Das { SEC_SEL6, 0xFFFFCBFFU },
63499c2713SBiju Das #endif /* (RCAR_LSI == RCAR_E3) || (RCAR_LSI == RCAR_D3) */
64499c2713SBiju Das /*
65499c2713SBiju Das * {SEC_SEL7, 0xFFFFFFFFU},
66499c2713SBiju Das * {SEC_SEL8, 0xFFFFFFFFU},
67499c2713SBiju Das * {SEC_SEL9, 0xFFFFFFFFU},
68499c2713SBiju Das * {SEC_SEL10, 0xFFFFFFFFU},
69499c2713SBiju Das * {SEC_SEL11, 0xFFFFFFFFU},
70499c2713SBiju Das * {SEC_SEL12, 0xFFFFFFFFU},
71499c2713SBiju Das * Bit22: RPC slave ports.
72499c2713SBiju Das * 0: registers accessed from secure resource only.
73499c2713SBiju Das */
74499c2713SBiju Das #if (RCAR_RPC_HYPERFLASH_LOCKED == 1)
75499c2713SBiju Das { SEC_SEL13, 0xFFBFFFFFU },
76499c2713SBiju Das #endif /* (RCAR_RPC_HYPERFLASH_LOCKED == 1) */
77499c2713SBiju Das /*
78499c2713SBiju Das * Bit27: System Timer (SCMT) slave ports
79499c2713SBiju Das * 0: registers accessed from secure resource only
80499c2713SBiju Das * Bit26: System Watchdog Timer (SWDT) slave ports
81499c2713SBiju Das * 0: registers accessed from secure resource only
82499c2713SBiju Das */
83499c2713SBiju Das { SEC_SEL14, 0xF3FFFFFFU },
84499c2713SBiju Das /*
85499c2713SBiju Das * Bit13: RST slave ports.
86499c2713SBiju Das * 0: registers accessed from secure resource only
87499c2713SBiju Das * Bit 7: Life Cycle 0 slave ports
88499c2713SBiju Das * 0: registers accessed from secure resource only
89499c2713SBiju Das */
90499c2713SBiju Das { SEC_SEL15, 0xFFFFFF3FU },
91499c2713SBiju Das /*
92499c2713SBiju Das * Security group 0 attribute setting for master ports 0
93499c2713SBiju Das * Security group 1 attribute setting for master ports 0
94499c2713SBiju Das * {SEC_GRP0CR0, 0x00000000U},
95499c2713SBiju Das * {SEC_GRP1CR0, 0x00000000U},
96499c2713SBiju Das * Security group 0 attribute setting for master ports 1
97499c2713SBiju Das * Security group 1 attribute setting for master ports 1
98499c2713SBiju Das * {SEC_GRP0CR1, 0x00000000U},
99499c2713SBiju Das * {SEC_GRP1CR1, 0x00000000U},
100499c2713SBiju Das * Security group 0 attribute setting for master ports 2
101499c2713SBiju Das * Security group 1 attribute setting for master ports 2
102499c2713SBiju Das * Bit17: SCEG Secure Core master ports.
103499c2713SBiju Das * SecurityGroup3
104499c2713SBiju Das */
105499c2713SBiju Das { SEC_GRP0CR2, 0x00020000U },
106499c2713SBiju Das { SEC_GRP1CR2, 0x00020000U },
107499c2713SBiju Das /*
108499c2713SBiju Das * Security group 0 attribute setting for master ports 3
109499c2713SBiju Das * Security group 1 attribute setting for master ports 3
110*e9afde1aSToshiyuki Ogasahara */
111*e9afde1aSToshiyuki Ogasahara { SEC_GRP0CR3, 0x00003780U },
112*e9afde1aSToshiyuki Ogasahara { SEC_GRP1CR3, 0x00003780U },
113*e9afde1aSToshiyuki Ogasahara /*
114499c2713SBiju Das * Security group 0 attribute setting for slave ports 0
115499c2713SBiju Das * Security group 1 attribute setting for slave ports 0
116499c2713SBiju Das * {SEC_GRP0COND0, 0x00000000U},
117499c2713SBiju Das * {SEC_GRP1COND0, 0x00000000U},
118499c2713SBiju Das * Security group 0 attribute setting for slave ports 1
119499c2713SBiju Das * Security group 1 attribute setting for slave ports 1
120499c2713SBiju Das * {SEC_GRP0COND1, 0x00000000U},
121499c2713SBiju Das * {SEC_GRP1COND1, 0x00000000U},
122499c2713SBiju Das * Security group 0 attribute setting for slave ports 2
123499c2713SBiju Das * Security group 1 attribute setting for slave ports 2
124499c2713SBiju Das * {SEC_GRP0COND2, 0x00000000U},
125499c2713SBiju Das * {SEC_GRP1COND2, 0x00000000U},
126499c2713SBiju Das * Security group 0 attribute setting for slave ports 3
127499c2713SBiju Das * Security group 1 attribute setting for slave ports 3
128499c2713SBiju Das * Bit19: AXI-Bus (Main Memory domain AXI) slave ports.
129499c2713SBiju Das * SecurityGroup3
130499c2713SBiju Das * Bit 9: DBSC4 register access slave ports.
131499c2713SBiju Das * SecurityGroup3
132499c2713SBiju Das */
133499c2713SBiju Das #if (LIFEC_DBSC_PROTECT_ENABLE == 1)
134499c2713SBiju Das { SEC_GRP0COND3, 0x00080200U },
135499c2713SBiju Das { SEC_GRP1COND3, 0x00080200U },
136499c2713SBiju Das #else /* (LIFEC_DBSC_PROTECT_ENABLE == 1) */
137499c2713SBiju Das { SEC_GRP0COND3, 0x00000000U },
138499c2713SBiju Das { SEC_GRP1COND3, 0x00000000U },
139499c2713SBiju Das #endif /* (LIFEC_DBSC_PROTECT_ENABLE == 1) */
140499c2713SBiju Das /*
141499c2713SBiju Das * Security group 0 attribute setting for slave ports 4
142499c2713SBiju Das * Security group 1 attribute setting for slave ports 4
143499c2713SBiju Das * {SEC_GRP0COND4, 0x00000000U},
144499c2713SBiju Das * {SEC_GRP1COND4, 0x00000000U},
145499c2713SBiju Das * Security group 0 attribute setting for slave ports 5
146499c2713SBiju Das * Security group 1 attribute setting for slave ports 5
147499c2713SBiju Das * Bit 6: Boot ROM slave ports
148499c2713SBiju Das * SecurityGroup3
149499c2713SBiju Das */
150499c2713SBiju Das { SEC_GRP0COND5, 0x00000040U },
151499c2713SBiju Das { SEC_GRP1COND5, 0x00000040U },
152499c2713SBiju Das /*
153499c2713SBiju Das * Security group 0 attribute setting for slave ports 6
154499c2713SBiju Das * Security group 1 attribute setting for slave ports 6
155499c2713SBiju Das * Bit13: SCEG PKA (secure APB) slave ports
156499c2713SBiju Das * SecurityGroup3
1575460f828SToshiyuki Ogasahara * Reserved[R-Car E3/D3]
158499c2713SBiju Das * Bit12: SCEG PKA (public APB) slave ports
159499c2713SBiju Das * SecurityGroup3
1605460f828SToshiyuki Ogasahara * Reserved[R-Car E3/D3]
161499c2713SBiju Das * Bit10: SCEG Secure Core slave ports
162499c2713SBiju Das * SecurityGroup3
163499c2713SBiju Das */
1645460f828SToshiyuki Ogasahara #if RCAR_LSI == RCAR_E3 || RCAR_LSI == RCAR_D3
165499c2713SBiju Das { SEC_GRP0COND6, 0x00000400U },
166499c2713SBiju Das { SEC_GRP1COND6, 0x00000400U },
167499c2713SBiju Das #else /* RCAR_LSI == RCAR_E3 */
168499c2713SBiju Das { SEC_GRP0COND6, 0x00003400U },
169499c2713SBiju Das { SEC_GRP1COND6, 0x00003400U },
170499c2713SBiju Das #endif /* RCAR_LSI == RCAR_E3 */
171499c2713SBiju Das /*
172499c2713SBiju Das * Security group 0 attribute setting for slave ports 7
173499c2713SBiju Das * Security group 1 attribute setting for slave ports 7
174499c2713SBiju Das * {SEC_GRP0COND7, 0x00000000U},
175499c2713SBiju Das * {SEC_GRP1COND7, 0x00000000U},
176499c2713SBiju Das * Security group 0 attribute setting for slave ports 8
177499c2713SBiju Das * Security group 1 attribute setting for slave ports 8
178499c2713SBiju Das * {SEC_GRP0COND8, 0x00000000U},
179499c2713SBiju Das * {SEC_GRP1COND8, 0x00000000U},
180499c2713SBiju Das * Security group 0 attribute setting for slave ports 9
181499c2713SBiju Das * Security group 1 attribute setting for slave ports 9
182499c2713SBiju Das * {SEC_GRP0COND9, 0x00000000U},
183499c2713SBiju Das * {SEC_GRP1COND9, 0x00000000U},
184499c2713SBiju Das * Security group 0 attribute setting for slave ports 10
185499c2713SBiju Das * Security group 1 attribute setting for slave ports 10
186499c2713SBiju Das * {SEC_GRP0COND10, 0x00000000U},
187499c2713SBiju Das * {SEC_GRP1COND10, 0x00000000U},
188499c2713SBiju Das * Security group 0 attribute setting for slave ports 11
189499c2713SBiju Das * Security group 1 attribute setting for slave ports 11
190499c2713SBiju Das * {SEC_GRP0COND11, 0x00000000U},
191499c2713SBiju Das * {SEC_GRP1COND11, 0x00000000U},
192499c2713SBiju Das * Security group 0 attribute setting for slave ports 12
193499c2713SBiju Das * Security group 1 attribute setting for slave ports 12
194499c2713SBiju Das * {SEC_GRP0COND12, 0x00000000U},
195499c2713SBiju Das * {SEC_GRP1COND12, 0x00000000U},
196499c2713SBiju Das * Security group 0 attribute setting for slave ports 13
197499c2713SBiju Das * Security group 1 attribute setting for slave ports 13
198499c2713SBiju Das * Bit22: RPC slave ports.
199499c2713SBiju Das * SecurityGroup3
200499c2713SBiju Das */
201499c2713SBiju Das #if (RCAR_RPC_HYPERFLASH_LOCKED == 1)
202499c2713SBiju Das { SEC_GRP0COND13, 0x00400000U },
203499c2713SBiju Das { SEC_GRP1COND13, 0x00400000U },
204499c2713SBiju Das #endif /* (RCAR_RPC_HYPERFLASH_LOCKED == 1) */
205499c2713SBiju Das /*
206499c2713SBiju Das * Security group 0 attribute setting for slave ports 14
207499c2713SBiju Das * Security group 1 attribute setting for slave ports 14
208499c2713SBiju Das * Bit26: System Timer (SCMT) slave ports
209499c2713SBiju Das * SecurityGroup3
210499c2713SBiju Das * Bit27: System Watchdog Timer (SWDT) slave ports
211499c2713SBiju Das * SecurityGroup3
212499c2713SBiju Das */
213499c2713SBiju Das { SEC_GRP0COND14, 0x0C000000U },
214499c2713SBiju Das { SEC_GRP1COND14, 0x0C000000U },
215499c2713SBiju Das /*
216499c2713SBiju Das * Security group 0 attribute setting for slave ports 15
217499c2713SBiju Das * Security group 1 attribute setting for slave ports 15
218499c2713SBiju Das * Bit13: RST slave ports
219499c2713SBiju Das * SecurityGroup3
220499c2713SBiju Das * Bit 7: Life Cycle 0 slave ports
221499c2713SBiju Das * SecurityGroup3
222499c2713SBiju Das * Bit 6: TDBG slave ports
223499c2713SBiju Das * SecurityGroup3
224499c2713SBiju Das */
225499c2713SBiju Das { SEC_GRP0COND15, 0x000000C0U },
226499c2713SBiju Das { SEC_GRP1COND15, 0x000000C0U },
227499c2713SBiju Das /*
228499c2713SBiju Das * Security write protection attribute setting slave ports 0
229499c2713SBiju Das * {SEC_READONLY0, 0x00000000U},
230499c2713SBiju Das * Security write protection attribute setting slave ports 1
231499c2713SBiju Das * {SEC_READONLY1, 0x00000000U},
232499c2713SBiju Das * Security write protection attribute setting slave ports 2
233499c2713SBiju Das * {SEC_READONLY2, 0x00000000U},
234499c2713SBiju Das * Security write protection attribute setting slave ports 3
235499c2713SBiju Das * {SEC_READONLY3, 0x00000000U},
236499c2713SBiju Das * Security write protection attribute setting slave ports 4
237499c2713SBiju Das * {SEC_READONLY4, 0x00000000U},
238499c2713SBiju Das * Security write protection attribute setting slave ports 5
239499c2713SBiju Das * {SEC_READONLY5, 0x00000000U},
240499c2713SBiju Das * Security write protection attribute setting slave ports 6
241499c2713SBiju Das * {SEC_READONLY6, 0x00000000U},
242499c2713SBiju Das * Security write protection attribute setting slave ports 7
243499c2713SBiju Das * {SEC_READONLY7, 0x00000000U},
244499c2713SBiju Das * Security write protection attribute setting slave ports 8
245499c2713SBiju Das * {SEC_READONLY8, 0x00000000U},
246499c2713SBiju Das * Security write protection attribute setting slave ports 9
247499c2713SBiju Das * {SEC_READONLY9, 0x00000000U},
248499c2713SBiju Das * Security write protection attribute setting slave ports 10
249499c2713SBiju Das * {SEC_READONLY10, 0x00000000U},
250499c2713SBiju Das * Security write protection attribute setting slave ports 11
251499c2713SBiju Das * {SEC_READONLY11, 0x00000000U},
252499c2713SBiju Das * Security write protection attribute setting slave ports 12
253499c2713SBiju Das * {SEC_READONLY12, 0x00000000U},
254499c2713SBiju Das * Security write protection attribute setting slave ports 13
255499c2713SBiju Das * {SEC_READONLY13, 0x00000000U},
256499c2713SBiju Das * Security write protection attribute setting slave ports 14
257499c2713SBiju Das * {SEC_READONLY14, 0x00000000U},
258499c2713SBiju Das * Security write protection attribute setting slave ports 15
259499c2713SBiju Das * {SEC_READONLY15, 0x00000000U}
260499c2713SBiju Das */
261499c2713SBiju Das };
262499c2713SBiju Das
263499c2713SBiju Das /* AXI settings */
264*e9afde1aSToshiyuki Ogasahara struct axi_t {
265499c2713SBiju Das uint32_t reg;
266499c2713SBiju Das uint32_t val;
267*e9afde1aSToshiyuki Ogasahara };
268*e9afde1aSToshiyuki Ogasahara
269*e9afde1aSToshiyuki Ogasahara static const struct axi_t axi[] = {
270499c2713SBiju Das /*
271499c2713SBiju Das * SRAM ptotection
272499c2713SBiju Das * AXI sram protected area division
273499c2713SBiju Das */
274499c2713SBiju Das {AXI_SPTDIVCR0, 0x0E0E6304U},
275499c2713SBiju Das {AXI_SPTDIVCR1, 0x0E0E6360U},
276499c2713SBiju Das {AXI_SPTDIVCR2, 0x0E0E6360U},
277499c2713SBiju Das {AXI_SPTDIVCR3, 0x0E0E6360U},
278499c2713SBiju Das {AXI_SPTDIVCR4, 0x0E0E6360U},
279499c2713SBiju Das {AXI_SPTDIVCR5, 0x0E0E6360U},
280499c2713SBiju Das {AXI_SPTDIVCR6, 0x0E0E6360U},
281499c2713SBiju Das {AXI_SPTDIVCR7, 0x0E0E6360U},
282499c2713SBiju Das {AXI_SPTDIVCR8, 0x0E0E6360U},
283499c2713SBiju Das {AXI_SPTDIVCR9, 0x0E0E6360U},
284499c2713SBiju Das {AXI_SPTDIVCR10, 0x0E0E6360U},
285499c2713SBiju Das {AXI_SPTDIVCR11, 0x0E0E6360U},
286499c2713SBiju Das {AXI_SPTDIVCR12, 0x0E0E6360U},
287499c2713SBiju Das {AXI_SPTDIVCR13, 0x0E0E6360U},
288499c2713SBiju Das {AXI_SPTDIVCR14, 0x0E0E6360U},
289499c2713SBiju Das /* AXI sram protected area setting */
290499c2713SBiju Das {AXI_SPTCR0, 0x0E000E0EU},
291499c2713SBiju Das {AXI_SPTCR1, 0x0E000000U},
292499c2713SBiju Das {AXI_SPTCR2, 0x0E000000U},
293499c2713SBiju Das {AXI_SPTCR3, 0x0E000000U},
294499c2713SBiju Das {AXI_SPTCR4, 0x0E000000U},
295499c2713SBiju Das {AXI_SPTCR5, 0x0E000000U},
296499c2713SBiju Das {AXI_SPTCR6, 0x0E000000U},
297499c2713SBiju Das {AXI_SPTCR7, 0x0E000000U},
298499c2713SBiju Das {AXI_SPTCR8, 0x0E000000U},
299499c2713SBiju Das {AXI_SPTCR9, 0x0E000000U},
300499c2713SBiju Das {AXI_SPTCR10, 0x0E000000U},
301499c2713SBiju Das {AXI_SPTCR11, 0x0E000000U},
302499c2713SBiju Das {AXI_SPTCR12, 0x0E000000U},
303499c2713SBiju Das {AXI_SPTCR13, 0x0E000000U},
304499c2713SBiju Das {AXI_SPTCR14, 0x0E000000U},
305499c2713SBiju Das {AXI_SPTCR15, 0x0E000000U}
306499c2713SBiju Das };
307499c2713SBiju Das
308*e9afde1aSToshiyuki Ogasahara static const struct axi_t axi_dram[] = {
309*e9afde1aSToshiyuki Ogasahara /*
310*e9afde1aSToshiyuki Ogasahara * DRAM protection
311*e9afde1aSToshiyuki Ogasahara * AXI dram protected area division
312*e9afde1aSToshiyuki Ogasahara */
313*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR0, 0x0E0403F0U},
314*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR1, 0x0E0407E0U},
315*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR2, 0x0E080000U},
316*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR3, 0x0E080000U},
317*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR4, 0x0E080000U},
318*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR5, 0x0E080000U},
319*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR6, 0x0E080000U},
320*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR7, 0x0E080000U},
321*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR8, 0x0E080000U},
322*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR9, 0x0E080000U},
323*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR10, 0x0E080000U},
324*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR11, 0x0E080000U},
325*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR12, 0x0E080000U},
326*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR13, 0x0E080000U},
327*e9afde1aSToshiyuki Ogasahara {AXI_DPTDIVCR14, 0x0E080000U},
328*e9afde1aSToshiyuki Ogasahara /* AXI dram protected area setting */
329*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR0, 0x0E000000U},
330*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR1, 0x0E000E0EU},
331*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR2, 0x0E000000U},
332*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR3, 0x0E000000U},
333*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR4, 0x0E000000U},
334*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR5, 0x0E000000U},
335*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR6, 0x0E000000U},
336*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR7, 0x0E000000U},
337*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR8, 0x0E000000U},
338*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR9, 0x0E000000U},
339*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR10, 0x0E000000U},
340*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR11, 0x0E000000U},
341*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR12, 0x0E000000U},
342*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR13, 0x0E000000U},
343*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR14, 0x0E000000U},
344*e9afde1aSToshiyuki Ogasahara {AXI_DPTCR15, 0x0E000000U},
345*e9afde1aSToshiyuki Ogasahara /* AXI sram protected area setting */
346*e9afde1aSToshiyuki Ogasahara {AXI_SPTCR15, 0x0E000000U}
347*e9afde1aSToshiyuki Ogasahara };
348*e9afde1aSToshiyuki Ogasahara
lifec_security_setting(void)349499c2713SBiju Das static void lifec_security_setting(void)
350499c2713SBiju Das {
351499c2713SBiju Das uint32_t i;
352499c2713SBiju Das
353499c2713SBiju Das for (i = 0; i < ARRAY_SIZE(lifec); i++)
354499c2713SBiju Das mmio_write_32(lifec[i].reg, lifec[i].val);
355499c2713SBiju Das }
356499c2713SBiju Das
357*e9afde1aSToshiyuki Ogasahara /* SRAM protection setting */
axi_security_setting(void)358499c2713SBiju Das static void axi_security_setting(void)
359499c2713SBiju Das {
360499c2713SBiju Das uint32_t i;
361499c2713SBiju Das
362499c2713SBiju Das for (i = 0; i < ARRAY_SIZE(axi); i++)
363499c2713SBiju Das mmio_write_32(axi[i].reg, axi[i].val);
364499c2713SBiju Das }
365499c2713SBiju Das
366*e9afde1aSToshiyuki Ogasahara /* DRAM protection setting */
bl2_ram_security_setting_finish(void)367*e9afde1aSToshiyuki Ogasahara void bl2_ram_security_setting_finish(void)
368*e9afde1aSToshiyuki Ogasahara {
369*e9afde1aSToshiyuki Ogasahara uint32_t i;
370*e9afde1aSToshiyuki Ogasahara
371*e9afde1aSToshiyuki Ogasahara for (i = 0; i < ARRAY_SIZE(axi_dram); i++)
372*e9afde1aSToshiyuki Ogasahara mmio_write_32(axi_dram[i].reg, axi_dram[i].val);
373*e9afde1aSToshiyuki Ogasahara }
374*e9afde1aSToshiyuki Ogasahara
bl2_secure_setting(void)375499c2713SBiju Das void bl2_secure_setting(void)
376499c2713SBiju Das {
377499c2713SBiju Das lifec_security_setting();
378499c2713SBiju Das axi_security_setting();
379499c2713SBiju Das rcar_micro_delay(10U);
380499c2713SBiju Das }
381