Software APIs
aes_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for aes
4 */
5
6// Copyright information found in source file:
7// Copyright lowRISC contributors (OpenTitan project).
8
9// Licensing information found in source file:
10// Licensed under the Apache License, Version 2.0, see LICENSE for details.
11// SPDX-License-Identifier: Apache-2.0
12
13#ifndef _AES_REG_DEFS_
14#define _AES_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number registers for key
20#define AES_PARAM_NUM_REGS_KEY 8
21
22// Number registers for initialization vector
23#define AES_PARAM_NUM_REGS_IV 4
24
25// Number registers for input and output data
26#define AES_PARAM_NUM_REGS_DATA 4
27
28// Number of alerts
29#define AES_PARAM_NUM_ALERTS 2
30
31// Register width
32#define AES_PARAM_REG_WIDTH 32
33
34// Alert Test Register
35#define AES_ALERT_TEST_REG_OFFSET 0x0
36#define AES_ALERT_TEST_REG_RESVAL 0x0u
37#define AES_ALERT_TEST_RECOV_CTRL_UPDATE_ERR_BIT 0
38#define AES_ALERT_TEST_FATAL_FAULT_BIT 1
39
40// Initial Key Registers Share 0.
41#define AES_KEY_SHARE0_KEY_SHARE0_FIELD_WIDTH 32
42#define AES_KEY_SHARE0_MULTIREG_COUNT 8
43
44// Initial Key Registers Share 0.
45#define AES_KEY_SHARE0_0_REG_OFFSET 0x4
46#define AES_KEY_SHARE0_0_REG_RESVAL 0x0u
47
48// Initial Key Registers Share 0.
49#define AES_KEY_SHARE0_1_REG_OFFSET 0x8
50#define AES_KEY_SHARE0_1_REG_RESVAL 0x0u
51
52// Initial Key Registers Share 0.
53#define AES_KEY_SHARE0_2_REG_OFFSET 0xc
54#define AES_KEY_SHARE0_2_REG_RESVAL 0x0u
55
56// Initial Key Registers Share 0.
57#define AES_KEY_SHARE0_3_REG_OFFSET 0x10
58#define AES_KEY_SHARE0_3_REG_RESVAL 0x0u
59
60// Initial Key Registers Share 0.
61#define AES_KEY_SHARE0_4_REG_OFFSET 0x14
62#define AES_KEY_SHARE0_4_REG_RESVAL 0x0u
63
64// Initial Key Registers Share 0.
65#define AES_KEY_SHARE0_5_REG_OFFSET 0x18
66#define AES_KEY_SHARE0_5_REG_RESVAL 0x0u
67
68// Initial Key Registers Share 0.
69#define AES_KEY_SHARE0_6_REG_OFFSET 0x1c
70#define AES_KEY_SHARE0_6_REG_RESVAL 0x0u
71
72// Initial Key Registers Share 0.
73#define AES_KEY_SHARE0_7_REG_OFFSET 0x20
74#define AES_KEY_SHARE0_7_REG_RESVAL 0x0u
75
76// Initial Key Registers Share 1.
77#define AES_KEY_SHARE1_KEY_SHARE1_FIELD_WIDTH 32
78#define AES_KEY_SHARE1_MULTIREG_COUNT 8
79
80// Initial Key Registers Share 1.
81#define AES_KEY_SHARE1_0_REG_OFFSET 0x24
82#define AES_KEY_SHARE1_0_REG_RESVAL 0x0u
83
84// Initial Key Registers Share 1.
85#define AES_KEY_SHARE1_1_REG_OFFSET 0x28
86#define AES_KEY_SHARE1_1_REG_RESVAL 0x0u
87
88// Initial Key Registers Share 1.
89#define AES_KEY_SHARE1_2_REG_OFFSET 0x2c
90#define AES_KEY_SHARE1_2_REG_RESVAL 0x0u
91
92// Initial Key Registers Share 1.
93#define AES_KEY_SHARE1_3_REG_OFFSET 0x30
94#define AES_KEY_SHARE1_3_REG_RESVAL 0x0u
95
96// Initial Key Registers Share 1.
97#define AES_KEY_SHARE1_4_REG_OFFSET 0x34
98#define AES_KEY_SHARE1_4_REG_RESVAL 0x0u
99
100// Initial Key Registers Share 1.
101#define AES_KEY_SHARE1_5_REG_OFFSET 0x38
102#define AES_KEY_SHARE1_5_REG_RESVAL 0x0u
103
104// Initial Key Registers Share 1.
105#define AES_KEY_SHARE1_6_REG_OFFSET 0x3c
106#define AES_KEY_SHARE1_6_REG_RESVAL 0x0u
107
108// Initial Key Registers Share 1.
109#define AES_KEY_SHARE1_7_REG_OFFSET 0x40
110#define AES_KEY_SHARE1_7_REG_RESVAL 0x0u
111
112// Initialization Vector Registers.
113#define AES_IV_IV_FIELD_WIDTH 32
114#define AES_IV_MULTIREG_COUNT 4
115
116// Initialization Vector Registers.
117#define AES_IV_0_REG_OFFSET 0x44
118#define AES_IV_0_REG_RESVAL 0x0u
119
120// Initialization Vector Registers.
121#define AES_IV_1_REG_OFFSET 0x48
122#define AES_IV_1_REG_RESVAL 0x0u
123
124// Initialization Vector Registers.
125#define AES_IV_2_REG_OFFSET 0x4c
126#define AES_IV_2_REG_RESVAL 0x0u
127
128// Initialization Vector Registers.
129#define AES_IV_3_REG_OFFSET 0x50
130#define AES_IV_3_REG_RESVAL 0x0u
131
132// Input Data Registers.
133#define AES_DATA_IN_DATA_IN_FIELD_WIDTH 32
134#define AES_DATA_IN_MULTIREG_COUNT 4
135
136// Input Data Registers.
137#define AES_DATA_IN_0_REG_OFFSET 0x54
138#define AES_DATA_IN_0_REG_RESVAL 0x0u
139
140// Input Data Registers.
141#define AES_DATA_IN_1_REG_OFFSET 0x58
142#define AES_DATA_IN_1_REG_RESVAL 0x0u
143
144// Input Data Registers.
145#define AES_DATA_IN_2_REG_OFFSET 0x5c
146#define AES_DATA_IN_2_REG_RESVAL 0x0u
147
148// Input Data Registers.
149#define AES_DATA_IN_3_REG_OFFSET 0x60
150#define AES_DATA_IN_3_REG_RESVAL 0x0u
151
152// Output Data Register.
153#define AES_DATA_OUT_DATA_OUT_FIELD_WIDTH 32
154#define AES_DATA_OUT_MULTIREG_COUNT 4
155
156// Output Data Register.
157#define AES_DATA_OUT_0_REG_OFFSET 0x64
158#define AES_DATA_OUT_0_REG_RESVAL 0x0u
159
160// Output Data Register.
161#define AES_DATA_OUT_1_REG_OFFSET 0x68
162#define AES_DATA_OUT_1_REG_RESVAL 0x0u
163
164// Output Data Register.
165#define AES_DATA_OUT_2_REG_OFFSET 0x6c
166#define AES_DATA_OUT_2_REG_RESVAL 0x0u
167
168// Output Data Register.
169#define AES_DATA_OUT_3_REG_OFFSET 0x70
170#define AES_DATA_OUT_3_REG_RESVAL 0x0u
171
172// Control Register.
173#define AES_CTRL_SHADOWED_REG_OFFSET 0x74
174#define AES_CTRL_SHADOWED_REG_RESVAL 0x1181u
175#define AES_CTRL_SHADOWED_OPERATION_MASK 0x3u
176#define AES_CTRL_SHADOWED_OPERATION_OFFSET 0
177#define AES_CTRL_SHADOWED_OPERATION_FIELD \
178 ((bitfield_field32_t) { .mask = AES_CTRL_SHADOWED_OPERATION_MASK, .index = AES_CTRL_SHADOWED_OPERATION_OFFSET })
179#define AES_CTRL_SHADOWED_OPERATION_VALUE_AES_ENC 0x1
180#define AES_CTRL_SHADOWED_OPERATION_VALUE_AES_DEC 0x2
181#define AES_CTRL_SHADOWED_MODE_MASK 0x3fu
182#define AES_CTRL_SHADOWED_MODE_OFFSET 2
183#define AES_CTRL_SHADOWED_MODE_FIELD \
184 ((bitfield_field32_t) { .mask = AES_CTRL_SHADOWED_MODE_MASK, .index = AES_CTRL_SHADOWED_MODE_OFFSET })
185#define AES_CTRL_SHADOWED_MODE_VALUE_AES_ECB 0x1
186#define AES_CTRL_SHADOWED_MODE_VALUE_AES_CBC 0x2
187#define AES_CTRL_SHADOWED_MODE_VALUE_AES_CFB 0x4
188#define AES_CTRL_SHADOWED_MODE_VALUE_AES_OFB 0x8
189#define AES_CTRL_SHADOWED_MODE_VALUE_AES_CTR 0x10
190#define AES_CTRL_SHADOWED_MODE_VALUE_AES_NONE 0x20
191#define AES_CTRL_SHADOWED_KEY_LEN_MASK 0x7u
192#define AES_CTRL_SHADOWED_KEY_LEN_OFFSET 8
193#define AES_CTRL_SHADOWED_KEY_LEN_FIELD \
194 ((bitfield_field32_t) { .mask = AES_CTRL_SHADOWED_KEY_LEN_MASK, .index = AES_CTRL_SHADOWED_KEY_LEN_OFFSET })
195#define AES_CTRL_SHADOWED_KEY_LEN_VALUE_AES_128 0x1
196#define AES_CTRL_SHADOWED_KEY_LEN_VALUE_AES_192 0x2
197#define AES_CTRL_SHADOWED_KEY_LEN_VALUE_AES_256 0x4
198#define AES_CTRL_SHADOWED_SIDELOAD_BIT 11
199#define AES_CTRL_SHADOWED_PRNG_RESEED_RATE_MASK 0x7u
200#define AES_CTRL_SHADOWED_PRNG_RESEED_RATE_OFFSET 12
201#define AES_CTRL_SHADOWED_PRNG_RESEED_RATE_FIELD \
202 ((bitfield_field32_t) { .mask = AES_CTRL_SHADOWED_PRNG_RESEED_RATE_MASK, .index = AES_CTRL_SHADOWED_PRNG_RESEED_RATE_OFFSET })
203#define AES_CTRL_SHADOWED_PRNG_RESEED_RATE_VALUE_PER_1 0x1
204#define AES_CTRL_SHADOWED_PRNG_RESEED_RATE_VALUE_PER_64 0x2
205#define AES_CTRL_SHADOWED_PRNG_RESEED_RATE_VALUE_PER_8K 0x4
206#define AES_CTRL_SHADOWED_MANUAL_OPERATION_BIT 15
207
208// Auxiliary Control Register.
209#define AES_CTRL_AUX_SHADOWED_REG_OFFSET 0x78
210#define AES_CTRL_AUX_SHADOWED_REG_RESVAL 0x1u
211#define AES_CTRL_AUX_SHADOWED_KEY_TOUCH_FORCES_RESEED_BIT 0
212#define AES_CTRL_AUX_SHADOWED_FORCE_MASKS_BIT 1
213
214// Lock bit for Auxiliary Control Register.
215#define AES_CTRL_AUX_REGWEN_REG_OFFSET 0x7c
216#define AES_CTRL_AUX_REGWEN_REG_RESVAL 0x1u
217#define AES_CTRL_AUX_REGWEN_CTRL_AUX_REGWEN_BIT 0
218
219// Trigger Register.
220#define AES_TRIGGER_REG_OFFSET 0x80
221#define AES_TRIGGER_REG_RESVAL 0xeu
222#define AES_TRIGGER_START_BIT 0
223#define AES_TRIGGER_KEY_IV_DATA_IN_CLEAR_BIT 1
224#define AES_TRIGGER_DATA_OUT_CLEAR_BIT 2
225#define AES_TRIGGER_PRNG_RESEED_BIT 3
226
227// Status Register
228#define AES_STATUS_REG_OFFSET 0x84
229#define AES_STATUS_REG_RESVAL 0x0u
230#define AES_STATUS_IDLE_BIT 0
231#define AES_STATUS_STALL_BIT 1
232#define AES_STATUS_OUTPUT_LOST_BIT 2
233#define AES_STATUS_OUTPUT_VALID_BIT 3
234#define AES_STATUS_INPUT_READY_BIT 4
235#define AES_STATUS_ALERT_RECOV_CTRL_UPDATE_ERR_BIT 5
236#define AES_STATUS_ALERT_FATAL_FAULT_BIT 6
237
238#ifdef __cplusplus
239} // extern "C"
240#endif
241#endif // _AES_REG_DEFS_
242// End generated register defines for aes