1 /** 2 * \file 3 * 4 * \brief Component description for AES 5 * 6 * Copyright (c) 2019 Microchip Technology Inc. 7 * 8 * \license_start 9 * 10 * \page License 11 * 12 * SPDX-License-Identifier: Apache-2.0 13 * 14 * Licensed under the Apache License, Version 2.0 (the "License"); 15 * you may not use this file except in compliance with the License. 16 * You may obtain a copy of the License at 17 * 18 * http://www.apache.org/licenses/LICENSE-2.0 19 * 20 * Unless required by applicable law or agreed to in writing, software 21 * distributed under the License is distributed on an "AS IS" BASIS, 22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23 * See the License for the specific language governing permissions and 24 * limitations under the License. 25 * 26 * \license_stop 27 * 28 */ 29 30 /* file generated from device description version 2019-01-18T21:21:15Z */ 31 #ifndef _SAMV71_AES_COMPONENT_H_ 32 #define _SAMV71_AES_COMPONENT_H_ 33 #define _SAMV71_AES_COMPONENT_ /**< \deprecated Backward compatibility for ASF */ 34 35 /** \addtogroup SAMV_SAMV71 Advanced Encryption Standard 36 * @{ 37 */ 38 /* ========================================================================== */ 39 /** SOFTWARE API DEFINITION FOR AES */ 40 /* ========================================================================== */ 41 #ifndef COMPONENT_TYPEDEF_STYLE 42 #define COMPONENT_TYPEDEF_STYLE 'R' /**< Defines default style of typedefs for the component header files ('R' = RFO, 'N' = NTO)*/ 43 #endif 44 45 #define AES_6149 /**< (AES) Module ID */ 46 #define REV_AES W /**< (AES) Module revision */ 47 48 /* -------- AES_CR : (AES Offset: 0x00) (/W 32) Control Register -------- */ 49 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 50 #if COMPONENT_TYPEDEF_STYLE == 'N' 51 typedef union { 52 struct { 53 uint32_t START:1; /**< bit: 0 Start Processing */ 54 uint32_t :7; /**< bit: 1..7 Reserved */ 55 uint32_t SWRST:1; /**< bit: 8 Software Reset */ 56 uint32_t :7; /**< bit: 9..15 Reserved */ 57 uint32_t LOADSEED:1; /**< bit: 16 Random Number Generator Seed Loading */ 58 uint32_t :15; /**< bit: 17..31 Reserved */ 59 } bit; /**< Structure used for bit access */ 60 uint32_t reg; /**< Type used for register access */ 61 } AES_CR_Type; 62 #endif 63 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 64 65 #define AES_CR_OFFSET (0x00) /**< (AES_CR) Control Register Offset */ 66 67 #define AES_CR_START_Pos 0 /**< (AES_CR) Start Processing Position */ 68 #define AES_CR_START_Msk (_U_(0x1) << AES_CR_START_Pos) /**< (AES_CR) Start Processing Mask */ 69 #define AES_CR_START AES_CR_START_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_CR_START_Msk instead */ 70 #define AES_CR_SWRST_Pos 8 /**< (AES_CR) Software Reset Position */ 71 #define AES_CR_SWRST_Msk (_U_(0x1) << AES_CR_SWRST_Pos) /**< (AES_CR) Software Reset Mask */ 72 #define AES_CR_SWRST AES_CR_SWRST_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_CR_SWRST_Msk instead */ 73 #define AES_CR_LOADSEED_Pos 16 /**< (AES_CR) Random Number Generator Seed Loading Position */ 74 #define AES_CR_LOADSEED_Msk (_U_(0x1) << AES_CR_LOADSEED_Pos) /**< (AES_CR) Random Number Generator Seed Loading Mask */ 75 #define AES_CR_LOADSEED AES_CR_LOADSEED_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_CR_LOADSEED_Msk instead */ 76 #define AES_CR_MASK _U_(0x10101) /**< \deprecated (AES_CR) Register MASK (Use AES_CR_Msk instead) */ 77 #define AES_CR_Msk _U_(0x10101) /**< (AES_CR) Register Mask */ 78 79 80 /* -------- AES_MR : (AES Offset: 0x04) (R/W 32) Mode Register -------- */ 81 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 82 #if COMPONENT_TYPEDEF_STYLE == 'N' 83 typedef union { 84 struct { 85 uint32_t CIPHER:1; /**< bit: 0 Processing Mode */ 86 uint32_t GTAGEN:1; /**< bit: 1 GCM Automatic Tag Generation Enable */ 87 uint32_t :1; /**< bit: 2 Reserved */ 88 uint32_t DUALBUFF:1; /**< bit: 3 Dual Input Buffer */ 89 uint32_t PROCDLY:4; /**< bit: 4..7 Processing Delay */ 90 uint32_t SMOD:2; /**< bit: 8..9 Start Mode */ 91 uint32_t KEYSIZE:2; /**< bit: 10..11 Key Size */ 92 uint32_t OPMOD:3; /**< bit: 12..14 Operating Mode */ 93 uint32_t LOD:1; /**< bit: 15 Last Output Data Mode */ 94 uint32_t CFBS:3; /**< bit: 16..18 Cipher Feedback Data Size */ 95 uint32_t :1; /**< bit: 19 Reserved */ 96 uint32_t CKEY:4; /**< bit: 20..23 Countermeasure Key */ 97 uint32_t :8; /**< bit: 24..31 Reserved */ 98 } bit; /**< Structure used for bit access */ 99 uint32_t reg; /**< Type used for register access */ 100 } AES_MR_Type; 101 #endif 102 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 103 104 #define AES_MR_OFFSET (0x04) /**< (AES_MR) Mode Register Offset */ 105 106 #define AES_MR_CIPHER_Pos 0 /**< (AES_MR) Processing Mode Position */ 107 #define AES_MR_CIPHER_Msk (_U_(0x1) << AES_MR_CIPHER_Pos) /**< (AES_MR) Processing Mode Mask */ 108 #define AES_MR_CIPHER AES_MR_CIPHER_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_MR_CIPHER_Msk instead */ 109 #define AES_MR_GTAGEN_Pos 1 /**< (AES_MR) GCM Automatic Tag Generation Enable Position */ 110 #define AES_MR_GTAGEN_Msk (_U_(0x1) << AES_MR_GTAGEN_Pos) /**< (AES_MR) GCM Automatic Tag Generation Enable Mask */ 111 #define AES_MR_GTAGEN AES_MR_GTAGEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_MR_GTAGEN_Msk instead */ 112 #define AES_MR_DUALBUFF_Pos 3 /**< (AES_MR) Dual Input Buffer Position */ 113 #define AES_MR_DUALBUFF_Msk (_U_(0x1) << AES_MR_DUALBUFF_Pos) /**< (AES_MR) Dual Input Buffer Mask */ 114 #define AES_MR_DUALBUFF AES_MR_DUALBUFF_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_MR_DUALBUFF_Msk instead */ 115 #define AES_MR_DUALBUFF_INACTIVE_Val _U_(0x0) /**< (AES_MR) AES_IDATARx cannot be written during processing of previous block. */ 116 #define AES_MR_DUALBUFF_ACTIVE_Val _U_(0x1) /**< (AES_MR) AES_IDATARx can be written during processing of previous block when SMOD = 2. It speeds up the overall runtime of large files. */ 117 #define AES_MR_DUALBUFF_INACTIVE (AES_MR_DUALBUFF_INACTIVE_Val << AES_MR_DUALBUFF_Pos) /**< (AES_MR) AES_IDATARx cannot be written during processing of previous block. Position */ 118 #define AES_MR_DUALBUFF_ACTIVE (AES_MR_DUALBUFF_ACTIVE_Val << AES_MR_DUALBUFF_Pos) /**< (AES_MR) AES_IDATARx can be written during processing of previous block when SMOD = 2. It speeds up the overall runtime of large files. Position */ 119 #define AES_MR_PROCDLY_Pos 4 /**< (AES_MR) Processing Delay Position */ 120 #define AES_MR_PROCDLY_Msk (_U_(0xF) << AES_MR_PROCDLY_Pos) /**< (AES_MR) Processing Delay Mask */ 121 #define AES_MR_PROCDLY(value) (AES_MR_PROCDLY_Msk & ((value) << AES_MR_PROCDLY_Pos)) 122 #define AES_MR_SMOD_Pos 8 /**< (AES_MR) Start Mode Position */ 123 #define AES_MR_SMOD_Msk (_U_(0x3) << AES_MR_SMOD_Pos) /**< (AES_MR) Start Mode Mask */ 124 #define AES_MR_SMOD(value) (AES_MR_SMOD_Msk & ((value) << AES_MR_SMOD_Pos)) 125 #define AES_MR_SMOD_MANUAL_START_Val _U_(0x0) /**< (AES_MR) Manual Mode */ 126 #define AES_MR_SMOD_AUTO_START_Val _U_(0x1) /**< (AES_MR) Auto Mode */ 127 #define AES_MR_SMOD_IDATAR0_START_Val _U_(0x2) /**< (AES_MR) AES_IDATAR0 access only Auto Mode (DMA) */ 128 #define AES_MR_SMOD_MANUAL_START (AES_MR_SMOD_MANUAL_START_Val << AES_MR_SMOD_Pos) /**< (AES_MR) Manual Mode Position */ 129 #define AES_MR_SMOD_AUTO_START (AES_MR_SMOD_AUTO_START_Val << AES_MR_SMOD_Pos) /**< (AES_MR) Auto Mode Position */ 130 #define AES_MR_SMOD_IDATAR0_START (AES_MR_SMOD_IDATAR0_START_Val << AES_MR_SMOD_Pos) /**< (AES_MR) AES_IDATAR0 access only Auto Mode (DMA) Position */ 131 #define AES_MR_KEYSIZE_Pos 10 /**< (AES_MR) Key Size Position */ 132 #define AES_MR_KEYSIZE_Msk (_U_(0x3) << AES_MR_KEYSIZE_Pos) /**< (AES_MR) Key Size Mask */ 133 #define AES_MR_KEYSIZE(value) (AES_MR_KEYSIZE_Msk & ((value) << AES_MR_KEYSIZE_Pos)) 134 #define AES_MR_KEYSIZE_AES128_Val _U_(0x0) /**< (AES_MR) AES Key Size is 128 bits */ 135 #define AES_MR_KEYSIZE_AES192_Val _U_(0x1) /**< (AES_MR) AES Key Size is 192 bits */ 136 #define AES_MR_KEYSIZE_AES256_Val _U_(0x2) /**< (AES_MR) AES Key Size is 256 bits */ 137 #define AES_MR_KEYSIZE_AES128 (AES_MR_KEYSIZE_AES128_Val << AES_MR_KEYSIZE_Pos) /**< (AES_MR) AES Key Size is 128 bits Position */ 138 #define AES_MR_KEYSIZE_AES192 (AES_MR_KEYSIZE_AES192_Val << AES_MR_KEYSIZE_Pos) /**< (AES_MR) AES Key Size is 192 bits Position */ 139 #define AES_MR_KEYSIZE_AES256 (AES_MR_KEYSIZE_AES256_Val << AES_MR_KEYSIZE_Pos) /**< (AES_MR) AES Key Size is 256 bits Position */ 140 #define AES_MR_OPMOD_Pos 12 /**< (AES_MR) Operating Mode Position */ 141 #define AES_MR_OPMOD_Msk (_U_(0x7) << AES_MR_OPMOD_Pos) /**< (AES_MR) Operating Mode Mask */ 142 #define AES_MR_OPMOD(value) (AES_MR_OPMOD_Msk & ((value) << AES_MR_OPMOD_Pos)) 143 #define AES_MR_OPMOD_ECB_Val _U_(0x0) /**< (AES_MR) ECB: Electronic Code Book mode */ 144 #define AES_MR_OPMOD_CBC_Val _U_(0x1) /**< (AES_MR) CBC: Cipher Block Chaining mode */ 145 #define AES_MR_OPMOD_OFB_Val _U_(0x2) /**< (AES_MR) OFB: Output Feedback mode */ 146 #define AES_MR_OPMOD_CFB_Val _U_(0x3) /**< (AES_MR) CFB: Cipher Feedback mode */ 147 #define AES_MR_OPMOD_CTR_Val _U_(0x4) /**< (AES_MR) CTR: Counter mode (16-bit internal counter) */ 148 #define AES_MR_OPMOD_GCM_Val _U_(0x5) /**< (AES_MR) GCM: Galois/Counter mode */ 149 #define AES_MR_OPMOD_ECB (AES_MR_OPMOD_ECB_Val << AES_MR_OPMOD_Pos) /**< (AES_MR) ECB: Electronic Code Book mode Position */ 150 #define AES_MR_OPMOD_CBC (AES_MR_OPMOD_CBC_Val << AES_MR_OPMOD_Pos) /**< (AES_MR) CBC: Cipher Block Chaining mode Position */ 151 #define AES_MR_OPMOD_OFB (AES_MR_OPMOD_OFB_Val << AES_MR_OPMOD_Pos) /**< (AES_MR) OFB: Output Feedback mode Position */ 152 #define AES_MR_OPMOD_CFB (AES_MR_OPMOD_CFB_Val << AES_MR_OPMOD_Pos) /**< (AES_MR) CFB: Cipher Feedback mode Position */ 153 #define AES_MR_OPMOD_CTR (AES_MR_OPMOD_CTR_Val << AES_MR_OPMOD_Pos) /**< (AES_MR) CTR: Counter mode (16-bit internal counter) Position */ 154 #define AES_MR_OPMOD_GCM (AES_MR_OPMOD_GCM_Val << AES_MR_OPMOD_Pos) /**< (AES_MR) GCM: Galois/Counter mode Position */ 155 #define AES_MR_LOD_Pos 15 /**< (AES_MR) Last Output Data Mode Position */ 156 #define AES_MR_LOD_Msk (_U_(0x1) << AES_MR_LOD_Pos) /**< (AES_MR) Last Output Data Mode Mask */ 157 #define AES_MR_LOD AES_MR_LOD_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_MR_LOD_Msk instead */ 158 #define AES_MR_CFBS_Pos 16 /**< (AES_MR) Cipher Feedback Data Size Position */ 159 #define AES_MR_CFBS_Msk (_U_(0x7) << AES_MR_CFBS_Pos) /**< (AES_MR) Cipher Feedback Data Size Mask */ 160 #define AES_MR_CFBS(value) (AES_MR_CFBS_Msk & ((value) << AES_MR_CFBS_Pos)) 161 #define AES_MR_CFBS_SIZE_128BIT_Val _U_(0x0) /**< (AES_MR) 128-bit */ 162 #define AES_MR_CFBS_SIZE_64BIT_Val _U_(0x1) /**< (AES_MR) 64-bit */ 163 #define AES_MR_CFBS_SIZE_32BIT_Val _U_(0x2) /**< (AES_MR) 32-bit */ 164 #define AES_MR_CFBS_SIZE_16BIT_Val _U_(0x3) /**< (AES_MR) 16-bit */ 165 #define AES_MR_CFBS_SIZE_8BIT_Val _U_(0x4) /**< (AES_MR) 8-bit */ 166 #define AES_MR_CFBS_SIZE_128BIT (AES_MR_CFBS_SIZE_128BIT_Val << AES_MR_CFBS_Pos) /**< (AES_MR) 128-bit Position */ 167 #define AES_MR_CFBS_SIZE_64BIT (AES_MR_CFBS_SIZE_64BIT_Val << AES_MR_CFBS_Pos) /**< (AES_MR) 64-bit Position */ 168 #define AES_MR_CFBS_SIZE_32BIT (AES_MR_CFBS_SIZE_32BIT_Val << AES_MR_CFBS_Pos) /**< (AES_MR) 32-bit Position */ 169 #define AES_MR_CFBS_SIZE_16BIT (AES_MR_CFBS_SIZE_16BIT_Val << AES_MR_CFBS_Pos) /**< (AES_MR) 16-bit Position */ 170 #define AES_MR_CFBS_SIZE_8BIT (AES_MR_CFBS_SIZE_8BIT_Val << AES_MR_CFBS_Pos) /**< (AES_MR) 8-bit Position */ 171 #define AES_MR_CKEY_Pos 20 /**< (AES_MR) Countermeasure Key Position */ 172 #define AES_MR_CKEY_Msk (_U_(0xF) << AES_MR_CKEY_Pos) /**< (AES_MR) Countermeasure Key Mask */ 173 #define AES_MR_CKEY(value) (AES_MR_CKEY_Msk & ((value) << AES_MR_CKEY_Pos)) 174 #define AES_MR_CKEY_PASSWD_Val _U_(0xE) /**< (AES_MR) This field must be written with 0xE to allow CMTYPx bit configuration changes. Any other values will abort the write operation in CMTYPx bits.Always reads as 0. */ 175 #define AES_MR_CKEY_PASSWD (AES_MR_CKEY_PASSWD_Val << AES_MR_CKEY_Pos) /**< (AES_MR) This field must be written with 0xE to allow CMTYPx bit configuration changes. Any other values will abort the write operation in CMTYPx bits.Always reads as 0. Position */ 176 #define AES_MR_MASK _U_(0xF7FFFB) /**< \deprecated (AES_MR) Register MASK (Use AES_MR_Msk instead) */ 177 #define AES_MR_Msk _U_(0xF7FFFB) /**< (AES_MR) Register Mask */ 178 179 180 /* -------- AES_IER : (AES Offset: 0x10) (/W 32) Interrupt Enable Register -------- */ 181 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 182 #if COMPONENT_TYPEDEF_STYLE == 'N' 183 typedef union { 184 struct { 185 uint32_t DATRDY:1; /**< bit: 0 Data Ready Interrupt Enable */ 186 uint32_t :7; /**< bit: 1..7 Reserved */ 187 uint32_t URAD:1; /**< bit: 8 Unspecified Register Access Detection Interrupt Enable */ 188 uint32_t :7; /**< bit: 9..15 Reserved */ 189 uint32_t TAGRDY:1; /**< bit: 16 GCM Tag Ready Interrupt Enable */ 190 uint32_t :15; /**< bit: 17..31 Reserved */ 191 } bit; /**< Structure used for bit access */ 192 uint32_t reg; /**< Type used for register access */ 193 } AES_IER_Type; 194 #endif 195 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 196 197 #define AES_IER_OFFSET (0x10) /**< (AES_IER) Interrupt Enable Register Offset */ 198 199 #define AES_IER_DATRDY_Pos 0 /**< (AES_IER) Data Ready Interrupt Enable Position */ 200 #define AES_IER_DATRDY_Msk (_U_(0x1) << AES_IER_DATRDY_Pos) /**< (AES_IER) Data Ready Interrupt Enable Mask */ 201 #define AES_IER_DATRDY AES_IER_DATRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IER_DATRDY_Msk instead */ 202 #define AES_IER_URAD_Pos 8 /**< (AES_IER) Unspecified Register Access Detection Interrupt Enable Position */ 203 #define AES_IER_URAD_Msk (_U_(0x1) << AES_IER_URAD_Pos) /**< (AES_IER) Unspecified Register Access Detection Interrupt Enable Mask */ 204 #define AES_IER_URAD AES_IER_URAD_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IER_URAD_Msk instead */ 205 #define AES_IER_TAGRDY_Pos 16 /**< (AES_IER) GCM Tag Ready Interrupt Enable Position */ 206 #define AES_IER_TAGRDY_Msk (_U_(0x1) << AES_IER_TAGRDY_Pos) /**< (AES_IER) GCM Tag Ready Interrupt Enable Mask */ 207 #define AES_IER_TAGRDY AES_IER_TAGRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IER_TAGRDY_Msk instead */ 208 #define AES_IER_MASK _U_(0x10101) /**< \deprecated (AES_IER) Register MASK (Use AES_IER_Msk instead) */ 209 #define AES_IER_Msk _U_(0x10101) /**< (AES_IER) Register Mask */ 210 211 212 /* -------- AES_IDR : (AES Offset: 0x14) (/W 32) Interrupt Disable Register -------- */ 213 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 214 #if COMPONENT_TYPEDEF_STYLE == 'N' 215 typedef union { 216 struct { 217 uint32_t DATRDY:1; /**< bit: 0 Data Ready Interrupt Disable */ 218 uint32_t :7; /**< bit: 1..7 Reserved */ 219 uint32_t URAD:1; /**< bit: 8 Unspecified Register Access Detection Interrupt Disable */ 220 uint32_t :7; /**< bit: 9..15 Reserved */ 221 uint32_t TAGRDY:1; /**< bit: 16 GCM Tag Ready Interrupt Disable */ 222 uint32_t :15; /**< bit: 17..31 Reserved */ 223 } bit; /**< Structure used for bit access */ 224 uint32_t reg; /**< Type used for register access */ 225 } AES_IDR_Type; 226 #endif 227 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 228 229 #define AES_IDR_OFFSET (0x14) /**< (AES_IDR) Interrupt Disable Register Offset */ 230 231 #define AES_IDR_DATRDY_Pos 0 /**< (AES_IDR) Data Ready Interrupt Disable Position */ 232 #define AES_IDR_DATRDY_Msk (_U_(0x1) << AES_IDR_DATRDY_Pos) /**< (AES_IDR) Data Ready Interrupt Disable Mask */ 233 #define AES_IDR_DATRDY AES_IDR_DATRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IDR_DATRDY_Msk instead */ 234 #define AES_IDR_URAD_Pos 8 /**< (AES_IDR) Unspecified Register Access Detection Interrupt Disable Position */ 235 #define AES_IDR_URAD_Msk (_U_(0x1) << AES_IDR_URAD_Pos) /**< (AES_IDR) Unspecified Register Access Detection Interrupt Disable Mask */ 236 #define AES_IDR_URAD AES_IDR_URAD_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IDR_URAD_Msk instead */ 237 #define AES_IDR_TAGRDY_Pos 16 /**< (AES_IDR) GCM Tag Ready Interrupt Disable Position */ 238 #define AES_IDR_TAGRDY_Msk (_U_(0x1) << AES_IDR_TAGRDY_Pos) /**< (AES_IDR) GCM Tag Ready Interrupt Disable Mask */ 239 #define AES_IDR_TAGRDY AES_IDR_TAGRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IDR_TAGRDY_Msk instead */ 240 #define AES_IDR_MASK _U_(0x10101) /**< \deprecated (AES_IDR) Register MASK (Use AES_IDR_Msk instead) */ 241 #define AES_IDR_Msk _U_(0x10101) /**< (AES_IDR) Register Mask */ 242 243 244 /* -------- AES_IMR : (AES Offset: 0x18) (R/ 32) Interrupt Mask Register -------- */ 245 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 246 #if COMPONENT_TYPEDEF_STYLE == 'N' 247 typedef union { 248 struct { 249 uint32_t DATRDY:1; /**< bit: 0 Data Ready Interrupt Mask */ 250 uint32_t :7; /**< bit: 1..7 Reserved */ 251 uint32_t URAD:1; /**< bit: 8 Unspecified Register Access Detection Interrupt Mask */ 252 uint32_t :7; /**< bit: 9..15 Reserved */ 253 uint32_t TAGRDY:1; /**< bit: 16 GCM Tag Ready Interrupt Mask */ 254 uint32_t :15; /**< bit: 17..31 Reserved */ 255 } bit; /**< Structure used for bit access */ 256 uint32_t reg; /**< Type used for register access */ 257 } AES_IMR_Type; 258 #endif 259 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 260 261 #define AES_IMR_OFFSET (0x18) /**< (AES_IMR) Interrupt Mask Register Offset */ 262 263 #define AES_IMR_DATRDY_Pos 0 /**< (AES_IMR) Data Ready Interrupt Mask Position */ 264 #define AES_IMR_DATRDY_Msk (_U_(0x1) << AES_IMR_DATRDY_Pos) /**< (AES_IMR) Data Ready Interrupt Mask Mask */ 265 #define AES_IMR_DATRDY AES_IMR_DATRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IMR_DATRDY_Msk instead */ 266 #define AES_IMR_URAD_Pos 8 /**< (AES_IMR) Unspecified Register Access Detection Interrupt Mask Position */ 267 #define AES_IMR_URAD_Msk (_U_(0x1) << AES_IMR_URAD_Pos) /**< (AES_IMR) Unspecified Register Access Detection Interrupt Mask Mask */ 268 #define AES_IMR_URAD AES_IMR_URAD_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IMR_URAD_Msk instead */ 269 #define AES_IMR_TAGRDY_Pos 16 /**< (AES_IMR) GCM Tag Ready Interrupt Mask Position */ 270 #define AES_IMR_TAGRDY_Msk (_U_(0x1) << AES_IMR_TAGRDY_Pos) /**< (AES_IMR) GCM Tag Ready Interrupt Mask Mask */ 271 #define AES_IMR_TAGRDY AES_IMR_TAGRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_IMR_TAGRDY_Msk instead */ 272 #define AES_IMR_MASK _U_(0x10101) /**< \deprecated (AES_IMR) Register MASK (Use AES_IMR_Msk instead) */ 273 #define AES_IMR_Msk _U_(0x10101) /**< (AES_IMR) Register Mask */ 274 275 276 /* -------- AES_ISR : (AES Offset: 0x1c) (R/ 32) Interrupt Status Register -------- */ 277 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 278 #if COMPONENT_TYPEDEF_STYLE == 'N' 279 typedef union { 280 struct { 281 uint32_t DATRDY:1; /**< bit: 0 Data Ready (cleared by setting bit START or bit SWRST in AES_CR or by reading AES_ODATARx) */ 282 uint32_t :7; /**< bit: 1..7 Reserved */ 283 uint32_t URAD:1; /**< bit: 8 Unspecified Register Access Detection Status (cleared by writing SWRST in AES_CR) */ 284 uint32_t :3; /**< bit: 9..11 Reserved */ 285 uint32_t URAT:4; /**< bit: 12..15 Unspecified Register Access (cleared by writing SWRST in AES_CR) */ 286 uint32_t TAGRDY:1; /**< bit: 16 GCM Tag Ready */ 287 uint32_t :15; /**< bit: 17..31 Reserved */ 288 } bit; /**< Structure used for bit access */ 289 uint32_t reg; /**< Type used for register access */ 290 } AES_ISR_Type; 291 #endif 292 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 293 294 #define AES_ISR_OFFSET (0x1C) /**< (AES_ISR) Interrupt Status Register Offset */ 295 296 #define AES_ISR_DATRDY_Pos 0 /**< (AES_ISR) Data Ready (cleared by setting bit START or bit SWRST in AES_CR or by reading AES_ODATARx) Position */ 297 #define AES_ISR_DATRDY_Msk (_U_(0x1) << AES_ISR_DATRDY_Pos) /**< (AES_ISR) Data Ready (cleared by setting bit START or bit SWRST in AES_CR or by reading AES_ODATARx) Mask */ 298 #define AES_ISR_DATRDY AES_ISR_DATRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_ISR_DATRDY_Msk instead */ 299 #define AES_ISR_URAD_Pos 8 /**< (AES_ISR) Unspecified Register Access Detection Status (cleared by writing SWRST in AES_CR) Position */ 300 #define AES_ISR_URAD_Msk (_U_(0x1) << AES_ISR_URAD_Pos) /**< (AES_ISR) Unspecified Register Access Detection Status (cleared by writing SWRST in AES_CR) Mask */ 301 #define AES_ISR_URAD AES_ISR_URAD_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_ISR_URAD_Msk instead */ 302 #define AES_ISR_URAT_Pos 12 /**< (AES_ISR) Unspecified Register Access (cleared by writing SWRST in AES_CR) Position */ 303 #define AES_ISR_URAT_Msk (_U_(0xF) << AES_ISR_URAT_Pos) /**< (AES_ISR) Unspecified Register Access (cleared by writing SWRST in AES_CR) Mask */ 304 #define AES_ISR_URAT(value) (AES_ISR_URAT_Msk & ((value) << AES_ISR_URAT_Pos)) 305 #define AES_ISR_URAT_IDR_WR_PROCESSING_Val _U_(0x0) /**< (AES_ISR) Input Data Register written during the data processing when SMOD = 0x2 mode. */ 306 #define AES_ISR_URAT_ODR_RD_PROCESSING_Val _U_(0x1) /**< (AES_ISR) Output Data Register read during the data processing. */ 307 #define AES_ISR_URAT_MR_WR_PROCESSING_Val _U_(0x2) /**< (AES_ISR) Mode Register written during the data processing. */ 308 #define AES_ISR_URAT_ODR_RD_SUBKGEN_Val _U_(0x3) /**< (AES_ISR) Output Data Register read during the sub-keys generation. */ 309 #define AES_ISR_URAT_MR_WR_SUBKGEN_Val _U_(0x4) /**< (AES_ISR) Mode Register written during the sub-keys generation. */ 310 #define AES_ISR_URAT_WOR_RD_ACCESS_Val _U_(0x5) /**< (AES_ISR) Write-only register read access. */ 311 #define AES_ISR_URAT_IDR_WR_PROCESSING (AES_ISR_URAT_IDR_WR_PROCESSING_Val << AES_ISR_URAT_Pos) /**< (AES_ISR) Input Data Register written during the data processing when SMOD = 0x2 mode. Position */ 312 #define AES_ISR_URAT_ODR_RD_PROCESSING (AES_ISR_URAT_ODR_RD_PROCESSING_Val << AES_ISR_URAT_Pos) /**< (AES_ISR) Output Data Register read during the data processing. Position */ 313 #define AES_ISR_URAT_MR_WR_PROCESSING (AES_ISR_URAT_MR_WR_PROCESSING_Val << AES_ISR_URAT_Pos) /**< (AES_ISR) Mode Register written during the data processing. Position */ 314 #define AES_ISR_URAT_ODR_RD_SUBKGEN (AES_ISR_URAT_ODR_RD_SUBKGEN_Val << AES_ISR_URAT_Pos) /**< (AES_ISR) Output Data Register read during the sub-keys generation. Position */ 315 #define AES_ISR_URAT_MR_WR_SUBKGEN (AES_ISR_URAT_MR_WR_SUBKGEN_Val << AES_ISR_URAT_Pos) /**< (AES_ISR) Mode Register written during the sub-keys generation. Position */ 316 #define AES_ISR_URAT_WOR_RD_ACCESS (AES_ISR_URAT_WOR_RD_ACCESS_Val << AES_ISR_URAT_Pos) /**< (AES_ISR) Write-only register read access. Position */ 317 #define AES_ISR_TAGRDY_Pos 16 /**< (AES_ISR) GCM Tag Ready Position */ 318 #define AES_ISR_TAGRDY_Msk (_U_(0x1) << AES_ISR_TAGRDY_Pos) /**< (AES_ISR) GCM Tag Ready Mask */ 319 #define AES_ISR_TAGRDY AES_ISR_TAGRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use AES_ISR_TAGRDY_Msk instead */ 320 #define AES_ISR_MASK _U_(0x1F101) /**< \deprecated (AES_ISR) Register MASK (Use AES_ISR_Msk instead) */ 321 #define AES_ISR_Msk _U_(0x1F101) /**< (AES_ISR) Register Mask */ 322 323 324 /* -------- AES_KEYWR : (AES Offset: 0x20) (/W 32) Key Word Register -------- */ 325 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 326 #if COMPONENT_TYPEDEF_STYLE == 'N' 327 typedef union { 328 struct { 329 uint32_t KEYW:32; /**< bit: 0..31 Key Word */ 330 } bit; /**< Structure used for bit access */ 331 uint32_t reg; /**< Type used for register access */ 332 } AES_KEYWR_Type; 333 #endif 334 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 335 336 #define AES_KEYWR_OFFSET (0x20) /**< (AES_KEYWR) Key Word Register Offset */ 337 338 #define AES_KEYWR_KEYW_Pos 0 /**< (AES_KEYWR) Key Word Position */ 339 #define AES_KEYWR_KEYW_Msk (_U_(0xFFFFFFFF) << AES_KEYWR_KEYW_Pos) /**< (AES_KEYWR) Key Word Mask */ 340 #define AES_KEYWR_KEYW(value) (AES_KEYWR_KEYW_Msk & ((value) << AES_KEYWR_KEYW_Pos)) 341 #define AES_KEYWR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_KEYWR) Register MASK (Use AES_KEYWR_Msk instead) */ 342 #define AES_KEYWR_Msk _U_(0xFFFFFFFF) /**< (AES_KEYWR) Register Mask */ 343 344 345 /* -------- AES_IDATAR : (AES Offset: 0x40) (/W 32) Input Data Register -------- */ 346 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 347 #if COMPONENT_TYPEDEF_STYLE == 'N' 348 typedef union { 349 struct { 350 uint32_t IDATA:32; /**< bit: 0..31 Input Data Word */ 351 } bit; /**< Structure used for bit access */ 352 uint32_t reg; /**< Type used for register access */ 353 } AES_IDATAR_Type; 354 #endif 355 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 356 357 #define AES_IDATAR_OFFSET (0x40) /**< (AES_IDATAR) Input Data Register Offset */ 358 359 #define AES_IDATAR_IDATA_Pos 0 /**< (AES_IDATAR) Input Data Word Position */ 360 #define AES_IDATAR_IDATA_Msk (_U_(0xFFFFFFFF) << AES_IDATAR_IDATA_Pos) /**< (AES_IDATAR) Input Data Word Mask */ 361 #define AES_IDATAR_IDATA(value) (AES_IDATAR_IDATA_Msk & ((value) << AES_IDATAR_IDATA_Pos)) 362 #define AES_IDATAR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_IDATAR) Register MASK (Use AES_IDATAR_Msk instead) */ 363 #define AES_IDATAR_Msk _U_(0xFFFFFFFF) /**< (AES_IDATAR) Register Mask */ 364 365 366 /* -------- AES_ODATAR : (AES Offset: 0x50) (R/ 32) Output Data Register -------- */ 367 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 368 #if COMPONENT_TYPEDEF_STYLE == 'N' 369 typedef union { 370 struct { 371 uint32_t ODATA:32; /**< bit: 0..31 Output Data */ 372 } bit; /**< Structure used for bit access */ 373 uint32_t reg; /**< Type used for register access */ 374 } AES_ODATAR_Type; 375 #endif 376 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 377 378 #define AES_ODATAR_OFFSET (0x50) /**< (AES_ODATAR) Output Data Register Offset */ 379 380 #define AES_ODATAR_ODATA_Pos 0 /**< (AES_ODATAR) Output Data Position */ 381 #define AES_ODATAR_ODATA_Msk (_U_(0xFFFFFFFF) << AES_ODATAR_ODATA_Pos) /**< (AES_ODATAR) Output Data Mask */ 382 #define AES_ODATAR_ODATA(value) (AES_ODATAR_ODATA_Msk & ((value) << AES_ODATAR_ODATA_Pos)) 383 #define AES_ODATAR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_ODATAR) Register MASK (Use AES_ODATAR_Msk instead) */ 384 #define AES_ODATAR_Msk _U_(0xFFFFFFFF) /**< (AES_ODATAR) Register Mask */ 385 386 387 /* -------- AES_IVR : (AES Offset: 0x60) (/W 32) Initialization Vector Register -------- */ 388 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 389 #if COMPONENT_TYPEDEF_STYLE == 'N' 390 typedef union { 391 struct { 392 uint32_t IV:32; /**< bit: 0..31 Initialization Vector */ 393 } bit; /**< Structure used for bit access */ 394 uint32_t reg; /**< Type used for register access */ 395 } AES_IVR_Type; 396 #endif 397 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 398 399 #define AES_IVR_OFFSET (0x60) /**< (AES_IVR) Initialization Vector Register Offset */ 400 401 #define AES_IVR_IV_Pos 0 /**< (AES_IVR) Initialization Vector Position */ 402 #define AES_IVR_IV_Msk (_U_(0xFFFFFFFF) << AES_IVR_IV_Pos) /**< (AES_IVR) Initialization Vector Mask */ 403 #define AES_IVR_IV(value) (AES_IVR_IV_Msk & ((value) << AES_IVR_IV_Pos)) 404 #define AES_IVR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_IVR) Register MASK (Use AES_IVR_Msk instead) */ 405 #define AES_IVR_Msk _U_(0xFFFFFFFF) /**< (AES_IVR) Register Mask */ 406 407 408 /* -------- AES_AADLENR : (AES Offset: 0x70) (R/W 32) Additional Authenticated Data Length Register -------- */ 409 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 410 #if COMPONENT_TYPEDEF_STYLE == 'N' 411 typedef union { 412 struct { 413 uint32_t AADLEN:32; /**< bit: 0..31 Additional Authenticated Data Length */ 414 } bit; /**< Structure used for bit access */ 415 uint32_t reg; /**< Type used for register access */ 416 } AES_AADLENR_Type; 417 #endif 418 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 419 420 #define AES_AADLENR_OFFSET (0x70) /**< (AES_AADLENR) Additional Authenticated Data Length Register Offset */ 421 422 #define AES_AADLENR_AADLEN_Pos 0 /**< (AES_AADLENR) Additional Authenticated Data Length Position */ 423 #define AES_AADLENR_AADLEN_Msk (_U_(0xFFFFFFFF) << AES_AADLENR_AADLEN_Pos) /**< (AES_AADLENR) Additional Authenticated Data Length Mask */ 424 #define AES_AADLENR_AADLEN(value) (AES_AADLENR_AADLEN_Msk & ((value) << AES_AADLENR_AADLEN_Pos)) 425 #define AES_AADLENR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_AADLENR) Register MASK (Use AES_AADLENR_Msk instead) */ 426 #define AES_AADLENR_Msk _U_(0xFFFFFFFF) /**< (AES_AADLENR) Register Mask */ 427 428 429 /* -------- AES_CLENR : (AES Offset: 0x74) (R/W 32) Plaintext/Ciphertext Length Register -------- */ 430 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 431 #if COMPONENT_TYPEDEF_STYLE == 'N' 432 typedef union { 433 struct { 434 uint32_t CLEN:32; /**< bit: 0..31 Plaintext/Ciphertext Length */ 435 } bit; /**< Structure used for bit access */ 436 uint32_t reg; /**< Type used for register access */ 437 } AES_CLENR_Type; 438 #endif 439 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 440 441 #define AES_CLENR_OFFSET (0x74) /**< (AES_CLENR) Plaintext/Ciphertext Length Register Offset */ 442 443 #define AES_CLENR_CLEN_Pos 0 /**< (AES_CLENR) Plaintext/Ciphertext Length Position */ 444 #define AES_CLENR_CLEN_Msk (_U_(0xFFFFFFFF) << AES_CLENR_CLEN_Pos) /**< (AES_CLENR) Plaintext/Ciphertext Length Mask */ 445 #define AES_CLENR_CLEN(value) (AES_CLENR_CLEN_Msk & ((value) << AES_CLENR_CLEN_Pos)) 446 #define AES_CLENR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_CLENR) Register MASK (Use AES_CLENR_Msk instead) */ 447 #define AES_CLENR_Msk _U_(0xFFFFFFFF) /**< (AES_CLENR) Register Mask */ 448 449 450 /* -------- AES_GHASHR : (AES Offset: 0x78) (R/W 32) GCM Intermediate Hash Word Register -------- */ 451 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 452 #if COMPONENT_TYPEDEF_STYLE == 'N' 453 typedef union { 454 struct { 455 uint32_t GHASH:32; /**< bit: 0..31 Intermediate GCM Hash Word x */ 456 } bit; /**< Structure used for bit access */ 457 uint32_t reg; /**< Type used for register access */ 458 } AES_GHASHR_Type; 459 #endif 460 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 461 462 #define AES_GHASHR_OFFSET (0x78) /**< (AES_GHASHR) GCM Intermediate Hash Word Register Offset */ 463 464 #define AES_GHASHR_GHASH_Pos 0 /**< (AES_GHASHR) Intermediate GCM Hash Word x Position */ 465 #define AES_GHASHR_GHASH_Msk (_U_(0xFFFFFFFF) << AES_GHASHR_GHASH_Pos) /**< (AES_GHASHR) Intermediate GCM Hash Word x Mask */ 466 #define AES_GHASHR_GHASH(value) (AES_GHASHR_GHASH_Msk & ((value) << AES_GHASHR_GHASH_Pos)) 467 #define AES_GHASHR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_GHASHR) Register MASK (Use AES_GHASHR_Msk instead) */ 468 #define AES_GHASHR_Msk _U_(0xFFFFFFFF) /**< (AES_GHASHR) Register Mask */ 469 470 471 /* -------- AES_TAGR : (AES Offset: 0x88) (R/ 32) GCM Authentication Tag Word Register -------- */ 472 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 473 #if COMPONENT_TYPEDEF_STYLE == 'N' 474 typedef union { 475 struct { 476 uint32_t TAG:32; /**< bit: 0..31 GCM Authentication Tag x */ 477 } bit; /**< Structure used for bit access */ 478 uint32_t reg; /**< Type used for register access */ 479 } AES_TAGR_Type; 480 #endif 481 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 482 483 #define AES_TAGR_OFFSET (0x88) /**< (AES_TAGR) GCM Authentication Tag Word Register Offset */ 484 485 #define AES_TAGR_TAG_Pos 0 /**< (AES_TAGR) GCM Authentication Tag x Position */ 486 #define AES_TAGR_TAG_Msk (_U_(0xFFFFFFFF) << AES_TAGR_TAG_Pos) /**< (AES_TAGR) GCM Authentication Tag x Mask */ 487 #define AES_TAGR_TAG(value) (AES_TAGR_TAG_Msk & ((value) << AES_TAGR_TAG_Pos)) 488 #define AES_TAGR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_TAGR) Register MASK (Use AES_TAGR_Msk instead) */ 489 #define AES_TAGR_Msk _U_(0xFFFFFFFF) /**< (AES_TAGR) Register Mask */ 490 491 492 /* -------- AES_CTRR : (AES Offset: 0x98) (R/ 32) GCM Encryption Counter Value Register -------- */ 493 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 494 #if COMPONENT_TYPEDEF_STYLE == 'N' 495 typedef union { 496 struct { 497 uint32_t CTR:32; /**< bit: 0..31 GCM Encryption Counter */ 498 } bit; /**< Structure used for bit access */ 499 uint32_t reg; /**< Type used for register access */ 500 } AES_CTRR_Type; 501 #endif 502 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 503 504 #define AES_CTRR_OFFSET (0x98) /**< (AES_CTRR) GCM Encryption Counter Value Register Offset */ 505 506 #define AES_CTRR_CTR_Pos 0 /**< (AES_CTRR) GCM Encryption Counter Position */ 507 #define AES_CTRR_CTR_Msk (_U_(0xFFFFFFFF) << AES_CTRR_CTR_Pos) /**< (AES_CTRR) GCM Encryption Counter Mask */ 508 #define AES_CTRR_CTR(value) (AES_CTRR_CTR_Msk & ((value) << AES_CTRR_CTR_Pos)) 509 #define AES_CTRR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_CTRR) Register MASK (Use AES_CTRR_Msk instead) */ 510 #define AES_CTRR_Msk _U_(0xFFFFFFFF) /**< (AES_CTRR) Register Mask */ 511 512 513 /* -------- AES_GCMHR : (AES Offset: 0x9c) (R/W 32) GCM H Word Register -------- */ 514 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 515 #if COMPONENT_TYPEDEF_STYLE == 'N' 516 typedef union { 517 struct { 518 uint32_t H:32; /**< bit: 0..31 GCM H Word x */ 519 } bit; /**< Structure used for bit access */ 520 uint32_t reg; /**< Type used for register access */ 521 } AES_GCMHR_Type; 522 #endif 523 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 524 525 #define AES_GCMHR_OFFSET (0x9C) /**< (AES_GCMHR) GCM H Word Register Offset */ 526 527 #define AES_GCMHR_H_Pos 0 /**< (AES_GCMHR) GCM H Word x Position */ 528 #define AES_GCMHR_H_Msk (_U_(0xFFFFFFFF) << AES_GCMHR_H_Pos) /**< (AES_GCMHR) GCM H Word x Mask */ 529 #define AES_GCMHR_H(value) (AES_GCMHR_H_Msk & ((value) << AES_GCMHR_H_Pos)) 530 #define AES_GCMHR_MASK _U_(0xFFFFFFFF) /**< \deprecated (AES_GCMHR) Register MASK (Use AES_GCMHR_Msk instead) */ 531 #define AES_GCMHR_Msk _U_(0xFFFFFFFF) /**< (AES_GCMHR) Register Mask */ 532 533 534 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 535 #if COMPONENT_TYPEDEF_STYLE == 'R' 536 /** \brief AES hardware registers */ 537 typedef struct { 538 __O uint32_t AES_CR; /**< (AES Offset: 0x00) Control Register */ 539 __IO uint32_t AES_MR; /**< (AES Offset: 0x04) Mode Register */ 540 __I uint8_t Reserved1[8]; 541 __O uint32_t AES_IER; /**< (AES Offset: 0x10) Interrupt Enable Register */ 542 __O uint32_t AES_IDR; /**< (AES Offset: 0x14) Interrupt Disable Register */ 543 __I uint32_t AES_IMR; /**< (AES Offset: 0x18) Interrupt Mask Register */ 544 __I uint32_t AES_ISR; /**< (AES Offset: 0x1C) Interrupt Status Register */ 545 __O uint32_t AES_KEYWR[8]; /**< (AES Offset: 0x20) Key Word Register */ 546 __O uint32_t AES_IDATAR[4]; /**< (AES Offset: 0x40) Input Data Register */ 547 __I uint32_t AES_ODATAR[4]; /**< (AES Offset: 0x50) Output Data Register */ 548 __O uint32_t AES_IVR[4]; /**< (AES Offset: 0x60) Initialization Vector Register */ 549 __IO uint32_t AES_AADLENR; /**< (AES Offset: 0x70) Additional Authenticated Data Length Register */ 550 __IO uint32_t AES_CLENR; /**< (AES Offset: 0x74) Plaintext/Ciphertext Length Register */ 551 __IO uint32_t AES_GHASHR[4]; /**< (AES Offset: 0x78) GCM Intermediate Hash Word Register */ 552 __I uint32_t AES_TAGR[4]; /**< (AES Offset: 0x88) GCM Authentication Tag Word Register */ 553 __I uint32_t AES_CTRR; /**< (AES Offset: 0x98) GCM Encryption Counter Value Register */ 554 __IO uint32_t AES_GCMHR[4]; /**< (AES Offset: 0x9C) GCM H Word Register */ 555 } Aes; 556 557 #elif COMPONENT_TYPEDEF_STYLE == 'N' 558 /** \brief AES hardware registers */ 559 typedef struct { 560 __O AES_CR_Type AES_CR; /**< Offset: 0x00 ( /W 32) Control Register */ 561 __IO AES_MR_Type AES_MR; /**< Offset: 0x04 (R/W 32) Mode Register */ 562 __I uint8_t Reserved1[8]; 563 __O AES_IER_Type AES_IER; /**< Offset: 0x10 ( /W 32) Interrupt Enable Register */ 564 __O AES_IDR_Type AES_IDR; /**< Offset: 0x14 ( /W 32) Interrupt Disable Register */ 565 __I AES_IMR_Type AES_IMR; /**< Offset: 0x18 (R/ 32) Interrupt Mask Register */ 566 __I AES_ISR_Type AES_ISR; /**< Offset: 0x1C (R/ 32) Interrupt Status Register */ 567 __O AES_KEYWR_Type AES_KEYWR[8]; /**< Offset: 0x20 ( /W 32) Key Word Register */ 568 __O AES_IDATAR_Type AES_IDATAR[4]; /**< Offset: 0x40 ( /W 32) Input Data Register */ 569 __I AES_ODATAR_Type AES_ODATAR[4]; /**< Offset: 0x50 (R/ 32) Output Data Register */ 570 __O AES_IVR_Type AES_IVR[4]; /**< Offset: 0x60 ( /W 32) Initialization Vector Register */ 571 __IO AES_AADLENR_Type AES_AADLENR; /**< Offset: 0x70 (R/W 32) Additional Authenticated Data Length Register */ 572 __IO AES_CLENR_Type AES_CLENR; /**< Offset: 0x74 (R/W 32) Plaintext/Ciphertext Length Register */ 573 __IO AES_GHASHR_Type AES_GHASHR[4]; /**< Offset: 0x78 (R/W 32) GCM Intermediate Hash Word Register */ 574 __I AES_TAGR_Type AES_TAGR[4]; /**< Offset: 0x88 (R/ 32) GCM Authentication Tag Word Register */ 575 __I AES_CTRR_Type AES_CTRR; /**< Offset: 0x98 (R/ 32) GCM Encryption Counter Value Register */ 576 __IO AES_GCMHR_Type AES_GCMHR[4]; /**< Offset: 0x9C (R/W 32) GCM H Word Register */ 577 } Aes; 578 579 #else /* COMPONENT_TYPEDEF_STYLE */ 580 #error Unknown component typedef style 581 #endif /* COMPONENT_TYPEDEF_STYLE */ 582 583 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 584 /** @} end of Advanced Encryption Standard */ 585 586 #endif /* _SAMV71_AES_COMPONENT_H_ */ 587