1 /**************************************************************************//**
2  * @file     crypto_reg.h
3  * @version  V1.00
4  * @brief    CRYPTO register definition header file
5  *
6  * SPDX-License-Identifier: Apache-2.0
7  * @copyright (C) 2017-2020 Nuvoton Technology Corp. All rights reserved.
8  *****************************************************************************/
9 #ifndef __CRYPTO_REG_H__
10 #define __CRYPTO_REG_H__
11 
12 #if defined ( __CC_ARM   )
13 #pragma anon_unions
14 #endif
15 
16 /**
17    @addtogroup REGISTER Control Register
18    @{
19 */
20 
21 /**
22     @addtogroup CRPT Cryptographic Accelerator(CRPT)
23     Memory Mapped Structure for Cryptographic Accelerator
24 @{ */
25 
26 typedef struct
27 {
28 
29     /**
30      * @var CRPT_T::INTEN
31      * Offset: 0x00  Crypto Interrupt Enable Control Register
32      * ---------------------------------------------------------------------------------------------------
33      * |Bits    |Field     |Descriptions
34      * | :----: | :----:   | :---- |
35      * |[0]     |AESIEN    |AES Interrupt Enable Control
36      * |        |          |0 = AES interrupt Disabled.
37      * |        |          |1 = AES interrupt Enabled.
38      * |        |          |In DMA mode, an interrupt will be triggered when amount of data set in AES_DMA_CNT is fed into the AES engine.
39      * |        |          |In Non-DMA mode, an interrupt will be triggered when the AES engine finishes the operation.
40      * |[1]     |AESEIEN   |AES Error Flag Enable Control
41      * |        |          |0 = AES error interrupt flag Disabled.
42      * |        |          |1 = AES error interrupt flag Enabled.
43      * |[8]     |TDESIEN   |TDES/DES Interrupt Enable Control
44      * |        |          |0 = TDES/DES interrupt Disabled.
45      * |        |          |1 = TDES/DES interrupt Enabled.
46      * |        |          |In DMA mode, an interrupt will be triggered when amount of data set in TDES_DMA_CNT is fed into the TDES engine.
47      * |        |          |In Non-DMA mode, an interrupt will be triggered when the TDES engine finishes the operation.
48      * |[9]     |TDESEIEN  |TDES/DES Error Flag Enable Control
49      * |        |          |0 = TDES/DES error interrupt flag Disabled.
50      * |        |          |1 = TDES/DES error interrupt flag Enabled.
51      * |[16]    |PRNGIEN   |PRNG Interrupt Enable Control
52      * |        |          |0 = PRNG interrupt Disabled.
53      * |        |          |1 = PRNG interrupt Enabled.
54      * |[22]    |ECCIEN    |ECC Interrupt Enable Control
55      * |        |          |0 = ECC interrupt Disabled.
56      * |        |          |1 = ECC interrupt Enabled.
57      * |        |          |In DMA mode, an interrupt will be triggered when amount of data set in ECC_DMA_CNT is fed into the ECC engine.
58      * |        |          |In Non-DMA mode, an interrupt will be triggered when the ECC engine finishes the operation.
59      * |[23]    |ECCEIEN   |ECC Error Interrupt Enable Control
60      * |        |          |0 = ECC error interrupt flag Disabled.
61      * |        |          |1 = ECC error interrupt flag Enabled.
62      * |[24]    |HMACIEN   |SHA/HMAC Interrupt Enable Control
63      * |        |          |0 = SHA/HMAC interrupt Disabled.
64      * |        |          |1 = SHA/HMAC interrupt Enabled.
65      * |        |          |In DMA mode, an interrupt will be triggered when amount of data set in SHA _DMA_CNT is fed into the SHA/HMAC engine
66      * |        |          |In Non-DMA mode, an interrupt will be triggered when the SHA/HMAC engine finishes the operation.
67      * |[25]    |HMACEIEN  |SHA/HMAC Error Interrupt Enable Control
68      * |        |          |0 = SHA/HMAC error interrupt flag Disabled.
69      * |        |          |1 = SHA/HMAC error interrupt flag Enabled.
70      * @var CRPT_T::INTSTS
71      * Offset: 0x04  Crypto Interrupt Flag
72      * ---------------------------------------------------------------------------------------------------
73      * |Bits    |Field     |Descriptions
74      * | :----: | :----:   | :---- |
75      * |[0]     |AESIF     |AES Finish Interrupt Flag
76      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
77      * |        |          |0 = No AES interrupt.
78      * |        |          |= AES encryption/decryption done interrupt.
79      * |[1]     |AESEIF    |AES Error Flag
80      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
81      * |        |          |0 = No AES error.
82      * |        |          |1 = AES encryption/decryption done interrupt.
83      * |[8]     |TDESIF    |TDES/DES Finish Interrupt Flag
84      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
85      * |        |          |0 = No TDES/DES interrupt.
86      * |        |          |1 = TDES/DES encryption/decryption done interrupt.
87      * |[9]     |TDESEIF   |TDES/DES Error Flag
88      * |        |          |This bit includes the operating and setting error
89      * |        |          |The detailed flag is shown in the CRPT_TDES_STS register
90      * |        |          |This includes operating and setting error.
91      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
92      * |        |          |0 = No TDES/DES error.
93      * |        |          |1 = TDES/DES encryption/decryption error interrupt.
94      * |[16]    |PRNGIF    |PRNG Finish Interrupt Flag
95      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
96      * |        |          |0 = No PRNG interrupt.
97      * |        |          |1 = PRNG key generation done interrupt.
98      * |[22]    |ECCIF     |ECC Finish Interrupt Flag
99      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
100      * |        |          |0 = No ECC interrupt.
101      * |        |          |1 = ECC operation done interrupt.
102      * |[23]    |ECCEIF    |ECC Error Flag
103      * |        |          |This register includes operating and setting error. The detail flag is shown in CRPT_ECC_STS register.
104      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
105      * |        |          |0 = No ECC error.
106      * |        |          |1 = ECC error interrupt.
107      * |[24]    |HMACIF    |SHA/HMAC Finish Interrupt Flag
108      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
109      * |        |          |0 = No SHA/HMAC interrupt.
110      * |        |          |1 = SHA/HMAC operation done interrupt.
111      * |[25]    |HMACEIF   |SHA/HMAC Error Flag
112      * |        |          |This register includes operating and setting error. The detail flag is shown in CRPT_HMAC_STS register.
113      * |        |          |This bit is cleared by writing 1, and it has no effect by writing 0.
114      * |        |          |0 = No SHA/HMAC error.
115      * |        |          |1 = SHA/HMAC error interrupt.
116      * @var CRPT_T::PRNG_CTL
117      * Offset: 0x08  PRNG Control Register
118      * ---------------------------------------------------------------------------------------------------
119      * |Bits    |Field     |Descriptions
120      * | :----: | :----:   | :---- |
121      * |[0]     |START     |Start PRNG Engine
122      * |        |          |0 = Stop PRNG engine.
123      * |        |          |1 = Generate new key and store the new key to register CRPT_PRNG_KEYx , which will be cleared when the new key is generated.
124      * |[1]     |SEEDRLD   |Reload New Seed for PRNG Engine
125      * |        |          |0 = Generating key based on the current seed.
126      * |        |          |1 = Reload new seed.
127      * |[3:2]   |KEYSZ     |PRNG Generate Key Size
128      * |        |          |00 = 64 bits.
129      * |        |          |01 = 128 bits.
130      * |        |          |10 = 192 bits.
131      * |        |          |11 = 256 bits.
132      * |[8]     |BUSY      |PRNG Busy (Read Only)
133      * |        |          |0 = PRNG engine is idle.
134      * |        |          |1 = Indicate that the PRNG engine is generating CRPT_PRNG_KEYx.
135      * @var CRPT_T::PRNG_SEED
136      * Offset: 0x0C  Seed for PRNG
137      * ---------------------------------------------------------------------------------------------------
138      * |Bits    |Field     |Descriptions
139      * | :----: | :----:   | :---- |
140      * |[31:0]  |SEED      |Seed for PRNG (Write Only)
141      * |        |          |The bits store the seed for PRNG engine.
142      * @var CRPT_T::PRNG_KEY[8]
143      * Offset: 0x10 ~ 0x2C  PRNG Generated Key0 ~ Key7
144      * ---------------------------------------------------------------------------------------------------
145      * |Bits    |Field     |Descriptions
146      * | :----: | :----:   | :---- |
147      * |[31:0]  |KEY       |Store PRNG Generated Key (Read Only)
148      * |        |          |The bits store the key that is generated by PRNG.
149      * @var CRPT_T::AES_FDBCK[4]
150      * Offset: 0x50 ~ 0x5C  AES Engine Output Feedback Data after Cryptographic Operation
151      * ---------------------------------------------------------------------------------------------------
152      * |Bits    |Field     |Descriptions
153      * | :----: | :----:   | :---- |
154      * |[31:0]  |FDBCK     |AES Feedback Information
155      * |        |          |The feedback value is 128 bits in size.
156      * |        |          |The AES engine uses the data from CRPT_AES_FDBCKx as the data inputted to CRPT_AESn_IVx for the next block in DMA cascade mode.
157      * |        |          |The AES engine outputs feedback information for IV in the next block's operation
158      * |        |          |Software can use this feedback information to implement more than four DMA channels
159      * |        |          |Software can store that feedback value temporarily
160      * |        |          |After switching back, fill the stored feedback value to this register in the same channel operation, and then continue the operation with the original setting.
161      * @var CRPT_T::TDES_FDBCKH
162      * Offset: 0x60  TDES/DES Engine Output Feedback High Word Data after Cryptographic Operation
163      * ---------------------------------------------------------------------------------------------------
164      * |Bits    |Field     |Descriptions
165      * | :----: | :----:   | :---- |
166      * |[31:0]  |FDBCK     |TDES/DES Feedback
167      * |        |          |The feedback value is 64 bits in size.
168      * |        |          |The TDES/DES engine uses the data from {CRPT_TDES_FDBCKH, CRPT_TDES_FDBCKL} as the data inputted to {CRPT_TDESn_IVH, CRPT_TDESn_IVL} for the next block in DMA cascade mode
169      * |        |          |The feedback register is for CBC, CFB, and OFB mode.
170      * |        |          |TDES/DES engine outputs feedback information for IV in the next block's operation
171      * |        |          |Software can use this feedback information to implement more than four DMA channels
172      * |        |          |Software can store that feedback value temporarily
173      * |        |          |After switching back, fill the stored feedback value to this register in the same channel operation
174      * |        |          |Then can continue the operation with the original setting.
175      * @var CRPT_T::TDES_FDBCKL
176      * Offset: 0x64  TDES/DES Engine Output Feedback Low Word Data after Cryptographic Operation
177      * ---------------------------------------------------------------------------------------------------
178      * |Bits    |Field     |Descriptions
179      * | :----: | :----:   | :---- |
180      * |[31:0]  |FDBCK     |TDES/DES Feedback
181      * |        |          |The feedback value is 64 bits in size.
182      * |        |          |The TDES/DES engine uses the data from {CRPT_TDES_FDBCKH, CRPT_TDES_FDBCKL} as the data inputted to {CRPT_TDESn_IVH, CRPT_TDESn_IVL} for the next block in DMA cascade mode
183      * |        |          |The feedback register is for CBC, CFB, and OFB mode.
184      * |        |          |TDES/DES engine outputs feedback information for IV in the next block's operation
185      * |        |          |Software can use this feedback information to implement more than four DMA channels
186      * |        |          |Software can store that feedback value temporarily
187      * |        |          |After switching back, fill the stored feedback value to this register in the same channel operation
188      * |        |          |Then can continue the operation with the original setting.
189      * @var CRPT_T::AES_CTL
190      * Offset: 0x100  AES Control Register
191      * ---------------------------------------------------------------------------------------------------
192      * |Bits    |Field     |Descriptions
193      * | :----: | :----:   | :---- |
194      * |[0]     |START     |AES Engine Start
195      * |        |          |0 = No effect.
196      * |        |          |1 = Start AES engine. BUSY flag will be set.
197      * |        |          |Note: This bit is always 0 when it's read back.
198      * |[1]     |STOP      |AES Engine Stop
199      * |        |          |0 = No effect.
200      * |        |          |1 = Stop AES engine.
201      * |        |          |Note: This bit is always 0 when it's read back.
202      * |[3:2]   |KEYSZ     |AES Key Size
203      * |        |          |This bit defines three different key size for AES operation.
204      * |        |          |2'b00 = 128 bits key.
205      * |        |          |2'b01 = 192 bits key.
206      * |        |          |2'b10 = 256 bits key.
207      * |        |          |2'b11 = Reserved.
208      * |        |          |If the AES accelerator is operating and the corresponding flag BUSY is 1, updating this register has no effect.
209      * |[5]     |DMALAST   |AES Last Block
210      * |        |          |In DMA mode, this bit must be set as beginning the last DMA cascade round.
211      * |        |          |In Non-DMA mode, this bit must be set when feeding in the last block of data in ECB, CBC, CTR, OFB, and CFB mode, and feeding in the (last-1) block of data at CBC-CS1, CBC-CS2, and CBC-CS3 mode.
212      * |        |          |This bit is always 0 when it's read back. Must be written again once START is triggered.
213      * |[6]     |DMACSCAD  |AES Engine DMA with Cascade Mode
214      * |        |          |0 = DMA cascade function Disabled.
215      * |        |          |1 = In DMA cascade mode, software can update DMA source address register, destination address register, and byte count register during a cascade operation, without finishing the accelerator operation.
216      * |[7]     |DMAEN     |AES Engine DMA Enable Control
217      * |        |          |0 = AES DMA engine Disabled.
218      * |        |          |The AES engine operates in Non-DMA mode, and gets data from the port CRPT_AES_DATIN.
219      * |        |          |1 = AES_DMA engine Enabled.
220      * |        |          |The AES engine operates in DMA mode, and data movement from/to the engine is done by DMA logic.
221      * |[15:8]  |OPMODE    |AES Engine Operation Modes
222      * |        |          |0x00 = ECB (Electronic Codebook Mode)  0x01 = CBC (Cipher Block Chaining Mode).
223      * |        |          |0x02 = CFB (Cipher Feedback Mode).
224      * |        |          |0x03 = OFB (Output Feedback Mode).
225      * |        |          |0x04 = CTR (Counter Mode).
226      * |        |          |0x10 = CBC-CS1 (CBC Ciphertext-Stealing 1 Mode).
227      * |        |          |0x11 = CBC-CS2 (CBC Ciphertext-Stealing 2 Mode).
228      * |        |          |0x12 = CBC-CS3 (CBC Ciphertext-Stealing 3 Mode).
229      * |[16]    |ENCRPT    |AES Encryption/Decryption
230      * |        |          |0 = AES engine executes decryption operation.
231      * |        |          |1 = AES engine executes encryption operation.
232      * |[22]    |OUTSWAP   |AES Engine Output Data Swap
233      * |        |          |0 = Keep the original order.
234      * |        |          |1 = The order that CPU outputs data from the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}.
235      * |[23]    |INSWAP    |AES Engine Input Data Swap
236      * |        |          |0 = Keep the original order.
237      * |        |          |1 = The order that CPU feeds data to the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}.
238      * |[25:24] |CHANNEL   |AES Engine Working Channel
239      * |        |          |00 = Current control register setting is for channel 0.
240      * |        |          |01 = Current control register setting is for channel 1.
241      * |        |          |10 = Current control register setting is for channel 2.
242      * |        |          |11 = Current control register setting is for channel 3.
243      * |[30:26] |KEYUNPRT  |Unprotect Key
244      * |        |          |Writing 0 to CRPT_AES_CTL[31] and "10110" to CRPT_AES_CTL[30:26] is to unprotect the AES key.
245      * |        |          |The KEYUNPRT can be read and written
246      * |        |          |When it is written as the AES engine is operating, BUSY flag is 1, there would be no effect on KEYUNPRT.
247      * |[31]    |KEYPRT    |Protect Key
248      * |        |          |Read as a flag to reflect KEYPRT.
249      * |        |          |0 = No effect.
250      * |        |          |1 = Protect the content of the AES key from reading
251      * |        |          |The return value for reading CRPT_AESn_KEYx is not the content of the registers CRPT_AESn_KEYx
252      * |        |          |Once it is set, it can be cleared by asserting KEYUNPRT
253      * |        |          |And the key content would be cleared as well.
254      * @var CRPT_T::AES_STS
255      * Offset: 0x104  AES Engine Flag
256      * ---------------------------------------------------------------------------------------------------
257      * |Bits    |Field     |Descriptions
258      * | :----: | :----:   | :---- |
259      * |[0]     |BUSY      |AES Engine Busy
260      * |        |          |0 = The AES engine is idle or finished.
261      * |        |          |1 = The AES engine is under processing.
262      * |[8]     |INBUFEMPTY|AES Input Buffer Empty
263      * |        |          |0 = There are some data in input buffer waiting for the AES engine to process.
264      * |        |          |1 = AES input buffer is empty
265      * |        |          |Software needs to feed data to the AES engine
266      * |        |          |Otherwise, the AES engine will be pending to wait for input data.
267      * |[9]     |INBUFFULL |AES Input Buffer Full Flag
268      * |        |          |0 = AES input buffer is not full. Software can feed the data into the AES engine.
269      * |        |          |1 = AES input buffer is full
270      * |        |          |Software cannot feed data to the AES engine
271      * |        |          |Otherwise, the flag INBUFERR will be set to 1.
272      * |[10]    |INBUFERR  |AES Input Buffer Error Flag
273      * |        |          |0 = No error.
274      * |        |          |1 = Error happens during feeding data to the AES engine.
275      * |[12]    |CNTERR    |CRPT_AESn_CNT Setting Error
276      * |        |          |0 = No error in CRPT_AESn_CNT setting.
277      * |        |          |1 = CRPT_AESn_CNT is not a multiply of 16 in ECB, CBC, CFB, OFB, and CTR mode.
278      * |[16]    |OUTBUFEMPTY|AES Out Buffer Empty
279      * |        |          |0 = AES output buffer is not empty. There are some valid data kept in output buffer.
280      * |        |          |1 = AES output buffer is empty
281      * |        |          |Software cannot get data from CRPT_AES_DATOUT
282      * |        |          |Otherwise, the flag OUTBUFERR will be set to 1 since the output buffer is empty.
283      * |[17]    |OUTBUFFULL|AES Out Buffer Full Flag
284      * |        |          |0 = AES output buffer is not full.
285      * |        |          |1 = AES output buffer is full, and software needs to get data from CRPT_AES_DATOUT
286      * |        |          |Otherwise, the AES engine will be pending since the output buffer is full.
287      * |[18]    |OUTBUFERR |AES Out Buffer Error Flag
288      * |        |          |0 = No error.
289      * |        |          |1 = Error happens during getting the result from AES engine.
290      * |[20]    |BUSERR    |AES DMA Access Bus Error Flag
291      * |        |          |0 = No error.
292      * |        |          |1 = Bus error will stop DMA operation and AES engine.
293      * @var CRPT_T::AES_DATIN
294      * Offset: 0x108  AES Engine Data Input Port Register
295      * ---------------------------------------------------------------------------------------------------
296      * |Bits    |Field     |Descriptions
297      * | :----: | :----:   | :---- |
298      * |[31:0]  |DATIN     |AES Engine Input Port
299      * |        |          |CPU feeds data to AES engine through this port by checking CRPT_AES_STS. Feed data as INBUFFULL is 0.
300      * @var CRPT_T::AES_DATOUT
301      * Offset: 0x10C  AES Engine Data Output Port Register
302      * ---------------------------------------------------------------------------------------------------
303      * |Bits    |Field     |Descriptions
304      * | :----: | :----:   | :---- |
305      * |[31:0]  |DATOUT    |AES Engine Output Port
306      * |        |          |CPU gets results from the AES engine through this port by checking CRPT_AES_STS
307      * |        |          |Get data as OUTBUFEMPTY is 0.
308      * @var CRPT_T::AES0_KEY[8]
309      * Offset: 0x110 ~ 0x12C  AES Key Word 0 ~ 7 Register for Channel 0
310      * ---------------------------------------------------------------------------------------------------
311      * |Bits    |Field     |Descriptions
312      * | :----: | :----:   | :---- |
313      * |[31:0]  |KEY       |CRPT_AESn_KEYx
314      * |        |          |The KEY keeps the security key for AES operation.
315      * |        |          |n = 0, 1..3.
316      * |        |          |x = 0, 1..7.
317      * |        |          |The security key for AES accelerator can be 128, 192, or 256 bits and four, six, or eight 32-bit registers are to store each security key
318      * |        |          |{CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 128-bit security key for AES operation
319      * |        |          |{CRPT_AESn_KEY5, CRPT_AESn_KEY4, CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 192-bit security key for AES operation
320      * |        |          |{CRPT_AESn_KEY7, CRPT_AESn_KEY6, CRPT_AESn_KEY5, CRPT_AESn_KEY4, CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 256-bit security key for AES operation.
321      * @var CRPT_T::AES0_IV[4]
322      * Offset: 0x130 ~ 0x13C  AES Initial Vector Word 0 ~ 3 Register for Channel 0
323      * ---------------------------------------------------------------------------------------------------
324      * |Bits    |Field     |Descriptions
325      * | :----: | :----:   | :---- |
326      * |[31:0]  |IV        |AES Initial Vectors
327      * |        |          |n = 0, 1..3.
328      * |        |          |x = 0, 1..3.
329      * |        |          |Four initial vectors (CRPT_AESn_IV0, CRPT_AESn_IV1, CRPT_AESn_IV2, and CRPT_AESn_IV3) are for AES operating in CBC, CFB, and OFB mode
330      * |        |          |Four registers (CRPT_AESn_IV0, CRPT_AESn_IV1, CRPT_AESn_IV2, and CRPT_AESn_IV3) act as Nonce counter when the AES engine is operating in CTR mode.
331      * @var CRPT_T::AES0_SADDR
332      * Offset: 0x140  AES DMA Source Address Register for Channel 0
333      * ---------------------------------------------------------------------------------------------------
334      * |Bits    |Field     |Descriptions
335      * | :----: | :----:   | :---- |
336      * |[31:0]  |SADDR     |AES DMA Source Address
337      * |        |          |The AES accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
338      * |        |          |The SADDR keeps the source address of the data buffer where the source text is stored
339      * |        |          |Based on the source address, the AES accelerator can read the plain text from system memory and do AES operation
340      * |        |          |The start of source address should be located at word boundary
341      * |        |          |In other words, bit 1 and 0 of SADDR are ignored.
342      * |        |          |SADDR can be read and written
343      * |        |          |Writing to SADDR while the AES accelerator is operating doesn't affect the current AES operation
344      * |        |          |But the value of SADDR will be updated later on
345      * |        |          |Consequently, software can prepare the DMA source address for the next AES operation.
346      * |        |          |In DMA mode, software can update the next CRPT_AESn_SADDR before triggering START.
347      * |        |          |The value of CRPT_AESn_SADDR and CRPT_AESn_DADDR can be the same.
348      * @var CRPT_T::AES0_DADDR
349      * Offset: 0x144  AES DMA Destination Address Register for Channel 0
350      * ---------------------------------------------------------------------------------------------------
351      * |Bits    |Field     |Descriptions
352      * | :----: | :----:   | :---- |
353      * |[31:0]  |DADDR     |AES DMA Destination Address
354      * |        |          |The AES accelerator supports DMA function to transfer the cipher text between system memory and embedded FIFO
355      * |        |          |The DADDR keeps the destination address of the data buffer where the engine output's text will be stored
356      * |        |          |Based on the destination address, the AES accelerator can write the cipher text back to system memory after the AES operation is finished
357      * |        |          |The start of destination address should be located at word boundary
358      * |        |          |In other words, bit 1 and 0 of DADDR are ignored.
359      * |        |          |DADDR can be read and written
360      * |        |          |Writing to DADDR while the AES accelerator is operating doesn't affect the current AES operation
361      * |        |          |But the value of DADDR will be updated later on
362      * |        |          |Consequently, software can prepare the destination address for the next AES operation.
363      * |        |          |In DMA mode, software can update the next CRPT_AESn_DADDR before triggering START.
364      * |        |          |The value of CRPT_AESn_SADDR and CRPT_AESn_DADDR can be the same.
365      * @var CRPT_T::AES0_CNT
366      * Offset: 0x148  AES Byte Count Register for Channel 0
367      * ---------------------------------------------------------------------------------------------------
368      * |Bits    |Field     |Descriptions
369      * | :----: | :----:   | :---- |
370      * |[31:0]  |CNT       |AES Byte Count
371      * |        |          |The CRPT_AESn_CNT keeps the byte count of source text that is for the AES engine operating in DMA mode
372      * |        |          |The CRPT_AESn_CNT is 32-bit and the maximum of byte count is 4G bytes.
373      * |        |          |CRPT_AESn_CNT can be read and written
374      * |        |          |Writing to CRPT_AESn_CNT while the AES accelerator is operating doesn't affect the current AES operation
375      * |        |          |But the value of CRPT_AESn_CNT will be updated later on
376      * |        |          |Consequently, software can prepare the byte count of data for the next AES operation.
377      * |        |          |According to CBC-CS1, CBC-CS2, and CBC-CS3 standard, the count of operation data must be at least one block
378      * |        |          |Operations that are less than one block will output unexpected result.
379      * |        |          |In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRPT_AESn_CNT must be set as byte count for the last block of data before feeding in the last block of data
380      * |        |          |In Non-DMA CBC-CS1, CBC-CS2, and CBC-CS3 mode, CRPT_AESn_CNT must be set as byte count for the last two blocks of data before feeding in the last two blocks of data.
381      * @var CRPT_T::AES1_KEY[8]
382      * Offset: 0x14C ~ 0x168  AES Key Word 0 ~ 7 Register for Channel 1
383      * ---------------------------------------------------------------------------------------------------
384      * |Bits    |Field     |Descriptions
385      * | :----: | :----:   | :---- |
386      * |[31:0]  |KEY       |CRPT_AESn_KEYx
387      * |        |          |The KEY keeps the security key for AES operation.
388      * |        |          |n = 0, 1..3.
389      * |        |          |x = 0, 1..7.
390      * |        |          |The security key for AES accelerator can be 128, 192, or 256 bits and four, six, or eight 32-bit registers are to store each security key
391      * |        |          |{CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 128-bit security key for AES operation
392      * |        |          |{CRPT_AESn_KEY5, CRPT_AESn_KEY4, CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 192-bit security key for AES operation
393      * |        |          |{CRPT_AESn_KEY7, CRPT_AESn_KEY6, CRPT_AESn_KEY5, CRPT_AESn_KEY4, CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 256-bit security key for AES operation.
394      * @var CRPT_T::AES1_IV[4]
395      * Offset: 0x16C ~ 0x178  AES Initial Vector Word 0 ~ 3 Register for Channel 1
396      * ---------------------------------------------------------------------------------------------------
397      * |Bits    |Field     |Descriptions
398      * | :----: | :----:   | :---- |
399      * |[31:0]  |IV        |AES Initial Vectors
400      * |        |          |n = 0, 1..3.
401      * |        |          |x = 0, 1..3.
402      * |        |          |Four initial vectors (CRPT_AESn_IV0, CRPT_AESn_IV1, CRPT_AESn_IV2, and CRPT_AESn_IV3) are for AES operating in CBC, CFB, and OFB mode
403      * |        |          |Four registers (CRPT_AESn_IV0, CRPT_AESn_IV1, CRPT_AESn_IV2, and CRPT_AESn_IV3) act as Nonce counter when the AES engine is operating in CTR mode.
404      * @var CRPT_T::AES1_SADDR
405      * Offset: 0x17C  AES DMA Source Address Register for Channel 1
406      * ---------------------------------------------------------------------------------------------------
407      * |Bits    |Field     |Descriptions
408      * | :----: | :----:   | :---- |
409      * |[31:0]  |SADDR     |AES DMA Source Address
410      * |        |          |The AES accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
411      * |        |          |The SADDR keeps the source address of the data buffer where the source text is stored
412      * |        |          |Based on the source address, the AES accelerator can read the plain text from system memory and do AES operation
413      * |        |          |The start of source address should be located at word boundary
414      * |        |          |In other words, bit 1 and 0 of SADDR are ignored.
415      * |        |          |SADDR can be read and written
416      * |        |          |Writing to SADDR while the AES accelerator is operating doesn't affect the current AES operation
417      * |        |          |But the value of SADDR will be updated later on
418      * |        |          |Consequently, software can prepare the DMA source address for the next AES operation.
419      * |        |          |In DMA mode, software can update the next CRPT_AESn_SADDR before triggering START.
420      * |        |          |The value of CRPT_AESn_SADDR and CRPT_AESn_DADDR can be the same.
421      * @var CRPT_T::AES1_DADDR
422      * Offset: 0x180  AES DMA Destination Address Register for Channel 1
423      * ---------------------------------------------------------------------------------------------------
424      * |Bits    |Field     |Descriptions
425      * | :----: | :----:   | :---- |
426      * |[31:0]  |DADDR     |AES DMA Destination Address
427      * |        |          |The AES accelerator supports DMA function to transfer the cipher text between system memory and embedded FIFO
428      * |        |          |The DADDR keeps the destination address of the data buffer where the engine output's text will be stored
429      * |        |          |Based on the destination address, the AES accelerator can write the cipher text back to system memory after the AES operation is finished
430      * |        |          |The start of destination address should be located at word boundary
431      * |        |          |In other words, bit 1 and 0 of DADDR are ignored.
432      * |        |          |DADDR can be read and written
433      * |        |          |Writing to DADDR while the AES accelerator is operating doesn't affect the current AES operation
434      * |        |          |But the value of DADDR will be updated later on
435      * |        |          |Consequently, software can prepare the destination address for the next AES operation.
436      * |        |          |In DMA mode, software can update the next CRPT_AESn_DADDR before triggering START.
437      * |        |          |The value of CRPT_AESn_SADDR and CRPT_AESn_DADDR can be the same.
438      * @var CRPT_T::AES1_CNT
439      * Offset: 0x184  AES Byte Count Register for Channel 1
440      * ---------------------------------------------------------------------------------------------------
441      * |Bits    |Field     |Descriptions
442      * | :----: | :----:   | :---- |
443      * |[31:0]  |CNT       |AES Byte Count
444      * |        |          |The CRPT_AESn_CNT keeps the byte count of source text that is for the AES engine operating in DMA mode
445      * |        |          |The CRPT_AESn_CNT is 32-bit and the maximum of byte count is 4G bytes.
446      * |        |          |CRPT_AESn_CNT can be read and written
447      * |        |          |Writing to CRPT_AESn_CNT while the AES accelerator is operating doesn't affect the current AES operation
448      * |        |          |But the value of CRPT_AESn_CNT will be updated later on
449      * |        |          |Consequently, software can prepare the byte count of data for the next AES operation.
450      * |        |          |According to CBC-CS1, CBC-CS2, and CBC-CS3 standard, the count of operation data must be at least one block
451      * |        |          |Operations that are less than one block will output unexpected result.
452      * |        |          |In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRPT_AESn_CNT must be set as byte count for the last block of data before feeding in the last block of data
453      * |        |          |In Non-DMA CBC-CS1, CBC-CS2, and CBC-CS3 mode, CRPT_AESn_CNT must be set as byte count for the last two blocks of data before feeding in the last two blocks of data.
454      * @var CRPT_T::AES2_KEY[8]
455      * Offset: 0x188 ~ 0x1A4  AES Key Word 0 ~ 7 Register for Channel 2
456      * ---------------------------------------------------------------------------------------------------
457      * |Bits    |Field     |Descriptions
458      * | :----: | :----:   | :---- |
459      * |[31:0]  |KEY       |CRPT_AESn_KEYx
460      * |        |          |The KEY keeps the security key for AES operation.
461      * |        |          |n = 0, 1..3.
462      * |        |          |x = 0, 1..7.
463      * |        |          |The security key for AES accelerator can be 128, 192, or 256 bits and four, six, or eight 32-bit registers are to store each security key
464      * |        |          |{CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 128-bit security key for AES operation
465      * |        |          |{CRPT_AESn_KEY5, CRPT_AESn_KEY4, CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 192-bit security key for AES operation
466      * |        |          |{CRPT_AESn_KEY7, CRPT_AESn_KEY6, CRPT_AESn_KEY5, CRPT_AESn_KEY4, CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 256-bit security key for AES operation.
467      * @var CRPT_T::AES2_IV[4]
468      * Offset: 0x1A8 ~ 0x1B4  AES Initial Vector Word 0 ~ 3 Register for Channel 2
469      * ---------------------------------------------------------------------------------------------------
470      * |Bits    |Field     |Descriptions
471      * | :----: | :----:   | :---- |
472      * |[31:0]  |IV        |AES Initial Vectors
473      * |        |          |n = 0, 1..3.
474      * |        |          |x = 0, 1..3.
475      * |        |          |Four initial vectors (CRPT_AESn_IV0, CRPT_AESn_IV1, CRPT_AESn_IV2, and CRPT_AESn_IV3) are for AES operating in CBC, CFB, and OFB mode
476      * |        |          |Four registers (CRPT_AESn_IV0, CRPT_AESn_IV1, CRPT_AESn_IV2, and CRPT_AESn_IV3) act as Nonce counter when the AES engine is operating in CTR mode.
477      * @var CRPT_T::AES2_SADDR
478      * Offset: 0x1B8  AES DMA Source Address Register for Channel 2
479      * ---------------------------------------------------------------------------------------------------
480      * |Bits    |Field     |Descriptions
481      * | :----: | :----:   | :---- |
482      * |[31:0]  |SADDR     |AES DMA Source Address
483      * |        |          |The AES accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
484      * |        |          |The SADDR keeps the source address of the data buffer where the source text is stored
485      * |        |          |Based on the source address, the AES accelerator can read the plain text from system memory and do AES operation
486      * |        |          |The start of source address should be located at word boundary
487      * |        |          |In other words, bit 1 and 0 of SADDR are ignored.
488      * |        |          |SADDR can be read and written
489      * |        |          |Writing to SADDR while the AES accelerator is operating doesn't affect the current AES operation
490      * |        |          |But the value of SADDR will be updated later on
491      * |        |          |Consequently, software can prepare the DMA source address for the next AES operation.
492      * |        |          |In DMA mode, software can update the next CRPT_AESn_SADDR before triggering START.
493      * |        |          |The value of CRPT_AESn_SADDR and CRPT_AESn_DADDR can be the same.
494      * @var CRPT_T::AES2_DADDR
495      * Offset: 0x1BC  AES DMA Destination Address Register for Channel 2
496      * ---------------------------------------------------------------------------------------------------
497      * |Bits    |Field     |Descriptions
498      * | :----: | :----:   | :---- |
499      * |[31:0]  |DADDR     |AES DMA Destination Address
500      * |        |          |The AES accelerator supports DMA function to transfer the cipher text between system memory and embedded FIFO
501      * |        |          |The DADDR keeps the destination address of the data buffer where the engine output's text will be stored
502      * |        |          |Based on the destination address, the AES accelerator can write the cipher text back to system memory after the AES operation is finished
503      * |        |          |The start of destination address should be located at word boundary
504      * |        |          |In other words, bit 1 and 0 of DADDR are ignored.
505      * |        |          |DADDR can be read and written
506      * |        |          |Writing to DADDR while the AES accelerator is operating doesn't affect the current AES operation
507      * |        |          |But the value of DADDR will be updated later on
508      * |        |          |Consequently, software can prepare the destination address for the next AES operation.
509      * |        |          |In DMA mode, software can update the next CRPT_AESn_DADDR before triggering START.
510      * |        |          |The value of CRPT_AESn_SADDR and CRPT_AESn_DADDR can be the same.
511      * @var CRPT_T::AES2_CNT
512      * Offset: 0x1C0  AES Byte Count Register for Channel 2
513      * ---------------------------------------------------------------------------------------------------
514      * |Bits    |Field     |Descriptions
515      * | :----: | :----:   | :---- |
516      * |[31:0]  |CNT       |AES Byte Count
517      * |        |          |The CRPT_AESn_CNT keeps the byte count of source text that is for the AES engine operating in DMA mode
518      * |        |          |The CRPT_AESn_CNT is 32-bit and the maximum of byte count is 4G bytes.
519      * |        |          |CRPT_AESn_CNT can be read and written
520      * |        |          |Writing to CRPT_AESn_CNT while the AES accelerator is operating doesn't affect the current AES operation
521      * |        |          |But the value of CRPT_AESn_CNT will be updated later on
522      * |        |          |Consequently, software can prepare the byte count of data for the next AES operation.
523      * |        |          |According to CBC-CS1, CBC-CS2, and CBC-CS3 standard, the count of operation data must be at least one block
524      * |        |          |Operations that are less than one block will output unexpected result.
525      * |        |          |In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRPT_AESn_CNT must be set as byte count for the last block of data before feeding in the last block of data
526      * |        |          |In Non-DMA CBC-CS1, CBC-CS2, and CBC-CS3 mode, CRPT_AESn_CNT must be set as byte count for the last two blocks of data before feeding in the last two blocks of data.
527      * @var CRPT_T::AES3_KEY[8]
528      * Offset: 0x1C4 ~ 0x1E0  AES Key Word 0 ~ 7 Register for Channel 3
529      * ---------------------------------------------------------------------------------------------------
530      * |Bits    |Field     |Descriptions
531      * | :----: | :----:   | :---- |
532      * |[31:0]  |KEY       |CRPT_AESn_KEYx
533      * |        |          |The KEY keeps the security key for AES operation.
534      * |        |          |n = 0, 1..3.
535      * |        |          |x = 0, 1..7.
536      * |        |          |The security key for AES accelerator can be 128, 192, or 256 bits and four, six, or eight 32-bit registers are to store each security key
537      * |        |          |{CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 128-bit security key for AES operation
538      * |        |          |{CRPT_AESn_KEY5, CRPT_AESn_KEY4, CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 192-bit security key for AES operation
539      * |        |          |{CRPT_AESn_KEY7, CRPT_AESn_KEY6, CRPT_AESn_KEY5, CRPT_AESn_KEY4, CRPT_AESn_KEY3, CRPT_AESn_KEY2, CRPT_AESn_KEY1, CRPT_AESn_KEY0} stores the 256-bit security key for AES operation.
540      * @var CRPT_T::AES3_IV[4]
541      * Offset: 0x1E4 ~ 0x1F0  AES Initial Vector Word 0 ~ 3 Register for Channel 3
542      * ---------------------------------------------------------------------------------------------------
543      * |Bits    |Field     |Descriptions
544      * | :----: | :----:   | :---- |
545      * |[31:0]  |IV        |AES Initial Vectors
546      * |        |          |n = 0, 1..3.
547      * |        |          |x = 0, 1..3.
548      * |        |          |Four initial vectors (CRPT_AESn_IV0, CRPT_AESn_IV1, CRPT_AESn_IV2, and CRPT_AESn_IV3) are for AES operating in CBC, CFB, and OFB mode
549      * |        |          |Four registers (CRPT_AESn_IV0, CRPT_AESn_IV1, CRPT_AESn_IV2, and CRPT_AESn_IV3) act as Nonce counter when the AES engine is operating in CTR mode.
550      * @var CRPT_T::AES3_SADDR
551      * Offset: 0x1F4  AES DMA Source Address Register for Channel 3
552      * ---------------------------------------------------------------------------------------------------
553      * |Bits    |Field     |Descriptions
554      * | :----: | :----:   | :---- |
555      * |[31:0]  |SADDR     |AES DMA Source Address
556      * |        |          |The AES accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
557      * |        |          |The SADDR keeps the source address of the data buffer where the source text is stored
558      * |        |          |Based on the source address, the AES accelerator can read the plain text from system memory and do AES operation
559      * |        |          |The start of source address should be located at word boundary
560      * |        |          |In other words, bit 1 and 0 of SADDR are ignored.
561      * |        |          |SADDR can be read and written
562      * |        |          |Writing to SADDR while the AES accelerator is operating doesn't affect the current AES operation
563      * |        |          |But the value of SADDR will be updated later on
564      * |        |          |Consequently, software can prepare the DMA source address for the next AES operation.
565      * |        |          |In DMA mode, software can update the next CRPT_AESn_SADDR before triggering START.
566      * |        |          |The value of CRPT_AESn_SADDR and CRPT_AESn_DADDR can be the same.
567      * @var CRPT_T::AES3_DADDR
568      * Offset: 0x1F8  AES DMA Destination Address Register for Channel 3
569      * ---------------------------------------------------------------------------------------------------
570      * |Bits    |Field     |Descriptions
571      * | :----: | :----:   | :---- |
572      * |[31:0]  |DADDR     |AES DMA Destination Address
573      * |        |          |The AES accelerator supports DMA function to transfer the cipher text between system memory and embedded FIFO
574      * |        |          |The DADDR keeps the destination address of the data buffer where the engine output's text will be stored
575      * |        |          |Based on the destination address, the AES accelerator can write the cipher text back to system memory after the AES operation is finished
576      * |        |          |The start of destination address should be located at word boundary
577      * |        |          |In other words, bit 1 and 0 of DADDR are ignored.
578      * |        |          |DADDR can be read and written
579      * |        |          |Writing to DADDR while the AES accelerator is operating doesn't affect the current AES operation
580      * |        |          |But the value of DADDR will be updated later on
581      * |        |          |Consequently, software can prepare the destination address for the next AES operation.
582      * |        |          |In DMA mode, software can update the next CRPT_AESn_DADDR before triggering START.
583      * |        |          |The value of CRPT_AESn_SADDR and CRPT_AESn_DADDR can be the same.
584      * @var CRPT_T::AES3_CNT
585      * Offset: 0x1FC  AES Byte Count Register for Channel 3
586      * ---------------------------------------------------------------------------------------------------
587      * |Bits    |Field     |Descriptions
588      * | :----: | :----:   | :---- |
589      * |[31:0]  |CNT       |AES Byte Count
590      * |        |          |The CRPT_AESn_CNT keeps the byte count of source text that is for the AES engine operating in DMA mode
591      * |        |          |The CRPT_AESn_CNT is 32-bit and the maximum of byte count is 4G bytes.
592      * |        |          |CRPT_AESn_CNT can be read and written
593      * |        |          |Writing to CRPT_AESn_CNT while the AES accelerator is operating doesn't affect the current AES operation
594      * |        |          |But the value of CRPT_AESn_CNT will be updated later on
595      * |        |          |Consequently, software can prepare the byte count of data for the next AES operation.
596      * |        |          |According to CBC-CS1, CBC-CS2, and CBC-CS3 standard, the count of operation data must be at least one block
597      * |        |          |Operations that are less than one block will output unexpected result.
598      * |        |          |In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRPT_AESn_CNT must be set as byte count for the last block of data before feeding in the last block of data
599      * |        |          |In Non-DMA CBC-CS1, CBC-CS2, and CBC-CS3 mode, CRPT_AESn_CNT must be set as byte count for the last two blocks of data before feeding in the last two blocks of data.
600      * @var CRPT_T::TDES_CTL
601      * Offset: 0x200  TDES/DES Control Register
602      * ---------------------------------------------------------------------------------------------------
603      * |Bits    |Field     |Descriptions
604      * | :----: | :----:   | :---- |
605      * |[0]     |START     |TDES/DES Engine Start
606      * |        |          |0 = No effect.
607      * |        |          |1 = Start TDES/DES engine. The flag BUSY would be set.
608      * |        |          |Note: The bit is always 0 when it's read back.
609      * |[1]     |STOP      |TDES/DES Engine Stop
610      * |        |          |0 = No effect.
611      * |        |          |1 = Stop TDES/DES engine.
612      * |        |          |Note: The bit is always 0 when it's read back.
613      * |[2]     |TMODE     |TDES/DES Engine Operating Mode
614      * |        |          |0 = Set DES mode for TDES/DES engine.
615      * |        |          |1 = Set Triple DES mode for TDES/DES engine.
616      * |[3]     |3KEYS     |TDES/DES Key Number
617      * |        |          |0 = Select KEY1 and KEY2 in TDES/DES engine.
618      * |        |          |1 = Triple keys in TDES/DES engine Enabled.
619      * |[5]     |DMALAST   |TDES/DES Engine Start for the Last Block
620      * |        |          |In DMA mode, this bit must be set as beginning the last DMA cascade round.
621      * |        |          |In Non-DMA mode, this bit must be set as feeding in last block of data.
622      * |[6]     |DMACSCAD  |TDES/DES Engine DMA with Cascade Mode
623      * |        |          |0 = DMA cascade function Disabled.
624      * |        |          |1 = In DMA Cascade mode, software can update DMA source address register, destination address register, and byte count register during a cascade operation, without finishing the accelerator operation.
625      * |[7]     |DMAEN     |TDES/DES Engine DMA Enable Control
626      * |        |          |0 = TDES_DMA engine Disabled.
627      * |        |          |TDES engine operates in Non-DMA mode, and get data from the port CRPT_TDES_DATIN.
628      * |        |          |1 = TDES_DMA engine Enabled.
629      * |        |          |TDES engine operates in DMA mode, and data movement from/to the engine is done by DMA logic.
630      * |[10:8]  |OPMODE    |TDES/DES Engine Operation Mode
631      * |        |          |0x00 = ECB (Electronic Codebook Mode).
632      * |        |          |0x01 = CBC (Cipher Block Chaining Mode).
633      * |        |          |0x02 = CFB (Cipher Feedback Mode).
634      * |        |          |0x03 = OFB (Output Feedback Mode).
635      * |        |          |0x04 = CTR (Counter Mode).
636      * |        |          |Others = CTR (Counter Mode).
637      * |[16]    |ENCRPT    |TDES/DES Encryption/Decryption
638      * |        |          |0 = TDES engine executes decryption operation.
639      * |        |          |1 = TDES engine executes encryption operation.
640      * |[21]    |BLKSWAP   |TDES/DES Engine Block Double Word Endian Swap
641      * |        |          |0 = Keep the original order, e.g. {WORD_H, WORD_L}.
642      * |        |          |1 = When this bit is set to 1, the TDES engine would exchange high and low word in the sequence {WORD_L, WORD_H}.
643      * |[22]    |OUTSWAP   |TDES/DES Engine Output Data Swap
644      * |        |          |0 = Keep the original order.
645      * |        |          |1 = The order that CPU outputs data from the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}.
646      * |[23]    |INSWAP    |TDES/DES Engine Input Data Swap
647      * |        |          |0 = Keep the original order.
648      * |        |          |1 = The order that CPU feeds data to the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}.
649      * |[25:24] |CHANNEL   |TDES/DES Engine Working Channel
650      * |        |          |00 = Current control register setting is for channel 0.
651      * |        |          |01 = Current control register setting is for channel 1.
652      * |        |          |10 = Current control register setting is for channel 2.
653      * |        |          |11 = Current control register setting is for channel 3.
654      * |[30:26] |KEYUNPRT  |Unprotect Key
655      * |        |          |Writing 0 to CRPT_TDES_CTL [31] and "10110" to CRPT_TDES_CTL [30:26] is to unprotect TDES key.
656      * |        |          |The KEYUNPRT can be read and written
657      * |        |          |When it is written as the TDES engine is operating, BUSY flag is 1, there would be no effect on KEYUNPRT.
658      * |[31]    |KEYPRT    |Protect Key
659      * |        |          |Read as a flag to reflect KEYPRT.
660      * |        |          |0 = No effect.
661      * |        |          |1 = This bit is to protect the content of TDES key from reading
662      * |        |          |The return value for reading CRPT_ TDESn_KEYxH/L is not the content in the registers CRPT_ TDESn_KEYxH/L
663      * |        |          |Once it is set, it can be cleared by asserting KEYUNPRT
664      * |        |          |The key content would be cleared as well.
665      * @var CRPT_T::TDES_STS
666      * Offset: 0x204  TDES/DES Engine Flag
667      * ---------------------------------------------------------------------------------------------------
668      * |Bits    |Field     |Descriptions
669      * | :----: | :----:   | :---- |
670      * |[0]     |BUSY      |TDES/DES Engine Busy
671      * |        |          |0 = TDES/DES engine is idle or finished.
672      * |        |          |1 = TDES/DES engine is under processing.
673      * |[8]     |INBUFEMPTY|TDES/DES in Buffer Empty
674      * |        |          |0 = There are some data in input buffer waiting for the TDES/DES engine to process.
675      * |        |          |1 = TDES/DES input buffer is empty
676      * |        |          |Software needs to feed data to the TDES/DES engine
677      * |        |          |Otherwise, the TDES/DES engine will be pending to wait for input data.
678      * |[9]     |INBUFFULL |TDES/DES in Buffer Full Flag
679      * |        |          |0 = TDES/DES input buffer is not full. Software can feed the data into the TDES/DES engine.
680      * |        |          |1 = TDES input buffer is full
681      * |        |          |Software cannot feed data to the TDES/DES engine
682      * |        |          |Otherwise, the flag INBUFERR will be set to 1.
683      * |[10]    |INBUFERR  |TDES/DES in Buffer Error Flag
684      * |        |          |0 = No error.
685      * |        |          |1 = Error happens during feeding data to the TDES/DES engine.
686      * |[16]    |OUTBUFEMPTY|TDES/DES Output Buffer Empty Flag
687      * |        |          |0 = TDES/DES output buffer is not empty. There are some valid data kept in output buffer.
688      * |        |          |1 = TDES/DES output buffer is empty, Software cannot get data from TDES_DATA_OUT
689      * |        |          |Otherwise the flag OUTBUFERR will be set to 1, since output buffer is empty.
690      * |[17]    |OUTBUFFULL|TDES/DES Output Buffer Full Flag
691      * |        |          |0 = TDES/DES output buffer is not full.
692      * |        |          |1 = TDES/DES output buffer is full, and software needs to get data from TDES_DATA_OUT
693      * |        |          |Otherwise, the TDES/DES engine will be pending since output buffer is full.
694      * |[18]    |OUTBUFERR |TDES/DES Out Buffer Error Flag
695      * |        |          |0 = No error.
696      * |        |          |1 = Error happens during getting test result from TDES/DES engine.
697      * |[20]    |BUSERR    |TDES/DES DMA Access Bus Error Flag
698      * |        |          |0 = No error.
699      * |        |          |1 = Bus error will stop DMA operation and TDES/DES engine.
700      * @var CRPT_T::TDES0_KEY1H
701      * Offset: 0x208  TDES/DES Key 1 High Word Register for Channel 0
702      * ---------------------------------------------------------------------------------------------------
703      * |Bits    |Field     |Descriptions
704      * | :----: | :----:   | :---- |
705      * |[31:0]  |KEY       |TDES/DES Key 1 High Word
706      * |        |          |The key registers for TDES/DES algorithm calculation
707      * |        |          |The security key for the TDES/DES accelerator is 64 bits
708      * |        |          |Thus, it needs two 32-bit registers to store a security key
709      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
710      * @var CRPT_T::TDES0_KEY1L
711      * Offset: 0x20C  TDES/DES Key 1 Low Word Register for Channel 0
712      * ---------------------------------------------------------------------------------------------------
713      * |Bits    |Field     |Descriptions
714      * | :----: | :----:   | :---- |
715      * |[31:0]  |KEY       |TDES/DES Key 1 Low Word
716      * |        |          |The key registers for TDES/DES algorithm calculation
717      * |        |          |The security key for the TDES/DES accelerator is 64 bits
718      * |        |          |Thus, it needs two 32-bit registers to store a security key
719      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
720      * @var CRPT_T::TDES0_KEY2H
721      * Offset: 0x210  TDES Key 2 High Word Register for Channel 0
722      * ---------------------------------------------------------------------------------------------------
723      * |Bits    |Field     |Descriptions
724      * | :----: | :----:   | :---- |
725      * |[31:0]  |KEY       |TDES/DES Key 2 High Word
726      * |        |          |The key registers for TDES/DES algorithm calculation
727      * |        |          |The security key for the TDES/DES accelerator is 64 bits
728      * |        |          |Thus, it needs two 32-bit registers to store a security key
729      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
730      * @var CRPT_T::TDES0_KEY2L
731      * Offset: 0x214  TDES Key 2 Low Word Register for Channel 0
732      * ---------------------------------------------------------------------------------------------------
733      * |Bits    |Field     |Descriptions
734      * | :----: | :----:   | :---- |
735      * |[31:0]  |KEY       |TDES/DES Key 2 Low Word
736      * |        |          |The key registers for TDES/DES algorithm calculation
737      * |        |          |The security key for the TDES/DES accelerator is 64 bits
738      * |        |          |Thus, it needs two 32-bit registers to store a security key
739      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
740      * @var CRPT_T::TDES0_KEY3H
741      * Offset: 0x218  TDES Key 3 High Word Register for Channel 0
742      * ---------------------------------------------------------------------------------------------------
743      * |Bits    |Field     |Descriptions
744      * | :----: | :----:   | :---- |
745      * |[31:0]  |KEY       |TDES/DES Key 3 High Word
746      * |        |          |The key registers for TDES/DES algorithm calculation
747      * |        |          |The security key for the TDES/DES accelerator is 64 bits
748      * |        |          |Thus, it needs two 32-bit registers to store a security key
749      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
750      * @var CRPT_T::TDES0_KEY3L
751      * Offset: 0x21C  TDES Key 3 Low Word Register for Channel 0
752      * ---------------------------------------------------------------------------------------------------
753      * |Bits    |Field     |Descriptions
754      * | :----: | :----:   | :---- |
755      * |[31:0]  |KEY       |TDES/DES Key 3 Low Word
756      * |        |          |The key registers for TDES/DES algorithm calculation
757      * |        |          |The security key for the TDES/DES accelerator is 64 bits
758      * |        |          |Thus, it needs two 32-bit registers to store a security key
759      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
760      * @var CRPT_T::TDES0_IVH
761      * Offset: 0x220  TDES/DES Initial Vector High Word Register for Channel 0
762      * ---------------------------------------------------------------------------------------------------
763      * |Bits    |Field     |Descriptions
764      * | :----: | :----:   | :---- |
765      * |[31:0]  |IV        |TDES/DES Initial Vector High Word
766      * |        |          |Initial vector (IV) is for TDES/DES engine in CBC, CFB, and OFB mode
767      * |        |          |IV is Nonce counter for TDES/DES engine in CTR mode.
768      * @var CRPT_T::TDES0_IVL
769      * Offset: 0x224  TDES/DES Initial Vector Low Word Register for Channel 0
770      * ---------------------------------------------------------------------------------------------------
771      * |Bits    |Field     |Descriptions
772      * | :----: | :----:   | :---- |
773      * |[31:0]  |IV        |TDES/DES Initial Vector Low Word
774      * |        |          |Initial vector (IV) is for TDES/DES engine in CBC, CFB, and OFB mode
775      * |        |          |IV is Nonce counter for TDES/DES engine in CTR mode.
776      * @var CRPT_T::TDES0_SA
777      * Offset: 0x228  TDES/DES DMA Source Address Register for Channel 0
778      * ---------------------------------------------------------------------------------------------------
779      * |Bits    |Field     |Descriptions
780      * | :----: | :----:   | :---- |
781      * |[31:0]  |SADDR     |TDES/DES DMA Source Address
782      * |        |          |The TDES/DES accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
783      * |        |          |The CRPT_TDESn_SA keeps the source address of the data buffer where the source text is stored
784      * |        |          |Based on the source address, the TDES/DES accelerator can read the plain text from system memory and do TDES/DES operation
785      * |        |          |The start of source address should be located at word boundary
786      * |        |          |In other words, bit 1 and 0 of CRPT_TDESn_SA are ignored.
787      * |        |          |CRPT_TDESn_SA can be read and written
788      * |        |          |Writing to CRPT_TDESn_SA while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
789      * |        |          |But the value of CRPT_TDESn_SA will be updated later on
790      * |        |          |Consequently, software can prepare the DMA source address for the next TDES/DES operation.
791      * |        |          |In DMA mode, software can update the next CRPT_TDESn_SA before triggering START.
792      * |        |          |CRPT_TDESn_SA and CRPT_TDESn_DA can be the same in the value.
793      * @var CRPT_T::TDES0_DA
794      * Offset: 0x22C  TDES/DES DMA Destination Address Register for Channel 0
795      * ---------------------------------------------------------------------------------------------------
796      * |Bits    |Field     |Descriptions
797      * | :----: | :----:   | :---- |
798      * |[31:0]  |DADDR     |TDES/DES DMA Destination Address
799      * |        |          |The TDES/DES accelerator supports DMA function to transfer the cipher text between system memory and embedded FIFO
800      * |        |          |The CRPT_TDESn_DA keeps the destination address of the data buffer where the engine output's text will be stored
801      * |        |          |Based on the destination address, the TDES/DES accelerator can write the cipher text back to system memory after the TDES/DES operation is finished
802      * |        |          |The start of destination address should be located at word boundary
803      * |        |          |In other words, bit 1 and 0 of CRPT_TDESn_DA are ignored.
804      * |        |          |CRPT_TDESn_DA can be read and written
805      * |        |          |Writing to CRPT_TDESn_DA while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
806      * |        |          |But the value of CRPT_TDESn_DA will be updated later on
807      * |        |          |Consequently, software can prepare the destination address for the next TDES/DES operation.
808      * |        |          |In DMA mode, software can update the next CRPT_TDESn_DA before triggering START.
809      * |        |          |CRPT_TDESn_SAD and CRPT_TDESn_DA can be the same in the value.
810      * @var CRPT_T::TDES0_CNT
811      * Offset: 0x230  TDES/DES Byte Count Register for Channel 0
812      * ---------------------------------------------------------------------------------------------------
813      * |Bits    |Field     |Descriptions
814      * | :----: | :----:   | :---- |
815      * |[31:0]  |CNT       |TDES/DES Byte Count
816      * |        |          |The CRPT_TDESn_CNT keeps the byte count of source text that is for the TDES/DES engine operating in DMA mode
817      * |        |          |The CRPT_TDESn_CNT is 32-bit and the maximum of byte count is 4G bytes.
818      * |        |          |CRPT_TDESn_CNT can be read and written
819      * |        |          |Writing to CRPT_TDESn_CNT while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
820      * |        |          |But the value of CRPT_TDESn_CNT will be updated later on
821      * |        |          |Consequently, software can prepare the byte count of data for the next TDES /DES operation.
822      * |        |          |In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRPT_TDESn_CNT must be set as byte count for the last block of data before feeding in the last block of data.
823      * @var CRPT_T::TDES_DATIN
824      * Offset: 0x234  TDES/DES Engine Input data Word Register
825      * ---------------------------------------------------------------------------------------------------
826      * |Bits    |Field     |Descriptions
827      * | :----: | :----:   | :---- |
828      * |[31:0]  |DATIN     |TDES/DES Engine Input Port
829      * |        |          |CPU feeds data to TDES/DES engine through this port by checking CRPT_TDES_STS
830      * |        |          |Feed data as INBUFFULL is 0.
831      * @var CRPT_T::TDES_DATOUT
832      * Offset: 0x238  TDES/DES Engine Output data Word Register
833      * ---------------------------------------------------------------------------------------------------
834      * |Bits    |Field     |Descriptions
835      * | :----: | :----:   | :---- |
836      * |[31:0]  |DATOUT    |TDES/DES Engine Output Port
837      * |        |          |CPU gets result from the TDES/DES engine through this port by checking CRPT_TDES_STS
838      * |        |          |Get data as OUTBUFEMPTY is 0.
839      * @var CRPT_T::TDES1_KEY1H
840      * Offset: 0x248  TDES/DES Key 1 High Word Register for Channel 1
841      * ---------------------------------------------------------------------------------------------------
842      * |Bits    |Field     |Descriptions
843      * | :----: | :----:   | :---- |
844      * |[31:0]  |KEY       |TDES/DES Key 1 High Word
845      * |        |          |The key registers for TDES/DES algorithm calculation
846      * |        |          |The security key for the TDES/DES accelerator is 64 bits
847      * |        |          |Thus, it needs two 32-bit registers to store a security key
848      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
849      * @var CRPT_T::TDES1_KEY1L
850      * Offset: 0x24C  TDES/DES Key 1 Low Word Register for Channel 1
851      * ---------------------------------------------------------------------------------------------------
852      * |Bits    |Field     |Descriptions
853      * | :----: | :----:   | :---- |
854      * |[31:0]  |KEY       |TDES/DES Key 1 Low Word
855      * |        |          |The key registers for TDES/DES algorithm calculation
856      * |        |          |The security key for the TDES/DES accelerator is 64 bits
857      * |        |          |Thus, it needs two 32-bit registers to store a security key
858      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
859      * @var CRPT_T::TDES1_KEY2H
860      * Offset: 0x250  TDES Key 2 High Word Register for Channel 1
861      * ---------------------------------------------------------------------------------------------------
862      * |Bits    |Field     |Descriptions
863      * | :----: | :----:   | :---- |
864      * |[31:0]  |KEY       |TDES/DES Key 2 High Word
865      * |        |          |The key registers for TDES/DES algorithm calculation
866      * |        |          |The security key for the TDES/DES accelerator is 64 bits
867      * |        |          |Thus, it needs two 32-bit registers to store a security key
868      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
869      * @var CRPT_T::TDES1_KEY2L
870      * Offset: 0x254  TDES Key 2 Low Word Register for Channel 1
871      * ---------------------------------------------------------------------------------------------------
872      * |Bits    |Field     |Descriptions
873      * | :----: | :----:   | :---- |
874      * |[31:0]  |KEY       |TDES/DES Key 2 Low Word
875      * |        |          |The key registers for TDES/DES algorithm calculation
876      * |        |          |The security key for the TDES/DES accelerator is 64 bits
877      * |        |          |Thus, it needs two 32-bit registers to store a security key
878      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
879      * @var CRPT_T::TDES1_KEY3H
880      * Offset: 0x258  TDES Key 3 High Word Register for Channel 1
881      * ---------------------------------------------------------------------------------------------------
882      * |Bits    |Field     |Descriptions
883      * | :----: | :----:   | :---- |
884      * |[31:0]  |KEY       |TDES/DES Key 3 High Word
885      * |        |          |The key registers for TDES/DES algorithm calculation
886      * |        |          |The security key for the TDES/DES accelerator is 64 bits
887      * |        |          |Thus, it needs two 32-bit registers to store a security key
888      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
889      * @var CRPT_T::TDES1_KEY3L
890      * Offset: 0x25C  TDES Key 3 Low Word Register for Channel 1
891      * ---------------------------------------------------------------------------------------------------
892      * |Bits    |Field     |Descriptions
893      * | :----: | :----:   | :---- |
894      * |[31:0]  |KEY       |TDES/DES Key 3 Low Word
895      * |        |          |The key registers for TDES/DES algorithm calculation
896      * |        |          |The security key for the TDES/DES accelerator is 64 bits
897      * |        |          |Thus, it needs two 32-bit registers to store a security key
898      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
899      * @var CRPT_T::TDES1_IVH
900      * Offset: 0x260  TDES/DES Initial Vector High Word Register for Channel 1
901      * ---------------------------------------------------------------------------------------------------
902      * |Bits    |Field     |Descriptions
903      * | :----: | :----:   | :---- |
904      * |[31:0]  |IV        |TDES/DES Initial Vector High Word
905      * |        |          |Initial vector (IV) is for TDES/DES engine in CBC, CFB, and OFB mode
906      * |        |          |IV is Nonce counter for TDES/DES engine in CTR mode.
907      * @var CRPT_T::TDES1_IVL
908      * Offset: 0x264  TDES/DES Initial Vector Low Word Register for Channel 1
909      * ---------------------------------------------------------------------------------------------------
910      * |Bits    |Field     |Descriptions
911      * | :----: | :----:   | :---- |
912      * |[31:0]  |IV        |TDES/DES Initial Vector Low Word
913      * |        |          |Initial vector (IV) is for TDES/DES engine in CBC, CFB, and OFB mode
914      * |        |          |IV is Nonce counter for TDES/DES engine in CTR mode.
915      * @var CRPT_T::TDES1_SA
916      * Offset: 0x268  TDES/DES DMA Source Address Register for Channel 1
917      * ---------------------------------------------------------------------------------------------------
918      * |Bits    |Field     |Descriptions
919      * | :----: | :----:   | :---- |
920      * |[31:0]  |SADDR     |TDES/DES DMA Source Address
921      * |        |          |The TDES/DES accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
922      * |        |          |The CRPT_TDESn_SA keeps the source address of the data buffer where the source text is stored
923      * |        |          |Based on the source address, the TDES/DES accelerator can read the plain text from system memory and do TDES/DES operation
924      * |        |          |The start of source address should be located at word boundary
925      * |        |          |In other words, bit 1 and 0 of CRPT_TDESn_SA are ignored.
926      * |        |          |CRPT_TDESn_SA can be read and written
927      * |        |          |Writing to CRPT_TDESn_SA while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
928      * |        |          |But the value of CRPT_TDESn_SA will be updated later on
929      * |        |          |Consequently, software can prepare the DMA source address for the next TDES/DES operation.
930      * |        |          |In DMA mode, software can update the next CRPT_TDESn_SA before triggering START.
931      * |        |          |CRPT_TDESn_SA and CRPT_TDESn_DA can be the same in the value.
932      * @var CRPT_T::TDES1_DA
933      * Offset: 0x26C  TDES/DES DMA Destination Address Register for Channel 1
934      * ---------------------------------------------------------------------------------------------------
935      * |Bits    |Field     |Descriptions
936      * | :----: | :----:   | :---- |
937      * |[31:0]  |DADDR     |TDES/DES DMA Destination Address
938      * |        |          |The TDES/DES accelerator supports DMA function to transfer the cipher text between system memory and embedded FIFO
939      * |        |          |The CRPT_TDESn_DA keeps the destination address of the data buffer where the engine output's text will be stored
940      * |        |          |Based on the destination address, the TDES/DES accelerator can write the cipher text back to system memory after the TDES/DES operation is finished
941      * |        |          |The start of destination address should be located at word boundary
942      * |        |          |In other words, bit 1 and 0 of CRPT_TDESn_DA are ignored.
943      * |        |          |CRPT_TDESn_DA can be read and written
944      * |        |          |Writing to CRPT_TDESn_DA while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
945      * |        |          |But the value of CRPT_TDESn_DA will be updated later on
946      * |        |          |Consequently, software can prepare the destination address for the next TDES/DES operation.
947      * |        |          |In DMA mode, software can update the next CRPT_TDESn_DA before triggering START.
948      * |        |          |CRPT_TDESn_SAD and CRPT_TDESn_DA can be the same in the value.
949      * @var CRPT_T::TDES1_CNT
950      * Offset: 0x270  TDES/DES Byte Count Register for Channel 1
951      * ---------------------------------------------------------------------------------------------------
952      * |Bits    |Field     |Descriptions
953      * | :----: | :----:   | :---- |
954      * |[31:0]  |CNT       |TDES/DES Byte Count
955      * |        |          |The CRPT_TDESn_CNT keeps the byte count of source text that is for the TDES/DES engine operating in DMA mode
956      * |        |          |The CRPT_TDESn_CNT is 32-bit and the maximum of byte count is 4G bytes.
957      * |        |          |CRPT_TDESn_CNT can be read and written
958      * |        |          |Writing to CRPT_TDESn_CNT while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
959      * |        |          |But the value of CRPT_TDESn_CNT will be updated later on
960      * |        |          |Consequently, software can prepare the byte count of data for the next TDES /DES operation.
961      * |        |          |In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRPT_TDESn_CNT must be set as byte count for the last block of data before feeding in the last block of data.
962      * @var CRPT_T::TDES2_KEY1H
963      * Offset: 0x288  TDES/DES Key 1 High Word Register for Channel 2
964      * ---------------------------------------------------------------------------------------------------
965      * |Bits    |Field     |Descriptions
966      * | :----: | :----:   | :---- |
967      * |[31:0]  |KEY       |TDES/DES Key 1 High Word
968      * |        |          |The key registers for TDES/DES algorithm calculation
969      * |        |          |The security key for the TDES/DES accelerator is 64 bits
970      * |        |          |Thus, it needs two 32-bit registers to store a security key
971      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
972      * @var CRPT_T::TDES2_KEY1L
973      * Offset: 0x28C  TDES/DES Key 1 Low Word Register for Channel 2
974      * ---------------------------------------------------------------------------------------------------
975      * |Bits    |Field     |Descriptions
976      * | :----: | :----:   | :---- |
977      * |[31:0]  |KEY       |TDES/DES Key 1 Low Word
978      * |        |          |The key registers for TDES/DES algorithm calculation
979      * |        |          |The security key for the TDES/DES accelerator is 64 bits
980      * |        |          |Thus, it needs two 32-bit registers to store a security key
981      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
982      * @var CRPT_T::TDES2_KEY2H
983      * Offset: 0x290  TDES Key 2 High Word Register for Channel 2
984      * ---------------------------------------------------------------------------------------------------
985      * |Bits    |Field     |Descriptions
986      * | :----: | :----:   | :---- |
987      * |[31:0]  |KEY       |TDES/DES Key 2 High Word
988      * |        |          |The key registers for TDES/DES algorithm calculation
989      * |        |          |The security key for the TDES/DES accelerator is 64 bits
990      * |        |          |Thus, it needs two 32-bit registers to store a security key
991      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
992      * @var CRPT_T::TDES2_KEY2L
993      * Offset: 0x294  TDES Key 2 Low Word Register for Channel 2
994      * ---------------------------------------------------------------------------------------------------
995      * |Bits    |Field     |Descriptions
996      * | :----: | :----:   | :---- |
997      * |[31:0]  |KEY       |TDES/DES Key 2 Low Word
998      * |        |          |The key registers for TDES/DES algorithm calculation
999      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1000      * |        |          |Thus, it needs two 32-bit registers to store a security key
1001      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1002      * @var CRPT_T::TDES2_KEY3H
1003      * Offset: 0x298  TDES Key 3 High Word Register for Channel 2
1004      * ---------------------------------------------------------------------------------------------------
1005      * |Bits    |Field     |Descriptions
1006      * | :----: | :----:   | :---- |
1007      * |[31:0]  |KEY       |TDES/DES Key 3 High Word
1008      * |        |          |The key registers for TDES/DES algorithm calculation
1009      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1010      * |        |          |Thus, it needs two 32-bit registers to store a security key
1011      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1012      * @var CRPT_T::TDES2_KEY3L
1013      * Offset: 0x29C  TDES Key 3 Low Word Register for Channel 2
1014      * ---------------------------------------------------------------------------------------------------
1015      * |Bits    |Field     |Descriptions
1016      * | :----: | :----:   | :---- |
1017      * |[31:0]  |KEY       |TDES/DES Key 3 Low Word
1018      * |        |          |The key registers for TDES/DES algorithm calculation
1019      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1020      * |        |          |Thus, it needs two 32-bit registers to store a security key
1021      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1022      * @var CRPT_T::TDES2_IVH
1023      * Offset: 0x2A0  TDES/DES Initial Vector High Word Register for Channel 2
1024      * ---------------------------------------------------------------------------------------------------
1025      * |Bits    |Field     |Descriptions
1026      * | :----: | :----:   | :---- |
1027      * |[31:0]  |IV        |TDES/DES Initial Vector High Word
1028      * |        |          |Initial vector (IV) is for TDES/DES engine in CBC, CFB, and OFB mode
1029      * |        |          |IV is Nonce counter for TDES/DES engine in CTR mode.
1030      * @var CRPT_T::TDES2_IVL
1031      * Offset: 0x2A4  TDES/DES Initial Vector Low Word Register for Channel 2
1032      * ---------------------------------------------------------------------------------------------------
1033      * |Bits    |Field     |Descriptions
1034      * | :----: | :----:   | :---- |
1035      * |[31:0]  |IV        |TDES/DES Initial Vector Low Word
1036      * |        |          |Initial vector (IV) is for TDES/DES engine in CBC, CFB, and OFB mode
1037      * |        |          |IV is Nonce counter for TDES/DES engine in CTR mode.
1038      * @var CRPT_T::TDES2_SA
1039      * Offset: 0x2A8  TDES/DES DMA Source Address Register for Channel 2
1040      * ---------------------------------------------------------------------------------------------------
1041      * |Bits    |Field     |Descriptions
1042      * | :----: | :----:   | :---- |
1043      * |[31:0]  |SADDR     |TDES/DES DMA Source Address
1044      * |        |          |The TDES/DES accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
1045      * |        |          |The CRPT_TDESn_SA keeps the source address of the data buffer where the source text is stored
1046      * |        |          |Based on the source address, the TDES/DES accelerator can read the plain text from system memory and do TDES/DES operation
1047      * |        |          |The start of source address should be located at word boundary
1048      * |        |          |In other words, bit 1 and 0 of CRPT_TDESn_SA are ignored.
1049      * |        |          |CRPT_TDESn_SA can be read and written
1050      * |        |          |Writing to CRPT_TDESn_SA while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
1051      * |        |          |But the value of CRPT_TDESn_SA will be updated later on
1052      * |        |          |Consequently, software can prepare the DMA source address for the next TDES/DES operation.
1053      * |        |          |In DMA mode, software can update the next CRPT_TDESn_SA before triggering START.
1054      * |        |          |CRPT_TDESn_SA and CRPT_TDESn_DA can be the same in the value.
1055      * @var CRPT_T::TDES2_DA
1056      * Offset: 0x2AC  TDES/DES DMA Destination Address Register for Channel 2
1057      * ---------------------------------------------------------------------------------------------------
1058      * |Bits    |Field     |Descriptions
1059      * | :----: | :----:   | :---- |
1060      * |[31:0]  |DADDR     |TDES/DES DMA Destination Address
1061      * |        |          |The TDES/DES accelerator supports DMA function to transfer the cipher text between system memory and embedded FIFO
1062      * |        |          |The CRPT_TDESn_DA keeps the destination address of the data buffer where the engine output's text will be stored
1063      * |        |          |Based on the destination address, the TDES/DES accelerator can write the cipher text back to system memory after the TDES/DES operation is finished
1064      * |        |          |The start of destination address should be located at word boundary
1065      * |        |          |In other words, bit 1 and 0 of CRPT_TDESn_DA are ignored.
1066      * |        |          |CRPT_TDESn_DA can be read and written
1067      * |        |          |Writing to CRPT_TDESn_DA while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
1068      * |        |          |But the value of CRPT_TDESn_DA will be updated later on
1069      * |        |          |Consequently, software can prepare the destination address for the next TDES/DES operation.
1070      * |        |          |In DMA mode, software can update the next CRPT_TDESn_DA before triggering START.
1071      * |        |          |CRPT_TDESn_SAD and CRPT_TDESn_DA can be the same in the value.
1072      * @var CRPT_T::TDES2_CNT
1073      * Offset: 0x2B0  TDES/DES Byte Count Register for Channel 2
1074      * ---------------------------------------------------------------------------------------------------
1075      * |Bits    |Field     |Descriptions
1076      * | :----: | :----:   | :---- |
1077      * |[31:0]  |CNT       |TDES/DES Byte Count
1078      * |        |          |The CRPT_TDESn_CNT keeps the byte count of source text that is for the TDES/DES engine operating in DMA mode
1079      * |        |          |The CRPT_TDESn_CNT is 32-bit and the maximum of byte count is 4G bytes.
1080      * |        |          |CRPT_TDESn_CNT can be read and written
1081      * |        |          |Writing to CRPT_TDESn_CNT while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
1082      * |        |          |But the value of CRPT_TDESn_CNT will be updated later on
1083      * |        |          |Consequently, software can prepare the byte count of data for the next TDES /DES operation.
1084      * |        |          |In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRPT_TDESn_CNT must be set as byte count for the last block of data before feeding in the last block of data.
1085      * @var CRPT_T::TDES3_KEY1H
1086      * Offset: 0x2C8  TDES/DES Key 1 High Word Register for Channel 3
1087      * ---------------------------------------------------------------------------------------------------
1088      * |Bits    |Field     |Descriptions
1089      * | :----: | :----:   | :---- |
1090      * |[31:0]  |KEY       |TDES/DES Key 1 High Word
1091      * |        |          |The key registers for TDES/DES algorithm calculation
1092      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1093      * |        |          |Thus, it needs two 32-bit registers to store a security key
1094      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1095      * @var CRPT_T::TDES3_KEY1L
1096      * Offset: 0x2CC  TDES/DES Key 1 Low Word Register for Channel 3
1097      * ---------------------------------------------------------------------------------------------------
1098      * |Bits    |Field     |Descriptions
1099      * | :----: | :----:   | :---- |
1100      * |[31:0]  |KEY       |TDES/DES Key 1 High Word
1101      * |        |          |The key registers for TDES/DES algorithm calculation
1102      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1103      * |        |          |Thus, it needs two 32-bit registers to store a security key
1104      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1105      * @var CRPT_T::TDES3_KEY2H
1106      * Offset: 0x2D0  TDES Key 2 High Word Register for Channel 3
1107      * ---------------------------------------------------------------------------------------------------
1108      * |Bits    |Field     |Descriptions
1109      * | :----: | :----:   | :---- |
1110      * |[31:0]  |KEY       |TDES/DES Key 2 High Word
1111      * |        |          |The key registers for TDES/DES algorithm calculation
1112      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1113      * |        |          |Thus, it needs two 32-bit registers to store a security key
1114      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1115      * @var CRPT_T::TDES3_KEY2L
1116      * Offset: 0x2D4  TDES Key 2 Low Word Register for Channel 3
1117      * ---------------------------------------------------------------------------------------------------
1118      * |Bits    |Field     |Descriptions
1119      * | :----: | :----:   | :---- |
1120      * |[31:0]  |KEY       |TDES/DES Key 2 Low Word
1121      * |        |          |The key registers for TDES/DES algorithm calculation
1122      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1123      * |        |          |Thus, it needs two 32-bit registers to store a security key
1124      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1125      * @var CRPT_T::TDES3_KEY3H
1126      * Offset: 0x2D8  TDES Key 3 High Word Register for Channel 3
1127      * ---------------------------------------------------------------------------------------------------
1128      * |Bits    |Field     |Descriptions
1129      * | :----: | :----:   | :---- |
1130      * |[31:0]  |KEY       |TDES/DES Key 3 High Word
1131      * |        |          |The key registers for TDES/DES algorithm calculation
1132      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1133      * |        |          |Thus, it needs two 32-bit registers to store a security key
1134      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1135      * @var CRPT_T::TDES3_KEY3L
1136      * Offset: 0x2DC  TDES Key 3 Low Word Register for Channel 3
1137      * ---------------------------------------------------------------------------------------------------
1138      * |Bits    |Field     |Descriptions
1139      * | :----: | :----:   | :---- |
1140      * |[31:0]  |KEY       |TDES/DES Key 3 Low Word
1141      * |        |          |The key registers for TDES/DES algorithm calculation
1142      * |        |          |The security key for the TDES/DES accelerator is 64 bits
1143      * |        |          |Thus, it needs two 32-bit registers to store a security key
1144      * |        |          |The register CRPT_TDESn_KEYxH is used to keep the bit [63:32] of security key for the TDES/DES operation, while the register CRPT_TDESn_KEYxL is used to keep the bit [31:0].
1145      * @var CRPT_T::TDES3_IVH
1146      * Offset: 0x2E0  TDES/DES Initial Vector High Word Register for Channel 3
1147      * ---------------------------------------------------------------------------------------------------
1148      * |Bits    |Field     |Descriptions
1149      * | :----: | :----:   | :---- |
1150      * |[31:0]  |IV        |TDES/DES Initial Vector High Word
1151      * |        |          |Initial vector (IV) is for TDES/DES engine in CBC, CFB, and OFB mode
1152      * |        |          |IV is Nonce counter for TDES/DES engine in CTR mode.
1153      * @var CRPT_T::TDES3_IVL
1154      * Offset: 0x2E4  TDES/DES Initial Vector Low Word Register for Channel 3
1155      * ---------------------------------------------------------------------------------------------------
1156      * |Bits    |Field     |Descriptions
1157      * | :----: | :----:   | :---- |
1158      * |[31:0]  |IV        |TDES/DES Initial Vector Low Word
1159      * |        |          |Initial vector (IV) is for TDES/DES engine in CBC, CFB, and OFB mode
1160      * |        |          |IV is Nonce counter for TDES/DES engine in CTR mode.
1161      * @var CRPT_T::TDES3_SA
1162      * Offset: 0x2E8  TDES/DES DMA Source Address Register for Channel 3
1163      * ---------------------------------------------------------------------------------------------------
1164      * |Bits    |Field     |Descriptions
1165      * | :----: | :----:   | :---- |
1166      * |[31:0]  |SADDR     |TDES/DES DMA Source Address
1167      * |        |          |The TDES/DES accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
1168      * |        |          |The CRPT_TDESn_SA keeps the source address of the data buffer where the source text is stored
1169      * |        |          |Based on the source address, the TDES/DES accelerator can read the plain text from system memory and do TDES/DES operation
1170      * |        |          |The start of source address should be located at word boundary
1171      * |        |          |In other words, bit 1 and 0 of CRPT_TDESn_SA are ignored.
1172      * |        |          |CRPT_TDESn_SA can be read and written
1173      * |        |          |Writing to CRPT_TDESn_SA while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
1174      * |        |          |But the value of CRPT_TDESn_SA will be updated later on
1175      * |        |          |Consequently, software can prepare the DMA source address for the next TDES/DES operation.
1176      * |        |          |In DMA mode, software can update the next CRPT_TDESn_SA before triggering START.
1177      * |        |          |CRPT_TDESn_SA and CRPT_TDESn_DA can be the same in the value.
1178      * @var CRPT_T::TDES3_DA
1179      * Offset: 0x2EC  TDES/DES DMA Destination Address Register for Channel 3
1180      * ---------------------------------------------------------------------------------------------------
1181      * |Bits    |Field     |Descriptions
1182      * | :----: | :----:   | :---- |
1183      * |[31:0]  |DADDR     |TDES/DES DMA Destination Address
1184      * |        |          |The TDES/DES accelerator supports DMA function to transfer the cipher text between system memory and embedded FIFO
1185      * |        |          |The CRPT_TDESn_DA keeps the destination address of the data buffer where the engine output's text will be stored
1186      * |        |          |Based on the destination address, the TDES/DES accelerator can write the cipher text back to system memory after the TDES/DES operation is finished
1187      * |        |          |The start of destination address should be located at word boundary
1188      * |        |          |In other words, bit 1 and 0 of CRPT_TDESn_DA are ignored.
1189      * |        |          |CRPT_TDESn_DA can be read and written
1190      * |        |          |Writing to CRPT_TDESn_DA while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
1191      * |        |          |But the value of CRPT_TDESn_DA will be updated later on
1192      * |        |          |Consequently, software can prepare the destination address for the next TDES/DES operation.
1193      * |        |          |In DMA mode, software can update the next CRPT_TDESn_DA before triggering START.
1194      * |        |          |CRPT_TDESn_SAD and CRPT_TDESn_DA can be the same in the value.
1195      * @var CRPT_T::TDES3_CNT
1196      * Offset: 0x2F0  TDES/DES Byte Count Register for Channel 3
1197      * ---------------------------------------------------------------------------------------------------
1198      * |Bits    |Field     |Descriptions
1199      * | :----: | :----:   | :---- |
1200      * |[31:0]  |CNT       |TDES/DES Byte Count
1201      * |        |          |The CRPT_TDESn_CNT keeps the byte count of source text that is for the TDES/DES engine operating in DMA mode
1202      * |        |          |The CRPT_TDESn_CNT is 32-bit and the maximum of byte count is 4G bytes.
1203      * |        |          |CRPT_TDESn_CNT can be read and written
1204      * |        |          |Writing to CRPT_TDESn_CNT while the TDES/DES accelerator is operating doesn't affect the current TDES/DES operation
1205      * |        |          |But the value of CRPT_TDESn_CNT will be updated later on
1206      * |        |          |Consequently, software can prepare the byte count of data for the next TDES /DES operation.
1207      * |        |          |In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRPT_TDESn_CNT must be set as byte count for the last block of data before feeding in the last block of data.
1208      * @var CRPT_T::HMAC_CTL
1209      * Offset: 0x300  SHA/HMAC Control Register
1210      * ---------------------------------------------------------------------------------------------------
1211      * |Bits    |Field     |Descriptions
1212      * | :----: | :----:   | :---- |
1213      * |[0]     |START     |SHA/HMAC Engine Start
1214      * |        |          |0 = No effect.
1215      * |        |          |1 = Start SHA/HMAC engine. BUSY flag will be set.
1216      * |        |          |This bit is always 0 when it's read back.
1217      * |[1]     |STOP      |SHA/HMAC Engine Stop
1218      * |        |          |0 = No effect.
1219      * |        |          |1 = Stop SHA/HMAC engine.
1220      * |        |          |This bit is always 0 when it's read back.
1221      * |[4]     |HMACEN    |HMAC_SHA Engine Operating Mode
1222      * |        |          |0 = execute SHA function.
1223      * |        |          |1 = execute HMAC function.
1224      * |[5]     |DMALAST   |SHA/HMAC Last Block
1225      * |        |          |This bit must be set as feeding in last byte of data.
1226      * |[7]     |DMAEN     |SHA/HMAC Engine DMA Enable Control
1227      * |        |          |0 = SHA/HMAC DMA engine Disabled.
1228      * |        |          |SHA/HMAC engine operates in Non-DMA mode, and gets data from the port CRPT_HMAC_DATIN.
1229      * |        |          |1 = SHA/HMAC DMA engine Enabled.
1230      * |        |          |SHA/HMAC engine operates in DMA mode, and data movement from/to the engine is done by DMA logic.
1231      * |[10:8]  |OPMODE    |SHA/HMAC Engine Operation Modes
1232      * |        |          |0x0xx: SHA160
1233      * |        |          |0x100: SHA256
1234      * |        |          |0x101: SHA224
1235      * |        |          |0x110: SHA512
1236      * |        |          |0x111: SHA384
1237      * |        |          |These bits can be read and written. But writing to them wouldn't take effect as BUSY is 1.
1238      * |[22]    |OUTSWAP   |SHA/HMAC Engine Output Data Swap
1239      * |        |          |0 = Keep the original order.
1240      * |        |          |1 = The order that CPU feeds data to the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}.
1241      * |[23]    |INSWAP    |SHA/HMAC Engine Input Data Swap
1242      * |        |          |0 = Keep the original order.
1243      * |        |          |1 = The order that CPU feeds data to the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}.
1244      * @var CRPT_T::HMAC_STS
1245      * Offset: 0x304  SHA/HMAC Status Flag
1246      * ---------------------------------------------------------------------------------------------------
1247      * |Bits    |Field     |Descriptions
1248      * | :----: | :----:   | :---- |
1249      * |[0]     |BUSY      |SHA/HMAC Engine Busy
1250      * |        |          |0 = SHA/HMAC engine is idle or finished.
1251      * |        |          |1 = SHA/HMAC engine is busy.
1252      * |[1]     |DMABUSY   |SHA/HMAC Engine DMA Busy Flag
1253      * |        |          |0 = SHA/HMAC DMA engine is idle or finished.
1254      * |        |          |1 = SHA/HMAC DMA engine is busy.
1255      * |[8]     |DMAERR    |SHA/HMAC Engine DMA Error Flag
1256      * |        |          |0 = Show the SHA/HMAC engine access normal.
1257      * |        |          |1 = Show the SHA/HMAC engine access error.
1258      * |[16]    |DATINREQ  |SHA/HMAC Non-DMA Mode Data Input Request
1259      * |        |          |0 = No effect.
1260      * |        |          |1 = Request SHA/HMAC Non-DMA mode data input.
1261      * @var CRPT_T::HMAC_DGST[16]
1262      * Offset: 0x308 ~ 0x344  SHA/HMAC Digest Message 0 ~ 15
1263      * ---------------------------------------------------------------------------------------------------
1264      * |Bits    |Field     |Descriptions
1265      * | :----: | :----:   | :---- |
1266      * |[31:0]  |DGST      |SHA/HMAC Digest Message Output Register
1267      * |        |          |For SHA-160, the digest is stored in CRPT_HMAC_DGST0 ~ CRPT_HMAC_DGST4.
1268      * |        |          |For SHA-224, the digest is stored in CRPT_HMAC_DGST0 ~ CRPT_HMAC_DGST6.
1269      * |        |          |For SHA-256, the digest is stored in CRPT_HMAC_DGST0 ~ CRPT_HMAC_DGST7.
1270      * |        |          |For SHA-384, the digest is stored in CRPT_HMAC_DGST0 ~ CRPT_HMAC_DGST11.
1271      * |        |          |For SHA-512, the digest is stored in CRPT_HMAC_DGST0 ~ CRPT_HMAC_DGST15.
1272      * @var CRPT_T::HMAC_KEYCNT
1273      * Offset: 0x348  SHA/HMAC Key Byte Count Register
1274      * ---------------------------------------------------------------------------------------------------
1275      * |Bits    |Field     |Descriptions
1276      * | :----: | :----:   | :---- |
1277      * |[31:0]  |KEYCNT    |SHA/HMAC Key Byte Count
1278      * |        |          |The CRPT_HMAC_KEYCNT keeps the byte count of key that SHA/HMAC engine operates
1279      * |        |          |The register is 32-bit and the maximum byte count is 4G bytes
1280      * |        |          |It can be read and written.
1281      * |        |          |Writing to the register CRPT_HMAC_KEYCNT as the SHA/HMAC accelerator operating doesn't affect the current SHA/HMAC operation
1282      * |        |          |But the value of CRPT_SHA _KEYCNT will be updated later on
1283      * |        |          |Consequently, software can prepare the key count for the next SHA/HMAC operation.
1284      * @var CRPT_T::HMAC_SADDR
1285      * Offset: 0x34C  SHA/HMAC DMA Source Address Register
1286      * ---------------------------------------------------------------------------------------------------
1287      * |Bits    |Field     |Descriptions
1288      * | :----: | :----:   | :---- |
1289      * |[31:0]  |SADDR     |SHA/HMAC DMA Source Address
1290      * |        |          |The SHA/HMAC accelerator supports DMA function to transfer the plain text between system memory and embedded FIFO
1291      * |        |          |The CRPT_HMAC_SADDR keeps the source address of the data buffer where the source text is stored
1292      * |        |          |Based on the source address, the SHA/HMAC accelerator can read the plain text from system memory and do SHA/HMAC operation
1293      * |        |          |The start of source address should be located at word boundary
1294      * |        |          |In other words, bit 1 and 0 of CRPT_HMAC_SADDR are ignored.
1295      * |        |          |CRPT_HMAC_SADDR can be read and written
1296      * |        |          |Writing to CRPT_HMAC_SADDR while the SHA/HMAC accelerator is operating doesn't affect the current SHA/HMAC operation
1297      * |        |          |But the value of CRPT_HMAC_SADDR will be updated later on
1298      * |        |          |Consequently, software can prepare the DMA source address for the next SHA/HMAC operation.
1299      * |        |          |In DMA mode, software can update the next CRPT_HMAC_SADDR before triggering START.
1300      * |        |          |CRPT_HMAC_SADDR and CRPT_HMAC_DADDR can be the same in the value.
1301      * @var CRPT_T::HMAC_DMACNT
1302      * Offset: 0x350  SHA/HMAC Byte Count Register
1303      * ---------------------------------------------------------------------------------------------------
1304      * |Bits    |Field     |Descriptions
1305      * | :----: | :----:   | :---- |
1306      * |[31:0]  |DMACNT    |SHA/HMAC Operation Byte Count
1307      * |        |          |The CRPT_HMAC_DMACNT keeps the byte count of source text that is for the SHA/HMAC engine operating in DMA mode
1308      * |        |          |The CRPT_HMAC_DMACNT is 32-bit and the maximum of byte count is 4G bytes.
1309      * |        |          |CRPT_HMAC_DMACNT can be read and written
1310      * |        |          |Writing to CRPT_HMAC_DMACNT while the SHA/HMAC accelerator is operating doesn't affect the current SHA/HMAC operation
1311      * |        |          |But the value of CRPT_HMAC_DMACNT will be updated later on
1312      * |        |          |Consequently, software can prepare the byte count of data for the next SHA/HMAC operation.
1313      * |        |          |In Non-DMA mode, CRPT_HMAC_DMACNT must be set as the byte count of the last block before feeding in the last block of data.
1314      * @var CRPT_T::HMAC_DATIN
1315      * Offset: 0x354  SHA/HMAC Engine Non-DMA Mode Data Input Port Register
1316      * ---------------------------------------------------------------------------------------------------
1317      * |Bits    |Field     |Descriptions
1318      * | :----: | :----:   | :---- |
1319      * |[31:0]  |DATIN     |SHA/HMAC Engine Input Port
1320      * |        |          |CPU feeds data to SHA/HMAC engine through this port by checking CRPT_HMAC_STS
1321      * |        |          |Feed data as DATINREQ is 1.
1322      * @var CRPT_T::ECC_CTL
1323      * Offset: 0x800  ECC Control Register
1324      * ---------------------------------------------------------------------------------------------------
1325      * |Bits    |Field     |Descriptions
1326      * | :----: | :----:   | :---- |
1327      * |[0]     |START     |ECC Accelerator Start
1328      * |        |          |0 = No effect.
1329      * |        |          |1 = Start ECC accelerator. BUSY flag will be set.
1330      * |        |          |This bit is always 0 when it's read back.
1331      * |        |          |ECC accelerator will ignore this START signal when BUSY flag is 1.
1332      * |[1]     |STOP      |ECC Accelerator Stop
1333      * |        |          |0 = No effect.
1334      * |        |          |1 = Abort ECC accelerator and make it into idle state.
1335      * |        |          |This bit is always 0 when it's read back.
1336      * |        |          |Remember to clear ECC interrupt flag after stopping ECC accelerator.
1337      * |[7]     |DMAEN     |ECC Accelerator DMA Enable Control
1338      * |        |          |0 = ECC DMA engine Disabled.
1339      * |        |          |1 = ECC DMA engine Enabled.
1340      * |        |          |Only when START and DMAEN are 1, ECC DMA engine will be active
1341      * |[8]     |FSEL      |Field Selection
1342      * |        |          |0 = Binary Field (GF(2^m)).
1343      * |        |          |1 = Prime Field (GF(p)).
1344      * |[10:9]  |ECCOP     |Point Operation for BF and PF
1345      * |        |          |00 = Point multiplication :.
1346      * |        |          |(POINTX1, POINTY1) = SCALARK * (POINTX1, POINTY1).
1347      * |        |          |01 = Modulus operation : choose by MODOP (CRPT_ECC_CTL[12:11]).
1348      * |        |          |10 = Point addition :.
1349      * |        |          |(POINTX1, POINTY1) = (POINTX1, POINTY1) +.
1350      * |        |          |(POINTX2, POINTY2)
1351      * |        |          |11 = Point doubling :.
1352      * |        |          |(POINTX1, POINTY1) = 2 * (POINTX1, POINTY1).
1353      * |        |          |Besides above three input data, point operations still need the parameters of elliptic curve (CURVEA, CURVEB, CURVEN and CURVEM) as shown in Figure 6.27-11
1354      * |[12:11] |MODOP     |Modulus Operation for PF
1355      * |        |          |00 = Division :.
1356      * |        |          |POINTX1 = (POINTY1 / POINTX1) % CURVEN.
1357      * |        |          |01 = Multiplication :.
1358      * |        |          |POINTX1 = (POINTX1 * POINTY1) % CURVEN.
1359      * |        |          |10 = Addition :.
1360      * |        |          |POINTX1 = (POINTX1 + POINTY1) % CURVEN.
1361      * |        |          |11 = Subtraction :.
1362      * |        |          |POINTX1 = (POINTX1 - POINTY1) % CURVEN.
1363      * |        |          |MODOP is active only when ECCOP = 01.
1364      * |[16]    |LDP1      |The Control Signal of Register for the X and Y Coordinate of the First Point (POINTX1, POINTY1)
1365      * |        |          |0 = The register for POINTX1 and POINTY1 is not modified by DMA or user.
1366      * |        |          |1 = The register for POINTX1 and POINTY1 is modified by DMA or user.
1367      * |[17]    |LDP2      |The Control Signal of Register for the X and Y Coordinate of the Second Point (POINTX2, POINTY2)
1368      * |        |          |0 = The register for POINTX2 and POINTY2 is not modified by DMA or user.
1369      * |        |          |1 = The register for POINTX2 and POINTY2 is modified by DMA or user.
1370      * |[18]    |LDA       |The Control Signal of Register for the Parameter CURVEA of Elliptic Curve
1371      * |        |          |0 = The register for CURVEA is not modified by DMA or user.
1372      * |        |          |1 = The register for CURVEA is modified by DMA or user.
1373      * |[19]    |LDB       |The Control Signal of Register for the Parameter CURVEB of Elliptic Curve
1374      * |        |          |0 = The register for CURVEB is not modified by DMA or user.
1375      * |        |          |1 = The register for CURVEB is modified by DMA or user.
1376      * |[20]    |LDN       |The Control Signal of Register for the Parameter CURVEN of Elliptic Curve
1377      * |        |          |0 = The register for CURVEN is not modified by DMA or user.
1378      * |        |          |1 = The register for CURVEN is modified by DMA or user.
1379      * |[21]    |LDK       |The Control Signal of Register for SCALARK
1380      * |        |          |0 = The register for SCALARK is not modified by DMA or user.
1381      * |        |          |1 = The register for SCALARK is modified by DMA or user.
1382      * |[31:22] |CURVEM    |The key length of elliptic curve.
1383      * @var CRPT_T::ECC_STS
1384      * Offset: 0x804  ECC Status Register
1385      * ---------------------------------------------------------------------------------------------------
1386      * |Bits    |Field     |Descriptions
1387      * | :----: | :----:   | :---- |
1388      * |[0]     |BUSY      |ECC Accelerator Busy Flag
1389      * |        |          |0 = The ECC accelerator is idle or finished.
1390      * |        |          |1 = The ECC accelerator is under processing and protects all registers.
1391      * |        |          |Remember to clear ECC interrupt flag after ECC accelerator finished
1392      * |[1]     |DMABUSY   |ECC DMA Busy Flag
1393      * |        |          |0 = ECC DMA is idle or finished.
1394      * |        |          |1 = ECC DMA is busy.
1395      * |[16]    |BUSERR    |ECC DMA Access Bus Error Flag
1396      * |        |          |0 = No error.
1397      * |        |          |1 = Bus error will stop DMA operation and ECC accelerator.
1398      * @var CRPT_T::ECC_X1[18]
1399      * Offset: 0x808 ~ 0x84C  ECC The X-coordinate word 0 ~ 17 of the first point
1400      * ---------------------------------------------------------------------------------------------------
1401      * |Bits    |Field     |Descriptions
1402      * | :----: | :----:   | :---- |
1403      * |[31:0]  |POINTX1   |ECC the x-coordinate Value of the First Point (POINTX1)
1404      * |        |          |For B-163 or K-163, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_05
1405      * |        |          |For B-233 or K-233, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_07
1406      * |        |          |For B-283 or K-283, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_08
1407      * |        |          |For B-409 or K-409, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_12
1408      * |        |          |For B-571 or K-571, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_17
1409      * |        |          |For P-192, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_05
1410      * |        |          |For P-224, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_06
1411      * |        |          |For P-256, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_07
1412      * |        |          |For P-384, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_11
1413      * |        |          |For P-521, POINTX1 is stored in CRPT_ECC_X1_00~CRPT_ECC_X1_16
1414      * @var CRPT_T::ECC_Y1[18]
1415      * Offset: 0x850 ~ 0x894  ECC The Y-coordinate word 0 ~ 17 of the first point
1416      * ---------------------------------------------------------------------------------------------------
1417      * |Bits    |Field     |Descriptions
1418      * | :----: | :----:   | :---- |
1419      * |[31:0]  |POINTY1   |ECC the Y-coordinate Value of the First Point (POINTY1)
1420      * |        |          |For B-163 or K-163, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_05
1421      * |        |          |For B-233 or K-233, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_07
1422      * |        |          |For B-283 or K-283, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_08
1423      * |        |          |For B-409 or K-409, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_12
1424      * |        |          |For B-571 or K-571, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_17
1425      * |        |          |For P-192, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_05
1426      * |        |          |For P-224, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_06
1427      * |        |          |For P-256, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_07
1428      * |        |          |For P-384, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_11
1429      * |        |          |For P-521, POINTY1 is stored in CRPT_ECC_Y1_00~CRPT_ECC_Y1_16
1430      * @var CRPT_T::ECC_X2[18]
1431      * Offset: 0x898 ~ 0x8DC  ECC The X-coordinate word 0 ~ 17 of the second point
1432      * ---------------------------------------------------------------------------------------------------
1433      * |Bits    |Field     |Descriptions
1434      * | :----: | :----:   | :---- |
1435      * |[31:0]  |POINTX2   |ECC the x-coordinate Value of the Second Point (POINTX2)
1436      * |        |          |For B-163 or K-163, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_05
1437      * |        |          |For B-233 or K-233, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_07
1438      * |        |          |For B-283 or K-283, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_08
1439      * |        |          |For B-409 or K-409, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_12
1440      * |        |          |For B-571 or K-571, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_17
1441      * |        |          |For P-192, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_05
1442      * |        |          |For P-224, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_06
1443      * |        |          |For P-256, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_07
1444      * |        |          |For P-384, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_11
1445      * |        |          |For P-521, POINTX2 is stored in CRPT_ECC_X2_00~CRPT_ECC_X2_16
1446      * @var CRPT_T::ECC_Y2[18]
1447      * Offset: 0x8E0 ~ 0x924  ECC The Y-coordinate word 0 ~ 17 of the second point
1448      * ---------------------------------------------------------------------------------------------------
1449      * |Bits    |Field     |Descriptions
1450      * | :----: | :----:   | :---- |
1451      * |[31:0]  |POINTY2   |ECC the Y-coordinate Value of the Second Point (POINTY2)
1452      * |        |          |For B-163 or K-163, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_05
1453      * |        |          |For B-233 or K-233, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_07
1454      * |        |          |For B-283 or K-283, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_08
1455      * |        |          |For B-409 or K-409, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_12
1456      * |        |          |For B-571 or K-571, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_17
1457      * |        |          |For P-192, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_05
1458      * |        |          |For P-224, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_06
1459      * |        |          |For P-256, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_07
1460      * |        |          |For P-384, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_11
1461      * |        |          |For P-521, POINTY2 is stored in CRPT_ECC_Y2_00~CRPT_ECC_Y2_16
1462      * @var CRPT_T::ECC_A[18]
1463      * Offset: 0x928 ~ 0x96C  ECC The parameter CURVEA word 0 ~ 17 of elliptic curve
1464      * ---------------------------------------------------------------------------------------------------
1465      * |Bits    |Field     |Descriptions
1466      * | :----: | :----:   | :---- |
1467      * |[31:0]  |CURVEA    |ECC the Parameter CURVEA Value of Elliptic Curve (CURVEA)
1468      * |        |          |The formula of elliptic curve is y2=x3+CURVEA*x+CURVEB in GF(p) and y2+x*y=x3+CURVEA*x2+CURVEB in GF(2^m).
1469      * |        |          |For B-163 or K-163, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_05
1470      * |        |          |For B-233 or K-233, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_07
1471      * |        |          |For B-283 or K-283, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_08
1472      * |        |          |For B-409 or K-409, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_12
1473      * |        |          |For B-571 or K-571, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_17
1474      * |        |          |For P-192, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_05
1475      * |        |          |For P-224, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_06
1476      * |        |          |For P-256, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_07
1477      * |        |          |For P-384, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_11
1478      * |        |          |For P-521, CURVEA is stored in CRPT_ECC_A_00~CRPT_ECC_A_16
1479      * @var CRPT_T::ECC_B[18]
1480      * Offset: 0x970 ~ 0x9B4  ECC The parameter CURVEB word 0 ~ 17 of elliptic curve
1481      * ---------------------------------------------------------------------------------------------------
1482      * |Bits    |Field     |Descriptions
1483      * | :----: | :----:   | :---- |
1484      * |[31:0]  |CURVEB    |ECC the Parameter CURVEB Value of Elliptic Curve (CURVEA)
1485      * |        |          |The formula of elliptic curve is y2=x3+CURVEA*x+CURVEB in GF(p) and y2+x*y=x3+CURVEA*x2+CURVEB in GF(2^m).
1486      * |        |          |For B-163 or K-163, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_05
1487      * |        |          |For B-233 or K-233, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_07
1488      * |        |          |For B-283 or K-283, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_08
1489      * |        |          |For B-409 or K-409, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_12
1490      * |        |          |For B-521 or K-521, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_17
1491      * |        |          |For P-192, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_05
1492      * |        |          |For P-224, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_06
1493      * |        |          |For P-256, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_07
1494      * |        |          |For P-384, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_11
1495      * |        |          |For P-521, CURVEB is stored in CRPT_ECC_B_00~CRPT_ECC_B_16
1496      * @var CRPT_T::ECC_N[18]
1497      * Offset: 0x9B8 ~ 0x9FC  ECC The parameter CURVEN word 0 ~ 17 of elliptic curve
1498      * ---------------------------------------------------------------------------------------------------
1499      * |Bits    |Field     |Descriptions
1500      * | :----: | :----:   | :---- |
1501      * |[31:0]  |CURVEN    |ECC the Parameter CURVEN Value of Elliptic Curve (CURVEN)
1502      * |        |          |In GF(p), CURVEN is the prime p.
1503      * |        |          |In GF(2^m), CURVEN is the irreducible polynomial.
1504      * |        |          |For B-163 or K-163, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_05
1505      * |        |          |For B-233 or K-233, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_07
1506      * |        |          |For B-283 or K-283, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_08
1507      * |        |          |For B-409 or K-409, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_12
1508      * |        |          |For B-571 or K-571, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_17
1509      * |        |          |For P-192, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_05
1510      * |        |          |For P-224, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_06
1511      * |        |          |For P-256, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_07
1512      * |        |          |For P-384, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_11
1513      * |        |          |For P-521, CURVEN is stored in CRPT_ECC_N_00~CRPT_ECC_N_16
1514      * @var CRPT_T::ECC_K[18]
1515      * Offset: 0xA00 ~ 0xA44  ECC The scalar SCALARK word0 of point multiplication
1516      * ---------------------------------------------------------------------------------------------------
1517      * |Bits    |Field     |Descriptions
1518      * | :----: | :----:   | :---- |
1519      * |[31:0]  |SCALARK   |ECC the Scalar SCALARK Value of Point Multiplication(SCALARK)
1520      * |        |          |Because the SCALARK usually stores the private key, ECC accelerator do not allow to read the register SCALARK.
1521      * |        |          |For B-163 or K-163, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_05
1522      * |        |          |For B-233 or K-233, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_07
1523      * |        |          |For B-283 or K-283, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_08
1524      * |        |          |For B-409 or K-409, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_12
1525      * |        |          |For B-571 or K-571, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_17
1526      * |        |          |For P-192, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_05
1527      * |        |          |For P-224, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_06
1528      * |        |          |For P-256, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_07
1529      * |        |          |For P-384, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_11
1530      * |        |          |For P-521, SCALARK is stored in CRPT_ECC_K_00~CRPT_ECC_K_16
1531      * @var CRPT_T::ECC_SADDR
1532      * Offset: 0xA48  ECC DMA Source Address Register
1533      * ---------------------------------------------------------------------------------------------------
1534      * |Bits    |Field     |Descriptions
1535      * | :----: | :----:   | :---- |
1536      * |[31:0]  |SADDR     |ECC DMA Source Address
1537      * |        |          |The ECC accelerator supports DMA function to transfer the DATA and PARAMETER between
1538      * |        |          |SRAM memory space and ECC accelerator. The SADDR keeps the source address of the data
1539      * |        |          |buffer where the source text is stored. Based on the source address, the ECC accelerator
1540      * |        |          |can read the DATA and PARAMETER from SRAM memory space and do ECC operation. The start
1541      * |        |          |of source address should be located at word boundary. That is, bit 1 and 0 of SADDR are
1542      * |        |          |ignored. SADDR can be read and written. In DMA mode, software must update the CRPT_ECC_SADDR
1543      * |        |          |before triggering START.
1544      * @var CRPT_T::ECC_DADDR
1545      * Offset: 0xA4C  ECC DMA Destination Address Register
1546      * ---------------------------------------------------------------------------------------------------
1547      * |Bits    |Field     |Descriptions
1548      * | :----: | :----:   | :---- |
1549      * |[31:0]  |DADDR     |ECC DMA Destination Address
1550      * |        |          |The ECC accelerator supports DMA function to transfer the DATA and PARAMETER between system memory and ECC accelerator
1551      * |        |          |The DADDR keeps the destination address of the data buffer where output data of ECC engine will be stored
1552      * |        |          |Based on the destination address, the ECC accelerator can write the result data back to system memory after the ECC operation is finished
1553      * |        |          |The start of destination address should be located at word boundary
1554      * |        |          |That is, bit 1 and 0 of DADDR are ignored
1555      * |        |          |DADDR can be read and written
1556      * |        |          |In DMA mode, software must update the CRPT_ECC_DADDR before triggering START
1557      * @var CRPT_T::ECC_STARTREG
1558      * Offset: 0xA50  ECC Starting Address of Updated Registers
1559      * ---------------------------------------------------------------------------------------------------
1560      * |Bits    |Field     |Descriptions
1561      * | :----: | :----:   | :---- |
1562      * |[31:0]  |STARTREG  |ECC Starting Address of Updated Registers
1563      * |        |          |The address of the updated registers that DMA feeds the first data or parameter to ECC engine
1564      * |        |          |When ECC engine is active, ECC accelerator does not allow users to modify STARTREG
1565      * |        |          |For example, we want to updated input data from register CRPT_ECC POINTX1
1566      * |        |          |Thus, the value of STARTREG is 0x808.
1567      * @var CRPT_T::ECC_WORDCNT
1568      * Offset: 0xA54  ECC DMA Word Count
1569      * ---------------------------------------------------------------------------------------------------
1570      * |Bits    |Field     |Descriptions
1571      * | :----: | :----:   | :---- |
1572      * |[31:0]  |WORDCNT   |ECC DMA Word Count
1573      * |        |          |The CRPT_ECC_WORDCNT keeps the word count of source data that is for the required input data of ECC accelerator with various operations in DMA mode
1574      * |        |          |Although CRPT_ECC_WORDCNT is 32-bit, the maximum of word count in ECC accelerator is 144 words
1575      * |        |          |CRPT_ECC_WORDCNT can be read and written
1576      */
1577     __IO uint32_t INTEN;                 /*!< [0x0000] Crypto Interrupt Enable Control Register                         */
1578     __IO uint32_t INTSTS;                /*!< [0x0004] Crypto Interrupt Flag                                            */
1579     __IO uint32_t PRNG_CTL;              /*!< [0x0008] PRNG Control Register                                            */
1580     __O  uint32_t PRNG_SEED;             /*!< [0x000c] Seed for PRNG                                                    */
1581     __I  uint32_t PRNG_KEY[8];           /*!< [0x0010] ~ [0x002c] PRNG Generated Key0 ~ Key7                            */
1582     /// @cond HIDDEN_SYMBOLS
1583     __I  uint32_t RESERVE0[8];
1584     /// @endcond //HIDDEN_SYMBOLS
1585     __I  uint32_t AES_FDBCK[4];          /*!< [0x0050] ~ [0x005c] AES Engine Output Feedback Data after Cryptographic Operation     */
1586     __I  uint32_t TDES_FDBCKH;           /*!< [0x0060] TDES/DES Engine Output Feedback High Word Data after Cryptographic Operation */
1587     __I  uint32_t TDES_FDBCKL;           /*!< [0x0064] TDES/DES Engine Output Feedback Low Word Data after Cryptographic Operation  */
1588     /// @cond HIDDEN_SYMBOLS
1589     __I  uint32_t RESERVE1[38];
1590     /// @endcond //HIDDEN_SYMBOLS
1591     __IO uint32_t AES_CTL;               /*!< [0x0100] AES Control Register                                             */
1592     __I  uint32_t AES_STS;               /*!< [0x0104] AES Engine Flag                                                  */
1593     __IO uint32_t AES_DATIN;             /*!< [0x0108] AES Engine Data Input Port Register                              */
1594     __I  uint32_t AES_DATOUT;            /*!< [0x010c] AES Engine Data Output Port Register                             */
1595     __IO uint32_t AES0_KEY[8];           /*!< [0x0110] ~ [0x012c] AES Key Word 0~7 Register for Channel 0               */
1596     __IO uint32_t AES0_IV[4];            /*!< [0x0130] ~ [0x013c] AES Initial Vector Word 0 ~ 3 Register for Channel 0  */
1597     __IO uint32_t AES0_SADDR;            /*!< [0x0140] AES DMA Source Address Register for Channel 0                    */
1598     __IO uint32_t AES0_DADDR;            /*!< [0x0144] AES DMA Destination Address Register for Channel 0               */
1599     __IO uint32_t AES0_CNT;              /*!< [0x0148] AES Byte Count Register for Channel 0                            */
1600     __IO uint32_t AES1_KEY[8];           /*!< [0x014c] ~ [0x0168] AES Key Word 0~7 Register for Channel 1               */
1601     __IO uint32_t AES1_IV[4];            /*!< [0x016c] ~ [0x0178] AES Initial Vector Word 0~3 Register for Channel 1    */
1602     __IO uint32_t AES1_SADDR;            /*!< [0x017c] AES DMA Source Address Register for Channel 1                    */
1603     __IO uint32_t AES1_DADDR;            /*!< [0x0180] AES DMA Destination Address Register for Channel 1               */
1604     __IO uint32_t AES1_CNT;              /*!< [0x0184] AES Byte Count Register for Channel 1                            */
1605     __IO uint32_t AES2_KEY[8];           /*!< [0x0188] ~ [0x01a4] AES Key Word 0~7 Register for Channel 2               */
1606     __IO uint32_t AES2_IV[4];            /*!< [0x01a8] ~ [0x01b4] AES Initial Vector Word 0~3 Register for Channel 2    */
1607     __IO uint32_t AES2_SADDR;            /*!< [0x01b8] AES DMA Source Address Register for Channel 2                    */
1608     __IO uint32_t AES2_DADDR;            /*!< [0x01bc] AES DMA Destination Address Register for Channel 2               */
1609     __IO uint32_t AES2_CNT;              /*!< [0x01c0] AES Byte Count Register for Channel 2                            */
1610     __IO uint32_t AES3_KEY[8];           /*!< [0x01c4] ~ [0x01e0] AES Key Word 0~7 Register for Channel 3               */
1611     __IO uint32_t AES3_IV[4];            /*!< [0x01e4] ~ [0x01f0] AES Initial Vector Word 0~3 Register for Channel 3    */
1612     __IO uint32_t AES3_SADDR;            /*!< [0x01f4] AES DMA Source Address Register for Channel 3                    */
1613     __IO uint32_t AES3_DADDR;            /*!< [0x01f8] AES DMA Destination Address Register for Channel 3               */
1614     __IO uint32_t AES3_CNT;              /*!< [0x01fc] AES Byte Count Register for Channel 3                            */
1615     __IO uint32_t TDES_CTL;              /*!< [0x0200] TDES/DES Control Register                                        */
1616     __I  uint32_t TDES_STS;              /*!< [0x0204] TDES/DES Engine Flag                                             */
1617     __IO uint32_t TDES0_KEY1H;           /*!< [0x0208] TDES/DES Key 1 High Word Register for Channel 0                  */
1618     __IO uint32_t TDES0_KEY1L;           /*!< [0x020c] TDES/DES Key 1 Low Word Register for Channel 0                   */
1619     __IO uint32_t TDES0_KEY2H;           /*!< [0x0210] TDES Key 2 High Word Register for Channel 0                      */
1620     __IO uint32_t TDES0_KEY2L;           /*!< [0x0214] TDES Key 2 Low Word Register for Channel 0                       */
1621     __IO uint32_t TDES0_KEY3H;           /*!< [0x0218] TDES Key 3 High Word Register for Channel 0                      */
1622     __IO uint32_t TDES0_KEY3L;           /*!< [0x021c] TDES Key 3 Low Word Register for Channel 0                       */
1623     __IO uint32_t TDES0_IVH;             /*!< [0x0220] TDES/DES Initial Vector High Word Register for Channel 0         */
1624     __IO uint32_t TDES0_IVL;             /*!< [0x0224] TDES/DES Initial Vector Low Word Register for Channel 0          */
1625     __IO uint32_t TDES0_SA;              /*!< [0x0228] TDES/DES DMA Source Address Register for Channel 0               */
1626     __IO uint32_t TDES0_DA;              /*!< [0x022c] TDES/DES DMA Destination Address Register for Channel 0          */
1627     __IO uint32_t TDES0_CNT;             /*!< [0x0230] TDES/DES Byte Count Register for Channel 0                       */
1628     __IO uint32_t TDES_DATIN;            /*!< [0x0234] TDES/DES Engine Input data Word Register                         */
1629     __I  uint32_t TDES_DATOUT;           /*!< [0x0238] TDES/DES Engine Output data Word Register                        */
1630     /// @cond HIDDEN_SYMBOLS
1631     __I  uint32_t RESERVE2[3];
1632     /// @endcond //HIDDEN_SYMBOLS
1633     __IO uint32_t TDES1_KEY1H;           /*!< [0x0248] TDES/DES Key 1 High Word Register for Channel 1                  */
1634     __IO uint32_t TDES1_KEY1L;           /*!< [0x024c] TDES/DES Key 1 Low Word Register for Channel 1                   */
1635     __IO uint32_t TDES1_KEY2H;           /*!< [0x0250] TDES Key 2 High Word Register for Channel 1                      */
1636     __IO uint32_t TDES1_KEY2L;           /*!< [0x0254] TDES Key 2 Low Word Register for Channel 1                       */
1637     __IO uint32_t TDES1_KEY3H;           /*!< [0x0258] TDES Key 3 High Word Register for Channel 1                      */
1638     __IO uint32_t TDES1_KEY3L;           /*!< [0x025c] TDES Key 3 Low Word Register for Channel 1                       */
1639     __IO uint32_t TDES1_IVH;             /*!< [0x0260] TDES/DES Initial Vector High Word Register for Channel 1         */
1640     __IO uint32_t TDES1_IVL;             /*!< [0x0264] TDES/DES Initial Vector Low Word Register for Channel 1          */
1641     __IO uint32_t TDES1_SA;              /*!< [0x0268] TDES/DES DMA Source Address Register for Channel 1               */
1642     __IO uint32_t TDES1_DA;              /*!< [0x026c] TDES/DES DMA Destination Address Register for Channel 1          */
1643     __IO uint32_t TDES1_CNT;             /*!< [0x0270] TDES/DES Byte Count Register for Channel 1                       */
1644     /// @cond HIDDEN_SYMBOLS
1645     __I  uint32_t RESERVE3[5];
1646     /// @endcond //HIDDEN_SYMBOLS
1647     __IO uint32_t TDES2_KEY1H;           /*!< [0x0288] TDES/DES Key 1 High Word Register for Channel 2                  */
1648     __IO uint32_t TDES2_KEY1L;           /*!< [0x028c] TDES/DES Key 1 Low Word Register for Channel 2                   */
1649     __IO uint32_t TDES2_KEY2H;           /*!< [0x0290] TDES Key 2 High Word Register for Channel 2                      */
1650     __IO uint32_t TDES2_KEY2L;           /*!< [0x0294] TDES Key 2 Low Word Register for Channel 2                       */
1651     __IO uint32_t TDES2_KEY3H;           /*!< [0x0298] TDES Key 3 High Word Register for Channel 2                      */
1652     __IO uint32_t TDES2_KEY3L;           /*!< [0x029c] TDES Key 3 Low Word Register for Channel 2                       */
1653     __IO uint32_t TDES2_IVH;             /*!< [0x02a0] TDES/DES Initial Vector High Word Register for Channel 2         */
1654     __IO uint32_t TDES2_IVL;             /*!< [0x02a4] TDES/DES Initial Vector Low Word Register for Channel 2          */
1655     __IO uint32_t TDES2_SA;              /*!< [0x02a8] TDES/DES DMA Source Address Register for Channel 2               */
1656     __IO uint32_t TDES2_DA;              /*!< [0x02ac] TDES/DES DMA Destination Address Register for Channel 2          */
1657     __IO uint32_t TDES2_CNT;             /*!< [0x02b0] TDES/DES Byte Count Register for Channel 2                       */
1658     /// @cond HIDDEN_SYMBOLS
1659     __I  uint32_t RESERVE4[5];
1660     /// @endcond //HIDDEN_SYMBOLS
1661     __IO uint32_t TDES3_KEY1H;           /*!< [0x02c8] TDES/DES Key 1 High Word Register for Channel 3                  */
1662     __IO uint32_t TDES3_KEY1L;           /*!< [0x02cc] TDES/DES Key 1 Low Word Register for Channel 3                   */
1663     __IO uint32_t TDES3_KEY2H;           /*!< [0x02d0] TDES Key 2 High Word Register for Channel 3                      */
1664     __IO uint32_t TDES3_KEY2L;           /*!< [0x02d4] TDES Key 2 Low Word Register for Channel 3                       */
1665     __IO uint32_t TDES3_KEY3H;           /*!< [0x02d8] TDES Key 3 High Word Register for Channel 3                      */
1666     __IO uint32_t TDES3_KEY3L;           /*!< [0x02dc] TDES Key 3 Low Word Register for Channel 3                       */
1667     __IO uint32_t TDES3_IVH;             /*!< [0x02e0] TDES/DES Initial Vector High Word Register for Channel 3         */
1668     __IO uint32_t TDES3_IVL;             /*!< [0x02e4] TDES/DES Initial Vector Low Word Register for Channel 3          */
1669     __IO uint32_t TDES3_SA;              /*!< [0x02e8] TDES/DES DMA Source Address Register for Channel 3               */
1670     __IO uint32_t TDES3_DA;              /*!< [0x02ec] TDES/DES DMA Destination Address Register for Channel 3          */
1671     __IO uint32_t TDES3_CNT;             /*!< [0x02f0] TDES/DES Byte Count Register for Channel 3                       */
1672     /// @cond HIDDEN_SYMBOLS
1673     __I  uint32_t RESERVE5[3];
1674     /// @endcond //HIDDEN_SYMBOLS
1675     __IO uint32_t HMAC_CTL;              /*!< [0x0300] SHA/HMAC Control Register                                        */
1676     __I  uint32_t HMAC_STS;              /*!< [0x0304] SHA/HMAC Status Flag                                             */
1677     __I  uint32_t HMAC_DGST[16];         /*!< [0x0308] ~ [0x0344] SHA/HMAC Digest Message 0~15                          */
1678     __IO uint32_t HMAC_KEYCNT;           /*!< [0x0348] SHA/HMAC Key Byte Count Register                                 */
1679     __IO uint32_t HMAC_SADDR;            /*!< [0x034c] SHA/HMAC DMA Source Address Register                             */
1680     __IO uint32_t HMAC_DMACNT;           /*!< [0x0350] SHA/HMAC Byte Count Register                                     */
1681     __IO uint32_t HMAC_DATIN;            /*!< [0x0354] SHA/HMAC Engine Non-DMA Mode Data Input Port Register            */
1682     /// @cond HIDDEN_SYMBOLS
1683     __I  uint32_t RESERVE6[298];
1684     /// @endcond //HIDDEN_SYMBOLS
1685     __IO uint32_t ECC_CTL;               /*!< [0x0800] ECC Control Register                                             */
1686     __I  uint32_t ECC_STS;               /*!< [0x0804] ECC Status Register                                              */
1687     __IO uint32_t ECC_X1[18];            /*!< [0x0808] ~ [0x084c] ECC The X-coordinate word 0~17 of the first point     */
1688     __IO uint32_t ECC_Y1[18];            /*!< [0x0850] ~ [0x0894] ECC The Y-coordinate word 0~17 of the first point     */
1689     __IO uint32_t ECC_X2[18];            /*!< [0x0898] ~ [0x08dc] ECC The X-coordinate word 0~17 of the second point    */
1690     __IO uint32_t ECC_Y2[18];            /*!< [0x08e0] ~ [0x0924] ECC The Y-coordinate word 0~17 of the second point    */
1691     __IO uint32_t ECC_A[18];             /*!< [0x0928] ~ [0x096c] ECC The parameter CURVEA word 0~17 of elliptic curve  */
1692     __IO uint32_t ECC_B[18];             /*!< [0x0970] ~ [0x09b4] ECC The parameter CURVEB word 0~17 of elliptic curve  */
1693     __IO uint32_t ECC_N[18];             /*!< [0x09b8] ~ [0x09fc] ECC The parameter CURVEN word 0~17 of elliptic curve  */
1694     __O  uint32_t ECC_K[18];             /*!< [0x0a00] ~ [0x0a44] ECC The scalar SCALARK word 0~17 of point multiplication */
1695     __IO uint32_t ECC_SADDR;             /*!< [0x0a48] ECC DMA Source Address Register                                  */
1696     __IO uint32_t ECC_DADDR;             /*!< [0x0a4c] ECC DMA Destination Address Register                             */
1697     __IO uint32_t ECC_STARTREG;          /*!< [0x0a50] ECC Starting Address of Updated Registers                        */
1698     __IO uint32_t ECC_WORDCNT;           /*!< [0x0a54] ECC DMA Word Count                                               */
1699 
1700 } CRPT_T;
1701 
1702 /**
1703     @addtogroup CRPT_CONST CRPT Bit Field Definition
1704     Constant Definitions for CRPT Controller
1705 @{ */
1706 
1707 #define CRPT_INTEN_AESIEN_Pos            (0)                                               /*!< CRPT_T::INTEN: AESIEN Position         */
1708 #define CRPT_INTEN_AESIEN_Msk            (0x1ul << CRPT_INTEN_AESIEN_Pos)                  /*!< CRPT_T::INTEN: AESIEN Mask             */
1709 
1710 #define CRPT_INTEN_AESEIEN_Pos           (1)                                               /*!< CRPT_T::INTEN: AESEIEN Position        */
1711 #define CRPT_INTEN_AESEIEN_Msk           (0x1ul << CRPT_INTEN_AESEIEN_Pos)                 /*!< CRPT_T::INTEN: AESEIEN Mask            */
1712 
1713 #define CRPT_INTEN_TDESIEN_Pos           (8)                                               /*!< CRPT_T::INTEN: TDESIEN Position        */
1714 #define CRPT_INTEN_TDESIEN_Msk           (0x1ul << CRPT_INTEN_TDESIEN_Pos)                 /*!< CRPT_T::INTEN: TDESIEN Mask            */
1715 
1716 #define CRPT_INTEN_TDESEIEN_Pos          (9)                                               /*!< CRPT_T::INTEN: TDESEIEN Position       */
1717 #define CRPT_INTEN_TDESEIEN_Msk          (0x1ul << CRPT_INTEN_TDESEIEN_Pos)                /*!< CRPT_T::INTEN: TDESEIEN Mask           */
1718 
1719 #define CRPT_INTEN_PRNGIEN_Pos           (16)                                              /*!< CRPT_T::INTEN: PRNGIEN Position        */
1720 #define CRPT_INTEN_PRNGIEN_Msk           (0x1ul << CRPT_INTEN_PRNGIEN_Pos)                 /*!< CRPT_T::INTEN: PRNGIEN Mask            */
1721 
1722 #define CRPT_INTEN_ECCIEN_Pos            (22)                                              /*!< CRPT_T::INTEN: ECCIEN Position         */
1723 #define CRPT_INTEN_ECCIEN_Msk            (0x1ul << CRPT_INTEN_ECCIEN_Pos)                  /*!< CRPT_T::INTEN: ECCIEN Mask             */
1724 
1725 #define CRPT_INTEN_ECCEIEN_Pos           (23)                                              /*!< CRPT_T::INTEN: ECCEIEN Position        */
1726 #define CRPT_INTEN_ECCEIEN_Msk           (0x1ul << CRPT_INTEN_ECCEIEN_Pos)                 /*!< CRPT_T::INTEN: ECCEIEN Mask            */
1727 
1728 #define CRPT_INTEN_HMACIEN_Pos           (24)                                              /*!< CRPT_T::INTEN: HMACIEN Position        */
1729 #define CRPT_INTEN_HMACIEN_Msk           (0x1ul << CRPT_INTEN_HMACIEN_Pos)                 /*!< CRPT_T::INTEN: HMACIEN Mask            */
1730 
1731 #define CRPT_INTEN_HMACEIEN_Pos          (25)                                              /*!< CRPT_T::INTEN: HMACEIEN Position       */
1732 #define CRPT_INTEN_HMACEIEN_Msk          (0x1ul << CRPT_INTEN_HMACEIEN_Pos)                /*!< CRPT_T::INTEN: HMACEIEN Mask           */
1733 
1734 #define CRPT_INTSTS_AESIF_Pos            (0)                                               /*!< CRPT_T::INTSTS: AESIF Position         */
1735 #define CRPT_INTSTS_AESIF_Msk            (0x1ul << CRPT_INTSTS_AESIF_Pos)                  /*!< CRPT_T::INTSTS: AESIF Mask             */
1736 
1737 #define CRPT_INTSTS_AESEIF_Pos           (1)                                               /*!< CRPT_T::INTSTS: AESEIF Position        */
1738 #define CRPT_INTSTS_AESEIF_Msk           (0x1ul << CRPT_INTSTS_AESEIF_Pos)                 /*!< CRPT_T::INTSTS: AESEIF Mask            */
1739 
1740 #define CRPT_INTSTS_TDESIF_Pos           (8)                                               /*!< CRPT_T::INTSTS: TDESIF Position        */
1741 #define CRPT_INTSTS_TDESIF_Msk           (0x1ul << CRPT_INTSTS_TDESIF_Pos)                 /*!< CRPT_T::INTSTS: TDESIF Mask            */
1742 
1743 #define CRPT_INTSTS_TDESEIF_Pos          (9)                                               /*!< CRPT_T::INTSTS: TDESEIF Position       */
1744 #define CRPT_INTSTS_TDESEIF_Msk          (0x1ul << CRPT_INTSTS_TDESEIF_Pos)                /*!< CRPT_T::INTSTS: TDESEIF Mask           */
1745 
1746 #define CRPT_INTSTS_PRNGIF_Pos           (16)                                              /*!< CRPT_T::INTSTS: PRNGIF Position        */
1747 #define CRPT_INTSTS_PRNGIF_Msk           (0x1ul << CRPT_INTSTS_PRNGIF_Pos)                 /*!< CRPT_T::INTSTS: PRNGIF Mask            */
1748 
1749 #define CRPT_INTSTS_ECCIF_Pos            (22)                                              /*!< CRPT_T::INTSTS: ECCIF Position         */
1750 #define CRPT_INTSTS_ECCIF_Msk            (0x1ul << CRPT_INTSTS_ECCIF_Pos)                  /*!< CRPT_T::INTSTS: ECCIF Mask             */
1751 
1752 #define CRPT_INTSTS_ECCEIF_Pos           (23)                                              /*!< CRPT_T::INTSTS: ECCEIF Position        */
1753 #define CRPT_INTSTS_ECCEIF_Msk           (0x1ul << CRPT_INTSTS_ECCEIF_Pos)                 /*!< CRPT_T::INTSTS: ECCEIF Mask            */
1754 
1755 #define CRPT_INTSTS_HMACIF_Pos           (24)                                              /*!< CRPT_T::INTSTS: HMACIF Position        */
1756 #define CRPT_INTSTS_HMACIF_Msk           (0x1ul << CRPT_INTSTS_HMACIF_Pos)                 /*!< CRPT_T::INTSTS: HMACIF Mask            */
1757 
1758 #define CRPT_INTSTS_HMACEIF_Pos          (25)                                              /*!< CRPT_T::INTSTS: HMACEIF Position       */
1759 #define CRPT_INTSTS_HMACEIF_Msk          (0x1ul << CRPT_INTSTS_HMACEIF_Pos)                /*!< CRPT_T::INTSTS: HMACEIF Mask           */
1760 
1761 #define CRPT_PRNG_CTL_START_Pos          (0)                                               /*!< CRPT_T::PRNG_CTL: START Position       */
1762 #define CRPT_PRNG_CTL_START_Msk          (0x1ul << CRPT_PRNG_CTL_START_Pos)                /*!< CRPT_T::PRNG_CTL: START Mask           */
1763 
1764 #define CRPT_PRNG_CTL_SEEDRLD_Pos        (1)                                               /*!< CRPT_T::PRNG_CTL: SEEDRLD Position     */
1765 #define CRPT_PRNG_CTL_SEEDRLD_Msk        (0x1ul << CRPT_PRNG_CTL_SEEDRLD_Pos)              /*!< CRPT_T::PRNG_CTL: SEEDRLD Mask         */
1766 
1767 #define CRPT_PRNG_CTL_KEYSZ_Pos          (2)                                               /*!< CRPT_T::PRNG_CTL: KEYSZ Position       */
1768 #define CRPT_PRNG_CTL_KEYSZ_Msk          (0x3ul << CRPT_PRNG_CTL_KEYSZ_Pos)                /*!< CRPT_T::PRNG_CTL: KEYSZ Mask           */
1769 
1770 #define CRPT_PRNG_CTL_BUSY_Pos           (8)                                               /*!< CRPT_T::PRNG_CTL: BUSY Position        */
1771 #define CRPT_PRNG_CTL_BUSY_Msk           (0x1ul << CRPT_PRNG_CTL_BUSY_Pos)                 /*!< CRPT_T::PRNG_CTL: BUSY Mask            */
1772 
1773 #define CRPT_PRNG_SEED_SEED_Pos          (0)                                               /*!< CRPT_T::PRNG_SEED: SEED Position       */
1774 #define CRPT_PRNG_SEED_SEED_Msk          (0xfffffffful << CRPT_PRNG_SEED_SEED_Pos)         /*!< CRPT_T::PRNG_SEED: SEED Mask           */
1775 
1776 #define CRPT_PRNG_KEYx_KEY_Pos           (0)                                               /*!< CRPT_T::PRNG_KEY[8]: KEY Position      */
1777 #define CRPT_PRNG_KEYx_KEY_Msk           (0xfffffffful << CRPT_PRNG_KEYx_KEY_Pos)          /*!< CRPT_T::PRNG_KEY[8]: KEY Mask          */
1778 
1779 #define CRPT_AES_FDBCKx_FDBCK_Pos        (0)                                               /*!< CRPT_T::AES_FDBCK[4]: FDBCK Position   */
1780 #define CRPT_AES_FDBCKx_FDBCK_Msk        (0xfffffffful << CRPT_AES_FDBCKx_FDBCK_Pos)       /*!< CRPT_T::AES_FDBCK[4]: FDBCK Mask       */
1781 
1782 #define CRPT_TDES_FDBCKH_FDBCK_Pos       (0)                                               /*!< CRPT_T::TDES_FDBCKH: FDBCK Position    */
1783 #define CRPT_TDES_FDBCKH_FDBCK_Msk       (0xfffffffful << CRPT_TDES_FDBCKH_FDBCK_Pos)      /*!< CRPT_T::TDES_FDBCKH: FDBCK Mask        */
1784 
1785 #define CRPT_TDES_FDBCKL_FDBCK_Pos       (0)                                               /*!< CRPT_T::TDES_FDBCKL: FDBCK Position    */
1786 #define CRPT_TDES_FDBCKL_FDBCK_Msk       (0xfffffffful << CRPT_TDES_FDBCKL_FDBCK_Pos)      /*!< CRPT_T::TDES_FDBCKL: FDBCK Mask        */
1787 
1788 #define CRPT_AES_CTL_START_Pos           (0)                                               /*!< CRPT_T::AES_CTL: START Position        */
1789 #define CRPT_AES_CTL_START_Msk           (0x1ul << CRPT_AES_CTL_START_Pos)                 /*!< CRPT_T::AES_CTL: START Mask            */
1790 
1791 #define CRPT_AES_CTL_STOP_Pos            (1)                                               /*!< CRPT_T::AES_CTL: STOP Position         */
1792 #define CRPT_AES_CTL_STOP_Msk            (0x1ul << CRPT_AES_CTL_STOP_Pos)                  /*!< CRPT_T::AES_CTL: STOP Mask             */
1793 
1794 #define CRPT_AES_CTL_KEYSZ_Pos           (2)                                               /*!< CRPT_T::AES_CTL: KEYSZ Position        */
1795 #define CRPT_AES_CTL_KEYSZ_Msk           (0x3ul << CRPT_AES_CTL_KEYSZ_Pos)                 /*!< CRPT_T::AES_CTL: KEYSZ Mask            */
1796 
1797 #define CRPT_AES_CTL_DMALAST_Pos         (5)                                               /*!< CRPT_T::AES_CTL: DMALAST Position      */
1798 #define CRPT_AES_CTL_DMALAST_Msk         (0x1ul << CRPT_AES_CTL_DMALAST_Pos)               /*!< CRPT_T::AES_CTL: DMALAST Mask          */
1799 
1800 #define CRPT_AES_CTL_DMACSCAD_Pos        (6)                                               /*!< CRPT_T::AES_CTL: DMACSCAD Position     */
1801 #define CRPT_AES_CTL_DMACSCAD_Msk        (0x1ul << CRPT_AES_CTL_DMACSCAD_Pos)              /*!< CRPT_T::AES_CTL: DMACSCAD Mask         */
1802 
1803 #define CRPT_AES_CTL_DMAEN_Pos           (7)                                               /*!< CRPT_T::AES_CTL: DMAEN Position        */
1804 #define CRPT_AES_CTL_DMAEN_Msk           (0x1ul << CRPT_AES_CTL_DMAEN_Pos)                 /*!< CRPT_T::AES_CTL: DMAEN Mask            */
1805 
1806 #define CRPT_AES_CTL_OPMODE_Pos          (8)                                               /*!< CRPT_T::AES_CTL: OPMODE Position       */
1807 #define CRPT_AES_CTL_OPMODE_Msk          (0xfful << CRPT_AES_CTL_OPMODE_Pos)               /*!< CRPT_T::AES_CTL: OPMODE Mask           */
1808 
1809 #define CRPT_AES_CTL_ENCRPT_Pos          (16)                                              /*!< CRPT_T::AES_CTL: ENCRPT Position       */
1810 #define CRPT_AES_CTL_ENCRPT_Msk          (0x1ul << CRPT_AES_CTL_ENCRPT_Pos)                /*!< CRPT_T::AES_CTL: ENCRPT Mask           */
1811 
1812 #define CRPT_AES_CTL_OUTSWAP_Pos         (22)                                              /*!< CRPT_T::AES_CTL: OUTSWAP Position      */
1813 #define CRPT_AES_CTL_OUTSWAP_Msk         (0x1ul << CRPT_AES_CTL_OUTSWAP_Pos)               /*!< CRPT_T::AES_CTL: OUTSWAP Mask          */
1814 
1815 #define CRPT_AES_CTL_INSWAP_Pos          (23)                                              /*!< CRPT_T::AES_CTL: INSWAP Position       */
1816 #define CRPT_AES_CTL_INSWAP_Msk          (0x1ul << CRPT_AES_CTL_INSWAP_Pos)                /*!< CRPT_T::AES_CTL: INSWAP Mask           */
1817 
1818 #define CRPT_AES_CTL_CHANNEL_Pos         (24)                                              /*!< CRPT_T::AES_CTL: CHANNEL Position      */
1819 #define CRPT_AES_CTL_CHANNEL_Msk         (0x3ul << CRPT_AES_CTL_CHANNEL_Pos)               /*!< CRPT_T::AES_CTL: CHANNEL Mask          */
1820 
1821 #define CRPT_AES_CTL_KEYUNPRT_Pos        (26)                                              /*!< CRPT_T::AES_CTL: KEYUNPRT Position     */
1822 #define CRPT_AES_CTL_KEYUNPRT_Msk        (0x1ful << CRPT_AES_CTL_KEYUNPRT_Pos)             /*!< CRPT_T::AES_CTL: KEYUNPRT Mask         */
1823 
1824 #define CRPT_AES_CTL_KEYPRT_Pos          (31)                                              /*!< CRPT_T::AES_CTL: KEYPRT Position       */
1825 #define CRPT_AES_CTL_KEYPRT_Msk          (0x1ul << CRPT_AES_CTL_KEYPRT_Pos)                /*!< CRPT_T::AES_CTL: KEYPRT Mask           */
1826 
1827 #define CRPT_AES_STS_BUSY_Pos            (0)                                               /*!< CRPT_T::AES_STS: BUSY Position         */
1828 #define CRPT_AES_STS_BUSY_Msk            (0x1ul << CRPT_AES_STS_BUSY_Pos)                  /*!< CRPT_T::AES_STS: BUSY Mask             */
1829 
1830 #define CRPT_AES_STS_INBUFEMPTY_Pos      (8)                                               /*!< CRPT_T::AES_STS: INBUFEMPTY Position   */
1831 #define CRPT_AES_STS_INBUFEMPTY_Msk      (0x1ul << CRPT_AES_STS_INBUFEMPTY_Pos)            /*!< CRPT_T::AES_STS: INBUFEMPTY Mask       */
1832 
1833 #define CRPT_AES_STS_INBUFFULL_Pos       (9)                                               /*!< CRPT_T::AES_STS: INBUFFULL Position    */
1834 #define CRPT_AES_STS_INBUFFULL_Msk       (0x1ul << CRPT_AES_STS_INBUFFULL_Pos)             /*!< CRPT_T::AES_STS: INBUFFULL Mask        */
1835 
1836 #define CRPT_AES_STS_INBUFERR_Pos        (10)                                              /*!< CRPT_T::AES_STS: INBUFERR Position     */
1837 #define CRPT_AES_STS_INBUFERR_Msk        (0x1ul << CRPT_AES_STS_INBUFERR_Pos)              /*!< CRPT_T::AES_STS: INBUFERR Mask         */
1838 
1839 #define CRPT_AES_STS_CNTERR_Pos          (12)                                              /*!< CRPT_T::AES_STS: CNTERR Position       */
1840 #define CRPT_AES_STS_CNTERR_Msk          (0x1ul << CRPT_AES_STS_CNTERR_Pos)                /*!< CRPT_T::AES_STS: CNTERR Mask           */
1841 
1842 #define CRPT_AES_STS_OUTBUFEMPTY_Pos     (16)                                              /*!< CRPT_T::AES_STS: OUTBUFEMPTY Position  */
1843 #define CRPT_AES_STS_OUTBUFEMPTY_Msk     (0x1ul << CRPT_AES_STS_OUTBUFEMPTY_Pos)           /*!< CRPT_T::AES_STS: OUTBUFEMPTY Mask      */
1844 
1845 #define CRPT_AES_STS_OUTBUFFULL_Pos      (17)                                              /*!< CRPT_T::AES_STS: OUTBUFFULL Position   */
1846 #define CRPT_AES_STS_OUTBUFFULL_Msk      (0x1ul << CRPT_AES_STS_OUTBUFFULL_Pos)            /*!< CRPT_T::AES_STS: OUTBUFFULL Mask       */
1847 
1848 #define CRPT_AES_STS_OUTBUFERR_Pos       (18)                                              /*!< CRPT_T::AES_STS: OUTBUFERR Position    */
1849 #define CRPT_AES_STS_OUTBUFERR_Msk       (0x1ul << CRPT_AES_STS_OUTBUFERR_Pos)             /*!< CRPT_T::AES_STS: OUTBUFERR Mask        */
1850 
1851 #define CRPT_AES_STS_BUSERR_Pos          (20)                                              /*!< CRPT_T::AES_STS: BUSERR Position       */
1852 #define CRPT_AES_STS_BUSERR_Msk          (0x1ul << CRPT_AES_STS_BUSERR_Pos)                /*!< CRPT_T::AES_STS: BUSERR Mask           */
1853 
1854 #define CRPT_AES_DATIN_DATIN_Pos         (0)                                               /*!< CRPT_T::AES_DATIN: DATIN Position      */
1855 #define CRPT_AES_DATIN_DATIN_Msk         (0xfffffffful << CRPT_AES_DATIN_DATIN_Pos)        /*!< CRPT_T::AES_DATIN: DATIN Mask          */
1856 
1857 #define CRPT_AES_DATOUT_DATOUT_Pos       (0)                                               /*!< CRPT_T::AES_DATOUT: DATOUT Position    */
1858 #define CRPT_AES_DATOUT_DATOUT_Msk       (0xfffffffful << CRPT_AES_DATOUT_DATOUT_Pos)      /*!< CRPT_T::AES_DATOUT: DATOUT Mask        */
1859 
1860 #define CRPT_AES0_KEYx_KEY_Pos           (0)                                               /*!< CRPT_T::AES0_KEY[8]: KEY Position      */
1861 #define CRPT_AES0_KEYx_KEY_Msk           (0xfffffffful << CRPT_AES0_KEYx_KEY_Pos)          /*!< CRPT_T::AES0_KEY[8]: KEY Mask          */
1862 
1863 #define CRPT_AES0_IVx_IV_Pos             (0)                                               /*!< CRPT_T::AES0_IV[4]: IV Position        */
1864 #define CRPT_AES0_IVx_IV_Msk             (0xfffffffful << CRPT_AES0_IVx_IV_Pos)            /*!< CRPT_T::AES0_IV[4]: IV Mask            */
1865 
1866 #define CRPT_AES0_SADDR_SADDR_Pos        (0)                                               /*!< CRPT_T::AES0_SADDR: SADDR Position     */
1867 #define CRPT_AES0_SADDR_SADDR_Msk        (0xfffffffful << CRPT_AES0_SADDR_SADDR_Pos)       /*!< CRPT_T::AES0_SADDR: SADDR Mask         */
1868 
1869 #define CRPT_AES0_DADDR_DADDR_Pos        (0)                                               /*!< CRPT_T::AES0_DADDR: DADDR Position     */
1870 #define CRPT_AES0_DADDR_DADDR_Msk        (0xfffffffful << CRPT_AES0_DADDR_DADDR_Pos)       /*!< CRPT_T::AES0_DADDR: DADDR Mask         */
1871 
1872 #define CRPT_AES0_CNT_CNT_Pos            (0)                                               /*!< CRPT_T::AES0_CNT: CNT Position         */
1873 #define CRPT_AES0_CNT_CNT_Msk            (0xfffffffful << CRPT_AES0_CNT_CNT_Pos)           /*!< CRPT_T::AES0_CNT: CNT Mask             */
1874 
1875 #define CRPT_AES1_KEYx_KEY_Pos           (0)                                               /*!< CRPT_T::AES1_KEY[8]: KEY Position      */
1876 #define CRPT_AES1_KEYx_KEY_Msk           (0xfffffffful << CRPT_AES1_KEYx_KEY_Pos)          /*!< CRPT_T::AES1_KEY[8]: KEY Mask          */
1877 
1878 #define CRPT_AES1_IVx_IV_Pos             (0)                                               /*!< CRPT_T::AES1_IV[4]: IV Position        */
1879 #define CRPT_AES1_IVx_IV_Msk             (0xfffffffful << CRPT_AES1_IVx_IV_Pos)            /*!< CRPT_T::AES1_IV[4]: IV Mask            */
1880 
1881 #define CRPT_AES1_SADDR_SADDR_Pos        (0)                                               /*!< CRPT_T::AES1_SADDR: SADDR Position     */
1882 #define CRPT_AES1_SADDR_SADDR_Msk        (0xfffffffful << CRPT_AES1_SADDR_SADDR_Pos)       /*!< CRPT_T::AES1_SADDR: SADDR Mask         */
1883 
1884 #define CRPT_AES1_DADDR_DADDR_Pos        (0)                                               /*!< CRPT_T::AES1_DADDR: DADDR Position     */
1885 #define CRPT_AES1_DADDR_DADDR_Msk        (0xfffffffful << CRPT_AES1_DADDR_DADDR_Pos)       /*!< CRPT_T::AES1_DADDR: DADDR Mask         */
1886 
1887 #define CRPT_AES1_CNT_CNT_Pos            (0)                                               /*!< CRPT_T::AES1_CNT: CNT Position         */
1888 #define CRPT_AES1_CNT_CNT_Msk            (0xfffffffful << CRPT_AES1_CNT_CNT_Pos)           /*!< CRPT_T::AES1_CNT: CNT Mask             */
1889 
1890 #define CRPT_AES2_KEYx_KEY_Pos           (0)                                               /*!< CRPT_T::AES2_KEY[8]: KEY Position      */
1891 #define CRPT_AES2_KEYx_KEY_Msk           (0xfffffffful << CRPT_AES2_KEYx_KEY_Pos)          /*!< CRPT_T::AES2_KEY[8]: KEY Mask          */
1892 
1893 #define CRPT_AES2_IVx_IV_Pos             (0)                                               /*!< CRPT_T::AES2_IV[4]: IV Position        */
1894 #define CRPT_AES2_IVx_IV_Msk             (0xfffffffful << CRPT_AES2_IVx_IV_Pos)            /*!< CRPT_T::AES2_IV[4]: IV Mask            */
1895 
1896 #define CRPT_AES2_SADDR_SADDR_Pos        (0)                                               /*!< CRPT_T::AES2_SADDR: SADDR Position     */
1897 #define CRPT_AES2_SADDR_SADDR_Msk        (0xfffffffful << CRPT_AES2_SADDR_SADDR_Pos)       /*!< CRPT_T::AES2_SADDR: SADDR Mask         */
1898 
1899 #define CRPT_AES2_DADDR_DADDR_Pos        (0)                                               /*!< CRPT_T::AES2_DADDR: DADDR Position     */
1900 #define CRPT_AES2_DADDR_DADDR_Msk        (0xfffffffful << CRPT_AES2_DADDR_DADDR_Pos)       /*!< CRPT_T::AES2_DADDR: DADDR Mask         */
1901 
1902 #define CRPT_AES2_CNT_CNT_Pos            (0)                                               /*!< CRPT_T::AES2_CNT: CNT Position         */
1903 #define CRPT_AES2_CNT_CNT_Msk            (0xfffffffful << CRPT_AES2_CNT_CNT_Pos)           /*!< CRPT_T::AES2_CNT: CNT Mask             */
1904 
1905 #define CRPT_AES3_KEYx_KEY_Pos           (0)                                               /*!< CRPT_T::AES3_KEY[8]: KEY Position      */
1906 #define CRPT_AES3_KEYx_KEY_Msk           (0xfffffffful << CRPT_AES3_KEYx_KEY_Pos)          /*!< CRPT_T::AES3_KEY[8]: KEY Mask          */
1907 
1908 #define CRPT_AES3_IVx_IV_Pos             (0)                                               /*!< CRPT_T::AES3_IV[4]: IV Position        */
1909 #define CRPT_AES3_IVx_IV_Msk             (0xfffffffful << CRPT_AES3_IVx_IV_Pos)            /*!< CRPT_T::AES3_IV[4]: IV Mask            */
1910 
1911 #define CRPT_AES3_SADDR_SADDR_Pos        (0)                                               /*!< CRPT_T::AES3_SADDR: SADDR Position     */
1912 #define CRPT_AES3_SADDR_SADDR_Msk        (0xfffffffful << CRPT_AES3_SADDR_SADDR_Pos)       /*!< CRPT_T::AES3_SADDR: SADDR Mask         */
1913 
1914 #define CRPT_AES3_DADDR_DADDR_Pos        (0)                                               /*!< CRPT_T::AES3_DADDR: DADDR Position     */
1915 #define CRPT_AES3_DADDR_DADDR_Msk        (0xfffffffful << CRPT_AES3_DADDR_DADDR_Pos)       /*!< CRPT_T::AES3_DADDR: DADDR Mask         */
1916 
1917 #define CRPT_AES3_CNT_CNT_Pos            (0)                                               /*!< CRPT_T::AES3_CNT: CNT Position         */
1918 #define CRPT_AES3_CNT_CNT_Msk            (0xfffffffful << CRPT_AES3_CNT_CNT_Pos)           /*!< CRPT_T::AES3_CNT: CNT Mask             */
1919 
1920 #define CRPT_TDES_CTL_START_Pos          (0)                                               /*!< CRPT_T::TDES_CTL: START Position       */
1921 #define CRPT_TDES_CTL_START_Msk          (0x1ul << CRPT_TDES_CTL_START_Pos)                /*!< CRPT_T::TDES_CTL: START Mask           */
1922 
1923 #define CRPT_TDES_CTL_STOP_Pos           (1)                                               /*!< CRPT_T::TDES_CTL: STOP Position        */
1924 #define CRPT_TDES_CTL_STOP_Msk           (0x1ul << CRPT_TDES_CTL_STOP_Pos)                 /*!< CRPT_T::TDES_CTL: STOP Mask            */
1925 
1926 #define CRPT_TDES_CTL_TMODE_Pos          (2)                                               /*!< CRPT_T::TDES_CTL: TMODE Position       */
1927 #define CRPT_TDES_CTL_TMODE_Msk          (0x1ul << CRPT_TDES_CTL_TMODE_Pos)                /*!< CRPT_T::TDES_CTL: TMODE Mask           */
1928 
1929 #define CRPT_TDES_CTL_3KEYS_Pos          (3)                                               /*!< CRPT_T::TDES_CTL: 3KEYS Position       */
1930 #define CRPT_TDES_CTL_3KEYS_Msk          (0x1ul << CRPT_TDES_CTL_3KEYS_Pos)                /*!< CRPT_T::TDES_CTL: 3KEYS Mask           */
1931 
1932 #define CRPT_TDES_CTL_DMALAST_Pos        (5)                                               /*!< CRPT_T::TDES_CTL: DMALAST Position     */
1933 #define CRPT_TDES_CTL_DMALAST_Msk        (0x1ul << CRPT_TDES_CTL_DMALAST_Pos)              /*!< CRPT_T::TDES_CTL: DMALAST Mask         */
1934 
1935 #define CRPT_TDES_CTL_DMACSCAD_Pos       (6)                                               /*!< CRPT_T::TDES_CTL: DMACSCAD Position    */
1936 #define CRPT_TDES_CTL_DMACSCAD_Msk       (0x1ul << CRPT_TDES_CTL_DMACSCAD_Pos)             /*!< CRPT_T::TDES_CTL: DMACSCAD Mask        */
1937 
1938 #define CRPT_TDES_CTL_DMAEN_Pos          (7)                                               /*!< CRPT_T::TDES_CTL: DMAEN Position       */
1939 #define CRPT_TDES_CTL_DMAEN_Msk          (0x1ul << CRPT_TDES_CTL_DMAEN_Pos)                /*!< CRPT_T::TDES_CTL: DMAEN Mask           */
1940 
1941 #define CRPT_TDES_CTL_OPMODE_Pos         (8)                                               /*!< CRPT_T::TDES_CTL: OPMODE Position      */
1942 #define CRPT_TDES_CTL_OPMODE_Msk         (0x7ul << CRPT_TDES_CTL_OPMODE_Pos)               /*!< CRPT_T::TDES_CTL: OPMODE Mask          */
1943 
1944 #define CRPT_TDES_CTL_ENCRPT_Pos         (16)                                              /*!< CRPT_T::TDES_CTL: ENCRPT Position      */
1945 #define CRPT_TDES_CTL_ENCRPT_Msk         (0x1ul << CRPT_TDES_CTL_ENCRPT_Pos)               /*!< CRPT_T::TDES_CTL: ENCRPT Mask          */
1946 
1947 #define CRPT_TDES_CTL_BLKSWAP_Pos        (21)                                              /*!< CRPT_T::TDES_CTL: BLKSWAP Position     */
1948 #define CRPT_TDES_CTL_BLKSWAP_Msk        (0x1ul << CRPT_TDES_CTL_BLKSWAP_Pos)              /*!< CRPT_T::TDES_CTL: BLKSWAP Mask         */
1949 
1950 #define CRPT_TDES_CTL_OUTSWAP_Pos        (22)                                              /*!< CRPT_T::TDES_CTL: OUTSWAP Position     */
1951 #define CRPT_TDES_CTL_OUTSWAP_Msk        (0x1ul << CRPT_TDES_CTL_OUTSWAP_Pos)              /*!< CRPT_T::TDES_CTL: OUTSWAP Mask         */
1952 
1953 #define CRPT_TDES_CTL_INSWAP_Pos         (23)                                              /*!< CRPT_T::TDES_CTL: INSWAP Position      */
1954 #define CRPT_TDES_CTL_INSWAP_Msk         (0x1ul << CRPT_TDES_CTL_INSWAP_Pos)               /*!< CRPT_T::TDES_CTL: INSWAP Mask          */
1955 
1956 #define CRPT_TDES_CTL_CHANNEL_Pos        (24)                                              /*!< CRPT_T::TDES_CTL: CHANNEL Position     */
1957 #define CRPT_TDES_CTL_CHANNEL_Msk        (0x3ul << CRPT_TDES_CTL_CHANNEL_Pos)              /*!< CRPT_T::TDES_CTL: CHANNEL Mask         */
1958 
1959 #define CRPT_TDES_CTL_KEYUNPRT_Pos       (26)                                              /*!< CRPT_T::TDES_CTL: KEYUNPRT Position    */
1960 #define CRPT_TDES_CTL_KEYUNPRT_Msk       (0x1ful << CRPT_TDES_CTL_KEYUNPRT_Pos)            /*!< CRPT_T::TDES_CTL: KEYUNPRT Mask        */
1961 
1962 #define CRPT_TDES_CTL_KEYPRT_Pos         (31)                                              /*!< CRPT_T::TDES_CTL: KEYPRT Position      */
1963 #define CRPT_TDES_CTL_KEYPRT_Msk         (0x1ul << CRPT_TDES_CTL_KEYPRT_Pos)               /*!< CRPT_T::TDES_CTL: KEYPRT Mask          */
1964 
1965 #define CRPT_TDES_STS_BUSY_Pos           (0)                                               /*!< CRPT_T::TDES_STS: BUSY Position        */
1966 #define CRPT_TDES_STS_BUSY_Msk           (0x1ul << CRPT_TDES_STS_BUSY_Pos)                 /*!< CRPT_T::TDES_STS: BUSY Mask            */
1967 
1968 #define CRPT_TDES_STS_INBUFEMPTY_Pos     (8)                                               /*!< CRPT_T::TDES_STS: INBUFEMPTY Position  */
1969 #define CRPT_TDES_STS_INBUFEMPTY_Msk     (0x1ul << CRPT_TDES_STS_INBUFEMPTY_Pos)           /*!< CRPT_T::TDES_STS: INBUFEMPTY Mask      */
1970 
1971 #define CRPT_TDES_STS_INBUFFULL_Pos      (9)                                               /*!< CRPT_T::TDES_STS: INBUFFULL Position   */
1972 #define CRPT_TDES_STS_INBUFFULL_Msk      (0x1ul << CRPT_TDES_STS_INBUFFULL_Pos)            /*!< CRPT_T::TDES_STS: INBUFFULL Mask       */
1973 
1974 #define CRPT_TDES_STS_INBUFERR_Pos       (10)                                              /*!< CRPT_T::TDES_STS: INBUFERR Position    */
1975 #define CRPT_TDES_STS_INBUFERR_Msk       (0x1ul << CRPT_TDES_STS_INBUFERR_Pos)             /*!< CRPT_T::TDES_STS: INBUFERR Mask        */
1976 
1977 #define CRPT_TDES_STS_OUTBUFEMPTY_Pos    (16)                                              /*!< CRPT_T::TDES_STS: OUTBUFEMPTY Position */
1978 #define CRPT_TDES_STS_OUTBUFEMPTY_Msk    (0x1ul << CRPT_TDES_STS_OUTBUFEMPTY_Pos)          /*!< CRPT_T::TDES_STS: OUTBUFEMPTY Mask     */
1979 
1980 #define CRPT_TDES_STS_OUTBUFFULL_Pos     (17)                                              /*!< CRPT_T::TDES_STS: OUTBUFFULL Position  */
1981 #define CRPT_TDES_STS_OUTBUFFULL_Msk     (0x1ul << CRPT_TDES_STS_OUTBUFFULL_Pos)           /*!< CRPT_T::TDES_STS: OUTBUFFULL Mask      */
1982 
1983 #define CRPT_TDES_STS_OUTBUFERR_Pos      (18)                                              /*!< CRPT_T::TDES_STS: OUTBUFERR Position   */
1984 #define CRPT_TDES_STS_OUTBUFERR_Msk      (0x1ul << CRPT_TDES_STS_OUTBUFERR_Pos)            /*!< CRPT_T::TDES_STS: OUTBUFERR Mask       */
1985 
1986 #define CRPT_TDES_STS_BUSERR_Pos         (20)                                              /*!< CRPT_T::TDES_STS: BUSERR Position      */
1987 #define CRPT_TDES_STS_BUSERR_Msk         (0x1ul << CRPT_TDES_STS_BUSERR_Pos)               /*!< CRPT_T::TDES_STS: BUSERR Mask          */
1988 
1989 #define CRPT_TDES0_KEYxH_KEY_Pos         (0)                                               /*!< CRPT_T::TDES0_KEYxH: KEY Position      */
1990 #define CRPT_TDES0_KEYxH_KEY_Msk         (0xfffffffful << CRPT_TDES0_KEYxH_KEY_Pos)        /*!< CRPT_T::TDES0_KEYxH: KEY Mask          */
1991 
1992 #define CRPT_TDES0_KEYxL_KEY_Pos         (0)                                               /*!< CRPT_T::TDES0_KEYxL: KEY Position      */
1993 #define CRPT_TDES0_KEYxL_KEY_Msk         (0xfffffffful << CRPT_TDES0_KEYxL_KEY_Pos)        /*!< CRPT_T::TDES0_KEYxL: KEY Mask          */
1994 
1995 #define CRPT_TDES0_IVH_IV_Pos            (0)                                               /*!< CRPT_T::TDES0_IVH: IV Position         */
1996 #define CRPT_TDES0_IVH_IV_Msk            (0xfffffffful << CRPT_TDES0_IVH_IV_Pos)           /*!< CRPT_T::TDES0_IVH: IV Mask             */
1997 
1998 #define CRPT_TDES0_IVL_IV_Pos            (0)                                               /*!< CRPT_T::TDES0_IVL: IV Position         */
1999 #define CRPT_TDES0_IVL_IV_Msk            (0xfffffffful << CRPT_TDES0_IVL_IV_Pos)           /*!< CRPT_T::TDES0_IVL: IV Mask             */
2000 
2001 #define CRPT_TDES0_SADDR_SADDR_Pos       (0)                                               /*!< CRPT_T::TDES0_SADDR: SADDR Position    */
2002 #define CRPT_TDES0_SADDR_SADDR_Msk       (0xfffffffful << CRPT_TDES0_SADDR_SADDR_Pos)      /*!< CRPT_T::TDES0_SADDR: SADDR Mask        */
2003 
2004 #define CRPT_TDES0_DADDR_DADDR_Pos       (0)                                               /*!< CRPT_T::TDES0_DADDR: DADDR Position    */
2005 #define CRPT_TDES0_DADDR_DADDR_Msk       (0xfffffffful << CRPT_TDES0_DADDR_DADDR_Pos)      /*!< CRPT_T::TDES0_DADDR: DADDR Mask        */
2006 
2007 #define CRPT_TDES0_CNT_CNT_Pos           (0)                                               /*!< CRPT_T::TDES0_CNT: CNT Position        */
2008 #define CRPT_TDES0_CNT_CNT_Msk           (0xfffffffful << CRPT_TDES0_CNT_CNT_Pos)          /*!< CRPT_T::TDES0_CNT: CNT Mask            */
2009 
2010 #define CRPT_TDES_DATIN_DATIN_Pos        (0)                                               /*!< CRPT_T::TDES_DATIN: DATIN Position     */
2011 #define CRPT_TDES_DATIN_DATIN_Msk        (0xfffffffful << CRPT_TDES_DATIN_DATIN_Pos)       /*!< CRPT_T::TDES_DATIN: DATIN Mask         */
2012 
2013 #define CRPT_TDES_DATOUT_DATOUT_Pos      (0)                                               /*!< CRPT_T::TDES_DATOUT: DATOUT Position   */
2014 #define CRPT_TDES_DATOUT_DATOUT_Msk      (0xfffffffful << CRPT_TDES_DATOUT_DATOUT_Pos)     /*!< CRPT_T::TDES_DATOUT: DATOUT Mask       */
2015 
2016 #define CRPT_TDES1_KEYxH_KEY_Pos         (0)                                               /*!< CRPT_T::TDES1_KEYxH: KEY Position      */
2017 #define CRPT_TDES1_KEYxH_KEY_Msk         (0xfffffffful << CRPT_TDES1_KEYxH_KEY_Pos)        /*!< CRPT_T::TDES1_KEYxH: KEY Mask          */
2018 
2019 #define CRPT_TDES1_KEYxL_KEY_Pos         (0)                                               /*!< CRPT_T::TDES1_KEYxL: KEY Position      */
2020 #define CRPT_TDES1_KEYxL_KEY_Msk         (0xfffffffful << CRPT_TDES1_KEY1L_KEY_Pos)        /*!< CRPT_T::TDES1_KEYxL: KEY Mask          */
2021 
2022 #define CRPT_TDES1_IVH_IV_Pos            (0)                                               /*!< CRPT_T::TDES1_IVH: IV Position         */
2023 #define CRPT_TDES1_IVH_IV_Msk            (0xfffffffful << CRPT_TDES1_IVH_IV_Pos)           /*!< CRPT_T::TDES1_IVH: IV Mask             */
2024 
2025 #define CRPT_TDES1_IVL_IV_Pos            (0)                                               /*!< CRPT_T::TDES1_IVL: IV Position         */
2026 #define CRPT_TDES1_IVL_IV_Msk            (0xfffffffful << CRPT_TDES1_IVL_IV_Pos)           /*!< CRPT_T::TDES1_IVL: IV Mask             */
2027 
2028 #define CRPT_TDES1_SADDR_SADDR_Pos       (0)                                               /*!< CRPT_T::TDES1_SADDR: SADDR Position    */
2029 #define CRPT_TDES1_SADDR_SADDR_Msk       (0xfffffffful << CRPT_TDES1_SADDR_SADDR_Pos)      /*!< CRPT_T::TDES1_SADDR: SADDR Mask        */
2030 
2031 #define CRPT_TDES1_DADDR_DADDR_Pos       (0)                                               /*!< CRPT_T::TDES1_DADDR: DADDR Position    */
2032 #define CRPT_TDES1_DADDR_DADDR_Msk       (0xfffffffful << CRPT_TDES1_DADDR_DADDR_Pos)      /*!< CRPT_T::TDES1_DADDR: DADDR Mask        */
2033 
2034 #define CRPT_TDES1_CNT_CNT_Pos           (0)                                               /*!< CRPT_T::TDES1_CNT: CNT Position        */
2035 #define CRPT_TDES1_CNT_CNT_Msk           (0xfffffffful << CRPT_TDES1_CNT_CNT_Pos)          /*!< CRPT_T::TDES1_CNT: CNT Mask            */
2036 
2037 #define CRPT_TDES2_KEYxH_KEY_Pos         (0)                                               /*!< CRPT_T::TDES2_KEYxH: KEY Position      */
2038 #define CRPT_TDES2_KEYxH_KEY_Msk         (0xfffffffful << CRPT_TDES2_KEYxH_KEY_Pos)        /*!< CRPT_T::TDES2_KEYxH: KEY Mask          */
2039 
2040 #define CRPT_TDES2_KEYxL_KEY_Pos         (0)                                               /*!< CRPT_T::TDES2_KEYxL: KEY Position      */
2041 #define CRPT_TDES2_KEYxL_KEY_Msk         (0xfffffffful << CRPT_TDES2_KEYxL_KEY_Pos)        /*!< CRPT_T::TDES2_KEYxL: KEY Mask          */
2042 
2043 #define CRPT_TDES2_IVH_IV_Pos            (0)                                               /*!< CRPT_T::TDES2_IVH: IV Position         */
2044 #define CRPT_TDES2_IVH_IV_Msk            (0xfffffffful << CRPT_TDES2_IVH_IV_Pos)           /*!< CRPT_T::TDES2_IVH: IV Mask             */
2045 
2046 #define CRPT_TDES2_IVL_IV_Pos            (0)                                               /*!< CRPT_T::TDES2_IVL: IV Position         */
2047 #define CRPT_TDES2_IVL_IV_Msk            (0xfffffffful << CRPT_TDES2_IVL_IV_Pos)           /*!< CRPT_T::TDES2_IVL: IV Mask             */
2048 
2049 #define CRPT_TDES2_SADDR_SADDR_Pos       (0)                                               /*!< CRPT_T::TDES2_SADDR: SADDR Position    */
2050 #define CRPT_TDES2_SADDR_SADDR_Msk       (0xfffffffful << CRPT_TDES2_SADDR_SADDR_Pos)      /*!< CRPT_T::TDES2_SADDR: SADDR Mask        */
2051 
2052 #define CRPT_TDES2_DADDR_DADDR_Pos       (0)                                               /*!< CRPT_T::TDES2_DADDR: DADDR Position    */
2053 #define CRPT_TDES2_DADDR_DADDR_Msk       (0xfffffffful << CRPT_TDES2_DADDR_DADDR_Pos)      /*!< CRPT_T::TDES2_DADDR: DADDR Mask        */
2054 
2055 #define CRPT_TDES2_CNT_CNT_Pos           (0)                                               /*!< CRPT_T::TDES2_CNT: CNT Position        */
2056 #define CRPT_TDES2_CNT_CNT_Msk           (0xfffffffful << CRPT_TDES2_CNT_CNT_Pos)          /*!< CRPT_T::TDES2_CNT: CNT Mask            */
2057 
2058 #define CRPT_TDES3_KEYxH_KEY_Pos         (0)                                               /*!< CRPT_T::TDES3_KEYxH: KEY Position      */
2059 #define CRPT_TDES3_KEYxH_KEY_Msk         (0xfffffffful << CRPT_TDES3_KEYxH_KEY_Pos)        /*!< CRPT_T::TDES3_KEYxH: KEY Mask          */
2060 
2061 #define CRPT_TDES3_KEYxL_KEY_Pos         (0)                                               /*!< CRPT_T::TDES3_KEYxL: KEY Position      */
2062 #define CRPT_TDES3_KEYxL_KEY_Msk         (0xfffffffful << CRPT_TDES3_KEYxL_KEY_Pos)        /*!< CRPT_T::TDES3_KEYxL: KEY Mask          */
2063 
2064 #define CRPT_TDES3_IVH_IV_Pos            (0)                                               /*!< CRPT_T::TDES3_IVH: IV Position         */
2065 #define CRPT_TDES3_IVH_IV_Msk            (0xfffffffful << CRPT_TDES3_IVH_IV_Pos)           /*!< CRPT_T::TDES3_IVH: IV Mask             */
2066 
2067 #define CRPT_TDES3_IVL_IV_Pos            (0)                                               /*!< CRPT_T::TDES3_IVL: IV Position         */
2068 #define CRPT_TDES3_IVL_IV_Msk            (0xfffffffful << CRPT_TDES3_IVL_IV_Pos)           /*!< CRPT_T::TDES3_IVL: IV Mask             */
2069 
2070 #define CRPT_TDES3_SADDR_SADDR_Pos       (0)                                               /*!< CRPT_T::TDES3_SADDR: SADDR Position    */
2071 #define CRPT_TDES3_SADDR_SADDR_Msk       (0xfffffffful << CRPT_TDES3_SADDR_SADDR_Pos)      /*!< CRPT_T::TDES3_SADDR: SADDR Mask        */
2072 
2073 #define CRPT_TDES3_DADDR_DADDR_Pos       (0)                                               /*!< CRPT_T::TDES3_DADDR: DADDR Position    */
2074 #define CRPT_TDES3_DADDR_DADDR_Msk       (0xfffffffful << CRPT_TDES3_DADDR_DADDR_Pos)      /*!< CRPT_T::TDES3_DADDR: DADDR Mask        */
2075 
2076 #define CRPT_TDES3_CNT_CNT_Pos           (0)                                               /*!< CRPT_T::TDES3_CNT: CNT Position        */
2077 #define CRPT_TDES3_CNT_CNT_Msk           (0xfffffffful << CRPT_TDES3_CNT_CNT_Pos)          /*!< CRPT_T::TDES3_CNT: CNT Mask            */
2078 
2079 #define CRPT_HMAC_CTL_START_Pos          (0)                                               /*!< CRPT_T::HMAC_CTL: START Position       */
2080 #define CRPT_HMAC_CTL_START_Msk          (0x1ul << CRPT_HMAC_CTL_START_Pos)                /*!< CRPT_T::HMAC_CTL: START Mask           */
2081 
2082 #define CRPT_HMAC_CTL_STOP_Pos           (1)                                               /*!< CRPT_T::HMAC_CTL: STOP Position        */
2083 #define CRPT_HMAC_CTL_STOP_Msk           (0x1ul << CRPT_HMAC_CTL_STOP_Pos)                 /*!< CRPT_T::HMAC_CTL: STOP Mask            */
2084 
2085 #define CRPT_HMAC_CTL_HMACEN_Pos         (4)                                               /*!< CRPT_T::HMAC_CTL: HMACEN Position      */
2086 #define CRPT_HMAC_CTL_HMACEN_Msk         (0x1ul << CRPT_HMAC_CTL_HMACEN_Pos)               /*!< CRPT_T::HMAC_CTL: HMACEN Mask          */
2087 
2088 #define CRPT_HMAC_CTL_DMALAST_Pos        (5)                                               /*!< CRPT_T::HMAC_CTL: DMALAST Position     */
2089 #define CRPT_HMAC_CTL_DMALAST_Msk        (0x1ul << CRPT_HMAC_CTL_DMALAST_Pos)              /*!< CRPT_T::HMAC_CTL: DMALAST Mask         */
2090 
2091 #define CRPT_HMAC_CTL_DMAEN_Pos          (7)                                               /*!< CRPT_T::HMAC_CTL: DMAEN Position       */
2092 #define CRPT_HMAC_CTL_DMAEN_Msk          (0x1ul << CRPT_HMAC_CTL_DMAEN_Pos)                /*!< CRPT_T::HMAC_CTL: DMAEN Mask           */
2093 
2094 #define CRPT_HMAC_CTL_OPMODE_Pos         (8)                                               /*!< CRPT_T::HMAC_CTL: OPMODE Position      */
2095 #define CRPT_HMAC_CTL_OPMODE_Msk         (0x7ul << CRPT_HMAC_CTL_OPMODE_Pos)               /*!< CRPT_T::HMAC_CTL: OPMODE Mask          */
2096 
2097 #define CRPT_HMAC_CTL_OUTSWAP_Pos        (22)                                              /*!< CRPT_T::HMAC_CTL: OUTSWAP Position     */
2098 #define CRPT_HMAC_CTL_OUTSWAP_Msk        (0x1ul << CRPT_HMAC_CTL_OUTSWAP_Pos)              /*!< CRPT_T::HMAC_CTL: OUTSWAP Mask         */
2099 
2100 #define CRPT_HMAC_CTL_INSWAP_Pos         (23)                                              /*!< CRPT_T::HMAC_CTL: INSWAP Position      */
2101 #define CRPT_HMAC_CTL_INSWAP_Msk         (0x1ul << CRPT_HMAC_CTL_INSWAP_Pos)               /*!< CRPT_T::HMAC_CTL: INSWAP Mask          */
2102 
2103 #define CRPT_HMAC_STS_BUSY_Pos           (0)                                               /*!< CRPT_T::HMAC_STS: BUSY Position        */
2104 #define CRPT_HMAC_STS_BUSY_Msk           (0x1ul << CRPT_HMAC_STS_BUSY_Pos)                 /*!< CRPT_T::HMAC_STS: BUSY Mask            */
2105 
2106 #define CRPT_HMAC_STS_DMABUSY_Pos        (1)                                               /*!< CRPT_T::HMAC_STS: DMABUSY Position     */
2107 #define CRPT_HMAC_STS_DMABUSY_Msk        (0x1ul << CRPT_HMAC_STS_DMABUSY_Pos)              /*!< CRPT_T::HMAC_STS: DMABUSY Mask         */
2108 
2109 #define CRPT_HMAC_STS_DMAERR_Pos         (8)                                               /*!< CRPT_T::HMAC_STS: DMAERR Position      */
2110 #define CRPT_HMAC_STS_DMAERR_Msk         (0x1ul << CRPT_HMAC_STS_DMAERR_Pos)               /*!< CRPT_T::HMAC_STS: DMAERR Mask          */
2111 
2112 #define CRPT_HMAC_STS_DATINREQ_Pos       (16)                                              /*!< CRPT_T::HMAC_STS: DATINREQ Position    */
2113 #define CRPT_HMAC_STS_DATINREQ_Msk       (0x1ul << CRPT_HMAC_STS_DATINREQ_Pos)             /*!< CRPT_T::HMAC_STS: DATINREQ Mask        */
2114 
2115 #define CRPT_HMAC_DGSTx_DGST_Pos         (0)                                               /*!< CRPT_T::HMAC_DGST[16]: DGST Position   */
2116 #define CRPT_HMAC_DGSTx_DGST_Msk         (0xfffffffful << CRPT_HMAC_DGSTx_DGST_Pos)        /*!< CRPT_T::HMAC_DGST[16]: DGST Mask       */
2117 
2118 #define CRPT_HMAC_KEYCNT_KEYCNT_Pos      (0)                                               /*!< CRPT_T::HMAC_KEYCNT: KEYCNT Position   */
2119 #define CRPT_HMAC_KEYCNT_KEYCNT_Msk      (0xfffffffful << CRPT_HMAC_KEYCNT_KEYCNT_Pos)     /*!< CRPT_T::HMAC_KEYCNT: KEYCNT Mask       */
2120 
2121 #define CRPT_HMAC_SADDR_SADDR_Pos        (0)                                               /*!< CRPT_T::HMAC_SADDR: SADDR Position     */
2122 #define CRPT_HMAC_SADDR_SADDR_Msk        (0xfffffffful << CRPT_HMAC_SADDR_SADDR_Pos)       /*!< CRPT_T::HMAC_SADDR: SADDR Mask         */
2123 
2124 #define CRPT_HMAC_DMACNT_DMACNT_Pos      (0)                                               /*!< CRPT_T::HMAC_DMACNT: DMACNT Position   */
2125 #define CRPT_HMAC_DMACNT_DMACNT_Msk      (0xfffffffful << CRPT_HMAC_DMACNT_DMACNT_Pos)     /*!< CRPT_T::HMAC_DMACNT: DMACNT Mask       */
2126 
2127 #define CRPT_HMAC_DATIN_DATIN_Pos        (0)                                               /*!< CRPT_T::HMAC_DATIN: DATIN Position     */
2128 #define CRPT_HMAC_DATIN_DATIN_Msk        (0xfffffffful << CRPT_HMAC_DATIN_DATIN_Pos)       /*!< CRPT_T::HMAC_DATIN: DATIN Mask         */
2129 
2130 #define CRPT_ECC_CTL_START_Pos           (0)                                               /*!< CRPT_T::ECC_CTL: START Position        */
2131 #define CRPT_ECC_CTL_START_Msk           (0x1ul << CRPT_ECC_CTL_START_Pos)                 /*!< CRPT_T::ECC_CTL: START Mask            */
2132 
2133 #define CRPT_ECC_CTL_STOP_Pos            (1)                                               /*!< CRPT_T::ECC_CTL: STOP Position         */
2134 #define CRPT_ECC_CTL_STOP_Msk            (0x1ul << CRPT_ECC_CTL_STOP_Pos)                  /*!< CRPT_T::ECC_CTL: STOP Mask             */
2135 
2136 #define CRPT_ECC_CTL_DMAEN_Pos           (7)                                               /*!< CRPT_T::ECC_CTL: DMAEN Position        */
2137 #define CRPT_ECC_CTL_DMAEN_Msk           (0x1ul << CRPT_ECC_CTL_DMAEN_Pos)                 /*!< CRPT_T::ECC_CTL: DMAEN Mask            */
2138 
2139 #define CRPT_ECC_CTL_FSEL_Pos            (8)                                               /*!< CRPT_T::ECC_CTL: FSEL Position         */
2140 #define CRPT_ECC_CTL_FSEL_Msk            (0x1ul << CRPT_ECC_CTL_FSEL_Pos)                  /*!< CRPT_T::ECC_CTL: FSEL Mask             */
2141 
2142 #define CRPT_ECC_CTL_ECCOP_Pos           (9)                                               /*!< CRPT_T::ECC_CTL: ECCOP Position        */
2143 #define CRPT_ECC_CTL_ECCOP_Msk           (0x3ul << CRPT_ECC_CTL_ECCOP_Pos)                 /*!< CRPT_T::ECC_CTL: ECCOP Mask            */
2144 
2145 #define CRPT_ECC_CTL_MODOP_Pos           (11)                                              /*!< CRPT_T::ECC_CTL: MODOP Position        */
2146 #define CRPT_ECC_CTL_MODOP_Msk           (0x3ul << CRPT_ECC_CTL_MODOP_Pos)                 /*!< CRPT_T::ECC_CTL: MODOP Mask            */
2147 
2148 #define CRPT_ECC_CTL_LDP1_Pos            (16)                                              /*!< CRPT_T::ECC_CTL: LDP1 Position         */
2149 #define CRPT_ECC_CTL_LDP1_Msk            (0x1ul << CRPT_ECC_CTL_LDP1_Pos)                  /*!< CRPT_T::ECC_CTL: LDP1 Mask             */
2150 
2151 #define CRPT_ECC_CTL_LDP2_Pos            (17)                                              /*!< CRPT_T::ECC_CTL: LDP2 Position         */
2152 #define CRPT_ECC_CTL_LDP2_Msk            (0x1ul << CRPT_ECC_CTL_LDP2_Pos)                  /*!< CRPT_T::ECC_CTL: LDP2 Mask             */
2153 
2154 #define CRPT_ECC_CTL_LDA_Pos             (18)                                              /*!< CRPT_T::ECC_CTL: LDA Position          */
2155 #define CRPT_ECC_CTL_LDA_Msk             (0x1ul << CRPT_ECC_CTL_LDA_Pos)                   /*!< CRPT_T::ECC_CTL: LDA Mask              */
2156 
2157 #define CRPT_ECC_CTL_LDB_Pos             (19)                                              /*!< CRPT_T::ECC_CTL: LDB Position          */
2158 #define CRPT_ECC_CTL_LDB_Msk             (0x1ul << CRPT_ECC_CTL_LDB_Pos)                   /*!< CRPT_T::ECC_CTL: LDB Mask              */
2159 
2160 #define CRPT_ECC_CTL_LDN_Pos             (20)                                              /*!< CRPT_T::ECC_CTL: LDN Position          */
2161 #define CRPT_ECC_CTL_LDN_Msk             (0x1ul << CRPT_ECC_CTL_LDN_Pos)                   /*!< CRPT_T::ECC_CTL: LDN Mask              */
2162 
2163 #define CRPT_ECC_CTL_LDK_Pos             (21)                                              /*!< CRPT_T::ECC_CTL: LDK Position          */
2164 #define CRPT_ECC_CTL_LDK_Msk             (0x1ul << CRPT_ECC_CTL_LDK_Pos)                   /*!< CRPT_T::ECC_CTL: LDK Mask              */
2165 
2166 #define CRPT_ECC_CTL_CURVEM_Pos          (22)                                              /*!< CRPT_T::ECC_CTL: CURVEM Position       */
2167 #define CRPT_ECC_CTL_CURVEM_Msk          (0x3fful << CRPT_ECC_CTL_CURVEM_Pos)              /*!< CRPT_T::ECC_CTL: CURVEM Mask           */
2168 
2169 #define CRPT_ECC_STS_BUSY_Pos            (0)                                               /*!< CRPT_T::ECC_STS: BUSY Position         */
2170 #define CRPT_ECC_STS_BUSY_Msk            (0x1ul << CRPT_ECC_STS_BUSY_Pos)                  /*!< CRPT_T::ECC_STS: BUSY Mask             */
2171 
2172 #define CRPT_ECC_STS_DMABUSY_Pos         (1)                                               /*!< CRPT_T::ECC_STS: DMABUSY Position      */
2173 #define CRPT_ECC_STS_DMABUSY_Msk         (0x1ul << CRPT_ECC_STS_DMABUSY_Pos)               /*!< CRPT_T::ECC_STS: DMABUSY Mask          */
2174 
2175 #define CRPT_ECC_STS_BUSERR_Pos          (16)                                              /*!< CRPT_T::ECC_STS: BUSERR Position       */
2176 #define CRPT_ECC_STS_BUSERR_Msk          (0x1ul << CRPT_ECC_STS_BUSERR_Pos)                /*!< CRPT_T::ECC_STS: BUSERR Mask           */
2177 
2178 #define CRPT_ECC_X1_POINTX1_Pos          (0)                                               /*!< CRPT_T::ECC_X1[18]:  POINTX1 Position  */
2179 #define CRPT_ECC_X1_POINTX1_Msk          (0xfffffffful << CRPT_ECC_X1_POINTX1_Pos)         /*!< CRPT_T::ECC_X1[18]:  POINTX1 Mask      */
2180 
2181 #define CRPT_ECC_Y1_POINTY1_Pos          (0)                                               /*!< CRPT_T::ECC_Y1[18]: POINTY1 Position   */
2182 #define CRPT_ECC_Y1_POINTY1_Msk          (0xfffffffful << CRPT_ECC_Y1_POINTY1_Pos)         /*!< CRPT_T::ECC_Y1[18]: POINTY1 Mask       */
2183 
2184 #define CRPT_ECC_X2_POINTX2_Pos          (0)                                               /*!< CRPT_T::ECC_X2[18]: POINTX2 Position   */
2185 #define CRPT_ECC_X2_POINTX2_Msk          (0xfffffffful << CRPT_ECC_X2_POINTX2_Pos)         /*!< CRPT_T::ECC_X2[18]: POINTX2 Mask       */
2186 
2187 #define CRPT_ECC_Y2_POINTY2_Pos          (0)                                               /*!< CRPT_T::ECC_Y2[18]: POINTY2 Position   */
2188 #define CRPT_ECC_Y2_POINTY2_Msk          (0xfffffffful << CRPT_ECC_Y2_POINTY2_Pos)         /*!< CRPT_T::ECC_Y2[18]: POINTY2 Mask       */
2189 
2190 #define CRPT_ECC_A_CURVEA_Pos            (0)                                               /*!< CRPT_T::ECC_A[18]: CURVEA Position     */
2191 #define CRPT_ECC_A_CURVEA_Msk            (0xfffffffful << CRPT_ECC_A_CURVEA_Pos)           /*!< CRPT_T::ECC_A[18]: CURVEA Mask         */
2192 
2193 #define CRPT_ECC_B_CURVEB_Pos            (0)                                               /*!< CRPT_T::ECC_B[18]: CURVEB Position     */
2194 #define CRPT_ECC_B_CURVEB_Msk            (0xfffffffful << CRPT_ECC_B_CURVEB_Pos)           /*!< CRPT_T::ECC_B[18]: CURVEB Mask         */
2195 
2196 #define CRPT_ECC_N_CURVEN_Pos            (0)                                               /*!< CRPT_T::ECC_N[18]: CURVEN Position     */
2197 #define CRPT_ECC_N_CURVEN_Msk            (0xfffffffful << CRPT_ECC_N_CURVEN_Pos)           /*!< CRPT_T::ECC_N[18]: CURVEN Mask         */
2198 
2199 #define CRPT_ECC_K_SCALARK_Pos           (0)                                               /*!< CRPT_T::ECC_K[18]: SCALARK Position    */
2200 #define CRPT_ECC_K_SCALARK_Msk           (0xfffffffful << CRPT_ECC_K_SCALARK_Pos)          /*!< CRPT_T::ECC_K[18]: SCALARK Mask        */
2201 
2202 #define CRPT_ECC_DADDR_DADDR_Pos         (0)                                               /*!< CRPT_T::ECC_DADDR: DADDR Position      */
2203 #define CRPT_ECC_DADDR_DADDR_Msk         (0xfffffffful << CRPT_ECC_DADDR_DADDR_Pos)        /*!< CRPT_T::ECC_DADDR: DADDR Mask          */
2204 
2205 #define CRPT_ECC_STARTREG_STARTREG_Pos   (0)                                               /*!< CRPT_T::ECC_STARTREG: STARTREG Position*/
2206 #define CRPT_ECC_STARTREG_STARTREG_Msk   (0xfffffffful << CRPT_ECC_STARTREG_STARTREG_Pos)  /*!< CRPT_T::ECC_STARTREG: STARTREG Mask    */
2207 
2208 #define CRPT_ECC_WORDCNT_WORDCNT_Pos     (0)                                               /*!< CRPT_T::ECC_WORDCNT: WORDCNT Position  */
2209 #define CRPT_ECC_WORDCNT_WORDCNT_Msk     (0xfffffffful << CRPT_ECC_WORDCNT_WORDCNT_Pos)    /*!< CRPT_T::ECC_WORDCNT: WORDCNT Mask      */
2210 
2211 /**@}*/ /* CRPT_CONST CRYPTO */
2212 /**@}*/ /* end of CRYPTO register group */
2213 /**@}*/ /* end of REGISTER group */
2214 
2215 #if defined ( __CC_ARM   )
2216 #pragma no_anon_unions
2217 #endif
2218 
2219 #endif /* __CRYPTO_REG_H__ */
2220