crypto_reg.h 180 KB

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