1 //------------------------------------------------------------------------------ 2 // Copyright 2012 (c) Silicon Laboratories Inc. 3 // 4 // SPDX-License-Identifier: Zlib 5 // 6 // This siHAL software is provided 'as-is', without any express or implied 7 // warranty. In no event will the authors be held liable for any damages 8 // arising from the use of this software. 9 // 10 // Permission is granted to anyone to use this software for any purpose, 11 // including commercial applications, and to alter it and redistribute it 12 // freely, subject to the following restrictions: 13 // 14 // 1. The origin of this software must not be misrepresented; you must not 15 // claim that you wrote the original software. If you use this software 16 // in a product, an acknowledgment in the product documentation would be 17 // appreciated but is not required. 18 // 2. Altered source versions must be plainly marked as such, and must not be 19 // misrepresented as being the original software. 20 // 3. This notice may not be removed or altered from any source distribution. 21 //------------------------------------------------------------------------------ 22 // 23 // Script: 0.57 24 // Version: 1 25 26 #ifndef __SI32_AES_A_REGISTERS_H__ 27 #define __SI32_AES_A_REGISTERS_H__ 28 29 #include <stdint.h> 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 struct SI32_AES_A_CONTROL_Struct 36 { 37 union 38 { 39 struct 40 { 41 // AES Transfer Start 42 volatile uint32_t XFRSTA: 1; 43 // Key Capture Enable 44 volatile uint32_t KEYCPEN: 1; 45 // Encryption/Decryption Mode 46 volatile uint32_t EDMD: 1; 47 uint32_t reserved0: 5; 48 // Software Mode Enable 49 volatile uint32_t SWMDEN: 1; 50 // Bypass AES Operation Enable 51 volatile uint32_t BEN: 1; 52 // XOR Enable 53 volatile uint32_t XOREN: 2; 54 // Hardware Counter Mode Enable 55 volatile uint32_t HCTREN: 1; 56 // Hardware Cipher-Block Chaining Mode Enable 57 volatile uint32_t HCBCEN: 1; 58 uint32_t reserved1: 2; 59 // Keystore Size Select 60 volatile uint32_t KEYSIZE: 2; 61 uint32_t reserved2: 6; 62 // Error Interrupt Enable 63 volatile uint32_t ERRIEN: 1; 64 // Operation Complete Interrupt Enable 65 volatile uint32_t OCIEN: 1; 66 uint32_t reserved3: 4; 67 // AES Debug Mode 68 volatile uint32_t DBGMD: 1; 69 // Module Soft Reset 70 volatile uint32_t RESET: 1; 71 }; 72 volatile uint32_t U32; 73 }; 74 }; 75 76 #define SI32_AES_A_CONTROL_XFRSTA_MASK 0x00000001 77 #define SI32_AES_A_CONTROL_XFRSTA_SHIFT 0 78 // Start the AES operation. 79 #define SI32_AES_A_CONTROL_XFRSTA_START_VALUE 1 80 #define SI32_AES_A_CONTROL_XFRSTA_START_U32 \ 81 (SI32_AES_A_CONTROL_XFRSTA_START_VALUE << SI32_AES_A_CONTROL_XFRSTA_SHIFT) 82 83 #define SI32_AES_A_CONTROL_KEYCPEN_MASK 0x00000002 84 #define SI32_AES_A_CONTROL_KEYCPEN_SHIFT 1 85 // Disable key capture. 86 #define SI32_AES_A_CONTROL_KEYCPEN_DISABLED_VALUE 0 87 #define SI32_AES_A_CONTROL_KEYCPEN_DISABLED_U32 \ 88 (SI32_AES_A_CONTROL_KEYCPEN_DISABLED_VALUE << SI32_AES_A_CONTROL_KEYCPEN_SHIFT) 89 // Enable key capture. 90 #define SI32_AES_A_CONTROL_KEYCPEN_ENABLED_VALUE 1 91 #define SI32_AES_A_CONTROL_KEYCPEN_ENABLED_U32 \ 92 (SI32_AES_A_CONTROL_KEYCPEN_ENABLED_VALUE << SI32_AES_A_CONTROL_KEYCPEN_SHIFT) 93 94 #define SI32_AES_A_CONTROL_EDMD_MASK 0x00000004 95 #define SI32_AES_A_CONTROL_EDMD_SHIFT 2 96 // AES module performs a decryption operation 97 #define SI32_AES_A_CONTROL_EDMD_DECRYPT_VALUE 0 98 #define SI32_AES_A_CONTROL_EDMD_DECRYPT_U32 \ 99 (SI32_AES_A_CONTROL_EDMD_DECRYPT_VALUE << SI32_AES_A_CONTROL_EDMD_SHIFT) 100 // AES module performs an encryption operation. 101 #define SI32_AES_A_CONTROL_EDMD_ENCRYPT_VALUE 1 102 #define SI32_AES_A_CONTROL_EDMD_ENCRYPT_U32 \ 103 (SI32_AES_A_CONTROL_EDMD_ENCRYPT_VALUE << SI32_AES_A_CONTROL_EDMD_SHIFT) 104 105 #define SI32_AES_A_CONTROL_SWMDEN_MASK 0x00000100 106 #define SI32_AES_A_CONTROL_SWMDEN_SHIFT 8 107 // Disable software mode. 108 #define SI32_AES_A_CONTROL_SWMDEN_DISABLED_VALUE 0 109 #define SI32_AES_A_CONTROL_SWMDEN_DISABLED_U32 \ 110 (SI32_AES_A_CONTROL_SWMDEN_DISABLED_VALUE << SI32_AES_A_CONTROL_SWMDEN_SHIFT) 111 // Enable software mode. 112 #define SI32_AES_A_CONTROL_SWMDEN_ENABLED_VALUE 1 113 #define SI32_AES_A_CONTROL_SWMDEN_ENABLED_U32 \ 114 (SI32_AES_A_CONTROL_SWMDEN_ENABLED_VALUE << SI32_AES_A_CONTROL_SWMDEN_SHIFT) 115 116 #define SI32_AES_A_CONTROL_BEN_MASK 0x00000200 117 #define SI32_AES_A_CONTROL_BEN_SHIFT 9 118 // Do not bypass AES operations. 119 #define SI32_AES_A_CONTROL_BEN_DISABLED_VALUE 0 120 #define SI32_AES_A_CONTROL_BEN_DISABLED_U32 \ 121 (SI32_AES_A_CONTROL_BEN_DISABLED_VALUE << SI32_AES_A_CONTROL_BEN_SHIFT) 122 // Bypass AES operations. 123 #define SI32_AES_A_CONTROL_BEN_ENABLED_VALUE 1 124 #define SI32_AES_A_CONTROL_BEN_ENABLED_U32 \ 125 (SI32_AES_A_CONTROL_BEN_ENABLED_VALUE << SI32_AES_A_CONTROL_BEN_SHIFT) 126 127 #define SI32_AES_A_CONTROL_XOREN_MASK 0x00000C00 128 #define SI32_AES_A_CONTROL_XOREN_SHIFT 10 129 // Disable the XOR paths. 130 #define SI32_AES_A_CONTROL_XOREN_XOR_DISABLED_VALUE 0 131 #define SI32_AES_A_CONTROL_XOREN_XOR_DISABLED_U32 \ 132 (SI32_AES_A_CONTROL_XOREN_XOR_DISABLED_VALUE << SI32_AES_A_CONTROL_XOREN_SHIFT) 133 // Enable the XOR input path, disable the XOR output path. 134 #define SI32_AES_A_CONTROL_XOREN_XOR_INPUT_VALUE 1 135 #define SI32_AES_A_CONTROL_XOREN_XOR_INPUT_U32 \ 136 (SI32_AES_A_CONTROL_XOREN_XOR_INPUT_VALUE << SI32_AES_A_CONTROL_XOREN_SHIFT) 137 // Disable the XOR input path, enable the XOR output path. 138 #define SI32_AES_A_CONTROL_XOREN_XOR_OUTPUT_VALUE 2 139 #define SI32_AES_A_CONTROL_XOREN_XOR_OUTPUT_U32 \ 140 (SI32_AES_A_CONTROL_XOREN_XOR_OUTPUT_VALUE << SI32_AES_A_CONTROL_XOREN_SHIFT) 141 142 #define SI32_AES_A_CONTROL_HCTREN_MASK 0x00001000 143 #define SI32_AES_A_CONTROL_HCTREN_SHIFT 12 144 // Disable hardware counter mode. 145 #define SI32_AES_A_CONTROL_HCTREN_DISABLED_VALUE 0 146 #define SI32_AES_A_CONTROL_HCTREN_DISABLED_U32 \ 147 (SI32_AES_A_CONTROL_HCTREN_DISABLED_VALUE << SI32_AES_A_CONTROL_HCTREN_SHIFT) 148 // Enable hardware counter mode. 149 #define SI32_AES_A_CONTROL_HCTREN_ENABLED_VALUE 1 150 #define SI32_AES_A_CONTROL_HCTREN_ENABLED_U32 \ 151 (SI32_AES_A_CONTROL_HCTREN_ENABLED_VALUE << SI32_AES_A_CONTROL_HCTREN_SHIFT) 152 153 #define SI32_AES_A_CONTROL_HCBCEN_MASK 0x00002000 154 #define SI32_AES_A_CONTROL_HCBCEN_SHIFT 13 155 // Disable hardware cipher-block chaining (CBC) mode. 156 #define SI32_AES_A_CONTROL_HCBCEN_DISABLED_VALUE 0 157 #define SI32_AES_A_CONTROL_HCBCEN_DISABLED_U32 \ 158 (SI32_AES_A_CONTROL_HCBCEN_DISABLED_VALUE << SI32_AES_A_CONTROL_HCBCEN_SHIFT) 159 // Enable hardware cipher-block chaining (CBC) mode. 160 #define SI32_AES_A_CONTROL_HCBCEN_ENABLED_VALUE 1 161 #define SI32_AES_A_CONTROL_HCBCEN_ENABLED_U32 \ 162 (SI32_AES_A_CONTROL_HCBCEN_ENABLED_VALUE << SI32_AES_A_CONTROL_HCBCEN_SHIFT) 163 164 #define SI32_AES_A_CONTROL_KEYSIZE_MASK 0x00030000 165 #define SI32_AES_A_CONTROL_KEYSIZE_SHIFT 16 166 // Key is composed of 128 bits. 167 #define SI32_AES_A_CONTROL_KEYSIZE_KEY128_VALUE 0 168 #define SI32_AES_A_CONTROL_KEYSIZE_KEY128_U32 \ 169 (SI32_AES_A_CONTROL_KEYSIZE_KEY128_VALUE << SI32_AES_A_CONTROL_KEYSIZE_SHIFT) 170 // Key is composed of 192 bits. 171 #define SI32_AES_A_CONTROL_KEYSIZE_KEY192_VALUE 1 172 #define SI32_AES_A_CONTROL_KEYSIZE_KEY192_U32 \ 173 (SI32_AES_A_CONTROL_KEYSIZE_KEY192_VALUE << SI32_AES_A_CONTROL_KEYSIZE_SHIFT) 174 // Key is composed of 256 bits. 175 #define SI32_AES_A_CONTROL_KEYSIZE_KEY256_VALUE 2 176 #define SI32_AES_A_CONTROL_KEYSIZE_KEY256_U32 \ 177 (SI32_AES_A_CONTROL_KEYSIZE_KEY256_VALUE << SI32_AES_A_CONTROL_KEYSIZE_SHIFT) 178 179 #define SI32_AES_A_CONTROL_ERRIEN_MASK 0x01000000 180 #define SI32_AES_A_CONTROL_ERRIEN_SHIFT 24 181 // Disable the error interrupt. 182 #define SI32_AES_A_CONTROL_ERRIEN_DISABLED_VALUE 0 183 #define SI32_AES_A_CONTROL_ERRIEN_DISABLED_U32 \ 184 (SI32_AES_A_CONTROL_ERRIEN_DISABLED_VALUE << SI32_AES_A_CONTROL_ERRIEN_SHIFT) 185 // Enable the error interrupt. 186 #define SI32_AES_A_CONTROL_ERRIEN_ENABLED_VALUE 1 187 #define SI32_AES_A_CONTROL_ERRIEN_ENABLED_U32 \ 188 (SI32_AES_A_CONTROL_ERRIEN_ENABLED_VALUE << SI32_AES_A_CONTROL_ERRIEN_SHIFT) 189 190 #define SI32_AES_A_CONTROL_OCIEN_MASK 0x02000000 191 #define SI32_AES_A_CONTROL_OCIEN_SHIFT 25 192 // Disable the operation complete interrupt. 193 #define SI32_AES_A_CONTROL_OCIEN_DISABLED_VALUE 0 194 #define SI32_AES_A_CONTROL_OCIEN_DISABLED_U32 \ 195 (SI32_AES_A_CONTROL_OCIEN_DISABLED_VALUE << SI32_AES_A_CONTROL_OCIEN_SHIFT) 196 // Enable the operation complete interrupt. 197 #define SI32_AES_A_CONTROL_OCIEN_ENABLED_VALUE 1 198 #define SI32_AES_A_CONTROL_OCIEN_ENABLED_U32 \ 199 (SI32_AES_A_CONTROL_OCIEN_ENABLED_VALUE << SI32_AES_A_CONTROL_OCIEN_SHIFT) 200 201 #define SI32_AES_A_CONTROL_DBGMD_MASK 0x40000000 202 #define SI32_AES_A_CONTROL_DBGMD_SHIFT 30 203 // A debug breakpoint will cause the AES module to halt. 204 #define SI32_AES_A_CONTROL_DBGMD_HALT_VALUE 0 205 #define SI32_AES_A_CONTROL_DBGMD_HALT_U32 \ 206 (SI32_AES_A_CONTROL_DBGMD_HALT_VALUE << SI32_AES_A_CONTROL_DBGMD_SHIFT) 207 // The AES module will continue to operate while the core is halted in debug mode. 208 #define SI32_AES_A_CONTROL_DBGMD_RUN_VALUE 1 209 #define SI32_AES_A_CONTROL_DBGMD_RUN_U32 \ 210 (SI32_AES_A_CONTROL_DBGMD_RUN_VALUE << SI32_AES_A_CONTROL_DBGMD_SHIFT) 211 212 #define SI32_AES_A_CONTROL_RESET_MASK 0x80000000 213 #define SI32_AES_A_CONTROL_RESET_SHIFT 31 214 // AES module is not in soft reset. 215 #define SI32_AES_A_CONTROL_RESET_INACTIVE_VALUE 0U 216 #define SI32_AES_A_CONTROL_RESET_INACTIVE_U32 \ 217 (SI32_AES_A_CONTROL_RESET_INACTIVE_VALUE << SI32_AES_A_CONTROL_RESET_SHIFT) 218 // AES module is in soft reset and none of the module bits can be accessed. 219 #define SI32_AES_A_CONTROL_RESET_ACTIVE_VALUE 1U 220 #define SI32_AES_A_CONTROL_RESET_ACTIVE_U32 \ 221 (SI32_AES_A_CONTROL_RESET_ACTIVE_VALUE << SI32_AES_A_CONTROL_RESET_SHIFT) 222 223 224 225 struct SI32_AES_A_XFRSIZE_Struct 226 { 227 union 228 { 229 struct 230 { 231 // Transfer Size 232 volatile uint32_t XFRSIZE_BITS: 11; 233 uint32_t reserved0: 21; 234 }; 235 volatile uint32_t U32; 236 }; 237 }; 238 239 #define SI32_AES_A_XFRSIZE_XFRSIZE_MASK 0x000007FF 240 #define SI32_AES_A_XFRSIZE_XFRSIZE_SHIFT 0 241 242 243 244 struct SI32_AES_A_DATAFIFO_Struct 245 { 246 union 247 { 248 struct 249 { 250 // Input/Output Data FIFO Access 251 volatile uint32_t DATAFIFO_BITS; 252 }; 253 volatile uint32_t U32; 254 }; 255 }; 256 257 #define SI32_AES_A_DATAFIFO_DATAFIFO_MASK 0xFFFFFFFF 258 #define SI32_AES_A_DATAFIFO_DATAFIFO_SHIFT 0 259 260 261 262 struct SI32_AES_A_XORFIFO_Struct 263 { 264 union 265 { 266 struct 267 { 268 // XOR Data FIFO Access 269 volatile uint32_t XORFIFO_BITS; 270 }; 271 volatile uint32_t U32; 272 }; 273 }; 274 275 #define SI32_AES_A_XORFIFO_XORFIFO_MASK 0xFFFFFFFF 276 #define SI32_AES_A_XORFIFO_XORFIFO_SHIFT 0 277 278 279 280 struct SI32_AES_A_HWKEY0_Struct 281 { 282 union 283 { 284 struct 285 { 286 // Hardware Key Word 0 287 volatile uint32_t HWKEY0_BITS; 288 }; 289 volatile uint32_t U32; 290 }; 291 }; 292 293 #define SI32_AES_A_HWKEY0_HWKEY0_MASK 0xFFFFFFFF 294 #define SI32_AES_A_HWKEY0_HWKEY0_SHIFT 0 295 296 297 298 struct SI32_AES_A_HWKEY1_Struct 299 { 300 union 301 { 302 struct 303 { 304 // Hardware Key Word 1 305 volatile uint32_t HWKEY1_BITS; 306 }; 307 volatile uint32_t U32; 308 }; 309 }; 310 311 #define SI32_AES_A_HWKEY1_HWKEY1_MASK 0xFFFFFFFF 312 #define SI32_AES_A_HWKEY1_HWKEY1_SHIFT 0 313 314 315 316 struct SI32_AES_A_HWKEY2_Struct 317 { 318 union 319 { 320 struct 321 { 322 // Hardware Key Word 2 323 volatile uint32_t HWKEY2_BITS; 324 }; 325 volatile uint32_t U32; 326 }; 327 }; 328 329 #define SI32_AES_A_HWKEY2_HWKEY2_MASK 0xFFFFFFFF 330 #define SI32_AES_A_HWKEY2_HWKEY2_SHIFT 0 331 332 333 334 struct SI32_AES_A_HWKEY3_Struct 335 { 336 union 337 { 338 struct 339 { 340 // Hardware Key Word 3 341 volatile uint32_t HWKEY3_BITS; 342 }; 343 volatile uint32_t U32; 344 }; 345 }; 346 347 #define SI32_AES_A_HWKEY3_HWKEY3_MASK 0xFFFFFFFF 348 #define SI32_AES_A_HWKEY3_HWKEY3_SHIFT 0 349 350 351 352 struct SI32_AES_A_HWKEY4_Struct 353 { 354 union 355 { 356 struct 357 { 358 // Hardware Key Word 4 359 volatile uint32_t HWKEY4_BITS; 360 }; 361 volatile uint32_t U32; 362 }; 363 }; 364 365 #define SI32_AES_A_HWKEY4_HWKEY4_MASK 0xFFFFFFFF 366 #define SI32_AES_A_HWKEY4_HWKEY4_SHIFT 0 367 368 369 370 struct SI32_AES_A_HWKEY5_Struct 371 { 372 union 373 { 374 struct 375 { 376 // Hardware Key Word 5 377 volatile uint32_t HWKEY5_BITS; 378 }; 379 volatile uint32_t U32; 380 }; 381 }; 382 383 #define SI32_AES_A_HWKEY5_HWKEY5_MASK 0xFFFFFFFF 384 #define SI32_AES_A_HWKEY5_HWKEY5_SHIFT 0 385 386 387 388 struct SI32_AES_A_HWKEY6_Struct 389 { 390 union 391 { 392 struct 393 { 394 // Hardware Key Word 6 395 volatile uint32_t HWKEY6_BITS; 396 }; 397 volatile uint32_t U32; 398 }; 399 }; 400 401 #define SI32_AES_A_HWKEY6_HWKEY6_MASK 0xFFFFFFFF 402 #define SI32_AES_A_HWKEY6_HWKEY6_SHIFT 0 403 404 405 406 struct SI32_AES_A_HWKEY7_Struct 407 { 408 union 409 { 410 struct 411 { 412 // Hardware Key Word 7 413 volatile uint32_t HWKEY7_BITS; 414 }; 415 volatile uint32_t U32; 416 }; 417 }; 418 419 #define SI32_AES_A_HWKEY7_HWKEY7_MASK 0xFFFFFFFF 420 #define SI32_AES_A_HWKEY7_HWKEY7_SHIFT 0 421 422 423 424 struct SI32_AES_A_HWCTR0_Struct 425 { 426 union 427 { 428 struct 429 { 430 // Hardware Counter Word 0 431 volatile uint32_t HWCTR0_BITS; 432 }; 433 volatile uint32_t U32; 434 }; 435 }; 436 437 #define SI32_AES_A_HWCTR0_HWCTR0_MASK 0xFFFFFFFF 438 #define SI32_AES_A_HWCTR0_HWCTR0_SHIFT 0 439 440 441 442 struct SI32_AES_A_HWCTR1_Struct 443 { 444 union 445 { 446 struct 447 { 448 // Hardware Counter Word 1 449 volatile uint32_t HWCTR1_BITS; 450 }; 451 volatile uint32_t U32; 452 }; 453 }; 454 455 #define SI32_AES_A_HWCTR1_HWCTR1_MASK 0xFFFFFFFF 456 #define SI32_AES_A_HWCTR1_HWCTR1_SHIFT 0 457 458 459 460 struct SI32_AES_A_HWCTR2_Struct 461 { 462 union 463 { 464 struct 465 { 466 // Hardware Counter Word 2 467 volatile uint32_t HWCTR2_BITS; 468 }; 469 volatile uint32_t U32; 470 }; 471 }; 472 473 #define SI32_AES_A_HWCTR2_HWCTR2_MASK 0xFFFFFFFF 474 #define SI32_AES_A_HWCTR2_HWCTR2_SHIFT 0 475 476 477 478 struct SI32_AES_A_HWCTR3_Struct 479 { 480 union 481 { 482 struct 483 { 484 // Hardware Counter Word 3 485 volatile uint32_t HWCTR3_BITS; 486 }; 487 volatile uint32_t U32; 488 }; 489 }; 490 491 #define SI32_AES_A_HWCTR3_HWCTR3_MASK 0xFFFFFFFF 492 #define SI32_AES_A_HWCTR3_HWCTR3_SHIFT 0 493 494 495 496 struct SI32_AES_A_STATUS_Struct 497 { 498 union 499 { 500 struct 501 { 502 // Input/Output Data FIFO Underrun Flag 503 volatile uint32_t DURF: 1; 504 // Input/Output Data FIFO Overrun Flag 505 volatile uint32_t DORF: 1; 506 // XOR Data FIFO Overrun Flag 507 volatile uint32_t XORF: 1; 508 uint32_t reserved0: 1; 509 // Input/Output Data FIFO Level 510 volatile uint32_t DFIFOLVL: 3; 511 uint32_t reserved1: 1; 512 // XOR Data FIFO Level 513 volatile uint32_t XFIFOLVL: 3; 514 uint32_t reserved2: 5; 515 // Module Busy Flag 516 volatile uint32_t BUSYF: 1; 517 uint32_t reserved3: 13; 518 // Error Interrupt Flag 519 volatile uint32_t ERRI: 1; 520 // Operation Complete Interrupt Flag 521 volatile uint32_t OCI: 1; 522 }; 523 volatile uint32_t U32; 524 }; 525 }; 526 527 #define SI32_AES_A_STATUS_DURF_MASK 0x00000001 528 #define SI32_AES_A_STATUS_DURF_SHIFT 0 529 // No input/output data FIFO underrun. 530 #define SI32_AES_A_STATUS_DURF_NOT_SET_VALUE 0 531 #define SI32_AES_A_STATUS_DURF_NOT_SET_U32 \ 532 (SI32_AES_A_STATUS_DURF_NOT_SET_VALUE << SI32_AES_A_STATUS_DURF_SHIFT) 533 // An input/output data FIFO underrun has occurred. 534 #define SI32_AES_A_STATUS_DURF_SET_VALUE 1 535 #define SI32_AES_A_STATUS_DURF_SET_U32 \ 536 (SI32_AES_A_STATUS_DURF_SET_VALUE << SI32_AES_A_STATUS_DURF_SHIFT) 537 538 #define SI32_AES_A_STATUS_DORF_MASK 0x00000002 539 #define SI32_AES_A_STATUS_DORF_SHIFT 1 540 // No input/output data FIFO overrun. 541 #define SI32_AES_A_STATUS_DORF_NOT_SET_VALUE 0 542 #define SI32_AES_A_STATUS_DORF_NOT_SET_U32 \ 543 (SI32_AES_A_STATUS_DORF_NOT_SET_VALUE << SI32_AES_A_STATUS_DORF_SHIFT) 544 // An input/output data FIFO overrun has occurred. 545 #define SI32_AES_A_STATUS_DORF_SET_VALUE 1 546 #define SI32_AES_A_STATUS_DORF_SET_U32 \ 547 (SI32_AES_A_STATUS_DORF_SET_VALUE << SI32_AES_A_STATUS_DORF_SHIFT) 548 549 #define SI32_AES_A_STATUS_XORF_MASK 0x00000004 550 #define SI32_AES_A_STATUS_XORF_SHIFT 2 551 // No XOR data FIFO overrun. 552 #define SI32_AES_A_STATUS_XORF_NOT_SET_VALUE 0 553 #define SI32_AES_A_STATUS_XORF_NOT_SET_U32 \ 554 (SI32_AES_A_STATUS_XORF_NOT_SET_VALUE << SI32_AES_A_STATUS_XORF_SHIFT) 555 // An XOR data FIFO overrun has occurred. 556 #define SI32_AES_A_STATUS_XORF_SET_VALUE 1 557 #define SI32_AES_A_STATUS_XORF_SET_U32 \ 558 (SI32_AES_A_STATUS_XORF_SET_VALUE << SI32_AES_A_STATUS_XORF_SHIFT) 559 560 #define SI32_AES_A_STATUS_DFIFOLVL_MASK 0x00000070 561 #define SI32_AES_A_STATUS_DFIFOLVL_SHIFT 4 562 // Input/Output data FIFO is empty. 563 #define SI32_AES_A_STATUS_DFIFOLVL_EMPTY_VALUE 0 564 #define SI32_AES_A_STATUS_DFIFOLVL_EMPTY_U32 \ 565 (SI32_AES_A_STATUS_DFIFOLVL_EMPTY_VALUE << SI32_AES_A_STATUS_DFIFOLVL_SHIFT) 566 // Input/Output data FIFO contains 1 word. 567 #define SI32_AES_A_STATUS_DFIFOLVL_1WORD_VALUE 1 568 #define SI32_AES_A_STATUS_DFIFOLVL_1WORD_U32 \ 569 (SI32_AES_A_STATUS_DFIFOLVL_1WORD_VALUE << SI32_AES_A_STATUS_DFIFOLVL_SHIFT) 570 // Input/Output data FIFO contains 2 words. 571 #define SI32_AES_A_STATUS_DFIFOLVL_2WORDS_VALUE 2 572 #define SI32_AES_A_STATUS_DFIFOLVL_2WORDS_U32 \ 573 (SI32_AES_A_STATUS_DFIFOLVL_2WORDS_VALUE << SI32_AES_A_STATUS_DFIFOLVL_SHIFT) 574 // Input/Output data FIFO contains 3 words. 575 #define SI32_AES_A_STATUS_DFIFOLVL_3WORDS_VALUE 3 576 #define SI32_AES_A_STATUS_DFIFOLVL_3WORDS_U32 \ 577 (SI32_AES_A_STATUS_DFIFOLVL_3WORDS_VALUE << SI32_AES_A_STATUS_DFIFOLVL_SHIFT) 578 // Input/Output data FIFO contains 4 words (full). 579 #define SI32_AES_A_STATUS_DFIFOLVL_FULL_VALUE 4 580 #define SI32_AES_A_STATUS_DFIFOLVL_FULL_U32 \ 581 (SI32_AES_A_STATUS_DFIFOLVL_FULL_VALUE << SI32_AES_A_STATUS_DFIFOLVL_SHIFT) 582 583 #define SI32_AES_A_STATUS_XFIFOLVL_MASK 0x00000700 584 #define SI32_AES_A_STATUS_XFIFOLVL_SHIFT 8 585 // XOR data FIFO is empty. 586 #define SI32_AES_A_STATUS_XFIFOLVL_EMPTY_VALUE 0 587 #define SI32_AES_A_STATUS_XFIFOLVL_EMPTY_U32 \ 588 (SI32_AES_A_STATUS_XFIFOLVL_EMPTY_VALUE << SI32_AES_A_STATUS_XFIFOLVL_SHIFT) 589 // XOR data FIFO contains 1 word. 590 #define SI32_AES_A_STATUS_XFIFOLVL_1WORD_VALUE 1 591 #define SI32_AES_A_STATUS_XFIFOLVL_1WORD_U32 \ 592 (SI32_AES_A_STATUS_XFIFOLVL_1WORD_VALUE << SI32_AES_A_STATUS_XFIFOLVL_SHIFT) 593 // XOR data FIFO contains 2 words. 594 #define SI32_AES_A_STATUS_XFIFOLVL_2WORDS_VALUE 2 595 #define SI32_AES_A_STATUS_XFIFOLVL_2WORDS_U32 \ 596 (SI32_AES_A_STATUS_XFIFOLVL_2WORDS_VALUE << SI32_AES_A_STATUS_XFIFOLVL_SHIFT) 597 // XOR data FIFO contains 3 words. 598 #define SI32_AES_A_STATUS_XFIFOLVL_3WORDS_VALUE 3 599 #define SI32_AES_A_STATUS_XFIFOLVL_3WORDS_U32 \ 600 (SI32_AES_A_STATUS_XFIFOLVL_3WORDS_VALUE << SI32_AES_A_STATUS_XFIFOLVL_SHIFT) 601 // XOR data FIFO contains 4 words (full). 602 #define SI32_AES_A_STATUS_XFIFOLVL_FULL_VALUE 4 603 #define SI32_AES_A_STATUS_XFIFOLVL_FULL_U32 \ 604 (SI32_AES_A_STATUS_XFIFOLVL_FULL_VALUE << SI32_AES_A_STATUS_XFIFOLVL_SHIFT) 605 606 #define SI32_AES_A_STATUS_BUSYF_MASK 0x00010000 607 #define SI32_AES_A_STATUS_BUSYF_SHIFT 16 608 // AES module is not busy. 609 #define SI32_AES_A_STATUS_BUSYF_NOT_SET_VALUE 0 610 #define SI32_AES_A_STATUS_BUSYF_NOT_SET_U32 \ 611 (SI32_AES_A_STATUS_BUSYF_NOT_SET_VALUE << SI32_AES_A_STATUS_BUSYF_SHIFT) 612 // AES module is completing an operation. 613 #define SI32_AES_A_STATUS_BUSYF_SET_VALUE 1 614 #define SI32_AES_A_STATUS_BUSYF_SET_U32 \ 615 (SI32_AES_A_STATUS_BUSYF_SET_VALUE << SI32_AES_A_STATUS_BUSYF_SHIFT) 616 617 #define SI32_AES_A_STATUS_ERRI_MASK 0x40000000 618 #define SI32_AES_A_STATUS_ERRI_SHIFT 30 619 // AES error interrupt has not occurred. 620 #define SI32_AES_A_STATUS_ERRI_NOT_SET_VALUE 0 621 #define SI32_AES_A_STATUS_ERRI_NOT_SET_U32 \ 622 (SI32_AES_A_STATUS_ERRI_NOT_SET_VALUE << SI32_AES_A_STATUS_ERRI_SHIFT) 623 // AES error interrupt has occurred. 624 #define SI32_AES_A_STATUS_ERRI_SET_VALUE 1 625 #define SI32_AES_A_STATUS_ERRI_SET_U32 \ 626 (SI32_AES_A_STATUS_ERRI_SET_VALUE << SI32_AES_A_STATUS_ERRI_SHIFT) 627 628 #define SI32_AES_A_STATUS_OCI_MASK 0x80000000 629 #define SI32_AES_A_STATUS_OCI_SHIFT 31 630 // AES operation complete interrupt has not occurred. 631 #define SI32_AES_A_STATUS_OCI_NOT_SET_VALUE 0U 632 #define SI32_AES_A_STATUS_OCI_NOT_SET_U32 \ 633 (SI32_AES_A_STATUS_OCI_NOT_SET_VALUE << SI32_AES_A_STATUS_OCI_SHIFT) 634 // AES operation complete interrupt occurred. 635 #define SI32_AES_A_STATUS_OCI_SET_VALUE 1U 636 #define SI32_AES_A_STATUS_OCI_SET_U32 \ 637 (SI32_AES_A_STATUS_OCI_SET_VALUE << SI32_AES_A_STATUS_OCI_SHIFT) 638 639 640 641 typedef struct SI32_AES_A_Struct 642 { 643 struct SI32_AES_A_CONTROL_Struct CONTROL ; // Base Address + 0x0 644 volatile uint32_t CONTROL_SET; 645 volatile uint32_t CONTROL_CLR; 646 uint32_t reserved0; 647 struct SI32_AES_A_XFRSIZE_Struct XFRSIZE ; // Base Address + 0x10 648 uint32_t reserved1; 649 uint32_t reserved2; 650 uint32_t reserved3; 651 struct SI32_AES_A_DATAFIFO_Struct DATAFIFO ; // Base Address + 0x20 652 uint32_t reserved4; 653 uint32_t reserved5; 654 uint32_t reserved6; 655 struct SI32_AES_A_XORFIFO_Struct XORFIFO ; // Base Address + 0x30 656 uint32_t reserved7; 657 uint32_t reserved8; 658 uint32_t reserved9; 659 struct SI32_AES_A_HWKEY0_Struct HWKEY0 ; // Base Address + 0x40 660 uint32_t reserved10; 661 uint32_t reserved11; 662 uint32_t reserved12; 663 struct SI32_AES_A_HWKEY1_Struct HWKEY1 ; // Base Address + 0x50 664 uint32_t reserved13; 665 uint32_t reserved14; 666 uint32_t reserved15; 667 struct SI32_AES_A_HWKEY2_Struct HWKEY2 ; // Base Address + 0x60 668 uint32_t reserved16; 669 uint32_t reserved17; 670 uint32_t reserved18; 671 struct SI32_AES_A_HWKEY3_Struct HWKEY3 ; // Base Address + 0x70 672 uint32_t reserved19; 673 uint32_t reserved20; 674 uint32_t reserved21; 675 struct SI32_AES_A_HWKEY4_Struct HWKEY4 ; // Base Address + 0x80 676 uint32_t reserved22; 677 uint32_t reserved23; 678 uint32_t reserved24; 679 struct SI32_AES_A_HWKEY5_Struct HWKEY5 ; // Base Address + 0x90 680 uint32_t reserved25; 681 uint32_t reserved26; 682 uint32_t reserved27; 683 struct SI32_AES_A_HWKEY6_Struct HWKEY6 ; // Base Address + 0xa0 684 uint32_t reserved28; 685 uint32_t reserved29; 686 uint32_t reserved30; 687 struct SI32_AES_A_HWKEY7_Struct HWKEY7 ; // Base Address + 0xb0 688 uint32_t reserved31; 689 uint32_t reserved32; 690 uint32_t reserved33; 691 struct SI32_AES_A_HWCTR0_Struct HWCTR0 ; // Base Address + 0xc0 692 uint32_t reserved34; 693 uint32_t reserved35; 694 uint32_t reserved36; 695 struct SI32_AES_A_HWCTR1_Struct HWCTR1 ; // Base Address + 0xd0 696 uint32_t reserved37; 697 uint32_t reserved38; 698 uint32_t reserved39; 699 struct SI32_AES_A_HWCTR2_Struct HWCTR2 ; // Base Address + 0xe0 700 uint32_t reserved40; 701 uint32_t reserved41; 702 uint32_t reserved42; 703 struct SI32_AES_A_HWCTR3_Struct HWCTR3 ; // Base Address + 0xf0 704 uint32_t reserved43; 705 uint32_t reserved44; 706 uint32_t reserved45; 707 struct SI32_AES_A_STATUS_Struct STATUS ; // Base Address + 0x100 708 volatile uint32_t STATUS_SET; 709 volatile uint32_t STATUS_CLR; 710 uint32_t reserved46; 711 } SI32_AES_A_Type; 712 713 #ifdef __cplusplus 714 } 715 #endif 716 717 #endif // __SI32_AES_A_REGISTERS_H__ 718 719 //-eof-------------------------------------------------------------------------- 720 721