Software APIs
hmac_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for hmac
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 _HMAC_REG_DEFS_
14#define _HMAC_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number of words for digest
20#define HMAC_PARAM_NUM_DIGEST_WORDS 16
21
22// Number of words for key
23#define HMAC_PARAM_NUM_KEY_WORDS 32
24
25// Number of alerts
26#define HMAC_PARAM_NUM_ALERTS 1
27
28// Register width
29#define HMAC_PARAM_REG_WIDTH 32
30
31// Common Interrupt Offsets
32#define HMAC_INTR_COMMON_HMAC_DONE_BIT 0
33#define HMAC_INTR_COMMON_FIFO_EMPTY_BIT 1
34#define HMAC_INTR_COMMON_HMAC_ERR_BIT 2
35
36// Interrupt State Register
37#define HMAC_INTR_STATE_REG_OFFSET 0x0
38#define HMAC_INTR_STATE_REG_RESVAL 0x0u
39#define HMAC_INTR_STATE_HMAC_DONE_BIT 0
40#define HMAC_INTR_STATE_FIFO_EMPTY_BIT 1
41#define HMAC_INTR_STATE_HMAC_ERR_BIT 2
42
43// Interrupt Enable Register
44#define HMAC_INTR_ENABLE_REG_OFFSET 0x4
45#define HMAC_INTR_ENABLE_REG_RESVAL 0x0u
46#define HMAC_INTR_ENABLE_HMAC_DONE_BIT 0
47#define HMAC_INTR_ENABLE_FIFO_EMPTY_BIT 1
48#define HMAC_INTR_ENABLE_HMAC_ERR_BIT 2
49
50// Interrupt Test Register
51#define HMAC_INTR_TEST_REG_OFFSET 0x8
52#define HMAC_INTR_TEST_REG_RESVAL 0x0u
53#define HMAC_INTR_TEST_HMAC_DONE_BIT 0
54#define HMAC_INTR_TEST_FIFO_EMPTY_BIT 1
55#define HMAC_INTR_TEST_HMAC_ERR_BIT 2
56
57// Alert Test Register
58#define HMAC_ALERT_TEST_REG_OFFSET 0xc
59#define HMAC_ALERT_TEST_REG_RESVAL 0x80000000u
60#define HMAC_ALERT_TEST_FATAL_FAULT_BIT 0
61#define HMAC_ALERT_TEST_REGWEN_BIT 31
62
63// HMAC Configuration register.
64#define HMAC_CFG_REG_OFFSET 0x10
65#define HMAC_CFG_REG_RESVAL 0x4100u
66#define HMAC_CFG_HMAC_EN_BIT 0
67#define HMAC_CFG_SHA_EN_BIT 1
68#define HMAC_CFG_ENDIAN_SWAP_BIT 2
69#define HMAC_CFG_DIGEST_SWAP_BIT 3
70#define HMAC_CFG_KEY_SWAP_BIT 4
71#define HMAC_CFG_DIGEST_SIZE_MASK 0xfu
72#define HMAC_CFG_DIGEST_SIZE_OFFSET 5
73#define HMAC_CFG_DIGEST_SIZE_FIELD \
74 ((bitfield_field32_t) { .mask = HMAC_CFG_DIGEST_SIZE_MASK, .index = HMAC_CFG_DIGEST_SIZE_OFFSET })
75#define HMAC_CFG_DIGEST_SIZE_VALUE_SHA2_256 0x1
76#define HMAC_CFG_DIGEST_SIZE_VALUE_SHA2_384 0x2
77#define HMAC_CFG_DIGEST_SIZE_VALUE_SHA2_512 0x4
78#define HMAC_CFG_DIGEST_SIZE_VALUE_SHA2_NONE 0x8
79#define HMAC_CFG_KEY_LENGTH_MASK 0x3fu
80#define HMAC_CFG_KEY_LENGTH_OFFSET 9
81#define HMAC_CFG_KEY_LENGTH_FIELD \
82 ((bitfield_field32_t) { .mask = HMAC_CFG_KEY_LENGTH_MASK, .index = HMAC_CFG_KEY_LENGTH_OFFSET })
83#define HMAC_CFG_KEY_LENGTH_VALUE_KEY_128 0x1
84#define HMAC_CFG_KEY_LENGTH_VALUE_KEY_256 0x2
85#define HMAC_CFG_KEY_LENGTH_VALUE_KEY_384 0x4
86#define HMAC_CFG_KEY_LENGTH_VALUE_KEY_512 0x8
87#define HMAC_CFG_KEY_LENGTH_VALUE_KEY_1024 0x10
88#define HMAC_CFG_KEY_LENGTH_VALUE_KEY_NONE 0x20
89#define HMAC_CFG_SIDELOAD_BIT 15
90
91// HMAC command register
92#define HMAC_CMD_REG_OFFSET 0x14
93#define HMAC_CMD_REG_RESVAL 0x0u
94#define HMAC_CMD_HASH_START_BIT 0
95#define HMAC_CMD_HASH_PROCESS_BIT 1
96#define HMAC_CMD_HASH_STOP_BIT 2
97#define HMAC_CMD_HASH_CONTINUE_BIT 3
98
99// HMAC Status register
100#define HMAC_STATUS_REG_OFFSET 0x18
101#define HMAC_STATUS_REG_RESVAL 0x3u
102#define HMAC_STATUS_HMAC_IDLE_BIT 0
103#define HMAC_STATUS_FIFO_EMPTY_BIT 1
104#define HMAC_STATUS_FIFO_FULL_BIT 2
105#define HMAC_STATUS_FIFO_DEPTH_MASK 0x3fu
106#define HMAC_STATUS_FIFO_DEPTH_OFFSET 4
107#define HMAC_STATUS_FIFO_DEPTH_FIELD \
108 ((bitfield_field32_t) { .mask = HMAC_STATUS_FIFO_DEPTH_MASK, .index = HMAC_STATUS_FIFO_DEPTH_OFFSET })
109
110// HMAC Error Code
111#define HMAC_ERR_CODE_REG_OFFSET 0x1c
112#define HMAC_ERR_CODE_REG_RESVAL 0x0u
113
114// Clear internal secret registers.
115#define HMAC_WIPE_SECRET_REG_OFFSET 0x20
116#define HMAC_WIPE_SECRET_REG_RESVAL 0x0u
117
118// HMAC Secret Key
119#define HMAC_KEY_KEY_FIELD_WIDTH 32
120#define HMAC_KEY_MULTIREG_COUNT 32
121
122// HMAC Secret Key
123#define HMAC_KEY_0_REG_OFFSET 0x24
124#define HMAC_KEY_0_REG_RESVAL 0x0u
125
126// HMAC Secret Key
127#define HMAC_KEY_1_REG_OFFSET 0x28
128#define HMAC_KEY_1_REG_RESVAL 0x0u
129
130// HMAC Secret Key
131#define HMAC_KEY_2_REG_OFFSET 0x2c
132#define HMAC_KEY_2_REG_RESVAL 0x0u
133
134// HMAC Secret Key
135#define HMAC_KEY_3_REG_OFFSET 0x30
136#define HMAC_KEY_3_REG_RESVAL 0x0u
137
138// HMAC Secret Key
139#define HMAC_KEY_4_REG_OFFSET 0x34
140#define HMAC_KEY_4_REG_RESVAL 0x0u
141
142// HMAC Secret Key
143#define HMAC_KEY_5_REG_OFFSET 0x38
144#define HMAC_KEY_5_REG_RESVAL 0x0u
145
146// HMAC Secret Key
147#define HMAC_KEY_6_REG_OFFSET 0x3c
148#define HMAC_KEY_6_REG_RESVAL 0x0u
149
150// HMAC Secret Key
151#define HMAC_KEY_7_REG_OFFSET 0x40
152#define HMAC_KEY_7_REG_RESVAL 0x0u
153
154// HMAC Secret Key
155#define HMAC_KEY_8_REG_OFFSET 0x44
156#define HMAC_KEY_8_REG_RESVAL 0x0u
157
158// HMAC Secret Key
159#define HMAC_KEY_9_REG_OFFSET 0x48
160#define HMAC_KEY_9_REG_RESVAL 0x0u
161
162// HMAC Secret Key
163#define HMAC_KEY_10_REG_OFFSET 0x4c
164#define HMAC_KEY_10_REG_RESVAL 0x0u
165
166// HMAC Secret Key
167#define HMAC_KEY_11_REG_OFFSET 0x50
168#define HMAC_KEY_11_REG_RESVAL 0x0u
169
170// HMAC Secret Key
171#define HMAC_KEY_12_REG_OFFSET 0x54
172#define HMAC_KEY_12_REG_RESVAL 0x0u
173
174// HMAC Secret Key
175#define HMAC_KEY_13_REG_OFFSET 0x58
176#define HMAC_KEY_13_REG_RESVAL 0x0u
177
178// HMAC Secret Key
179#define HMAC_KEY_14_REG_OFFSET 0x5c
180#define HMAC_KEY_14_REG_RESVAL 0x0u
181
182// HMAC Secret Key
183#define HMAC_KEY_15_REG_OFFSET 0x60
184#define HMAC_KEY_15_REG_RESVAL 0x0u
185
186// HMAC Secret Key
187#define HMAC_KEY_16_REG_OFFSET 0x64
188#define HMAC_KEY_16_REG_RESVAL 0x0u
189
190// HMAC Secret Key
191#define HMAC_KEY_17_REG_OFFSET 0x68
192#define HMAC_KEY_17_REG_RESVAL 0x0u
193
194// HMAC Secret Key
195#define HMAC_KEY_18_REG_OFFSET 0x6c
196#define HMAC_KEY_18_REG_RESVAL 0x0u
197
198// HMAC Secret Key
199#define HMAC_KEY_19_REG_OFFSET 0x70
200#define HMAC_KEY_19_REG_RESVAL 0x0u
201
202// HMAC Secret Key
203#define HMAC_KEY_20_REG_OFFSET 0x74
204#define HMAC_KEY_20_REG_RESVAL 0x0u
205
206// HMAC Secret Key
207#define HMAC_KEY_21_REG_OFFSET 0x78
208#define HMAC_KEY_21_REG_RESVAL 0x0u
209
210// HMAC Secret Key
211#define HMAC_KEY_22_REG_OFFSET 0x7c
212#define HMAC_KEY_22_REG_RESVAL 0x0u
213
214// HMAC Secret Key
215#define HMAC_KEY_23_REG_OFFSET 0x80
216#define HMAC_KEY_23_REG_RESVAL 0x0u
217
218// HMAC Secret Key
219#define HMAC_KEY_24_REG_OFFSET 0x84
220#define HMAC_KEY_24_REG_RESVAL 0x0u
221
222// HMAC Secret Key
223#define HMAC_KEY_25_REG_OFFSET 0x88
224#define HMAC_KEY_25_REG_RESVAL 0x0u
225
226// HMAC Secret Key
227#define HMAC_KEY_26_REG_OFFSET 0x8c
228#define HMAC_KEY_26_REG_RESVAL 0x0u
229
230// HMAC Secret Key
231#define HMAC_KEY_27_REG_OFFSET 0x90
232#define HMAC_KEY_27_REG_RESVAL 0x0u
233
234// HMAC Secret Key
235#define HMAC_KEY_28_REG_OFFSET 0x94
236#define HMAC_KEY_28_REG_RESVAL 0x0u
237
238// HMAC Secret Key
239#define HMAC_KEY_29_REG_OFFSET 0x98
240#define HMAC_KEY_29_REG_RESVAL 0x0u
241
242// HMAC Secret Key
243#define HMAC_KEY_30_REG_OFFSET 0x9c
244#define HMAC_KEY_30_REG_RESVAL 0x0u
245
246// HMAC Secret Key
247#define HMAC_KEY_31_REG_OFFSET 0xa0
248#define HMAC_KEY_31_REG_RESVAL 0x0u
249
250// Digest output.
251#define HMAC_DIGEST_DIGEST_FIELD_WIDTH 32
252#define HMAC_DIGEST_MULTIREG_COUNT 16
253
254// Digest output.
255#define HMAC_DIGEST_0_REG_OFFSET 0xa4
256#define HMAC_DIGEST_0_REG_RESVAL 0x0u
257
258// Digest output.
259#define HMAC_DIGEST_1_REG_OFFSET 0xa8
260#define HMAC_DIGEST_1_REG_RESVAL 0x0u
261
262// Digest output.
263#define HMAC_DIGEST_2_REG_OFFSET 0xac
264#define HMAC_DIGEST_2_REG_RESVAL 0x0u
265
266// Digest output.
267#define HMAC_DIGEST_3_REG_OFFSET 0xb0
268#define HMAC_DIGEST_3_REG_RESVAL 0x0u
269
270// Digest output.
271#define HMAC_DIGEST_4_REG_OFFSET 0xb4
272#define HMAC_DIGEST_4_REG_RESVAL 0x0u
273
274// Digest output.
275#define HMAC_DIGEST_5_REG_OFFSET 0xb8
276#define HMAC_DIGEST_5_REG_RESVAL 0x0u
277
278// Digest output.
279#define HMAC_DIGEST_6_REG_OFFSET 0xbc
280#define HMAC_DIGEST_6_REG_RESVAL 0x0u
281
282// Digest output.
283#define HMAC_DIGEST_7_REG_OFFSET 0xc0
284#define HMAC_DIGEST_7_REG_RESVAL 0x0u
285
286// Digest output.
287#define HMAC_DIGEST_8_REG_OFFSET 0xc4
288#define HMAC_DIGEST_8_REG_RESVAL 0x0u
289
290// Digest output.
291#define HMAC_DIGEST_9_REG_OFFSET 0xc8
292#define HMAC_DIGEST_9_REG_RESVAL 0x0u
293
294// Digest output.
295#define HMAC_DIGEST_10_REG_OFFSET 0xcc
296#define HMAC_DIGEST_10_REG_RESVAL 0x0u
297
298// Digest output.
299#define HMAC_DIGEST_11_REG_OFFSET 0xd0
300#define HMAC_DIGEST_11_REG_RESVAL 0x0u
301
302// Digest output.
303#define HMAC_DIGEST_12_REG_OFFSET 0xd4
304#define HMAC_DIGEST_12_REG_RESVAL 0x0u
305
306// Digest output.
307#define HMAC_DIGEST_13_REG_OFFSET 0xd8
308#define HMAC_DIGEST_13_REG_RESVAL 0x0u
309
310// Digest output.
311#define HMAC_DIGEST_14_REG_OFFSET 0xdc
312#define HMAC_DIGEST_14_REG_RESVAL 0x0u
313
314// Digest output.
315#define HMAC_DIGEST_15_REG_OFFSET 0xe0
316#define HMAC_DIGEST_15_REG_RESVAL 0x0u
317
318// Received Message Length calculated by the HMAC in bits [31:0]
319#define HMAC_MSG_LENGTH_LOWER_REG_OFFSET 0xe4
320#define HMAC_MSG_LENGTH_LOWER_REG_RESVAL 0x0u
321
322// Received Message Length calculated by the HMAC in bits [63:32]
323#define HMAC_MSG_LENGTH_UPPER_REG_OFFSET 0xe8
324#define HMAC_MSG_LENGTH_UPPER_REG_RESVAL 0x0u
325
326// Memory area: Message FIFO. Any write to this window will be appended to
327// the FIFO.
328#define HMAC_MSG_FIFO_REG_OFFSET 0x1000
329#define HMAC_MSG_FIFO_SIZE_WORDS 1024
330#define HMAC_MSG_FIFO_SIZE_BYTES 4096
331#ifdef __cplusplus
332} // extern "C"
333#endif
334#endif // _HMAC_REG_DEFS_
335// End generated register defines for hmac