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.61
24 // Version: 1
25 
26 #ifndef __SI32_AES_B_REGISTERS_H__
27 #define __SI32_AES_B_REGISTERS_H__
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct SI32_AES_B_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_B_CONTROL_XFRSTA_MASK  0x00000001
77 #define SI32_AES_B_CONTROL_XFRSTA_SHIFT  0
78 // Start the AES operation.
79 #define SI32_AES_B_CONTROL_XFRSTA_START_VALUE  1
80 #define SI32_AES_B_CONTROL_XFRSTA_START_U32 \
81    (SI32_AES_B_CONTROL_XFRSTA_START_VALUE << SI32_AES_B_CONTROL_XFRSTA_SHIFT)
82 
83 #define SI32_AES_B_CONTROL_KEYCPEN_MASK  0x00000002
84 #define SI32_AES_B_CONTROL_KEYCPEN_SHIFT  1
85 // Disable key capture.
86 #define SI32_AES_B_CONTROL_KEYCPEN_DISABLED_VALUE  0
87 #define SI32_AES_B_CONTROL_KEYCPEN_DISABLED_U32 \
88    (SI32_AES_B_CONTROL_KEYCPEN_DISABLED_VALUE << SI32_AES_B_CONTROL_KEYCPEN_SHIFT)
89 // Enable key capture.
90 #define SI32_AES_B_CONTROL_KEYCPEN_ENABLED_VALUE  1
91 #define SI32_AES_B_CONTROL_KEYCPEN_ENABLED_U32 \
92    (SI32_AES_B_CONTROL_KEYCPEN_ENABLED_VALUE << SI32_AES_B_CONTROL_KEYCPEN_SHIFT)
93 
94 #define SI32_AES_B_CONTROL_EDMD_MASK  0x00000004
95 #define SI32_AES_B_CONTROL_EDMD_SHIFT  2
96 // AES module performs a decryption operation
97 #define SI32_AES_B_CONTROL_EDMD_DECRYPT_VALUE  0
98 #define SI32_AES_B_CONTROL_EDMD_DECRYPT_U32 \
99    (SI32_AES_B_CONTROL_EDMD_DECRYPT_VALUE << SI32_AES_B_CONTROL_EDMD_SHIFT)
100 // AES module performs an encryption operation.
101 #define SI32_AES_B_CONTROL_EDMD_ENCRYPT_VALUE  1
102 #define SI32_AES_B_CONTROL_EDMD_ENCRYPT_U32 \
103    (SI32_AES_B_CONTROL_EDMD_ENCRYPT_VALUE << SI32_AES_B_CONTROL_EDMD_SHIFT)
104 
105 #define SI32_AES_B_CONTROL_SWMDEN_MASK  0x00000100
106 #define SI32_AES_B_CONTROL_SWMDEN_SHIFT  8
107 // Disable software mode.
108 #define SI32_AES_B_CONTROL_SWMDEN_DISABLED_VALUE  0
109 #define SI32_AES_B_CONTROL_SWMDEN_DISABLED_U32 \
110    (SI32_AES_B_CONTROL_SWMDEN_DISABLED_VALUE << SI32_AES_B_CONTROL_SWMDEN_SHIFT)
111 // Enable software mode.
112 #define SI32_AES_B_CONTROL_SWMDEN_ENABLED_VALUE  1
113 #define SI32_AES_B_CONTROL_SWMDEN_ENABLED_U32 \
114    (SI32_AES_B_CONTROL_SWMDEN_ENABLED_VALUE << SI32_AES_B_CONTROL_SWMDEN_SHIFT)
115 
116 #define SI32_AES_B_CONTROL_BEN_MASK  0x00000200
117 #define SI32_AES_B_CONTROL_BEN_SHIFT  9
118 // Do not bypass AES operations.
119 #define SI32_AES_B_CONTROL_BEN_DISABLED_VALUE  0
120 #define SI32_AES_B_CONTROL_BEN_DISABLED_U32 \
121    (SI32_AES_B_CONTROL_BEN_DISABLED_VALUE << SI32_AES_B_CONTROL_BEN_SHIFT)
122 // Bypass AES operations.
123 #define SI32_AES_B_CONTROL_BEN_ENABLED_VALUE  1
124 #define SI32_AES_B_CONTROL_BEN_ENABLED_U32 \
125    (SI32_AES_B_CONTROL_BEN_ENABLED_VALUE << SI32_AES_B_CONTROL_BEN_SHIFT)
126 
127 #define SI32_AES_B_CONTROL_XOREN_MASK  0x00000C00
128 #define SI32_AES_B_CONTROL_XOREN_SHIFT  10
129 // Disable the XOR paths.
130 #define SI32_AES_B_CONTROL_XOREN_XOR_DISABLED_VALUE  0
131 #define SI32_AES_B_CONTROL_XOREN_XOR_DISABLED_U32 \
132    (SI32_AES_B_CONTROL_XOREN_XOR_DISABLED_VALUE << SI32_AES_B_CONTROL_XOREN_SHIFT)
133 // Enable the XOR input path, disable the XOR output path.
134 #define SI32_AES_B_CONTROL_XOREN_XOR_INPUT_VALUE  1
135 #define SI32_AES_B_CONTROL_XOREN_XOR_INPUT_U32 \
136    (SI32_AES_B_CONTROL_XOREN_XOR_INPUT_VALUE << SI32_AES_B_CONTROL_XOREN_SHIFT)
137 // Disable the XOR input path, enable the XOR output path.
138 #define SI32_AES_B_CONTROL_XOREN_XOR_OUTPUT_VALUE  2
139 #define SI32_AES_B_CONTROL_XOREN_XOR_OUTPUT_U32 \
140    (SI32_AES_B_CONTROL_XOREN_XOR_OUTPUT_VALUE << SI32_AES_B_CONTROL_XOREN_SHIFT)
141 
142 #define SI32_AES_B_CONTROL_HCTREN_MASK  0x00001000
143 #define SI32_AES_B_CONTROL_HCTREN_SHIFT  12
144 // Disable hardware counter mode.
145 #define SI32_AES_B_CONTROL_HCTREN_DISABLED_VALUE  0
146 #define SI32_AES_B_CONTROL_HCTREN_DISABLED_U32 \
147    (SI32_AES_B_CONTROL_HCTREN_DISABLED_VALUE << SI32_AES_B_CONTROL_HCTREN_SHIFT)
148 // Enable hardware counter mode.
149 #define SI32_AES_B_CONTROL_HCTREN_ENABLED_VALUE  1
150 #define SI32_AES_B_CONTROL_HCTREN_ENABLED_U32 \
151    (SI32_AES_B_CONTROL_HCTREN_ENABLED_VALUE << SI32_AES_B_CONTROL_HCTREN_SHIFT)
152 
153 #define SI32_AES_B_CONTROL_HCBCEN_MASK  0x00002000
154 #define SI32_AES_B_CONTROL_HCBCEN_SHIFT  13
155 // Disable hardware cipher-block chaining (CBC) mode.
156 #define SI32_AES_B_CONTROL_HCBCEN_DISABLED_VALUE  0
157 #define SI32_AES_B_CONTROL_HCBCEN_DISABLED_U32 \
158    (SI32_AES_B_CONTROL_HCBCEN_DISABLED_VALUE << SI32_AES_B_CONTROL_HCBCEN_SHIFT)
159 // Enable hardware cipher-block chaining (CBC) mode.
160 #define SI32_AES_B_CONTROL_HCBCEN_ENABLED_VALUE  1
161 #define SI32_AES_B_CONTROL_HCBCEN_ENABLED_U32 \
162    (SI32_AES_B_CONTROL_HCBCEN_ENABLED_VALUE << SI32_AES_B_CONTROL_HCBCEN_SHIFT)
163 
164 #define SI32_AES_B_CONTROL_KEYSIZE_MASK  0x00030000
165 #define SI32_AES_B_CONTROL_KEYSIZE_SHIFT  16
166 // Key is composed of 128 bits.
167 #define SI32_AES_B_CONTROL_KEYSIZE_KEY128_VALUE  0
168 #define SI32_AES_B_CONTROL_KEYSIZE_KEY128_U32 \
169    (SI32_AES_B_CONTROL_KEYSIZE_KEY128_VALUE << SI32_AES_B_CONTROL_KEYSIZE_SHIFT)
170 // Key is composed of 192 bits.
171 #define SI32_AES_B_CONTROL_KEYSIZE_KEY192_VALUE  1
172 #define SI32_AES_B_CONTROL_KEYSIZE_KEY192_U32 \
173    (SI32_AES_B_CONTROL_KEYSIZE_KEY192_VALUE << SI32_AES_B_CONTROL_KEYSIZE_SHIFT)
174 // Key is composed of 256 bits.
175 #define SI32_AES_B_CONTROL_KEYSIZE_KEY256_VALUE  2
176 #define SI32_AES_B_CONTROL_KEYSIZE_KEY256_U32 \
177    (SI32_AES_B_CONTROL_KEYSIZE_KEY256_VALUE << SI32_AES_B_CONTROL_KEYSIZE_SHIFT)
178 
179 #define SI32_AES_B_CONTROL_ERRIEN_MASK  0x01000000
180 #define SI32_AES_B_CONTROL_ERRIEN_SHIFT  24
181 // Disable the error interrupt.
182 #define SI32_AES_B_CONTROL_ERRIEN_DISABLED_VALUE  0
183 #define SI32_AES_B_CONTROL_ERRIEN_DISABLED_U32 \
184    (SI32_AES_B_CONTROL_ERRIEN_DISABLED_VALUE << SI32_AES_B_CONTROL_ERRIEN_SHIFT)
185 // Enable the error interrupt. An interrupt is generated when the Input/Output Data
186 // FIFO Overun (DORI), Input/Output Data FIFO Underun (DURI), or XOR Data FIFO
187 // Overrun (XORI) flags are set.
188 #define SI32_AES_B_CONTROL_ERRIEN_ENABLED_VALUE  1
189 #define SI32_AES_B_CONTROL_ERRIEN_ENABLED_U32 \
190    (SI32_AES_B_CONTROL_ERRIEN_ENABLED_VALUE << SI32_AES_B_CONTROL_ERRIEN_SHIFT)
191 
192 #define SI32_AES_B_CONTROL_OCIEN_MASK  0x02000000
193 #define SI32_AES_B_CONTROL_OCIEN_SHIFT  25
194 // Disable the operation complete interrupt.
195 #define SI32_AES_B_CONTROL_OCIEN_DISABLED_VALUE  0
196 #define SI32_AES_B_CONTROL_OCIEN_DISABLED_U32 \
197    (SI32_AES_B_CONTROL_OCIEN_DISABLED_VALUE << SI32_AES_B_CONTROL_OCIEN_SHIFT)
198 // Enable the operation complete interrupt. An interrupt is generated when the
199 // Operation Complete Interrupt (OCI) flag is set.
200 #define SI32_AES_B_CONTROL_OCIEN_ENABLED_VALUE  1
201 #define SI32_AES_B_CONTROL_OCIEN_ENABLED_U32 \
202    (SI32_AES_B_CONTROL_OCIEN_ENABLED_VALUE << SI32_AES_B_CONTROL_OCIEN_SHIFT)
203 
204 #define SI32_AES_B_CONTROL_DBGMD_MASK  0x40000000
205 #define SI32_AES_B_CONTROL_DBGMD_SHIFT  30
206 // A debug breakpoint will cause the AES module to halt.
207 #define SI32_AES_B_CONTROL_DBGMD_HALT_VALUE  0
208 #define SI32_AES_B_CONTROL_DBGMD_HALT_U32 \
209    (SI32_AES_B_CONTROL_DBGMD_HALT_VALUE << SI32_AES_B_CONTROL_DBGMD_SHIFT)
210 // The AES module will continue to operate while the core is halted in debug mode.
211 #define SI32_AES_B_CONTROL_DBGMD_RUN_VALUE  1
212 #define SI32_AES_B_CONTROL_DBGMD_RUN_U32 \
213    (SI32_AES_B_CONTROL_DBGMD_RUN_VALUE << SI32_AES_B_CONTROL_DBGMD_SHIFT)
214 
215 #define SI32_AES_B_CONTROL_RESET_MASK  0x80000000
216 #define SI32_AES_B_CONTROL_RESET_SHIFT  31
217 // AES module is not in soft reset.
218 #define SI32_AES_B_CONTROL_RESET_INACTIVE_VALUE  0U
219 #define SI32_AES_B_CONTROL_RESET_INACTIVE_U32 \
220    (SI32_AES_B_CONTROL_RESET_INACTIVE_VALUE << SI32_AES_B_CONTROL_RESET_SHIFT)
221 // AES module is in soft reset and none of the module bits can be accessed.
222 #define SI32_AES_B_CONTROL_RESET_ACTIVE_VALUE  1U
223 #define SI32_AES_B_CONTROL_RESET_ACTIVE_U32 \
224    (SI32_AES_B_CONTROL_RESET_ACTIVE_VALUE << SI32_AES_B_CONTROL_RESET_SHIFT)
225 
226 
227 
228 struct SI32_AES_B_XFRSIZE_Struct
229 {
230    union
231    {
232       struct
233       {
234          // Transfer Size
235          volatile uint32_t XFRSIZE_BITS: 11;
236                   uint32_t reserved0: 21;
237       };
238       volatile uint32_t U32;
239    };
240 };
241 
242 #define SI32_AES_B_XFRSIZE_XFRSIZE_MASK  0x000007FF
243 #define SI32_AES_B_XFRSIZE_XFRSIZE_SHIFT  0
244 
245 
246 
247 struct SI32_AES_B_DATAFIFO_Struct
248 {
249    union
250    {
251       // This is a FIFO register
252       volatile uint8_t  U8;
253       volatile uint16_t U16;
254       volatile uint32_t U32;
255    };
256 };
257 
258 #define SI32_AES_B_DATAFIFO_DATAFIFO_MASK  0xFFFFFFFF
259 #define SI32_AES_B_DATAFIFO_DATAFIFO_SHIFT  0
260 
261 
262 
263 struct SI32_AES_B_XORFIFO_Struct
264 {
265    union
266    {
267       // This is a FIFO register
268       volatile uint8_t  U8;
269       volatile uint16_t U16;
270       volatile uint32_t U32;
271    };
272 };
273 
274 #define SI32_AES_B_XORFIFO_XORFIFO_MASK  0xFFFFFFFF
275 #define SI32_AES_B_XORFIFO_XORFIFO_SHIFT  0
276 
277 
278 
279 struct SI32_AES_B_HWKEY0_Struct
280 {
281    union
282    {
283       struct
284       {
285          // Hardware Key Word 0
286          volatile uint32_t HWKEY0_BITS;
287       };
288       volatile uint32_t U32;
289    };
290 };
291 
292 #define SI32_AES_B_HWKEY0_HWKEY0_MASK  0xFFFFFFFF
293 #define SI32_AES_B_HWKEY0_HWKEY0_SHIFT  0
294 
295 
296 
297 struct SI32_AES_B_HWKEY1_Struct
298 {
299    union
300    {
301       struct
302       {
303          // Hardware Key Word 1
304          volatile uint32_t HWKEY1_BITS;
305       };
306       volatile uint32_t U32;
307    };
308 };
309 
310 #define SI32_AES_B_HWKEY1_HWKEY1_MASK  0xFFFFFFFF
311 #define SI32_AES_B_HWKEY1_HWKEY1_SHIFT  0
312 
313 
314 
315 struct SI32_AES_B_HWKEY2_Struct
316 {
317    union
318    {
319       struct
320       {
321          // Hardware Key Word 2
322          volatile uint32_t HWKEY2_BITS;
323       };
324       volatile uint32_t U32;
325    };
326 };
327 
328 #define SI32_AES_B_HWKEY2_HWKEY2_MASK  0xFFFFFFFF
329 #define SI32_AES_B_HWKEY2_HWKEY2_SHIFT  0
330 
331 
332 
333 struct SI32_AES_B_HWKEY3_Struct
334 {
335    union
336    {
337       struct
338       {
339          // Hardware Key Word 3
340          volatile uint32_t HWKEY3_BITS;
341       };
342       volatile uint32_t U32;
343    };
344 };
345 
346 #define SI32_AES_B_HWKEY3_HWKEY3_MASK  0xFFFFFFFF
347 #define SI32_AES_B_HWKEY3_HWKEY3_SHIFT  0
348 
349 
350 
351 struct SI32_AES_B_HWKEY4_Struct
352 {
353    union
354    {
355       struct
356       {
357          // Hardware Key Word 4
358          volatile uint32_t HWKEY4_BITS;
359       };
360       volatile uint32_t U32;
361    };
362 };
363 
364 #define SI32_AES_B_HWKEY4_HWKEY4_MASK  0xFFFFFFFF
365 #define SI32_AES_B_HWKEY4_HWKEY4_SHIFT  0
366 
367 
368 
369 struct SI32_AES_B_HWKEY5_Struct
370 {
371    union
372    {
373       struct
374       {
375          // Hardware Key Word 5
376          volatile uint32_t HWKEY5_BITS;
377       };
378       volatile uint32_t U32;
379    };
380 };
381 
382 #define SI32_AES_B_HWKEY5_HWKEY5_MASK  0xFFFFFFFF
383 #define SI32_AES_B_HWKEY5_HWKEY5_SHIFT  0
384 
385 
386 
387 struct SI32_AES_B_HWKEY6_Struct
388 {
389    union
390    {
391       struct
392       {
393          // Hardware Key Word 6
394          volatile uint32_t HWKEY6_BITS;
395       };
396       volatile uint32_t U32;
397    };
398 };
399 
400 #define SI32_AES_B_HWKEY6_HWKEY6_MASK  0xFFFFFFFF
401 #define SI32_AES_B_HWKEY6_HWKEY6_SHIFT  0
402 
403 
404 
405 struct SI32_AES_B_HWKEY7_Struct
406 {
407    union
408    {
409       struct
410       {
411          // Hardware Key Word 7
412          volatile uint32_t HWKEY7_BITS;
413       };
414       volatile uint32_t U32;
415    };
416 };
417 
418 #define SI32_AES_B_HWKEY7_HWKEY7_MASK  0xFFFFFFFF
419 #define SI32_AES_B_HWKEY7_HWKEY7_SHIFT  0
420 
421 
422 
423 struct SI32_AES_B_HWCTR0_Struct
424 {
425    union
426    {
427       struct
428       {
429          // Hardware Counter Word 0
430          volatile uint32_t HWCTR0_BITS;
431       };
432       volatile uint32_t U32;
433    };
434 };
435 
436 #define SI32_AES_B_HWCTR0_HWCTR0_MASK  0xFFFFFFFF
437 #define SI32_AES_B_HWCTR0_HWCTR0_SHIFT  0
438 
439 
440 
441 struct SI32_AES_B_HWCTR1_Struct
442 {
443    union
444    {
445       struct
446       {
447          // Hardware Counter Word 1
448          volatile uint32_t HWCTR1_BITS;
449       };
450       volatile uint32_t U32;
451    };
452 };
453 
454 #define SI32_AES_B_HWCTR1_HWCTR1_MASK  0xFFFFFFFF
455 #define SI32_AES_B_HWCTR1_HWCTR1_SHIFT  0
456 
457 
458 
459 struct SI32_AES_B_HWCTR2_Struct
460 {
461    union
462    {
463       struct
464       {
465          // Hardware Counter Word 2
466          volatile uint32_t HWCTR2_BITS;
467       };
468       volatile uint32_t U32;
469    };
470 };
471 
472 #define SI32_AES_B_HWCTR2_HWCTR2_MASK  0xFFFFFFFF
473 #define SI32_AES_B_HWCTR2_HWCTR2_SHIFT  0
474 
475 
476 
477 struct SI32_AES_B_HWCTR3_Struct
478 {
479    union
480    {
481       struct
482       {
483          // Hardware Counter Word 3
484          volatile uint32_t HWCTR3_BITS;
485       };
486       volatile uint32_t U32;
487    };
488 };
489 
490 #define SI32_AES_B_HWCTR3_HWCTR3_MASK  0xFFFFFFFF
491 #define SI32_AES_B_HWCTR3_HWCTR3_SHIFT  0
492 
493 
494 
495 struct SI32_AES_B_STATUS_Struct
496 {
497    union
498    {
499       struct
500       {
501          // Input/Output Data FIFO Level
502          volatile uint32_t DFIFOLVL: 5;
503                   uint32_t reserved0: 3;
504          // XOR Data FIFO Level
505          volatile uint32_t XFIFOLVL: 5;
506                   uint32_t reserved1: 11;
507          // Module Busy Flag
508          volatile uint32_t BUSYF: 1;
509                   uint32_t reserved2: 3;
510          // Input/Output Data FIFO Underrun Interrupt Flag
511          volatile uint32_t DURI: 1;
512          // Input/Output Data FIFO Overrun Interrupt Flag
513          volatile uint32_t DORI: 1;
514          // XOR Data FIFO Overrun Interrupt Flag
515          volatile uint32_t XORI: 1;
516          // Operation Complete Interrupt Flag
517          volatile uint32_t OCI: 1;
518       };
519       volatile uint32_t U32;
520    };
521 };
522 
523 #define SI32_AES_B_STATUS_DFIFOLVL_MASK  0x0000001F
524 #define SI32_AES_B_STATUS_DFIFOLVL_SHIFT  0
525 // Input/Output data FIFO is empty.
526 #define SI32_AES_B_STATUS_DFIFOLVL_EMPTY_VALUE  0
527 #define SI32_AES_B_STATUS_DFIFOLVL_EMPTY_U32 \
528    (SI32_AES_B_STATUS_DFIFOLVL_EMPTY_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
529 // Input/Output data FIFO contains 1 byte.
530 #define SI32_AES_B_STATUS_DFIFOLVL_1_BYTE_VALUE  1
531 #define SI32_AES_B_STATUS_DFIFOLVL_1_BYTE_U32 \
532    (SI32_AES_B_STATUS_DFIFOLVL_1_BYTE_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
533 // Input/Output data FIFO contains 2 bytes.
534 #define SI32_AES_B_STATUS_DFIFOLVL_2_BYTES_VALUE  2
535 #define SI32_AES_B_STATUS_DFIFOLVL_2_BYTES_U32 \
536    (SI32_AES_B_STATUS_DFIFOLVL_2_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
537 // Input/Output data FIFO contains 3 bytes.
538 #define SI32_AES_B_STATUS_DFIFOLVL_3_BYTES_VALUE  3
539 #define SI32_AES_B_STATUS_DFIFOLVL_3_BYTES_U32 \
540    (SI32_AES_B_STATUS_DFIFOLVL_3_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
541 // Input/Output data FIFO contains 4 bytes.
542 #define SI32_AES_B_STATUS_DFIFOLVL_4_BYTES_VALUE  4
543 #define SI32_AES_B_STATUS_DFIFOLVL_4_BYTES_U32 \
544    (SI32_AES_B_STATUS_DFIFOLVL_4_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
545 // Input/Output data FIFO contains 5 bytes.
546 #define SI32_AES_B_STATUS_DFIFOLVL_5_BYTES_VALUE  5
547 #define SI32_AES_B_STATUS_DFIFOLVL_5_BYTES_U32 \
548    (SI32_AES_B_STATUS_DFIFOLVL_5_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
549 // Input/Output data FIFO contains 6 bytes.
550 #define SI32_AES_B_STATUS_DFIFOLVL_6_BYTES_VALUE  6
551 #define SI32_AES_B_STATUS_DFIFOLVL_6_BYTES_U32 \
552    (SI32_AES_B_STATUS_DFIFOLVL_6_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
553 // Input/Output data FIFO contains 7 bytes.
554 #define SI32_AES_B_STATUS_DFIFOLVL_7_BYTES_VALUE  7
555 #define SI32_AES_B_STATUS_DFIFOLVL_7_BYTES_U32 \
556    (SI32_AES_B_STATUS_DFIFOLVL_7_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
557 // Input/Output data FIFO contains 8 bytes.
558 #define SI32_AES_B_STATUS_DFIFOLVL_8_BYTES_VALUE  8
559 #define SI32_AES_B_STATUS_DFIFOLVL_8_BYTES_U32 \
560    (SI32_AES_B_STATUS_DFIFOLVL_8_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
561 // Input/Output data FIFO contains 9 bytes.
562 #define SI32_AES_B_STATUS_DFIFOLVL_9_BYTES_VALUE  9
563 #define SI32_AES_B_STATUS_DFIFOLVL_9_BYTES_U32 \
564    (SI32_AES_B_STATUS_DFIFOLVL_9_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
565 // Input/Output data FIFO contains 10 bytes.
566 #define SI32_AES_B_STATUS_DFIFOLVL_10_BYTES_VALUE  10
567 #define SI32_AES_B_STATUS_DFIFOLVL_10_BYTES_U32 \
568    (SI32_AES_B_STATUS_DFIFOLVL_10_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
569 // Input/Output data FIFO contains 11 bytes.
570 #define SI32_AES_B_STATUS_DFIFOLVL_11_BYTES_VALUE  11
571 #define SI32_AES_B_STATUS_DFIFOLVL_11_BYTES_U32 \
572    (SI32_AES_B_STATUS_DFIFOLVL_11_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
573 // Input/Output data FIFO contains 12 bytes.
574 #define SI32_AES_B_STATUS_DFIFOLVL_12_BYTES_VALUE  12
575 #define SI32_AES_B_STATUS_DFIFOLVL_12_BYTES_U32 \
576    (SI32_AES_B_STATUS_DFIFOLVL_12_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
577 // Input/Output data FIFO contains 13 bytes.
578 #define SI32_AES_B_STATUS_DFIFOLVL_13_BYTES_VALUE  13
579 #define SI32_AES_B_STATUS_DFIFOLVL_13_BYTES_U32 \
580    (SI32_AES_B_STATUS_DFIFOLVL_13_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
581 // Input/Output data FIFO contains 14 bytes.
582 #define SI32_AES_B_STATUS_DFIFOLVL_14_BYTES_VALUE  14
583 #define SI32_AES_B_STATUS_DFIFOLVL_14_BYTES_U32 \
584    (SI32_AES_B_STATUS_DFIFOLVL_14_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
585 // Input/Output data FIFO contains 15 bytes.
586 #define SI32_AES_B_STATUS_DFIFOLVL_15_BYTES_VALUE  15
587 #define SI32_AES_B_STATUS_DFIFOLVL_15_BYTES_U32 \
588    (SI32_AES_B_STATUS_DFIFOLVL_15_BYTES_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
589 // Input/Output data FIFO contains 16 bytes (full).
590 #define SI32_AES_B_STATUS_DFIFOLVL_FULL_VALUE  16
591 #define SI32_AES_B_STATUS_DFIFOLVL_FULL_U32 \
592    (SI32_AES_B_STATUS_DFIFOLVL_FULL_VALUE << SI32_AES_B_STATUS_DFIFOLVL_SHIFT)
593 
594 #define SI32_AES_B_STATUS_XFIFOLVL_MASK  0x00001F00
595 #define SI32_AES_B_STATUS_XFIFOLVL_SHIFT  8
596 // XOR data FIFO is empty.
597 #define SI32_AES_B_STATUS_XFIFOLVL_EMPTY_VALUE  0
598 #define SI32_AES_B_STATUS_XFIFOLVL_EMPTY_U32 \
599    (SI32_AES_B_STATUS_XFIFOLVL_EMPTY_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
600 // XOR data FIFO contains 1 byte.
601 #define SI32_AES_B_STATUS_XFIFOLVL_1_BYTE_VALUE  1
602 #define SI32_AES_B_STATUS_XFIFOLVL_1_BYTE_U32 \
603    (SI32_AES_B_STATUS_XFIFOLVL_1_BYTE_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
604 // XOR data FIFO contains 2 bytes.
605 #define SI32_AES_B_STATUS_XFIFOLVL_2_BYTES_VALUE  2
606 #define SI32_AES_B_STATUS_XFIFOLVL_2_BYTES_U32 \
607    (SI32_AES_B_STATUS_XFIFOLVL_2_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
608 // XOR data FIFO contains 3 bytes.
609 #define SI32_AES_B_STATUS_XFIFOLVL_3_BYTES_VALUE  3
610 #define SI32_AES_B_STATUS_XFIFOLVL_3_BYTES_U32 \
611    (SI32_AES_B_STATUS_XFIFOLVL_3_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
612 // XOR data FIFO contains 4 bytes.
613 #define SI32_AES_B_STATUS_XFIFOLVL_4_BYTES_VALUE  4
614 #define SI32_AES_B_STATUS_XFIFOLVL_4_BYTES_U32 \
615    (SI32_AES_B_STATUS_XFIFOLVL_4_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
616 // XOR data FIFO contains 5 bytes.
617 #define SI32_AES_B_STATUS_XFIFOLVL_5_BYTES_VALUE  5
618 #define SI32_AES_B_STATUS_XFIFOLVL_5_BYTES_U32 \
619    (SI32_AES_B_STATUS_XFIFOLVL_5_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
620 // XOR data FIFO contains 6 bytes.
621 #define SI32_AES_B_STATUS_XFIFOLVL_6_BYTES_VALUE  6
622 #define SI32_AES_B_STATUS_XFIFOLVL_6_BYTES_U32 \
623    (SI32_AES_B_STATUS_XFIFOLVL_6_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
624 // XOR data FIFO contains 7 bytes.
625 #define SI32_AES_B_STATUS_XFIFOLVL_7_BYTES_VALUE  7
626 #define SI32_AES_B_STATUS_XFIFOLVL_7_BYTES_U32 \
627    (SI32_AES_B_STATUS_XFIFOLVL_7_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
628 // XOR data FIFO contains 8 bytes.
629 #define SI32_AES_B_STATUS_XFIFOLVL_8_BYTES_VALUE  8
630 #define SI32_AES_B_STATUS_XFIFOLVL_8_BYTES_U32 \
631    (SI32_AES_B_STATUS_XFIFOLVL_8_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
632 // XOR data FIFO contains 9 bytes.
633 #define SI32_AES_B_STATUS_XFIFOLVL_9_BYTES_VALUE  9
634 #define SI32_AES_B_STATUS_XFIFOLVL_9_BYTES_U32 \
635    (SI32_AES_B_STATUS_XFIFOLVL_9_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
636 // XOR data FIFO contains 10 bytes.
637 #define SI32_AES_B_STATUS_XFIFOLVL_10_BYTES_VALUE  10
638 #define SI32_AES_B_STATUS_XFIFOLVL_10_BYTES_U32 \
639    (SI32_AES_B_STATUS_XFIFOLVL_10_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
640 // XOR data FIFO contains 11 bytes.
641 #define SI32_AES_B_STATUS_XFIFOLVL_11_BYTES_VALUE  11
642 #define SI32_AES_B_STATUS_XFIFOLVL_11_BYTES_U32 \
643    (SI32_AES_B_STATUS_XFIFOLVL_11_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
644 // XOR data FIFO contains 12 bytes.
645 #define SI32_AES_B_STATUS_XFIFOLVL_12_BYTES_VALUE  12
646 #define SI32_AES_B_STATUS_XFIFOLVL_12_BYTES_U32 \
647    (SI32_AES_B_STATUS_XFIFOLVL_12_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
648 // XOR data FIFO contains 13 bytes.
649 #define SI32_AES_B_STATUS_XFIFOLVL_13_BYTES_VALUE  13
650 #define SI32_AES_B_STATUS_XFIFOLVL_13_BYTES_U32 \
651    (SI32_AES_B_STATUS_XFIFOLVL_13_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
652 // XOR data FIFO contains 14 bytes.
653 #define SI32_AES_B_STATUS_XFIFOLVL_14_BYTES_VALUE  14
654 #define SI32_AES_B_STATUS_XFIFOLVL_14_BYTES_U32 \
655    (SI32_AES_B_STATUS_XFIFOLVL_14_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
656 // XOR data FIFO contains 15 bytes.
657 #define SI32_AES_B_STATUS_XFIFOLVL_15_BYTES_VALUE  15
658 #define SI32_AES_B_STATUS_XFIFOLVL_15_BYTES_U32 \
659    (SI32_AES_B_STATUS_XFIFOLVL_15_BYTES_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
660 // XOR data FIFO contains 16 bytes (full).
661 #define SI32_AES_B_STATUS_XFIFOLVL_FULL_VALUE  16
662 #define SI32_AES_B_STATUS_XFIFOLVL_FULL_U32 \
663    (SI32_AES_B_STATUS_XFIFOLVL_FULL_VALUE << SI32_AES_B_STATUS_XFIFOLVL_SHIFT)
664 
665 #define SI32_AES_B_STATUS_BUSYF_MASK  0x01000000
666 #define SI32_AES_B_STATUS_BUSYF_SHIFT  24
667 // AES module is not busy.
668 #define SI32_AES_B_STATUS_BUSYF_NOT_SET_VALUE  0
669 #define SI32_AES_B_STATUS_BUSYF_NOT_SET_U32 \
670    (SI32_AES_B_STATUS_BUSYF_NOT_SET_VALUE << SI32_AES_B_STATUS_BUSYF_SHIFT)
671 // AES module is completing an operation.
672 #define SI32_AES_B_STATUS_BUSYF_SET_VALUE  1
673 #define SI32_AES_B_STATUS_BUSYF_SET_U32 \
674    (SI32_AES_B_STATUS_BUSYF_SET_VALUE << SI32_AES_B_STATUS_BUSYF_SHIFT)
675 
676 #define SI32_AES_B_STATUS_DURI_MASK  0x10000000
677 #define SI32_AES_B_STATUS_DURI_SHIFT  28
678 // No input/output data FIFO underrun.
679 #define SI32_AES_B_STATUS_DURI_NOT_SET_VALUE  0
680 #define SI32_AES_B_STATUS_DURI_NOT_SET_U32 \
681    (SI32_AES_B_STATUS_DURI_NOT_SET_VALUE << SI32_AES_B_STATUS_DURI_SHIFT)
682 // An input/output data FIFO underrun has occurred.
683 #define SI32_AES_B_STATUS_DURI_SET_VALUE  1
684 #define SI32_AES_B_STATUS_DURI_SET_U32 \
685    (SI32_AES_B_STATUS_DURI_SET_VALUE << SI32_AES_B_STATUS_DURI_SHIFT)
686 
687 #define SI32_AES_B_STATUS_DORI_MASK  0x20000000
688 #define SI32_AES_B_STATUS_DORI_SHIFT  29
689 // No input/output data FIFO overrun.
690 #define SI32_AES_B_STATUS_DORI_NOT_SET_VALUE  0
691 #define SI32_AES_B_STATUS_DORI_NOT_SET_U32 \
692    (SI32_AES_B_STATUS_DORI_NOT_SET_VALUE << SI32_AES_B_STATUS_DORI_SHIFT)
693 // An input/output data FIFO overrun has occurred.
694 #define SI32_AES_B_STATUS_DORI_SET_VALUE  1
695 #define SI32_AES_B_STATUS_DORI_SET_U32 \
696    (SI32_AES_B_STATUS_DORI_SET_VALUE << SI32_AES_B_STATUS_DORI_SHIFT)
697 
698 #define SI32_AES_B_STATUS_XORI_MASK  0x40000000
699 #define SI32_AES_B_STATUS_XORI_SHIFT  30
700 // No XOR data FIFO overrun.
701 #define SI32_AES_B_STATUS_XORI_NOT_SET_VALUE  0
702 #define SI32_AES_B_STATUS_XORI_NOT_SET_U32 \
703    (SI32_AES_B_STATUS_XORI_NOT_SET_VALUE << SI32_AES_B_STATUS_XORI_SHIFT)
704 // An XOR data FIFO overrun has occurred.
705 #define SI32_AES_B_STATUS_XORI_SET_VALUE  1
706 #define SI32_AES_B_STATUS_XORI_SET_U32 \
707    (SI32_AES_B_STATUS_XORI_SET_VALUE << SI32_AES_B_STATUS_XORI_SHIFT)
708 
709 #define SI32_AES_B_STATUS_OCI_MASK  0x80000000
710 #define SI32_AES_B_STATUS_OCI_SHIFT  31
711 // AES operation complete interrupt has not occurred.
712 #define SI32_AES_B_STATUS_OCI_NOT_SET_VALUE  0U
713 #define SI32_AES_B_STATUS_OCI_NOT_SET_U32 \
714    (SI32_AES_B_STATUS_OCI_NOT_SET_VALUE << SI32_AES_B_STATUS_OCI_SHIFT)
715 // AES operation complete interrupt occurred.
716 #define SI32_AES_B_STATUS_OCI_SET_VALUE  1U
717 #define SI32_AES_B_STATUS_OCI_SET_U32 \
718    (SI32_AES_B_STATUS_OCI_SET_VALUE << SI32_AES_B_STATUS_OCI_SHIFT)
719 
720 
721 
722 typedef struct SI32_AES_B_Struct
723 {
724    struct SI32_AES_B_CONTROL_Struct                CONTROL        ; // Base Address + 0x0
725    volatile uint32_t                               CONTROL_SET;
726    volatile uint32_t                               CONTROL_CLR;
727    uint32_t                                        reserved0;
728    struct SI32_AES_B_XFRSIZE_Struct                XFRSIZE        ; // Base Address + 0x10
729    uint32_t                                        reserved1;
730    uint32_t                                        reserved2;
731    uint32_t                                        reserved3;
732    struct SI32_AES_B_DATAFIFO_Struct               DATAFIFO       ; // Base Address + 0x20
733    uint32_t                                        reserved4;
734    uint32_t                                        reserved5;
735    uint32_t                                        reserved6;
736    struct SI32_AES_B_XORFIFO_Struct                XORFIFO        ; // Base Address + 0x30
737    uint32_t                                        reserved7;
738    uint32_t                                        reserved8;
739    uint32_t                                        reserved9;
740    struct SI32_AES_B_HWKEY0_Struct                 HWKEY0         ; // Base Address + 0x40
741    uint32_t                                        reserved10;
742    uint32_t                                        reserved11;
743    uint32_t                                        reserved12;
744    struct SI32_AES_B_HWKEY1_Struct                 HWKEY1         ; // Base Address + 0x50
745    uint32_t                                        reserved13;
746    uint32_t                                        reserved14;
747    uint32_t                                        reserved15;
748    struct SI32_AES_B_HWKEY2_Struct                 HWKEY2         ; // Base Address + 0x60
749    uint32_t                                        reserved16;
750    uint32_t                                        reserved17;
751    uint32_t                                        reserved18;
752    struct SI32_AES_B_HWKEY3_Struct                 HWKEY3         ; // Base Address + 0x70
753    uint32_t                                        reserved19;
754    uint32_t                                        reserved20;
755    uint32_t                                        reserved21;
756    struct SI32_AES_B_HWKEY4_Struct                 HWKEY4         ; // Base Address + 0x80
757    uint32_t                                        reserved22;
758    uint32_t                                        reserved23;
759    uint32_t                                        reserved24;
760    struct SI32_AES_B_HWKEY5_Struct                 HWKEY5         ; // Base Address + 0x90
761    uint32_t                                        reserved25;
762    uint32_t                                        reserved26;
763    uint32_t                                        reserved27;
764    struct SI32_AES_B_HWKEY6_Struct                 HWKEY6         ; // Base Address + 0xa0
765    uint32_t                                        reserved28;
766    uint32_t                                        reserved29;
767    uint32_t                                        reserved30;
768    struct SI32_AES_B_HWKEY7_Struct                 HWKEY7         ; // Base Address + 0xb0
769    uint32_t                                        reserved31;
770    uint32_t                                        reserved32;
771    uint32_t                                        reserved33;
772    struct SI32_AES_B_HWCTR0_Struct                 HWCTR0         ; // Base Address + 0xc0
773    uint32_t                                        reserved34;
774    uint32_t                                        reserved35;
775    uint32_t                                        reserved36;
776    struct SI32_AES_B_HWCTR1_Struct                 HWCTR1         ; // Base Address + 0xd0
777    uint32_t                                        reserved37;
778    uint32_t                                        reserved38;
779    uint32_t                                        reserved39;
780    struct SI32_AES_B_HWCTR2_Struct                 HWCTR2         ; // Base Address + 0xe0
781    uint32_t                                        reserved40;
782    uint32_t                                        reserved41;
783    uint32_t                                        reserved42;
784    struct SI32_AES_B_HWCTR3_Struct                 HWCTR3         ; // Base Address + 0xf0
785    uint32_t                                        reserved43;
786    uint32_t                                        reserved44;
787    uint32_t                                        reserved45;
788    struct SI32_AES_B_STATUS_Struct                 STATUS         ; // Base Address + 0x100
789    volatile uint32_t                               STATUS_SET;
790    volatile uint32_t                               STATUS_CLR;
791    uint32_t                                        reserved46;
792 } SI32_AES_B_Type;
793 
794 #ifdef __cplusplus
795 }
796 #endif
797 
798 #endif // __SI32_AES_B_REGISTERS_H__
799 
800 //-eof--------------------------------------------------------------------------
801 
802