Software APIs
csrng_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for csrng
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 _CSRNG_REG_DEFS_
14#define _CSRNG_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number of application interfaces
20#define CSRNG_PARAM_NUM_APPS 3
21
22// Number of alerts
23#define CSRNG_PARAM_NUM_ALERTS 2
24
25// Register width
26#define CSRNG_PARAM_REG_WIDTH 32
27
28// Common Interrupt Offsets
29#define CSRNG_INTR_COMMON_CS_CMD_REQ_DONE_BIT 0
30#define CSRNG_INTR_COMMON_CS_ENTROPY_REQ_BIT 1
31#define CSRNG_INTR_COMMON_CS_HW_INST_EXC_BIT 2
32#define CSRNG_INTR_COMMON_CS_FATAL_ERR_BIT 3
33
34// Interrupt State Register
35#define CSRNG_INTR_STATE_REG_OFFSET 0x0
36#define CSRNG_INTR_STATE_REG_RESVAL 0x0u
37#define CSRNG_INTR_STATE_CS_CMD_REQ_DONE_BIT 0
38#define CSRNG_INTR_STATE_CS_ENTROPY_REQ_BIT 1
39#define CSRNG_INTR_STATE_CS_HW_INST_EXC_BIT 2
40#define CSRNG_INTR_STATE_CS_FATAL_ERR_BIT 3
41
42// Interrupt Enable Register
43#define CSRNG_INTR_ENABLE_REG_OFFSET 0x4
44#define CSRNG_INTR_ENABLE_REG_RESVAL 0x0u
45#define CSRNG_INTR_ENABLE_CS_CMD_REQ_DONE_BIT 0
46#define CSRNG_INTR_ENABLE_CS_ENTROPY_REQ_BIT 1
47#define CSRNG_INTR_ENABLE_CS_HW_INST_EXC_BIT 2
48#define CSRNG_INTR_ENABLE_CS_FATAL_ERR_BIT 3
49
50// Interrupt Test Register
51#define CSRNG_INTR_TEST_REG_OFFSET 0x8
52#define CSRNG_INTR_TEST_REG_RESVAL 0x0u
53#define CSRNG_INTR_TEST_CS_CMD_REQ_DONE_BIT 0
54#define CSRNG_INTR_TEST_CS_ENTROPY_REQ_BIT 1
55#define CSRNG_INTR_TEST_CS_HW_INST_EXC_BIT 2
56#define CSRNG_INTR_TEST_CS_FATAL_ERR_BIT 3
57
58// Alert Test Register
59#define CSRNG_ALERT_TEST_REG_OFFSET 0xc
60#define CSRNG_ALERT_TEST_REG_RESVAL 0x80000000u
61#define CSRNG_ALERT_TEST_RECOV_ALERT_BIT 0
62#define CSRNG_ALERT_TEST_FATAL_ALERT_BIT 1
63#define CSRNG_ALERT_TEST_REGWEN_BIT 31
64
65// Register write enable for all control registers
66#define CSRNG_REGWEN_REG_OFFSET 0x10
67#define CSRNG_REGWEN_REG_RESVAL 0x1u
68#define CSRNG_REGWEN_REGWEN_BIT 0
69
70// Control register
71#define CSRNG_CTRL_REG_OFFSET 0x14
72#define CSRNG_CTRL_REG_RESVAL 0x99999u
73#define CSRNG_CTRL_ENABLE_MASK 0xfu
74#define CSRNG_CTRL_ENABLE_OFFSET 0
75#define CSRNG_CTRL_ENABLE_FIELD \
76 ((bitfield_field32_t) { .mask = CSRNG_CTRL_ENABLE_MASK, .index = CSRNG_CTRL_ENABLE_OFFSET })
77#define CSRNG_CTRL_SW_APP_ENABLE_MASK 0xfu
78#define CSRNG_CTRL_SW_APP_ENABLE_OFFSET 4
79#define CSRNG_CTRL_SW_APP_ENABLE_FIELD \
80 ((bitfield_field32_t) { .mask = CSRNG_CTRL_SW_APP_ENABLE_MASK, .index = CSRNG_CTRL_SW_APP_ENABLE_OFFSET })
81#define CSRNG_CTRL_READ_INT_STATE_MASK 0xfu
82#define CSRNG_CTRL_READ_INT_STATE_OFFSET 8
83#define CSRNG_CTRL_READ_INT_STATE_FIELD \
84 ((bitfield_field32_t) { .mask = CSRNG_CTRL_READ_INT_STATE_MASK, .index = CSRNG_CTRL_READ_INT_STATE_OFFSET })
85#define CSRNG_CTRL_WRITE_INT_STATE_MASK 0xfu
86#define CSRNG_CTRL_WRITE_INT_STATE_OFFSET 12
87#define CSRNG_CTRL_WRITE_INT_STATE_FIELD \
88 ((bitfield_field32_t) { .mask = CSRNG_CTRL_WRITE_INT_STATE_MASK, .index = CSRNG_CTRL_WRITE_INT_STATE_OFFSET })
89#define CSRNG_CTRL_FIPS_FORCE_ENABLE_MASK 0xfu
90#define CSRNG_CTRL_FIPS_FORCE_ENABLE_OFFSET 16
91#define CSRNG_CTRL_FIPS_FORCE_ENABLE_FIELD \
92 ((bitfield_field32_t) { .mask = CSRNG_CTRL_FIPS_FORCE_ENABLE_MASK, .index = CSRNG_CTRL_FIPS_FORCE_ENABLE_OFFSET })
93
94// Command request register
95#define CSRNG_CMD_REQ_REG_OFFSET 0x18
96#define CSRNG_CMD_REQ_REG_RESVAL 0x0u
97
98// CSRNG maximum number of generate requests allowed between reseeds register
99#define CSRNG_RESEED_INTERVAL_REG_OFFSET 0x1c
100#define CSRNG_RESEED_INTERVAL_REG_RESVAL 0xffffffffu
101
102// Reseed counter.
103#define CSRNG_RESEED_COUNTER_RESEED_COUNTER_FIELD_WIDTH 32
104#define CSRNG_RESEED_COUNTER_MULTIREG_COUNT 3
105
106// Reseed counter.
107#define CSRNG_RESEED_COUNTER_0_REG_OFFSET 0x20
108#define CSRNG_RESEED_COUNTER_0_REG_RESVAL 0x0u
109
110// Reseed counter.
111#define CSRNG_RESEED_COUNTER_1_REG_OFFSET 0x24
112#define CSRNG_RESEED_COUNTER_1_REG_RESVAL 0x0u
113
114// Reseed counter.
115#define CSRNG_RESEED_COUNTER_2_REG_OFFSET 0x28
116#define CSRNG_RESEED_COUNTER_2_REG_RESVAL 0x0u
117
118// Application interface command status register
119#define CSRNG_SW_CMD_STS_REG_OFFSET 0x2c
120#define CSRNG_SW_CMD_STS_REG_RESVAL 0x0u
121#define CSRNG_SW_CMD_STS_CMD_RDY_BIT 1
122#define CSRNG_SW_CMD_STS_CMD_ACK_BIT 2
123#define CSRNG_SW_CMD_STS_CMD_STS_MASK 0x7u
124#define CSRNG_SW_CMD_STS_CMD_STS_OFFSET 3
125#define CSRNG_SW_CMD_STS_CMD_STS_FIELD \
126 ((bitfield_field32_t) { .mask = CSRNG_SW_CMD_STS_CMD_STS_MASK, .index = CSRNG_SW_CMD_STS_CMD_STS_OFFSET })
127#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_SUCCESS 0x0
128#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_INVALID_ACMD 0x1
129#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_INVALID_GEN_CMD 0x2
130#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_INVALID_CMD_SEQ 0x3
131#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_RESEED_CNT_EXCEEDED 0x4
132#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_GEN_ABORTED 0x5
133
134// Generate bits returned valid register
135#define CSRNG_GENBITS_VLD_REG_OFFSET 0x30
136#define CSRNG_GENBITS_VLD_REG_RESVAL 0x0u
137#define CSRNG_GENBITS_VLD_GENBITS_VLD_BIT 0
138#define CSRNG_GENBITS_VLD_GENBITS_FIPS_BIT 1
139
140// Generate bits returned register
141#define CSRNG_GENBITS_REG_OFFSET 0x34
142#define CSRNG_GENBITS_REG_RESVAL 0x0u
143
144// Internal state read enable REGWEN register
145#define CSRNG_INT_STATE_READ_ENABLE_REGWEN_REG_OFFSET 0x38
146#define CSRNG_INT_STATE_READ_ENABLE_REGWEN_REG_RESVAL 0x1u
147#define CSRNG_INT_STATE_READ_ENABLE_REGWEN_INT_STATE_READ_ENABLE_REGWEN_BIT 0
148
149// Internal state read enable register
150#define CSRNG_INT_STATE_READ_ENABLE_REG_OFFSET 0x3c
151#define CSRNG_INT_STATE_READ_ENABLE_REG_RESVAL 0x7u
152#define CSRNG_INT_STATE_READ_ENABLE_INT_STATE_READ_ENABLE_MASK 0x7u
153#define CSRNG_INT_STATE_READ_ENABLE_INT_STATE_READ_ENABLE_OFFSET 0
154#define CSRNG_INT_STATE_READ_ENABLE_INT_STATE_READ_ENABLE_FIELD \
155 ((bitfield_field32_t) { .mask = CSRNG_INT_STATE_READ_ENABLE_INT_STATE_READ_ENABLE_MASK, .index = CSRNG_INT_STATE_READ_ENABLE_INT_STATE_READ_ENABLE_OFFSET })
156
157// Internal state number register
158#define CSRNG_INT_STATE_NUM_REG_OFFSET 0x40
159#define CSRNG_INT_STATE_NUM_REG_RESVAL 0x0u
160#define CSRNG_INT_STATE_NUM_INT_STATE_NUM_MASK 0xfu
161#define CSRNG_INT_STATE_NUM_INT_STATE_NUM_OFFSET 0
162#define CSRNG_INT_STATE_NUM_INT_STATE_NUM_FIELD \
163 ((bitfield_field32_t) { .mask = CSRNG_INT_STATE_NUM_INT_STATE_NUM_MASK, .index = CSRNG_INT_STATE_NUM_INT_STATE_NUM_OFFSET })
164
165// Internal state read/write access register
166#define CSRNG_INT_STATE_VAL_REG_OFFSET 0x44
167#define CSRNG_INT_STATE_VAL_REG_RESVAL 0x0u
168
169// FIPS/CC compliance flag forcing register
170#define CSRNG_FIPS_FORCE_REG_OFFSET 0x48
171#define CSRNG_FIPS_FORCE_REG_RESVAL 0x0u
172#define CSRNG_FIPS_FORCE_FIPS_FORCE_MASK 0x7u
173#define CSRNG_FIPS_FORCE_FIPS_FORCE_OFFSET 0
174#define CSRNG_FIPS_FORCE_FIPS_FORCE_FIELD \
175 ((bitfield_field32_t) { .mask = CSRNG_FIPS_FORCE_FIPS_FORCE_MASK, .index = CSRNG_FIPS_FORCE_FIPS_FORCE_OFFSET })
176
177// Register write enable for !!GEN_ABORT
178#define CSRNG_GEN_ABORT_REGWEN_REG_OFFSET 0x4c
179#define CSRNG_GEN_ABORT_REGWEN_REG_RESVAL 0x1u
180#define CSRNG_GEN_ABORT_REGWEN_GEN_ABORT_REGWEN_BIT 0
181
182// Generate command abort request register (common parameters)
183#define CSRNG_GEN_ABORT_GEN_ABORT_FIELD_WIDTH 4
184#define CSRNG_GEN_ABORT_MULTIREG_COUNT 3
185
186// Generate command abort request register
187#define CSRNG_GEN_ABORT_0_REG_OFFSET 0x50
188#define CSRNG_GEN_ABORT_0_REG_RESVAL 0x9u
189#define CSRNG_GEN_ABORT_0_GEN_ABORT_0_MASK 0xfu
190#define CSRNG_GEN_ABORT_0_GEN_ABORT_0_OFFSET 0
191#define CSRNG_GEN_ABORT_0_GEN_ABORT_0_FIELD \
192 ((bitfield_field32_t) { .mask = CSRNG_GEN_ABORT_0_GEN_ABORT_0_MASK, .index = CSRNG_GEN_ABORT_0_GEN_ABORT_0_OFFSET })
193
194// Generate command abort request register
195#define CSRNG_GEN_ABORT_1_REG_OFFSET 0x54
196#define CSRNG_GEN_ABORT_1_REG_RESVAL 0x9u
197#define CSRNG_GEN_ABORT_1_GEN_ABORT_1_MASK 0xfu
198#define CSRNG_GEN_ABORT_1_GEN_ABORT_1_OFFSET 0
199#define CSRNG_GEN_ABORT_1_GEN_ABORT_1_FIELD \
200 ((bitfield_field32_t) { .mask = CSRNG_GEN_ABORT_1_GEN_ABORT_1_MASK, .index = CSRNG_GEN_ABORT_1_GEN_ABORT_1_OFFSET })
201
202// Generate command abort request register
203#define CSRNG_GEN_ABORT_2_REG_OFFSET 0x58
204#define CSRNG_GEN_ABORT_2_REG_RESVAL 0x9u
205#define CSRNG_GEN_ABORT_2_GEN_ABORT_2_MASK 0xfu
206#define CSRNG_GEN_ABORT_2_GEN_ABORT_2_OFFSET 0
207#define CSRNG_GEN_ABORT_2_GEN_ABORT_2_FIELD \
208 ((bitfield_field32_t) { .mask = CSRNG_GEN_ABORT_2_GEN_ABORT_2_MASK, .index = CSRNG_GEN_ABORT_2_GEN_ABORT_2_OFFSET })
209
210// Generate command abort completion status register (common parameters)
211#define CSRNG_GEN_ABORT_STATUS_GEN_ABORT_STATUS_FIELD_WIDTH 1
212#define CSRNG_GEN_ABORT_STATUS_MULTIREG_COUNT 3
213
214// Generate command abort completion status register
215#define CSRNG_GEN_ABORT_STATUS_0_REG_OFFSET 0x5c
216#define CSRNG_GEN_ABORT_STATUS_0_REG_RESVAL 0x0u
217#define CSRNG_GEN_ABORT_STATUS_0_GEN_ABORT_STATUS_0_BIT 0
218
219// Generate command abort completion status register
220#define CSRNG_GEN_ABORT_STATUS_1_REG_OFFSET 0x60
221#define CSRNG_GEN_ABORT_STATUS_1_REG_RESVAL 0x0u
222#define CSRNG_GEN_ABORT_STATUS_1_GEN_ABORT_STATUS_1_BIT 0
223
224// Generate command abort completion status register
225#define CSRNG_GEN_ABORT_STATUS_2_REG_OFFSET 0x64
226#define CSRNG_GEN_ABORT_STATUS_2_REG_RESVAL 0x0u
227#define CSRNG_GEN_ABORT_STATUS_2_GEN_ABORT_STATUS_2_BIT 0
228
229// Hardware instance exception status register
230#define CSRNG_HW_EXC_STS_REG_OFFSET 0x68
231#define CSRNG_HW_EXC_STS_REG_RESVAL 0x0u
232#define CSRNG_HW_EXC_STS_HW_EXC_STS_MASK 0xffffu
233#define CSRNG_HW_EXC_STS_HW_EXC_STS_OFFSET 0
234#define CSRNG_HW_EXC_STS_HW_EXC_STS_FIELD \
235 ((bitfield_field32_t) { .mask = CSRNG_HW_EXC_STS_HW_EXC_STS_MASK, .index = CSRNG_HW_EXC_STS_HW_EXC_STS_OFFSET })
236
237// Recoverable alert status register
238#define CSRNG_RECOV_ALERT_STS_REG_OFFSET 0x6c
239#define CSRNG_RECOV_ALERT_STS_REG_RESVAL 0x0u
240#define CSRNG_RECOV_ALERT_STS_ENABLE_FIELD_ALERT_BIT 0
241#define CSRNG_RECOV_ALERT_STS_SW_APP_ENABLE_FIELD_ALERT_BIT 1
242#define CSRNG_RECOV_ALERT_STS_READ_INT_STATE_FIELD_ALERT_BIT 2
243#define CSRNG_RECOV_ALERT_STS_WRITE_INT_STATE_FIELD_ALERT_BIT 3
244#define CSRNG_RECOV_ALERT_STS_FIPS_FORCE_ENABLE_FIELD_ALERT_BIT 4
245#define CSRNG_RECOV_ALERT_STS_ACMD_FLAG0_FIELD_ALERT_BIT 5
246#define CSRNG_RECOV_ALERT_STS_GEN_ABORT_INVALID_ALERT_BIT 6
247#define CSRNG_RECOV_ALERT_STS_GEN_ABORT_FIELD_ALERT_BIT 7
248#define CSRNG_RECOV_ALERT_STS_INT_STATE_HALT_FIELD_ALERT_BIT 8
249#define CSRNG_RECOV_ALERT_STS_INT_STATE_OVERWRITE_ALERT_BIT 9
250#define CSRNG_RECOV_ALERT_STS_CS_BUS_CMP_ALERT_BIT 12
251#define CSRNG_RECOV_ALERT_STS_CMD_STAGE_INVALID_ACMD_ALERT_BIT 13
252#define CSRNG_RECOV_ALERT_STS_CMD_STAGE_INVALID_GEN_CMD_ALERT_BIT 14
253#define CSRNG_RECOV_ALERT_STS_CMD_STAGE_INVALID_CMD_SEQ_ALERT_BIT 15
254#define CSRNG_RECOV_ALERT_STS_CMD_STAGE_RESEED_CNT_ALERT_BIT 16
255
256// Hardware detection of error conditions status register
257#define CSRNG_ERR_CODE_REG_OFFSET 0x70
258#define CSRNG_ERR_CODE_REG_RESVAL 0x0u
259#define CSRNG_ERR_CODE_SFIFO_CMD_ERR_BIT 0
260#define CSRNG_ERR_CODE_SFIFO_GENBITS_ERR_BIT 1
261#define CSRNG_ERR_CODE_CMD_STAGE_SM_ERR_BIT 20
262#define CSRNG_ERR_CODE_MAIN_SM_ERR_BIT 21
263#define CSRNG_ERR_CODE_CTR_DRBG_SM_ERR_BIT 22
264#define CSRNG_ERR_CODE_AES_CIPHER_SM_ERR_BIT 25
265#define CSRNG_ERR_CODE_CTR_ERR_BIT 26
266#define CSRNG_ERR_CODE_FIFO_WRITE_ERR_BIT 28
267#define CSRNG_ERR_CODE_FIFO_READ_ERR_BIT 29
268#define CSRNG_ERR_CODE_FIFO_STATE_ERR_BIT 30
269
270// Test error conditions register
271#define CSRNG_ERR_CODE_TEST_REG_OFFSET 0x74
272#define CSRNG_ERR_CODE_TEST_REG_RESVAL 0x0u
273#define CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_MASK 0x1fu
274#define CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_OFFSET 0
275#define CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_FIELD \
276 ((bitfield_field32_t) { .mask = CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_MASK, .index = CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_OFFSET })
277
278// Main state machine state debug register
279#define CSRNG_MAIN_SM_STATE_REG_OFFSET 0x78
280#define CSRNG_MAIN_SM_STATE_REG_RESVAL 0x37u
281#define CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_MASK 0x3fu
282#define CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_OFFSET 0
283#define CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_FIELD \
284 ((bitfield_field32_t) { .mask = CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_MASK, .index = CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_OFFSET })
285
286// Internal state write enable REGWEN register
287#define CSRNG_INT_STATE_WRITE_ENABLE_REGWEN_REG_OFFSET 0x7c
288#define CSRNG_INT_STATE_WRITE_ENABLE_REGWEN_REG_RESVAL 0x1u
289#define CSRNG_INT_STATE_WRITE_ENABLE_REGWEN_INT_STATE_WRITE_ENABLE_REGWEN_BIT 0
290
291// Internal state write enable register
292#define CSRNG_INT_STATE_WRITE_ENABLE_REG_OFFSET 0x80
293#define CSRNG_INT_STATE_WRITE_ENABLE_REG_RESVAL 0x7u
294#define CSRNG_INT_STATE_WRITE_ENABLE_INT_STATE_WRITE_ENABLE_MASK 0x7u
295#define CSRNG_INT_STATE_WRITE_ENABLE_INT_STATE_WRITE_ENABLE_OFFSET 0
296#define CSRNG_INT_STATE_WRITE_ENABLE_INT_STATE_WRITE_ENABLE_FIELD \
297 ((bitfield_field32_t) { .mask = CSRNG_INT_STATE_WRITE_ENABLE_INT_STATE_WRITE_ENABLE_MASK, .index = CSRNG_INT_STATE_WRITE_ENABLE_INT_STATE_WRITE_ENABLE_OFFSET })
298
299// Internal state halt enable REGWEN register
300#define CSRNG_INT_STATE_HALT_ENABLE_REGWEN_REG_OFFSET 0x84
301#define CSRNG_INT_STATE_HALT_ENABLE_REGWEN_REG_RESVAL 0x1u
302#define CSRNG_INT_STATE_HALT_ENABLE_REGWEN_INT_STATE_HALT_ENABLE_REGWEN_BIT 0
303
304// Internal state halt enable register
305#define CSRNG_INT_STATE_HALT_ENABLE_REG_OFFSET 0x88
306#define CSRNG_INT_STATE_HALT_ENABLE_REG_RESVAL 0x7u
307#define CSRNG_INT_STATE_HALT_ENABLE_INT_STATE_HALT_ENABLE_MASK 0x7u
308#define CSRNG_INT_STATE_HALT_ENABLE_INT_STATE_HALT_ENABLE_OFFSET 0
309#define CSRNG_INT_STATE_HALT_ENABLE_INT_STATE_HALT_ENABLE_FIELD \
310 ((bitfield_field32_t) { .mask = CSRNG_INT_STATE_HALT_ENABLE_INT_STATE_HALT_ENABLE_MASK, .index = CSRNG_INT_STATE_HALT_ENABLE_INT_STATE_HALT_ENABLE_OFFSET })
311
312// Internal state halt register
313#define CSRNG_INT_STATE_HALT_REG_OFFSET 0x8c
314#define CSRNG_INT_STATE_HALT_REG_RESVAL 0x9u
315#define CSRNG_INT_STATE_HALT_INT_STATE_HALT_MASK 0xfu
316#define CSRNG_INT_STATE_HALT_INT_STATE_HALT_OFFSET 0
317#define CSRNG_INT_STATE_HALT_INT_STATE_HALT_FIELD \
318 ((bitfield_field32_t) { .mask = CSRNG_INT_STATE_HALT_INT_STATE_HALT_MASK, .index = CSRNG_INT_STATE_HALT_INT_STATE_HALT_OFFSET })
319
320// Internal state halt status register
321#define CSRNG_INT_STATE_STS_REG_OFFSET 0x90
322#define CSRNG_INT_STATE_STS_REG_RESVAL 0x0u
323#define CSRNG_INT_STATE_STS_HALTED_BIT 0
324
325#ifdef __cplusplus
326} // extern "C"
327#endif
328#endif // _CSRNG_REG_DEFS_
329// End generated register defines for csrng