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