1 /* 2 // Copyright (C) 2022 Beken Corporation 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef _BK_SEC_H_ 16 #define _BK_SEC_H_ 17 18 #if (CONFIG_SOC_BK7251) 19 20 #define SECURITY_BASE (0x00806000UL) 21 22 #define SECURITY_AES_KEY0 (SECURITY_BASE + 0x00 * 4) 23 #define SECURITY_AES_KEY0_MASK 0xFFFFFFFFUL 24 //#define SECURITY_AES_KEY0 (*((volatile unsigned long *) SECURITY_AES_KEY0)) 25 26 27 #define SECURITY_AES_KEY1 (SECURITY_BASE + 0x01 * 4) 28 #define SECURITY_AES_KEY1_MASK 0xFFFFFFFFUL 29 //#define SECURITY_AES_KEY1 (*((volatile unsigned long *) SECURITY_AES_KEY1)) 30 31 32 #define SECURITY_AES_KEY2 (SECURITY_BASE + 0x02 * 4) 33 #define SECURITY_AES_KEY2_MASK 0xFFFFFFFFUL 34 //#define SECURITY_AES_KEY2 (*((volatile unsigned long *) SECURITY_AES_KEY2)) 35 36 37 #define SECURITY_AES_KEY3 (SECURITY_BASE + 0x03 * 4) 38 #define SECURITY_AES_KEY3_MASK 0xFFFFFFFFUL 39 //#define SECURITY_AES_KEY3 (*((volatile unsigned long *) SECURITY_AES_KEY3)) 40 41 42 #define SECURITY_AES_KEY4 (SECURITY_BASE + 0x04 * 4) 43 #define SECURITY_AES_KEY4_MASK 0xFFFFFFFFUL 44 //#define SECURITY_AES_KEY4 (*((volatile unsigned long *) SECURITY_AES_KEY4)) 45 46 47 #define SECURITY_AES_KEY5 (SECURITY_BASE + 0x05 * 4) 48 #define SECURITY_AES_KEY5_MASK 0xFFFFFFFFUL 49 //#define SECURITY_AES_KEY5 (*((volatile unsigned long *) SECURITY_AES_KEY5)) 50 51 52 #define SECURITY_AES_KEY6 (SECURITY_BASE + 0x06 * 4) 53 #define SECURITY_AES_KEY6_MASK 0xFFFFFFFFUL 54 //#define SECURITY_AES_KEY6 (*((volatile unsigned long *) SECURITY_AES_KEY6)) 55 56 57 #define SECURITY_AES_KEY7 (SECURITY_BASE + 0x07 * 4) 58 #define SECURITY_AES_KEY7_MASK 0xFFFFFFFFUL 59 //#define SECURITY_AES_KEY7 (*((volatile unsigned long *) SECURITY_AES_KEY7)) 60 61 62 #define SECURITY_AES_KEY_X(x) (SECURITY_BASE + (x) * 4) 63 #define SECURITY_AES_KEY_X_MASK 0xFFFFFFFFUL 64 //#define SECURITY_AES_KEY_X(x) (*((volatile unsigned long *) SECURITY_AES_KEY_X(x))) 65 66 67 #define SECURITY_AES_CTRL (SECURITY_BASE + 0x08 * 4) 68 #define SECURITY_AES_INT_EN_BIT (1 << 3) 69 #define SECURITY_AES_AUTEO_BIT (1 << 2) 70 #define SECURITY_AES_NEXT_BIT (1 << 1) 71 #define SECURITY_AES_INIT_BIT (1 << 0) 72 //#define SECURITY_AES_CTRL (*((volatile unsigned long *) SECURITY_AES_CTRL)) 73 74 75 #define SECURITY_AES_STATUS (SECURITY_BASE + 0x09 * 4) 76 #define SECURITY_AES_INT_FLAG (1 << 2) 77 #define SECURITY_AES_VALID (1 << 1) 78 #define SECURITY_AES_READY (1 << 0) 79 //#define SECURITY_AES_STATUS (*((volatile unsigned long *) SECURITY_AES_STATUS)) 80 81 82 #define SECURITY_AES_CONFIG (SECURITY_BASE + 0x0A * 4) 83 #define SECURITY_AES_MODE_POSI (1) 84 #define SECURITY_AES_MODE_MASK (0x3) 85 #define SECURITY_AES_ENCODE_BIT (1 << 0) 86 87 //#define SECURITY_AES_CONFIG (*((volatile unsigned long *) SECURITY_AES_CONFIG)) 88 89 90 #define SECURITY_AES_BLOCK0 (SECURITY_BASE + 0x0C * 4) 91 #define SECURITY_AES_BLOCK0_MASK 0xFFFFFFFFUL 92 //#define SECURITY_AES_BLOCK0 (*((volatile unsigned long *) SECURITY_AES_BLOCK0)) 93 94 95 #define SECURITY_AES_BLOCK1 (SECURITY_BASE + 0x0D * 4) 96 #define SECURITY_AES_BLOCK1_MASK 0xFFFFFFFFUL 97 //#define SECURITY_AES_BLOCK1 (*((volatile unsigned long *) SECURITY_AES_BLOCK1)) 98 99 100 #define SECURITY_AES_BLOCK2 (SECURITY_BASE + 0x0E * 4) 101 #define SECURITY_AES_BLOCK2_MASK 0xFFFFFFFFUL 102 //#define SECURITY_AES_BLOCK2 (*((volatile unsigned long *) SECURITY_AES_BLOCK2)) 103 104 105 #define SECURITY_AES_BLOCK3 (SECURITY_BASE + 0x0F * 4) 106 #define SECURITY_AES_BLOCK3_MASK 0xFFFFFFFFUL 107 //#define SECURITY_AES_BLOCK3 (*((volatile unsigned long *) SECURITY_AES_BLOCK3)) 108 109 110 #define SECURITY_AES_BLOCK_X(x) (SECURITY_BASE + (0x0C + (x)) * 4) 111 #define SECURITY_AES_BLOCK_X_MASK 0xFFFFFFFFUL 112 //#define SECURITY_AES_BLOCK_X(x) (*((volatile unsigned long *) SECURITY_AES_BLOCK_X(x))) 113 114 115 #define SECURITY_AES_RESULT0 (SECURITY_BASE + 0x10 * 4) 116 #define SECURITY_AES_RESULT0_MASK 0xFFFFFFFFUL 117 //#define SECURITY_AES_RESULT0 (*((volatile unsigned long *) SECURITY_AES_RESULT0)) 118 119 120 #define SECURITY_AES_RESULT1 (SECURITY_BASE + 0x11 * 4) 121 #define SECURITY_AES_RESULT1_MASK 0xFFFFFFFFUL 122 //#define SECURITY_AES_RESULT1 (*((volatile unsigned long *) SECURITY_AES_RESULT1)) 123 124 125 #define SECURITY_AES_RESULT2 (SECURITY_BASE + 0x12 * 4) 126 #define SECURITY_AES_RESULT2_MASK 0xFFFFFFFFUL 127 //#define SECURITY_AES_RESULT2 (*((volatile unsigned long *) SECURITY_AES_RESULT2)) 128 129 130 #define SECURITY_AES_RESULT3 (SECURITY_BASE + 0x13 * 4) 131 #define SECURITY_AES_RESULT3_MASK 0xFFFFFFFFUL 132 //#define SECURITY_AES_RESULT3 (*((volatile unsigned long *) SECURITY_AES_RESULT3)) 133 134 135 #define SECURITY_AES_RESULT_X(x) (SECURITY_BASE + (0x10 + (x)) * 4) 136 #define SECURITY_AES_RESULT_X_MASK 0xFFFFFFFFUL 137 //#define SECURITY_AES_RESULT_X(x) (*((volatile unsigned long *) SECURITY_AES_RESULT_X(x))) 138 139 140 141 #define SECURITY_SHA_BLOCK31 (SECURITY_BASE + 0x40 * 4) 142 #define SECURITY_SHA_BLOCK31_MASK 0xFFFFFFFFUL 143 //#define SECURITY_SHA_BLOCK31 (*((volatile unsigned long *) SECURITY_SHA_BLOCK31)) 144 145 146 #define SECURITY_SHA_BLOCK30 (SECURITY_BASE + 0x41 * 4) 147 #define SECURITY_SHA_BLOCK30_MASK 0xFFFFFFFFUL 148 //#define SECURITY_SHA_BLOCK30 (*((volatile unsigned long *) SECURITY_SHA_BLOCK30)) 149 150 151 #define SECURITY_SHA_BLOCK29 (SECURITY_BASE + 0x42 * 4) 152 #define SECURITY_SHA_BLOCK29_MASK 0xFFFFFFFFUL 153 //#define SECURITY_SHA_BLOCK29 (*((volatile unsigned long *) SECURITY_SHA_BLOCK29)) 154 155 156 #define SECURITY_SHA_BLOCK28 (SECURITY_BASE + 0x43 * 4) 157 #define SECURITY_SHA_BLOCK28_MASK 0xFFFFFFFFUL 158 //#define SECURITY_SHA_BLOCK28 (*((volatile unsigned long *) SECURITY_SHA_BLOCK28)) 159 160 161 #define SECURITY_SHA_BLOCK27 (SECURITY_BASE + 0x44 * 4) 162 #define SECURITY_SHA_BLOCK27_MASK 0xFFFFFFFFUL 163 //#define SECURITY_SHA_BLOCK27 (*((volatile unsigned long *) SECURITY_SHA_BLOCK27)) 164 165 166 #define SECURITY_SHA_BLOCK0 (SECURITY_BASE + 0x5F * 4) 167 #define SECURITY_SHA_BLOCK0_MASK 0xFFFFFFFFUL 168 //#define SECURITY_SHA_BLOCK0 (*((volatile unsigned long *) SECURITY_SHA_BLOCK0)) 169 170 171 #define SECURITY_SHA_BLOCK_X(x) (SECURITY_BASE + (0x5F - (x)) * 4) 172 #define SECURITY_SHA_BLOCK_X_MASK 0xFFFFFFFFUL 173 //#define SECURITY_SHA_BLOCK_X(x) (*((volatile unsigned long *) SECURITY_SHA_BLOCK_X(x))) 174 175 176 #define SECURITY_SHA_DIGEST15 (SECURITY_BASE + 0x60 * 4) 177 #define SECURITY_SHA_DIGEST15_MASK 0xFFFFFFFFUL 178 //#define SECURITY_SHA_DIGEST15 (*((volatile unsigned long *) SECURITY_SHA_BLOCK15)) 179 180 181 #define SECURITY_SHA_DIGEST0 (SECURITY_BASE + 0x6F * 4) 182 #define SECURITY_SHA_DIGEST0_MASK 0xFFFFFFFFUL 183 //#define SECURITY_SHA_DIGEST0 (*((volatile unsigned long *) SECURITY_SHA_BLOCK0)) 184 185 186 #define SECURITY_SHA_DIGEST_X(x) (SECURITY_BASE + (0x6F - (x)) * 4) 187 #define SECURITY_SHA_DIGEST_X_MASK 0xFFFFFFFFUL 188 //#define SECURITY_SHA_DIGEST_X(x) (*((volatile unsigned long *) SECURITY_SHA_DIGEST_X(x))) 189 190 191 #define SECURITY_SHA_CTRL (SECURITY_BASE + 0x70 * 4) 192 #define SECURITY_SHA_CTRL_MASK 0xFFFFFFFFUL 193 //#define SECURITY_SHA_CTRL (*((volatile unsigned long *) SECURITY_SHA_CTRL)) 194 195 196 #define SECURITY_SHA_STATUS (SECURITY_BASE + 0x71 * 4) 197 #define SECURITY_SHA_STATUS_MASK 0xFFFFFFFFUL 198 //#define SECURITY_SHA_STATUS (*((volatile unsigned long *) SECURITY_SHA_STATUS)) 199 200 201 #define SECURITY_SHA_CONFIG (SECURITY_BASE + 0x72 * 4) 202 #define SECURITY_SHA_CONFIG_MASK 0xFFFFFFFFUL 203 //#define SECURITY_SHA_CONFIG (*((volatile unsigned long *) SECURITY_SHA_CONFIG)) 204 205 206 #define SECURITY_RSA_CONFIG (SECURITY_BASE + 0x80 * 4) 207 #define SECURITY_RSA_CONFIG_MASK 0xFFFFFFFFUL 208 //#define SECURITY_RSA_CONFIG (*((volatile unsigned long *) SECURITY_RSA_CONFIG)) 209 210 211 #define SECURITY_RSA_STATE (SECURITY_BASE + 0x81 * 4) 212 #define SECURITY_RSA_STATE_MASK 0xFFFFFFFFUL 213 //#define SECURITY_RSA_STATE (*((volatile unsigned long *) SECURITY_RSA_STATE)) 214 215 216 #define SECURITY_RSA_N0_PRIME_L (SECURITY_BASE + 0x82 * 4) 217 #define SECURITY_RSA_N0_PRIME_L_MASK 0xFFFFFFFFUL 218 //#define SECURITY_RSA_N0_PRIME_L (*((volatile unsigned long *) SECURITY_RSA_N0_PRIME_L)) 219 220 221 #define SECURITY_RSA_N0_PRIME_H (SECURITY_BASE + 0x83 * 4) 222 #define SECURITY_RSA_N0_PRIME_H_MASK 0xFFFFFFFFUL 223 //#define SECURITY_RSA_N0_PRIME_H (*((volatile unsigned long *) SECURITY_RSA_N0_PRIME_H)) 224 225 226 #define SECURITY_RSA_LENGTH (SECURITY_BASE + 0x84 * 4) 227 #define SECURITY_RSA_LENGTH_MASK 0xFFFFFFFFUL 228 //#define SECURITY_RSA_LENGTH (*((volatile unsigned long *) SECURITY_RSA_LENGTH)) 229 230 231 #define SECURITY_RSA_N_RST (SECURITY_BASE + 0x88 * 4) 232 #define SECURITY_RSA_N_RST_MASK 0xFFFFFFFFUL 233 //#define SECURITY_RSA_N_RST (*((volatile unsigned long *) SECURITY_RSA_N_RST)) 234 235 236 #define SECURITY_RSA_N_MEM_DATA (SECURITY_BASE + 0x89 * 4) 237 #define SECURITY_RSA_N_MEM_DATA_MASK 0xFFFFFFFFUL 238 //#define SECURITY_RSA_N_MEM_DATA (*((volatile unsigned long *) SECURITY_RSA_N_MEM_DATA)) 239 240 241 #define SECURITY_RSA_E_RST (SECURITY_BASE + 0x8A * 4) 242 #define SECURITY_RSA_E_RST_MASK 0xFFFFFFFFUL 243 //#define SECURITY_RSA_E_RST (*((volatile unsigned long *) SECURITY_RSA_E_RST)) 244 245 246 #define SECURITY_RSA_E_MEM_DATA (SECURITY_BASE + 0x8B * 4) 247 #define SECURITY_RSA_E_MEM_DATA_MASK 0xFFFFFFFFUL 248 //#define SECURITY_RSA_E_MEM_DATA (*((volatile unsigned long *) SECURITY_RSA_E_MEM_DATA)) 249 250 251 #define SECURITY_RSA_M_RST (SECURITY_BASE + 0x8C * 4) 252 #define SECURITY_RSA_M_RST_MASK 0xFFFFFFFFUL 253 //#define SECURITY_RSA_M_RST (*((volatile unsigned long *) SECURITY_RSA_M_RST)) 254 255 256 #define SECURITY_RSA_M_MEM_DATA (SECURITY_BASE + 0x8D * 4) 257 #define SECURITY_RSA_M_MEM_DATA_MASK 0xFFFFFFFFUL 258 //#define SECURITY_RSA_M_MEM_DATA (*((volatile unsigned long *) SECURITY_RSA_M_MEM_DATA)) 259 260 261 #define SECURITY_RSA_R_RST (SECURITY_BASE + 0x8E * 4) 262 #define SECURITY_RSA_R_RST_MASK 0xFFFFFFFFUL 263 //#define SECURITY_RSA_R_RST (*((volatile unsigned long *) SECURITY_RSA_R_RST)) 264 265 266 #define SECURITY_RSA_R_MEM_DATA (SECURITY_BASE + 0x8F * 4) 267 #define SECURITY_RSA_R_MEM_DATA_MASK 0xFFFFFFFFUL 268 //#define SECURITY_RSA_R_MEM_DATA (*((volatile unsigned long *) SECURITY_RSA_R_MEM_DATA)) 269 270 271 #define SECURITY_RSA_T_RST (SECURITY_BASE + 0x90 * 4) 272 #define SECURITY_RSA_T_RST_MASK 0xFFFFFFFFUL 273 //#define SECURITY_RSA_T_RST (*((volatile unsigned long *) SECURITY_RSA_T_RST)) 274 275 276 #define SECURITY_RSA_T_MEM_DATA (SECURITY_BASE + 0x91 * 4) 277 #define SECURITY_RSA_T_MEM_DATA_MASK 0xFFFFFFFFUL 278 //#define SECURITY_RSA_T_MEM_DATA (*((volatile unsigned long *) SECURITY_RSA_T_MEM_DATA)) 279 280 281 #define SECURITY_RSA_C_RST (SECURITY_BASE + 0x92 * 4) 282 #define SECURITY_RSA_C_RST_MASK 0xFFFFFFFFUL 283 //#define SECURITY_RSA_C_RST (*((volatile unsigned long *) SECURITY_RSA_C_RST)) 284 285 286 #define SECURITY_RSA_C_MEM_DATA (SECURITY_BASE + 0x93 * 4) 287 #define SECURITY_RSA_C_MEM_DATA_MASK 0xFFFFFFFFUL 288 //#define SECURITY_RSA_C_MEM_DATA (*((volatile unsigned long *) SECURITY_RSA_C_MEM_DATA)) 289 290 #endif 291 292 #endif 293 294