1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4 dmac_ch0_ctrl: DmacCh0Ctrl,
5 dmac_ch0_extaddr: DmacCh0Extaddr,
6 _reserved2: [u8; 0x04],
7 dmac_ch0_dmalength: DmacCh0Dmalength,
8 _reserved3: [u8; 0x08],
9 dmac_status: DmacStatus,
10 dmac_swres: DmacSwres,
11 dmac_ch1_ctrl: DmacCh1Ctrl,
12 dmac_ch1_extaddr: DmacCh1Extaddr,
13 _reserved7: [u8; 0x04],
14 dmac_ch1_dmalength: DmacCh1Dmalength,
15 _reserved8: [u8; 0x48],
16 dmac_mst_runparams: DmacMstRunparams,
17 dmac_persr: DmacPersr,
18 _reserved10: [u8; 0x78],
19 dmac_options: DmacOptions,
20 dmac_version: DmacVersion,
21 _reserved12: [u8; 0x0300],
22 key_store_write_area: KeyStoreWriteArea,
23 key_store_written_area: KeyStoreWrittenArea,
24 key_store_size: KeyStoreSize,
25 key_store_read_area: KeyStoreReadArea,
26 _reserved16: [u8; 0xf0],
27 aes_key2_0: AesKey2_0,
28 aes_key2_1: AesKey2_1,
29 aes_key2_2: AesKey2_2,
30 aes_key2_3: AesKey2_3,
31 aes_key3_0: AesKey3_0,
32 aes_key3_1: AesKey3_1,
33 aes_key3_2: AesKey3_2,
34 aes_key3_3: AesKey3_3,
35 _reserved24: [u8; 0x20],
36 aes_iv_0: AesIv0,
37 aes_iv_1: AesIv1,
38 aes_iv_2: AesIv2,
39 aes_iv_3: AesIv3,
40 aes_ctrl: AesCtrl,
41 aes_c_length_0: AesCLength0,
42 aes_c_length_1: AesCLength1,
43 aes_auth_length: AesAuthLength,
44 aes_data_in_out_0: AesDataInOut0,
45 aes_data_in_out_1: AesDataInOut1,
46 aes_data_in_out_2: AesDataInOut2,
47 aes_data_in_out_3: AesDataInOut3,
48 aes_tag_out_0: AesTagOut0,
49 aes_tag_out_1: AesTagOut1,
50 aes_tag_out_2: AesTagOut2,
51 aes_tag_out_3: AesTagOut3,
52 _reserved40: [u8; 0x80],
53 hash_data_in_0: HashDataIn0,
54 hash_data_in_1: HashDataIn1,
55 hash_data_in_2: HashDataIn2,
56 hash_data_in_3: HashDataIn3,
57 hash_data_in_4: HashDataIn4,
58 hash_data_in_5: HashDataIn5,
59 hash_data_in_6: HashDataIn6,
60 hash_data_in_7: HashDataIn7,
61 hash_data_in_8: HashDataIn8,
62 hash_data_in_9: HashDataIn9,
63 hash_data_in_10: HashDataIn10,
64 hash_data_in_11: HashDataIn11,
65 hash_data_in_12: HashDataIn12,
66 hash_data_in_13: HashDataIn13,
67 hash_data_in_14: HashDataIn14,
68 hash_data_in_15: HashDataIn15,
69 hash_io_buf_ctrl: HashIoBufCtrl,
70 hash_mode_in: HashModeIn,
71 hash_length_in_l: HashLengthInL,
72 hash_length_in_h: HashLengthInH,
73 hash_digest_a: HashDigestA,
74 hash_digest_b: HashDigestB,
75 hash_digest_c: HashDigestC,
76 hash_digest_d: HashDigestD,
77 hash_digest_e: HashDigestE,
78 hash_digest_f: HashDigestF,
79 hash_digest_g: HashDigestG,
80 hash_digest_h: HashDigestH,
81 _reserved68: [u8; 0x90],
82 ctrl_alg_sel: CtrlAlgSel,
83 ctrl_prot_en: CtrlProtEn,
84 _reserved70: [u8; 0x38],
85 ctrl_sw_reset: CtrlSwReset,
86 _reserved71: [u8; 0x3c],
87 ctrl_int_cfg: CtrlIntCfg,
88 ctrl_int_en: CtrlIntEn,
89 ctrl_int_clr: CtrlIntClr,
90 ctrl_int_set: CtrlIntSet,
91 ctrl_int_stat: CtrlIntStat,
92 _reserved76: [u8; 0x64],
93 ctrl_options: CtrlOptions,
94 ctrl_version: CtrlVersion,
95}
96impl RegisterBlock {
97 #[doc = "0x00 - Channel control This register is used for channel enabling and priority selection. When a channel is disabled, it becomes inactive only when all ongoing requests are finished."]
98 #[inline(always)]
99 pub const fn dmac_ch0_ctrl(&self) -> &DmacCh0Ctrl {
100 &self.dmac_ch0_ctrl
101 }
102 #[doc = "0x04 - Channel external address"]
103 #[inline(always)]
104 pub const fn dmac_ch0_extaddr(&self) -> &DmacCh0Extaddr {
105 &self.dmac_ch0_extaddr
106 }
107 #[doc = "0x0c - Channel DMA length"]
108 #[inline(always)]
109 pub const fn dmac_ch0_dmalength(&self) -> &DmacCh0Dmalength {
110 &self.dmac_ch0_dmalength
111 }
112 #[doc = "0x18 - DMAC status This register provides the actual state of each DMA channel. It also reports port errors in case these were received by the master interface module during the data transfer."]
113 #[inline(always)]
114 pub const fn dmac_status(&self) -> &DmacStatus {
115 &self.dmac_status
116 }
117 #[doc = "0x1c - DMAC software reset register Software reset is used to reset the DMAC to stop all transfers and clears the port error status register. After the software reset is performed, all the channels are disabled and no new requests are performed by the channels. The DMAC waits for the existing (active) requests to finish and accordingly sets the DMAC status registers."]
118 #[inline(always)]
119 pub const fn dmac_swres(&self) -> &DmacSwres {
120 &self.dmac_swres
121 }
122 #[doc = "0x20 - Channel control This register is used for channel enabling and priority selection. When a channel is disabled, it becomes inactive only when all ongoing requests are finished."]
123 #[inline(always)]
124 pub const fn dmac_ch1_ctrl(&self) -> &DmacCh1Ctrl {
125 &self.dmac_ch1_ctrl
126 }
127 #[doc = "0x24 - Channel external address"]
128 #[inline(always)]
129 pub const fn dmac_ch1_extaddr(&self) -> &DmacCh1Extaddr {
130 &self.dmac_ch1_extaddr
131 }
132 #[doc = "0x2c - Channel DMA length"]
133 #[inline(always)]
134 pub const fn dmac_ch1_dmalength(&self) -> &DmacCh1Dmalength {
135 &self.dmac_ch1_dmalength
136 }
137 #[doc = "0x78 - DMAC master run-time parameters This register defines all the run-time parameters for the AHB master interface port. These parameters are required for the proper functioning of the EIP-101m AHB master adapter."]
138 #[inline(always)]
139 pub const fn dmac_mst_runparams(&self) -> &DmacMstRunparams {
140 &self.dmac_mst_runparams
141 }
142 #[doc = "0x7c - DMAC port error raw status register This register provides the actual status of individual port errors. It also indicates which channel is serviced by an external AHB port (which is frozen by a port error). A port error aborts operations on all serviced channels (channel enable bit is forced to 0) and prevents further transfers via that port until the error is cleared by writing to the DMAC_SWRES register."]
143 #[inline(always)]
144 pub const fn dmac_persr(&self) -> &DmacPersr {
145 &self.dmac_persr
146 }
147 #[doc = "0xf8 - DMAC options register These registers contain information regarding the different options configured in this DMAC."]
148 #[inline(always)]
149 pub const fn dmac_options(&self) -> &DmacOptions {
150 &self.dmac_options
151 }
152 #[doc = "0xfc - DMAC version register This register contains an indication (or signature) of the EIP type of this DMAC, as well as the hardware version/patch numbers."]
153 #[inline(always)]
154 pub const fn dmac_version(&self) -> &DmacVersion {
155 &self.dmac_version
156 }
157 #[doc = "0x400 - Key store write area register This register defines where the keys should be written in the key store RAM. After writing this register, the key store module is ready to receive the keys through a DMA operation. In case the key data transfer triggered an error in the key store, the error will be available in the interrupt status register after the DMA is finished. The key store write-error is asserted when the programmed/selected area is not completely written. This error is also asserted when the DMA operation writes to ram areas that are not selected. The key store RAM is divided into 8 areas of 128 bits. 192-bit keys written in the key store RAM should start on boundaries of 256 bits. This means that writing a 192-bit key to the key store RAM must be done by writing 256 bits of data with the 64 most-significant bits set to 0. These bits are ignored by the AES engine."]
158 #[inline(always)]
159 pub const fn key_store_write_area(&self) -> &KeyStoreWriteArea {
160 &self.key_store_write_area
161 }
162 #[doc = "0x404 - Key store written area register This register shows which areas of the key store RAM contain valid written keys. When a new key needs to be written to the key store, on a location that is already occupied by a valid key, this key area must be cleared first. This can be done by writing this register before the new key is written to the key store memory. Attempting to write to a key area that already contains a valid key is not allowed and results in an error."]
163 #[inline(always)]
164 pub const fn key_store_written_area(&self) -> &KeyStoreWrittenArea {
165 &self.key_store_written_area
166 }
167 #[doc = "0x408 - Key store size register This register defines the size of the keys that are written with DMA. This register should be configured before writing to the KEY_STORE_WRITE_AREA register."]
168 #[inline(always)]
169 pub const fn key_store_size(&self) -> &KeyStoreSize {
170 &self.key_store_size
171 }
172 #[doc = "0x40c - Key store read area register This register selects the key store RAM area from where the key needs to be read that will be used for an AES operation. The operation directly starts after writing this register. When the operation is finished, the status of the key store read operation is available in the interrupt status register. Key store read error is asserted when a RAM area is selected which does not contain valid written key."]
173 #[inline(always)]
174 pub const fn key_store_read_area(&self) -> &KeyStoreReadArea {
175 &self.key_store_read_area
176 }
177 #[doc = "0x500 - AES_KEY2_0 / AES_GHASH_H_IN_0 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
178 #[inline(always)]
179 pub const fn aes_key2_0(&self) -> &AesKey2_0 {
180 &self.aes_key2_0
181 }
182 #[doc = "0x504 - AES_KEY2_1 / AES_GHASH_H_IN_1 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
183 #[inline(always)]
184 pub const fn aes_key2_1(&self) -> &AesKey2_1 {
185 &self.aes_key2_1
186 }
187 #[doc = "0x508 - AES_KEY2_2 / AES_GHASH_H_IN_2 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
188 #[inline(always)]
189 pub const fn aes_key2_2(&self) -> &AesKey2_2 {
190 &self.aes_key2_2
191 }
192 #[doc = "0x50c - AES_KEY2_3 / AES_GHASH_H_IN_3 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
193 #[inline(always)]
194 pub const fn aes_key2_3(&self) -> &AesKey2_3 {
195 &self.aes_key2_3
196 }
197 #[doc = "0x510 - AES_KEY3_0 / AES_KEY2_4 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
198 #[inline(always)]
199 pub const fn aes_key3_0(&self) -> &AesKey3_0 {
200 &self.aes_key3_0
201 }
202 #[doc = "0x514 - AES_KEY3_1 / AES_KEY2_5 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
203 #[inline(always)]
204 pub const fn aes_key3_1(&self) -> &AesKey3_1 {
205 &self.aes_key3_1
206 }
207 #[doc = "0x518 - AES_KEY3_2 / AES_KEY2_6 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
208 #[inline(always)]
209 pub const fn aes_key3_2(&self) -> &AesKey3_2 {
210 &self.aes_key3_2
211 }
212 #[doc = "0x51c - AES_KEY3_3 / AES_KEY2_7 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
213 #[inline(always)]
214 pub const fn aes_key3_3(&self) -> &AesKey3_3 {
215 &self.aes_key3_3
216 }
217 #[doc = "0x540 - AES initialization vector registers These registers are used to provide and read the IV from the AES engine."]
218 #[inline(always)]
219 pub const fn aes_iv_0(&self) -> &AesIv0 {
220 &self.aes_iv_0
221 }
222 #[doc = "0x544 - AES initialization vector registers These registers are used to provide and read the IV from the AES engine."]
223 #[inline(always)]
224 pub const fn aes_iv_1(&self) -> &AesIv1 {
225 &self.aes_iv_1
226 }
227 #[doc = "0x548 - AES initialization vector registers These registers are used to provide and read the IV from the AES engine."]
228 #[inline(always)]
229 pub const fn aes_iv_2(&self) -> &AesIv2 {
230 &self.aes_iv_2
231 }
232 #[doc = "0x54c - AES initialization vector registers These registers are used to provide and read the IV from the AES engine."]
233 #[inline(always)]
234 pub const fn aes_iv_3(&self) -> &AesIv3 {
235 &self.aes_iv_3
236 }
237 #[doc = "0x550 - AES input/output buffer control and mode register This register specifies the AES mode of operation for the EIP-120t. Electronic codebook (ECB) mode is automatically selected if bits \\[28:5\\]
238of this register are all 0."]
239 #[inline(always)]
240 pub const fn aes_ctrl(&self) -> &AesCtrl {
241 &self.aes_ctrl
242 }
243 #[doc = "0x554 - AES crypto length registers (LSW) These registers are used to write the Length values to the EIP-120t. While processing, the length values decrement to 0. If both lengths are 0, the data stream is finished and a new context is requested. For basic AES modes (ECB, CBC, and CTR), a crypto length of 0 can be written if multiple streams need to be processed with the same key. Writing 0 length results in continued data requests until a new context is written. For the other modes (CBC-MAC, GCM, and CCM) no (new) data requests are done if the length decrements to or equals 0. It is advised to write a new length per packet. If the length registers decrement to 0, no new data is processed until a new context or length value is written. When writing a new mode without writing the length registers, the length register values from the previous context is reused."]
244 #[inline(always)]
245 pub const fn aes_c_length_0(&self) -> &AesCLength0 {
246 &self.aes_c_length_0
247 }
248 #[doc = "0x558 - AES crypto length registers (MSW) These registers are used to write the Length values to the EIP-120t. While processing, the length values decrement to 0. If both lengths are 0, the data stream is finished and a new context is requested. For basic AES modes (ECB, CBC, and CTR), a crypto length of 0 can be written if multiple streams need to be processed with the same key. Writing 0 length results in continued data requests until a new context is written. For the other modes (CBC-MAC, GCM and CCM) no (new) data requests are done if the length decrements to or equals 0. It is advised to write a new length per packet. If the length registers decrement to 0, no new data is processed until a new context or length value is written. When writing a new mode without writing the length registers, the length register values from the previous context is reused."]
249 #[inline(always)]
250 pub const fn aes_c_length_1(&self) -> &AesCLength1 {
251 &self.aes_c_length_1
252 }
253 #[doc = "0x55c - Authentication length register"]
254 #[inline(always)]
255 pub const fn aes_auth_length(&self) -> &AesAuthLength {
256 &self.aes_auth_length
257 }
258 #[doc = "0x560 - Data input/output registers The data registers are typically accessed through the DMA and not with host writes and/or reads. However, for debugging purposes the data input/output registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface."]
259 #[inline(always)]
260 pub const fn aes_data_in_out_0(&self) -> &AesDataInOut0 {
261 &self.aes_data_in_out_0
262 }
263 #[doc = "0x564 - Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface."]
264 #[inline(always)]
265 pub const fn aes_data_in_out_1(&self) -> &AesDataInOut1 {
266 &self.aes_data_in_out_1
267 }
268 #[doc = "0x568 - Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface."]
269 #[inline(always)]
270 pub const fn aes_data_in_out_2(&self) -> &AesDataInOut2 {
271 &self.aes_data_in_out_2
272 }
273 #[doc = "0x56c - Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface."]
274 #[inline(always)]
275 pub const fn aes_data_in_out_3(&self) -> &AesDataInOut3 {
276 &self.aes_data_in_out_3
277 }
278 #[doc = "0x570 - TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order will return the IV twice."]
279 #[inline(always)]
280 pub const fn aes_tag_out_0(&self) -> &AesTagOut0 {
281 &self.aes_tag_out_0
282 }
283 #[doc = "0x574 - TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice."]
284 #[inline(always)]
285 pub const fn aes_tag_out_1(&self) -> &AesTagOut1 {
286 &self.aes_tag_out_1
287 }
288 #[doc = "0x578 - TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice."]
289 #[inline(always)]
290 pub const fn aes_tag_out_2(&self) -> &AesTagOut2 {
291 &self.aes_tag_out_2
292 }
293 #[doc = "0x57c - TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice."]
294 #[inline(always)]
295 pub const fn aes_tag_out_3(&self) -> &AesTagOut3 {
296 &self.aes_tag_out_3
297 }
298 #[doc = "0x600 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
299 #[inline(always)]
300 pub const fn hash_data_in_0(&self) -> &HashDataIn0 {
301 &self.hash_data_in_0
302 }
303 #[doc = "0x604 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
304 #[inline(always)]
305 pub const fn hash_data_in_1(&self) -> &HashDataIn1 {
306 &self.hash_data_in_1
307 }
308 #[doc = "0x608 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
309 #[inline(always)]
310 pub const fn hash_data_in_2(&self) -> &HashDataIn2 {
311 &self.hash_data_in_2
312 }
313 #[doc = "0x60c - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
314 #[inline(always)]
315 pub const fn hash_data_in_3(&self) -> &HashDataIn3 {
316 &self.hash_data_in_3
317 }
318 #[doc = "0x610 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
319 #[inline(always)]
320 pub const fn hash_data_in_4(&self) -> &HashDataIn4 {
321 &self.hash_data_in_4
322 }
323 #[doc = "0x614 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
324 #[inline(always)]
325 pub const fn hash_data_in_5(&self) -> &HashDataIn5 {
326 &self.hash_data_in_5
327 }
328 #[doc = "0x618 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
329 #[inline(always)]
330 pub const fn hash_data_in_6(&self) -> &HashDataIn6 {
331 &self.hash_data_in_6
332 }
333 #[doc = "0x61c - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
334 #[inline(always)]
335 pub const fn hash_data_in_7(&self) -> &HashDataIn7 {
336 &self.hash_data_in_7
337 }
338 #[doc = "0x620 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
339 #[inline(always)]
340 pub const fn hash_data_in_8(&self) -> &HashDataIn8 {
341 &self.hash_data_in_8
342 }
343 #[doc = "0x624 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
344 #[inline(always)]
345 pub const fn hash_data_in_9(&self) -> &HashDataIn9 {
346 &self.hash_data_in_9
347 }
348 #[doc = "0x628 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
349 #[inline(always)]
350 pub const fn hash_data_in_10(&self) -> &HashDataIn10 {
351 &self.hash_data_in_10
352 }
353 #[doc = "0x62c - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
354 #[inline(always)]
355 pub const fn hash_data_in_11(&self) -> &HashDataIn11 {
356 &self.hash_data_in_11
357 }
358 #[doc = "0x630 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
359 #[inline(always)]
360 pub const fn hash_data_in_12(&self) -> &HashDataIn12 {
361 &self.hash_data_in_12
362 }
363 #[doc = "0x634 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
364 #[inline(always)]
365 pub const fn hash_data_in_13(&self) -> &HashDataIn13 {
366 &self.hash_data_in_13
367 }
368 #[doc = "0x638 - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
369 #[inline(always)]
370 pub const fn hash_data_in_14(&self) -> &HashDataIn14 {
371 &self.hash_data_in_14
372 }
373 #[doc = "0x63c - HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
374 #[inline(always)]
375 pub const fn hash_data_in_15(&self) -> &HashDataIn15 {
376 &self.hash_data_in_15
377 }
378 #[doc = "0x640 - Input/output buffer control and status register This register pair shares a single address location and contains bits that control and monitor the data flow between the host and the hash engine."]
379 #[inline(always)]
380 pub const fn hash_io_buf_ctrl(&self) -> &HashIoBufCtrl {
381 &self.hash_io_buf_ctrl
382 }
383 #[doc = "0x644 - Hash mode register"]
384 #[inline(always)]
385 pub const fn hash_mode_in(&self) -> &HashModeIn {
386 &self.hash_mode_in
387 }
388 #[doc = "0x648 - Hash length register"]
389 #[inline(always)]
390 pub const fn hash_length_in_l(&self) -> &HashLengthInL {
391 &self.hash_length_in_l
392 }
393 #[doc = "0x64c - Hash length register"]
394 #[inline(always)]
395 pub const fn hash_length_in_h(&self) -> &HashLengthInH {
396 &self.hash_length_in_h
397 }
398 #[doc = "0x650 - Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
399 #[inline(always)]
400 pub const fn hash_digest_a(&self) -> &HashDigestA {
401 &self.hash_digest_a
402 }
403 #[doc = "0x654 - Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
404 #[inline(always)]
405 pub const fn hash_digest_b(&self) -> &HashDigestB {
406 &self.hash_digest_b
407 }
408 #[doc = "0x658 - Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
409 #[inline(always)]
410 pub const fn hash_digest_c(&self) -> &HashDigestC {
411 &self.hash_digest_c
412 }
413 #[doc = "0x65c - Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
414 #[inline(always)]
415 pub const fn hash_digest_d(&self) -> &HashDigestD {
416 &self.hash_digest_d
417 }
418 #[doc = "0x660 - Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
419 #[inline(always)]
420 pub const fn hash_digest_e(&self) -> &HashDigestE {
421 &self.hash_digest_e
422 }
423 #[doc = "0x664 - Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
424 #[inline(always)]
425 pub const fn hash_digest_f(&self) -> &HashDigestF {
426 &self.hash_digest_f
427 }
428 #[doc = "0x668 - Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
429 #[inline(always)]
430 pub const fn hash_digest_g(&self) -> &HashDigestG {
431 &self.hash_digest_g
432 }
433 #[doc = "0x66c - Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
434 #[inline(always)]
435 pub const fn hash_digest_h(&self) -> &HashDigestH {
436 &self.hash_digest_h
437 }
438 #[doc = "0x700 - Algorithm select This algorithm selection register configures the internal destination of the DMA controller."]
439 #[inline(always)]
440 pub const fn ctrl_alg_sel(&self) -> &CtrlAlgSel {
441 &self.ctrl_alg_sel
442 }
443 #[doc = "0x704 - Master PROT privileged access enable This register enables the second bit (bit \\[1\\]) of the AHB HPROT bus of the AHB master interface when a read action of key(s) is performed on the AHB master interface for writing keys into the store module."]
444 #[inline(always)]
445 pub const fn ctrl_prot_en(&self) -> &CtrlProtEn {
446 &self.ctrl_prot_en
447 }
448 #[doc = "0x740 - Software reset"]
449 #[inline(always)]
450 pub const fn ctrl_sw_reset(&self) -> &CtrlSwReset {
451 &self.ctrl_sw_reset
452 }
453 #[doc = "0x780 - Interrupt configuration"]
454 #[inline(always)]
455 pub const fn ctrl_int_cfg(&self) -> &CtrlIntCfg {
456 &self.ctrl_int_cfg
457 }
458 #[doc = "0x784 - Interrupt enable"]
459 #[inline(always)]
460 pub const fn ctrl_int_en(&self) -> &CtrlIntEn {
461 &self.ctrl_int_en
462 }
463 #[doc = "0x788 - Interrupt clear"]
464 #[inline(always)]
465 pub const fn ctrl_int_clr(&self) -> &CtrlIntClr {
466 &self.ctrl_int_clr
467 }
468 #[doc = "0x78c - Interrupt set"]
469 #[inline(always)]
470 pub const fn ctrl_int_set(&self) -> &CtrlIntSet {
471 &self.ctrl_int_set
472 }
473 #[doc = "0x790 - Interrupt status"]
474 #[inline(always)]
475 pub const fn ctrl_int_stat(&self) -> &CtrlIntStat {
476 &self.ctrl_int_stat
477 }
478 #[doc = "0x7f8 - Options register"]
479 #[inline(always)]
480 pub const fn ctrl_options(&self) -> &CtrlOptions {
481 &self.ctrl_options
482 }
483 #[doc = "0x7fc - Version register"]
484 #[inline(always)]
485 pub const fn ctrl_version(&self) -> &CtrlVersion {
486 &self.ctrl_version
487 }
488}
489#[doc = "DMAC_CH0_CTRL (rw) register accessor: Channel control This register is used for channel enabling and priority selection. When a channel is disabled, it becomes inactive only when all ongoing requests are finished.\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_ch0_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmac_ch0_ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_ch0_ctrl`]
490module"]
491#[doc(alias = "DMAC_CH0_CTRL")]
492pub type DmacCh0Ctrl = crate::Reg<dmac_ch0_ctrl::DmacCh0CtrlSpec>;
493#[doc = "Channel control This register is used for channel enabling and priority selection. When a channel is disabled, it becomes inactive only when all ongoing requests are finished."]
494pub mod dmac_ch0_ctrl;
495#[doc = "DMAC_CH0_EXTADDR (rw) register accessor: Channel external address\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_ch0_extaddr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmac_ch0_extaddr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_ch0_extaddr`]
496module"]
497#[doc(alias = "DMAC_CH0_EXTADDR")]
498pub type DmacCh0Extaddr = crate::Reg<dmac_ch0_extaddr::DmacCh0ExtaddrSpec>;
499#[doc = "Channel external address"]
500pub mod dmac_ch0_extaddr;
501#[doc = "DMAC_CH0_DMALENGTH (rw) register accessor: Channel DMA length\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_ch0_dmalength::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmac_ch0_dmalength::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_ch0_dmalength`]
502module"]
503#[doc(alias = "DMAC_CH0_DMALENGTH")]
504pub type DmacCh0Dmalength = crate::Reg<dmac_ch0_dmalength::DmacCh0DmalengthSpec>;
505#[doc = "Channel DMA length"]
506pub mod dmac_ch0_dmalength;
507#[doc = "DMAC_STATUS (r) register accessor: DMAC status This register provides the actual state of each DMA channel. It also reports port errors in case these were received by the master interface module during the data transfer.\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_status::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_status`]
508module"]
509#[doc(alias = "DMAC_STATUS")]
510pub type DmacStatus = crate::Reg<dmac_status::DmacStatusSpec>;
511#[doc = "DMAC status This register provides the actual state of each DMA channel. It also reports port errors in case these were received by the master interface module during the data transfer."]
512pub mod dmac_status;
513#[doc = "DMAC_SWRES (w) register accessor: DMAC software reset register Software reset is used to reset the DMAC to stop all transfers and clears the port error status register. After the software reset is performed, all the channels are disabled and no new requests are performed by the channels. The DMAC waits for the existing (active) requests to finish and accordingly sets the DMAC status registers.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmac_swres::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_swres`]
514module"]
515#[doc(alias = "DMAC_SWRES")]
516pub type DmacSwres = crate::Reg<dmac_swres::DmacSwresSpec>;
517#[doc = "DMAC software reset register Software reset is used to reset the DMAC to stop all transfers and clears the port error status register. After the software reset is performed, all the channels are disabled and no new requests are performed by the channels. The DMAC waits for the existing (active) requests to finish and accordingly sets the DMAC status registers."]
518pub mod dmac_swres;
519#[doc = "DMAC_CH1_CTRL (rw) register accessor: Channel control This register is used for channel enabling and priority selection. When a channel is disabled, it becomes inactive only when all ongoing requests are finished.\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_ch1_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmac_ch1_ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_ch1_ctrl`]
520module"]
521#[doc(alias = "DMAC_CH1_CTRL")]
522pub type DmacCh1Ctrl = crate::Reg<dmac_ch1_ctrl::DmacCh1CtrlSpec>;
523#[doc = "Channel control This register is used for channel enabling and priority selection. When a channel is disabled, it becomes inactive only when all ongoing requests are finished."]
524pub mod dmac_ch1_ctrl;
525#[doc = "DMAC_CH1_EXTADDR (rw) register accessor: Channel external address\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_ch1_extaddr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmac_ch1_extaddr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_ch1_extaddr`]
526module"]
527#[doc(alias = "DMAC_CH1_EXTADDR")]
528pub type DmacCh1Extaddr = crate::Reg<dmac_ch1_extaddr::DmacCh1ExtaddrSpec>;
529#[doc = "Channel external address"]
530pub mod dmac_ch1_extaddr;
531#[doc = "DMAC_CH1_DMALENGTH (rw) register accessor: Channel DMA length\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_ch1_dmalength::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmac_ch1_dmalength::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_ch1_dmalength`]
532module"]
533#[doc(alias = "DMAC_CH1_DMALENGTH")]
534pub type DmacCh1Dmalength = crate::Reg<dmac_ch1_dmalength::DmacCh1DmalengthSpec>;
535#[doc = "Channel DMA length"]
536pub mod dmac_ch1_dmalength;
537#[doc = "DMAC_MST_RUNPARAMS (rw) register accessor: DMAC master run-time parameters This register defines all the run-time parameters for the AHB master interface port. These parameters are required for the proper functioning of the EIP-101m AHB master adapter.\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_mst_runparams::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dmac_mst_runparams::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_mst_runparams`]
538module"]
539#[doc(alias = "DMAC_MST_RUNPARAMS")]
540pub type DmacMstRunparams = crate::Reg<dmac_mst_runparams::DmacMstRunparamsSpec>;
541#[doc = "DMAC master run-time parameters This register defines all the run-time parameters for the AHB master interface port. These parameters are required for the proper functioning of the EIP-101m AHB master adapter."]
542pub mod dmac_mst_runparams;
543#[doc = "DMAC_PERSR (r) register accessor: DMAC port error raw status register This register provides the actual status of individual port errors. It also indicates which channel is serviced by an external AHB port (which is frozen by a port error). A port error aborts operations on all serviced channels (channel enable bit is forced to 0) and prevents further transfers via that port until the error is cleared by writing to the DMAC_SWRES register.\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_persr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_persr`]
544module"]
545#[doc(alias = "DMAC_PERSR")]
546pub type DmacPersr = crate::Reg<dmac_persr::DmacPersrSpec>;
547#[doc = "DMAC port error raw status register This register provides the actual status of individual port errors. It also indicates which channel is serviced by an external AHB port (which is frozen by a port error). A port error aborts operations on all serviced channels (channel enable bit is forced to 0) and prevents further transfers via that port until the error is cleared by writing to the DMAC_SWRES register."]
548pub mod dmac_persr;
549#[doc = "DMAC_OPTIONS (r) register accessor: DMAC options register These registers contain information regarding the different options configured in this DMAC.\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_options::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_options`]
550module"]
551#[doc(alias = "DMAC_OPTIONS")]
552pub type DmacOptions = crate::Reg<dmac_options::DmacOptionsSpec>;
553#[doc = "DMAC options register These registers contain information regarding the different options configured in this DMAC."]
554pub mod dmac_options;
555#[doc = "DMAC_VERSION (r) register accessor: DMAC version register This register contains an indication (or signature) of the EIP type of this DMAC, as well as the hardware version/patch numbers.\n\nYou can [`read`](crate::Reg::read) this register and get [`dmac_version::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmac_version`]
556module"]
557#[doc(alias = "DMAC_VERSION")]
558pub type DmacVersion = crate::Reg<dmac_version::DmacVersionSpec>;
559#[doc = "DMAC version register This register contains an indication (or signature) of the EIP type of this DMAC, as well as the hardware version/patch numbers."]
560pub mod dmac_version;
561#[doc = "KEY_STORE_WRITE_AREA (rw) register accessor: Key store write area register This register defines where the keys should be written in the key store RAM. After writing this register, the key store module is ready to receive the keys through a DMA operation. In case the key data transfer triggered an error in the key store, the error will be available in the interrupt status register after the DMA is finished. The key store write-error is asserted when the programmed/selected area is not completely written. This error is also asserted when the DMA operation writes to ram areas that are not selected. The key store RAM is divided into 8 areas of 128 bits. 192-bit keys written in the key store RAM should start on boundaries of 256 bits. This means that writing a 192-bit key to the key store RAM must be done by writing 256 bits of data with the 64 most-significant bits set to 0. These bits are ignored by the AES engine.\n\nYou can [`read`](crate::Reg::read) this register and get [`key_store_write_area::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`key_store_write_area::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@key_store_write_area`]
562module"]
563#[doc(alias = "KEY_STORE_WRITE_AREA")]
564pub type KeyStoreWriteArea = crate::Reg<key_store_write_area::KeyStoreWriteAreaSpec>;
565#[doc = "Key store write area register This register defines where the keys should be written in the key store RAM. After writing this register, the key store module is ready to receive the keys through a DMA operation. In case the key data transfer triggered an error in the key store, the error will be available in the interrupt status register after the DMA is finished. The key store write-error is asserted when the programmed/selected area is not completely written. This error is also asserted when the DMA operation writes to ram areas that are not selected. The key store RAM is divided into 8 areas of 128 bits. 192-bit keys written in the key store RAM should start on boundaries of 256 bits. This means that writing a 192-bit key to the key store RAM must be done by writing 256 bits of data with the 64 most-significant bits set to 0. These bits are ignored by the AES engine."]
566pub mod key_store_write_area;
567#[doc = "KEY_STORE_WRITTEN_AREA (rw) register accessor: Key store written area register This register shows which areas of the key store RAM contain valid written keys. When a new key needs to be written to the key store, on a location that is already occupied by a valid key, this key area must be cleared first. This can be done by writing this register before the new key is written to the key store memory. Attempting to write to a key area that already contains a valid key is not allowed and results in an error.\n\nYou can [`read`](crate::Reg::read) this register and get [`key_store_written_area::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`key_store_written_area::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@key_store_written_area`]
568module"]
569#[doc(alias = "KEY_STORE_WRITTEN_AREA")]
570pub type KeyStoreWrittenArea = crate::Reg<key_store_written_area::KeyStoreWrittenAreaSpec>;
571#[doc = "Key store written area register This register shows which areas of the key store RAM contain valid written keys. When a new key needs to be written to the key store, on a location that is already occupied by a valid key, this key area must be cleared first. This can be done by writing this register before the new key is written to the key store memory. Attempting to write to a key area that already contains a valid key is not allowed and results in an error."]
572pub mod key_store_written_area;
573#[doc = "KEY_STORE_SIZE (rw) register accessor: Key store size register This register defines the size of the keys that are written with DMA. This register should be configured before writing to the KEY_STORE_WRITE_AREA register.\n\nYou can [`read`](crate::Reg::read) this register and get [`key_store_size::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`key_store_size::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@key_store_size`]
574module"]
575#[doc(alias = "KEY_STORE_SIZE")]
576pub type KeyStoreSize = crate::Reg<key_store_size::KeyStoreSizeSpec>;
577#[doc = "Key store size register This register defines the size of the keys that are written with DMA. This register should be configured before writing to the KEY_STORE_WRITE_AREA register."]
578pub mod key_store_size;
579#[doc = "KEY_STORE_READ_AREA (rw) register accessor: Key store read area register This register selects the key store RAM area from where the key needs to be read that will be used for an AES operation. The operation directly starts after writing this register. When the operation is finished, the status of the key store read operation is available in the interrupt status register. Key store read error is asserted when a RAM area is selected which does not contain valid written key.\n\nYou can [`read`](crate::Reg::read) this register and get [`key_store_read_area::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`key_store_read_area::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@key_store_read_area`]
580module"]
581#[doc(alias = "KEY_STORE_READ_AREA")]
582pub type KeyStoreReadArea = crate::Reg<key_store_read_area::KeyStoreReadAreaSpec>;
583#[doc = "Key store read area register This register selects the key store RAM area from where the key needs to be read that will be used for an AES operation. The operation directly starts after writing this register. When the operation is finished, the status of the key store read operation is available in the interrupt status register. Key store read error is asserted when a RAM area is selected which does not contain valid written key."]
584pub mod key_store_read_area;
585#[doc = "AES_KEY2_0 (w) register accessor: AES_KEY2_0 / AES_GHASH_H_IN_0 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_key2_0::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_key2_0`]
586module"]
587#[doc(alias = "AES_KEY2_0")]
588pub type AesKey2_0 = crate::Reg<aes_key2_0::AesKey2_0Spec>;
589#[doc = "AES_KEY2_0 / AES_GHASH_H_IN_0 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
590pub mod aes_key2_0;
591#[doc = "AES_KEY2_1 (w) register accessor: AES_KEY2_1 / AES_GHASH_H_IN_1 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_key2_1::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_key2_1`]
592module"]
593#[doc(alias = "AES_KEY2_1")]
594pub type AesKey2_1 = crate::Reg<aes_key2_1::AesKey2_1Spec>;
595#[doc = "AES_KEY2_1 / AES_GHASH_H_IN_1 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
596pub mod aes_key2_1;
597#[doc = "AES_KEY2_2 (w) register accessor: AES_KEY2_2 / AES_GHASH_H_IN_2 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_key2_2::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_key2_2`]
598module"]
599#[doc(alias = "AES_KEY2_2")]
600pub type AesKey2_2 = crate::Reg<aes_key2_2::AesKey2_2Spec>;
601#[doc = "AES_KEY2_2 / AES_GHASH_H_IN_2 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
602pub mod aes_key2_2;
603#[doc = "AES_KEY2_3 (w) register accessor: AES_KEY2_3 / AES_GHASH_H_IN_3 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_key2_3::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_key2_3`]
604module"]
605#[doc(alias = "AES_KEY2_3")]
606pub type AesKey2_3 = crate::Reg<aes_key2_3::AesKey2_3Spec>;
607#[doc = "AES_KEY2_3 / AES_GHASH_H_IN_3 Second Key / GHASH Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
608pub mod aes_key2_3;
609#[doc = "AES_KEY3_0 (w) register accessor: AES_KEY3_0 / AES_KEY2_4 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_key3_0::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_key3_0`]
610module"]
611#[doc(alias = "AES_KEY3_0")]
612pub type AesKey3_0 = crate::Reg<aes_key3_0::AesKey3_0Spec>;
613#[doc = "AES_KEY3_0 / AES_KEY2_4 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
614pub mod aes_key3_0;
615#[doc = "AES_KEY3_1 (w) register accessor: AES_KEY3_1 / AES_KEY2_5 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_key3_1::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_key3_1`]
616module"]
617#[doc(alias = "AES_KEY3_1")]
618pub type AesKey3_1 = crate::Reg<aes_key3_1::AesKey3_1Spec>;
619#[doc = "AES_KEY3_1 / AES_KEY2_5 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
620pub mod aes_key3_1;
621#[doc = "AES_KEY3_2 (w) register accessor: AES_KEY3_2 / AES_KEY2_6 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_key3_2::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_key3_2`]
622module"]
623#[doc(alias = "AES_KEY3_2")]
624pub type AesKey3_2 = crate::Reg<aes_key3_2::AesKey3_2Spec>;
625#[doc = "AES_KEY3_2 / AES_KEY2_6 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
626pub mod aes_key3_2;
627#[doc = "AES_KEY3_3 (w) register accessor: AES_KEY3_3 / AES_KEY2_7 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_key3_3::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_key3_3`]
628module"]
629#[doc(alias = "AES_KEY3_3")]
630pub type AesKey3_3 = crate::Reg<aes_key3_3::AesKey3_3Spec>;
631#[doc = "AES_KEY3_3 / AES_KEY2_7 Third Key / Second Key (internal, but clearable) The following registers are not accessible through the host for reading and writing. They are used to store internally calculated key information and intermediate results. However, when the host performs a write to the any of the respective AES_KEY2_n or AES_KEY3_n addresses, respectively the whole 128-bit AES_KEY2_n or AES_KEY3_n register is cleared to 0s. The AES_GHASH_H_IN_n registers (required for GHASH, which is part of GCM) are mapped to the AES_KEY2_n registers. The (intermediate) authentication result for GCM and CCM is stored in the AES_KEY3_n register."]
632pub mod aes_key3_3;
633#[doc = "AES_IV_0 (rw) register accessor: AES initialization vector registers These registers are used to provide and read the IV from the AES engine.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_iv_0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_iv_0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_iv_0`]
634module"]
635#[doc(alias = "AES_IV_0")]
636pub type AesIv0 = crate::Reg<aes_iv_0::AesIv0Spec>;
637#[doc = "AES initialization vector registers These registers are used to provide and read the IV from the AES engine."]
638pub mod aes_iv_0;
639#[doc = "AES_IV_1 (rw) register accessor: AES initialization vector registers These registers are used to provide and read the IV from the AES engine.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_iv_1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_iv_1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_iv_1`]
640module"]
641#[doc(alias = "AES_IV_1")]
642pub type AesIv1 = crate::Reg<aes_iv_1::AesIv1Spec>;
643#[doc = "AES initialization vector registers These registers are used to provide and read the IV from the AES engine."]
644pub mod aes_iv_1;
645#[doc = "AES_IV_2 (rw) register accessor: AES initialization vector registers These registers are used to provide and read the IV from the AES engine.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_iv_2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_iv_2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_iv_2`]
646module"]
647#[doc(alias = "AES_IV_2")]
648pub type AesIv2 = crate::Reg<aes_iv_2::AesIv2Spec>;
649#[doc = "AES initialization vector registers These registers are used to provide and read the IV from the AES engine."]
650pub mod aes_iv_2;
651#[doc = "AES_IV_3 (rw) register accessor: AES initialization vector registers These registers are used to provide and read the IV from the AES engine.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_iv_3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_iv_3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_iv_3`]
652module"]
653#[doc(alias = "AES_IV_3")]
654pub type AesIv3 = crate::Reg<aes_iv_3::AesIv3Spec>;
655#[doc = "AES initialization vector registers These registers are used to provide and read the IV from the AES engine."]
656pub mod aes_iv_3;
657#[doc = "AES_CTRL (rw) register accessor: AES input/output buffer control and mode register This register specifies the AES mode of operation for the EIP-120t. Electronic codebook (ECB) mode is automatically selected if bits \\[28:5\\]
658of this register are all 0.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_ctrl`]
659module"]
660#[doc(alias = "AES_CTRL")]
661pub type AesCtrl = crate::Reg<aes_ctrl::AesCtrlSpec>;
662#[doc = "AES input/output buffer control and mode register This register specifies the AES mode of operation for the EIP-120t. Electronic codebook (ECB) mode is automatically selected if bits \\[28:5\\]
663of this register are all 0."]
664pub mod aes_ctrl;
665#[doc = "AES_C_LENGTH_0 (rw) register accessor: AES crypto length registers (LSW) These registers are used to write the Length values to the EIP-120t. While processing, the length values decrement to 0. If both lengths are 0, the data stream is finished and a new context is requested. For basic AES modes (ECB, CBC, and CTR), a crypto length of 0 can be written if multiple streams need to be processed with the same key. Writing 0 length results in continued data requests until a new context is written. For the other modes (CBC-MAC, GCM, and CCM) no (new) data requests are done if the length decrements to or equals 0. It is advised to write a new length per packet. If the length registers decrement to 0, no new data is processed until a new context or length value is written. When writing a new mode without writing the length registers, the length register values from the previous context is reused.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_c_length_0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_c_length_0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_c_length_0`]
666module"]
667#[doc(alias = "AES_C_LENGTH_0")]
668pub type AesCLength0 = crate::Reg<aes_c_length_0::AesCLength0Spec>;
669#[doc = "AES crypto length registers (LSW) These registers are used to write the Length values to the EIP-120t. While processing, the length values decrement to 0. If both lengths are 0, the data stream is finished and a new context is requested. For basic AES modes (ECB, CBC, and CTR), a crypto length of 0 can be written if multiple streams need to be processed with the same key. Writing 0 length results in continued data requests until a new context is written. For the other modes (CBC-MAC, GCM, and CCM) no (new) data requests are done if the length decrements to or equals 0. It is advised to write a new length per packet. If the length registers decrement to 0, no new data is processed until a new context or length value is written. When writing a new mode without writing the length registers, the length register values from the previous context is reused."]
670pub mod aes_c_length_0;
671#[doc = "AES_C_LENGTH_1 (w) register accessor: AES crypto length registers (MSW) These registers are used to write the Length values to the EIP-120t. While processing, the length values decrement to 0. If both lengths are 0, the data stream is finished and a new context is requested. For basic AES modes (ECB, CBC, and CTR), a crypto length of 0 can be written if multiple streams need to be processed with the same key. Writing 0 length results in continued data requests until a new context is written. For the other modes (CBC-MAC, GCM and CCM) no (new) data requests are done if the length decrements to or equals 0. It is advised to write a new length per packet. If the length registers decrement to 0, no new data is processed until a new context or length value is written. When writing a new mode without writing the length registers, the length register values from the previous context is reused.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_c_length_1::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_c_length_1`]
672module"]
673#[doc(alias = "AES_C_LENGTH_1")]
674pub type AesCLength1 = crate::Reg<aes_c_length_1::AesCLength1Spec>;
675#[doc = "AES crypto length registers (MSW) These registers are used to write the Length values to the EIP-120t. While processing, the length values decrement to 0. If both lengths are 0, the data stream is finished and a new context is requested. For basic AES modes (ECB, CBC, and CTR), a crypto length of 0 can be written if multiple streams need to be processed with the same key. Writing 0 length results in continued data requests until a new context is written. For the other modes (CBC-MAC, GCM and CCM) no (new) data requests are done if the length decrements to or equals 0. It is advised to write a new length per packet. If the length registers decrement to 0, no new data is processed until a new context or length value is written. When writing a new mode without writing the length registers, the length register values from the previous context is reused."]
676pub mod aes_c_length_1;
677#[doc = "AES_AUTH_LENGTH (w) register accessor: Authentication length register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_auth_length::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_auth_length`]
678module"]
679#[doc(alias = "AES_AUTH_LENGTH")]
680pub type AesAuthLength = crate::Reg<aes_auth_length::AesAuthLengthSpec>;
681#[doc = "Authentication length register"]
682pub mod aes_auth_length;
683#[doc = "AES_DATA_IN_OUT_0 (w) register accessor: Data input/output registers The data registers are typically accessed through the DMA and not with host writes and/or reads. However, for debugging purposes the data input/output registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_data_in_out_0::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_data_in_out_0`]
684module"]
685#[doc(alias = "AES_DATA_IN_OUT_0")]
686pub type AesDataInOut0 = crate::Reg<aes_data_in_out_0::AesDataInOut0Spec>;
687#[doc = "Data input/output registers The data registers are typically accessed through the DMA and not with host writes and/or reads. However, for debugging purposes the data input/output registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface."]
688pub mod aes_data_in_out_0;
689#[doc = "AES_DATA_IN_OUT_1 (w) register accessor: Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_data_in_out_1::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_data_in_out_1`]
690module"]
691#[doc(alias = "AES_DATA_IN_OUT_1")]
692pub type AesDataInOut1 = crate::Reg<aes_data_in_out_1::AesDataInOut1Spec>;
693#[doc = "Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface."]
694pub mod aes_data_in_out_1;
695#[doc = "AES_DATA_IN_OUT_2 (w) register accessor: Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_data_in_out_2::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_data_in_out_2`]
696module"]
697#[doc(alias = "AES_DATA_IN_OUT_2")]
698pub type AesDataInOut2 = crate::Reg<aes_data_in_out_2::AesDataInOut2Spec>;
699#[doc = "Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface."]
700pub mod aes_data_in_out_2;
701#[doc = "AES_DATA_IN_OUT_3 (w) register accessor: Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`aes_data_in_out_3::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_data_in_out_3`]
702module"]
703#[doc(alias = "AES_DATA_IN_OUT_3")]
704pub type AesDataInOut3 = crate::Reg<aes_data_in_out_3::AesDataInOut3Spec>;
705#[doc = "Data Input/Output Registers The data registers are typically accessed via DMA and not with host writes and/or reads. However, for debugging purposes the Data Input/Output Registers can be accessed via host write and read operations. The registers are used to buffer the input/output data blocks to/from the EIP-120t. Note: The data input buffer (AES_DATA_IN_n) and data output buffer (AES_DATA_OUT_n) are mapped to the same address locations. Writes (both DMA and host) to these addresses load the Input Buffer while reads pull from the Output Buffer. Therefore, for write access, the data input buffer is written; for read access, the data output buffer is read. The data input buffer must be written before starting an operation. The data output buffer contains valid data on completion of an operation. Therefore, any 128-bit data block can be split over multiple 32-bit word transfers; these can be mixed with other host transfers over the external interface."]
706pub mod aes_data_in_out_3;
707#[doc = "AES_TAG_OUT_0 (r) register accessor: TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order will return the IV twice.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_tag_out_0::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_tag_out_0`]
708module"]
709#[doc(alias = "AES_TAG_OUT_0")]
710pub type AesTagOut0 = crate::Reg<aes_tag_out_0::AesTagOut0Spec>;
711#[doc = "TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order will return the IV twice."]
712pub mod aes_tag_out_0;
713#[doc = "AES_TAG_OUT_1 (r) register accessor: TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_tag_out_1::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_tag_out_1`]
714module"]
715#[doc(alias = "AES_TAG_OUT_1")]
716pub type AesTagOut1 = crate::Reg<aes_tag_out_1::AesTagOut1Spec>;
717#[doc = "TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice."]
718pub mod aes_tag_out_1;
719#[doc = "AES_TAG_OUT_2 (r) register accessor: TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_tag_out_2::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_tag_out_2`]
720module"]
721#[doc(alias = "AES_TAG_OUT_2")]
722pub type AesTagOut2 = crate::Reg<aes_tag_out_2::AesTagOut2Spec>;
723#[doc = "TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice."]
724pub mod aes_tag_out_2;
725#[doc = "AES_TAG_OUT_3 (r) register accessor: TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice.\n\nYou can [`read`](crate::Reg::read) this register and get [`aes_tag_out_3::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@aes_tag_out_3`]
726module"]
727#[doc(alias = "AES_TAG_OUT_3")]
728pub type AesTagOut3 = crate::Reg<aes_tag_out_3::AesTagOut3Spec>;
729#[doc = "TAG registers The tag registers can be accessed via DMA or directly with host reads. These registers buffer the TAG from the EIP-120t. The registers are shared with the intermediate authentication result registers, but cannot be read until the processing is finished. While processing, a read from these registers returns 0s. If an operation does not return a TAG, reading from these registers returns an IV. If an operation returns a TAG plus an IV and both need to be read by the host, the host must first read the TAG followed by the IV. Reading these in reverse order returns the IV twice."]
730pub mod aes_tag_out_3;
731#[doc = "HASH_DATA_IN_0 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_0::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_0`]
732module"]
733#[doc(alias = "HASH_DATA_IN_0")]
734pub type HashDataIn0 = crate::Reg<hash_data_in_0::HashDataIn0Spec>;
735#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
736pub mod hash_data_in_0;
737#[doc = "HASH_DATA_IN_1 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_1::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_1`]
738module"]
739#[doc(alias = "HASH_DATA_IN_1")]
740pub type HashDataIn1 = crate::Reg<hash_data_in_1::HashDataIn1Spec>;
741#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
742pub mod hash_data_in_1;
743#[doc = "HASH_DATA_IN_2 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_2::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_2`]
744module"]
745#[doc(alias = "HASH_DATA_IN_2")]
746pub type HashDataIn2 = crate::Reg<hash_data_in_2::HashDataIn2Spec>;
747#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
748pub mod hash_data_in_2;
749#[doc = "HASH_DATA_IN_3 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_3::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_3`]
750module"]
751#[doc(alias = "HASH_DATA_IN_3")]
752pub type HashDataIn3 = crate::Reg<hash_data_in_3::HashDataIn3Spec>;
753#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
754pub mod hash_data_in_3;
755#[doc = "HASH_DATA_IN_4 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_4::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_4`]
756module"]
757#[doc(alias = "HASH_DATA_IN_4")]
758pub type HashDataIn4 = crate::Reg<hash_data_in_4::HashDataIn4Spec>;
759#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
760pub mod hash_data_in_4;
761#[doc = "HASH_DATA_IN_5 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_5::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_5`]
762module"]
763#[doc(alias = "HASH_DATA_IN_5")]
764pub type HashDataIn5 = crate::Reg<hash_data_in_5::HashDataIn5Spec>;
765#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
766pub mod hash_data_in_5;
767#[doc = "HASH_DATA_IN_6 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_6::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_6`]
768module"]
769#[doc(alias = "HASH_DATA_IN_6")]
770pub type HashDataIn6 = crate::Reg<hash_data_in_6::HashDataIn6Spec>;
771#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
772pub mod hash_data_in_6;
773#[doc = "HASH_DATA_IN_7 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_7::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_7`]
774module"]
775#[doc(alias = "HASH_DATA_IN_7")]
776pub type HashDataIn7 = crate::Reg<hash_data_in_7::HashDataIn7Spec>;
777#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
778pub mod hash_data_in_7;
779#[doc = "HASH_DATA_IN_8 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_8::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_8`]
780module"]
781#[doc(alias = "HASH_DATA_IN_8")]
782pub type HashDataIn8 = crate::Reg<hash_data_in_8::HashDataIn8Spec>;
783#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
784pub mod hash_data_in_8;
785#[doc = "HASH_DATA_IN_9 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_9::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_9`]
786module"]
787#[doc(alias = "HASH_DATA_IN_9")]
788pub type HashDataIn9 = crate::Reg<hash_data_in_9::HashDataIn9Spec>;
789#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
790pub mod hash_data_in_9;
791#[doc = "HASH_DATA_IN_10 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_10::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_10`]
792module"]
793#[doc(alias = "HASH_DATA_IN_10")]
794pub type HashDataIn10 = crate::Reg<hash_data_in_10::HashDataIn10Spec>;
795#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
796pub mod hash_data_in_10;
797#[doc = "HASH_DATA_IN_11 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_11::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_11`]
798module"]
799#[doc(alias = "HASH_DATA_IN_11")]
800pub type HashDataIn11 = crate::Reg<hash_data_in_11::HashDataIn11Spec>;
801#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
802pub mod hash_data_in_11;
803#[doc = "HASH_DATA_IN_12 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_12::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_12`]
804module"]
805#[doc(alias = "HASH_DATA_IN_12")]
806pub type HashDataIn12 = crate::Reg<hash_data_in_12::HashDataIn12Spec>;
807#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
808pub mod hash_data_in_12;
809#[doc = "HASH_DATA_IN_13 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_13::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_13`]
810module"]
811#[doc(alias = "HASH_DATA_IN_13")]
812pub type HashDataIn13 = crate::Reg<hash_data_in_13::HashDataIn13Spec>;
813#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
814pub mod hash_data_in_13;
815#[doc = "HASH_DATA_IN_14 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_14::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_14`]
816module"]
817#[doc(alias = "HASH_DATA_IN_14")]
818pub type HashDataIn14 = crate::Reg<hash_data_in_14::HashDataIn14Spec>;
819#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
820pub mod hash_data_in_14;
821#[doc = "HASH_DATA_IN_15 (w) register accessor: HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_data_in_15::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_data_in_15`]
822module"]
823#[doc(alias = "HASH_DATA_IN_15")]
824pub type HashDataIn15 = crate::Reg<hash_data_in_15::HashDataIn15Spec>;
825#[doc = "HASH data input registers The data input registers should be used to provide input data to the hash module through the slave interface."]
826pub mod hash_data_in_15;
827#[doc = "HASH_IO_BUF_CTRL (rw) register accessor: Input/output buffer control and status register This register pair shares a single address location and contains bits that control and monitor the data flow between the host and the hash engine.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_io_buf_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_io_buf_ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_io_buf_ctrl`]
828module"]
829#[doc(alias = "HASH_IO_BUF_CTRL")]
830pub type HashIoBufCtrl = crate::Reg<hash_io_buf_ctrl::HashIoBufCtrlSpec>;
831#[doc = "Input/output buffer control and status register This register pair shares a single address location and contains bits that control and monitor the data flow between the host and the hash engine."]
832pub mod hash_io_buf_ctrl;
833#[doc = "HASH_MODE_IN (w) register accessor: Hash mode register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_mode_in::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_mode_in`]
834module"]
835#[doc(alias = "HASH_MODE_IN")]
836pub type HashModeIn = crate::Reg<hash_mode_in::HashModeInSpec>;
837#[doc = "Hash mode register"]
838pub mod hash_mode_in;
839#[doc = "HASH_LENGTH_IN_L (w) register accessor: Hash length register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_length_in_l::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_length_in_l`]
840module"]
841#[doc(alias = "HASH_LENGTH_IN_L")]
842pub type HashLengthInL = crate::Reg<hash_length_in_l::HashLengthInLSpec>;
843#[doc = "Hash length register"]
844pub mod hash_length_in_l;
845#[doc = "HASH_LENGTH_IN_H (w) register accessor: Hash length register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_length_in_h::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_length_in_h`]
846module"]
847#[doc(alias = "HASH_LENGTH_IN_H")]
848pub type HashLengthInH = crate::Reg<hash_length_in_h::HashLengthInHSpec>;
849#[doc = "Hash length register"]
850pub mod hash_length_in_h;
851#[doc = "HASH_DIGEST_A (rw) register accessor: Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_digest_a::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_digest_a::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_digest_a`]
852module"]
853#[doc(alias = "HASH_DIGEST_A")]
854pub type HashDigestA = crate::Reg<hash_digest_a::HashDigestASpec>;
855#[doc = "Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
856pub mod hash_digest_a;
857#[doc = "HASH_DIGEST_B (rw) register accessor: Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_digest_b::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_digest_b::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_digest_b`]
858module"]
859#[doc(alias = "HASH_DIGEST_B")]
860pub type HashDigestB = crate::Reg<hash_digest_b::HashDigestBSpec>;
861#[doc = "Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
862pub mod hash_digest_b;
863#[doc = "HASH_DIGEST_C (rw) register accessor: Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_digest_c::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_digest_c::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_digest_c`]
864module"]
865#[doc(alias = "HASH_DIGEST_C")]
866pub type HashDigestC = crate::Reg<hash_digest_c::HashDigestCSpec>;
867#[doc = "Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
868pub mod hash_digest_c;
869#[doc = "HASH_DIGEST_D (rw) register accessor: Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_digest_d::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_digest_d::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_digest_d`]
870module"]
871#[doc(alias = "HASH_DIGEST_D")]
872pub type HashDigestD = crate::Reg<hash_digest_d::HashDigestDSpec>;
873#[doc = "Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
874pub mod hash_digest_d;
875#[doc = "HASH_DIGEST_E (rw) register accessor: Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_digest_e::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_digest_e::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_digest_e`]
876module"]
877#[doc(alias = "HASH_DIGEST_E")]
878pub type HashDigestE = crate::Reg<hash_digest_e::HashDigestESpec>;
879#[doc = "Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
880pub mod hash_digest_e;
881#[doc = "HASH_DIGEST_F (rw) register accessor: Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_digest_f::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_digest_f::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_digest_f`]
882module"]
883#[doc(alias = "HASH_DIGEST_F")]
884pub type HashDigestF = crate::Reg<hash_digest_f::HashDigestFSpec>;
885#[doc = "Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
886pub mod hash_digest_f;
887#[doc = "HASH_DIGEST_G (rw) register accessor: Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_digest_g::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_digest_g::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_digest_g`]
888module"]
889#[doc(alias = "HASH_DIGEST_G")]
890pub type HashDigestG = crate::Reg<hash_digest_g::HashDigestGSpec>;
891#[doc = "Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
892pub mod hash_digest_g;
893#[doc = "HASH_DIGEST_H (rw) register accessor: Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations.\n\nYou can [`read`](crate::Reg::read) this register and get [`hash_digest_h::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hash_digest_h::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hash_digest_h`]
894module"]
895#[doc(alias = "HASH_DIGEST_H")]
896pub type HashDigestH = crate::Reg<hash_digest_h::HashDigestHSpec>;
897#[doc = "Hash digest registers The hash digest registers consist of eight 32-bit registers, named HASH_DIGEST_A to HASH_DIGEST_H. After processing a message, the output digest can be read from these registers. These registers can be written with an intermediate hash result for continued hash operations."]
898pub mod hash_digest_h;
899#[doc = "CTRL_ALG_SEL (rw) register accessor: Algorithm select This algorithm selection register configures the internal destination of the DMA controller.\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl_alg_sel::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl_alg_sel::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_alg_sel`]
900module"]
901#[doc(alias = "CTRL_ALG_SEL")]
902pub type CtrlAlgSel = crate::Reg<ctrl_alg_sel::CtrlAlgSelSpec>;
903#[doc = "Algorithm select This algorithm selection register configures the internal destination of the DMA controller."]
904pub mod ctrl_alg_sel;
905#[doc = "CTRL_PROT_EN (rw) register accessor: Master PROT privileged access enable This register enables the second bit (bit \\[1\\]) of the AHB HPROT bus of the AHB master interface when a read action of key(s) is performed on the AHB master interface for writing keys into the store module.\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl_prot_en::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl_prot_en::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_prot_en`]
906module"]
907#[doc(alias = "CTRL_PROT_EN")]
908pub type CtrlProtEn = crate::Reg<ctrl_prot_en::CtrlProtEnSpec>;
909#[doc = "Master PROT privileged access enable This register enables the second bit (bit \\[1\\]) of the AHB HPROT bus of the AHB master interface when a read action of key(s) is performed on the AHB master interface for writing keys into the store module."]
910pub mod ctrl_prot_en;
911#[doc = "CTRL_SW_RESET (rw) register accessor: Software reset\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl_sw_reset::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl_sw_reset::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_sw_reset`]
912module"]
913#[doc(alias = "CTRL_SW_RESET")]
914pub type CtrlSwReset = crate::Reg<ctrl_sw_reset::CtrlSwResetSpec>;
915#[doc = "Software reset"]
916pub mod ctrl_sw_reset;
917#[doc = "CTRL_INT_CFG (rw) register accessor: Interrupt configuration\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl_int_cfg::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl_int_cfg::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_int_cfg`]
918module"]
919#[doc(alias = "CTRL_INT_CFG")]
920pub type CtrlIntCfg = crate::Reg<ctrl_int_cfg::CtrlIntCfgSpec>;
921#[doc = "Interrupt configuration"]
922pub mod ctrl_int_cfg;
923#[doc = "CTRL_INT_EN (rw) register accessor: Interrupt enable\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl_int_en::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl_int_en::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_int_en`]
924module"]
925#[doc(alias = "CTRL_INT_EN")]
926pub type CtrlIntEn = crate::Reg<ctrl_int_en::CtrlIntEnSpec>;
927#[doc = "Interrupt enable"]
928pub mod ctrl_int_en;
929#[doc = "CTRL_INT_CLR (w) register accessor: Interrupt clear\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl_int_clr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_int_clr`]
930module"]
931#[doc(alias = "CTRL_INT_CLR")]
932pub type CtrlIntClr = crate::Reg<ctrl_int_clr::CtrlIntClrSpec>;
933#[doc = "Interrupt clear"]
934pub mod ctrl_int_clr;
935#[doc = "CTRL_INT_SET (w) register accessor: Interrupt set\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl_int_set::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_int_set`]
936module"]
937#[doc(alias = "CTRL_INT_SET")]
938pub type CtrlIntSet = crate::Reg<ctrl_int_set::CtrlIntSetSpec>;
939#[doc = "Interrupt set"]
940pub mod ctrl_int_set;
941#[doc = "CTRL_INT_STAT (r) register accessor: Interrupt status\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl_int_stat::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_int_stat`]
942module"]
943#[doc(alias = "CTRL_INT_STAT")]
944pub type CtrlIntStat = crate::Reg<ctrl_int_stat::CtrlIntStatSpec>;
945#[doc = "Interrupt status"]
946pub mod ctrl_int_stat;
947#[doc = "CTRL_OPTIONS (r) register accessor: Options register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl_options::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_options`]
948module"]
949#[doc(alias = "CTRL_OPTIONS")]
950pub type CtrlOptions = crate::Reg<ctrl_options::CtrlOptionsSpec>;
951#[doc = "Options register"]
952pub mod ctrl_options;
953#[doc = "CTRL_VERSION (r) register accessor: Version register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl_version::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl_version`]
954module"]
955#[doc(alias = "CTRL_VERSION")]
956pub type CtrlVersion = crate::Reg<ctrl_version::CtrlVersionSpec>;
957#[doc = "Version register"]
958pub mod ctrl_version;