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 0x9999u
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_FIPS_FORCE_ENABLE_MASK 0xfu
86#define CSRNG_CTRL_FIPS_FORCE_ENABLE_OFFSET 12
87#define CSRNG_CTRL_FIPS_FORCE_ENABLE_FIELD \
88 ((bitfield_field32_t) { .mask = CSRNG_CTRL_FIPS_FORCE_ENABLE_MASK, .index = CSRNG_CTRL_FIPS_FORCE_ENABLE_OFFSET })
89
90// Command request register
91#define CSRNG_CMD_REQ_REG_OFFSET 0x18
92#define CSRNG_CMD_REQ_REG_RESVAL 0x0u
93
94// CSRNG maximum number of generate requests allowed between reseeds register
95#define CSRNG_RESEED_INTERVAL_REG_OFFSET 0x1c
96#define CSRNG_RESEED_INTERVAL_REG_RESVAL 0xffffffffu
97
98// Reseed counter.
99#define CSRNG_RESEED_COUNTER_RESEED_COUNTER_FIELD_WIDTH 32
100#define CSRNG_RESEED_COUNTER_MULTIREG_COUNT 3
101
102// Reseed counter.
103#define CSRNG_RESEED_COUNTER_0_REG_OFFSET 0x20
104#define CSRNG_RESEED_COUNTER_0_REG_RESVAL 0x0u
105
106// Reseed counter.
107#define CSRNG_RESEED_COUNTER_1_REG_OFFSET 0x24
108#define CSRNG_RESEED_COUNTER_1_REG_RESVAL 0x0u
109
110// Reseed counter.
111#define CSRNG_RESEED_COUNTER_2_REG_OFFSET 0x28
112#define CSRNG_RESEED_COUNTER_2_REG_RESVAL 0x0u
113
114// Application interface command status register
115#define CSRNG_SW_CMD_STS_REG_OFFSET 0x2c
116#define CSRNG_SW_CMD_STS_REG_RESVAL 0x0u
117#define CSRNG_SW_CMD_STS_CMD_RDY_BIT 1
118#define CSRNG_SW_CMD_STS_CMD_ACK_BIT 2
119#define CSRNG_SW_CMD_STS_CMD_STS_MASK 0x7u
120#define CSRNG_SW_CMD_STS_CMD_STS_OFFSET 3
121#define CSRNG_SW_CMD_STS_CMD_STS_FIELD \
122 ((bitfield_field32_t) { .mask = CSRNG_SW_CMD_STS_CMD_STS_MASK, .index = CSRNG_SW_CMD_STS_CMD_STS_OFFSET })
123#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_SUCCESS 0x0
124#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_INVALID_ACMD 0x1
125#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_INVALID_GEN_CMD 0x2
126#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_INVALID_CMD_SEQ 0x3
127#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_RESEED_CNT_EXCEEDED 0x4
128#define CSRNG_SW_CMD_STS_CMD_STS_VALUE_GEN_ABORTED 0x5
129
130// Generate bits returned valid register
131#define CSRNG_GENBITS_VLD_REG_OFFSET 0x30
132#define CSRNG_GENBITS_VLD_REG_RESVAL 0x0u
133#define CSRNG_GENBITS_VLD_GENBITS_VLD_BIT 0
134#define CSRNG_GENBITS_VLD_GENBITS_FIPS_BIT 1
135
136// Generate bits returned register
137#define CSRNG_GENBITS_REG_OFFSET 0x34
138#define CSRNG_GENBITS_REG_RESVAL 0x0u
139
140// Internal state read enable REGWEN register
141#define CSRNG_INT_STATE_READ_ENABLE_REGWEN_REG_OFFSET 0x38
142#define CSRNG_INT_STATE_READ_ENABLE_REGWEN_REG_RESVAL 0x1u
143#define CSRNG_INT_STATE_READ_ENABLE_REGWEN_INT_STATE_READ_ENABLE_REGWEN_BIT 0
144
145// Internal state read enable register
146#define CSRNG_INT_STATE_READ_ENABLE_REG_OFFSET 0x3c
147#define CSRNG_INT_STATE_READ_ENABLE_REG_RESVAL 0x7u
148#define CSRNG_INT_STATE_READ_ENABLE_INT_STATE_READ_ENABLE_MASK 0x7u
149#define CSRNG_INT_STATE_READ_ENABLE_INT_STATE_READ_ENABLE_OFFSET 0
150#define CSRNG_INT_STATE_READ_ENABLE_INT_STATE_READ_ENABLE_FIELD \
151 ((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 })
152
153// Internal state number register
154#define CSRNG_INT_STATE_NUM_REG_OFFSET 0x40
155#define CSRNG_INT_STATE_NUM_REG_RESVAL 0x0u
156#define CSRNG_INT_STATE_NUM_INT_STATE_NUM_MASK 0xfu
157#define CSRNG_INT_STATE_NUM_INT_STATE_NUM_OFFSET 0
158#define CSRNG_INT_STATE_NUM_INT_STATE_NUM_FIELD \
159 ((bitfield_field32_t) { .mask = CSRNG_INT_STATE_NUM_INT_STATE_NUM_MASK, .index = CSRNG_INT_STATE_NUM_INT_STATE_NUM_OFFSET })
160
161// Internal state read access register
162#define CSRNG_INT_STATE_VAL_REG_OFFSET 0x44
163#define CSRNG_INT_STATE_VAL_REG_RESVAL 0x0u
164
165// FIPS/CC compliance flag forcing register
166#define CSRNG_FIPS_FORCE_REG_OFFSET 0x48
167#define CSRNG_FIPS_FORCE_REG_RESVAL 0x0u
168#define CSRNG_FIPS_FORCE_FIPS_FORCE_MASK 0x7u
169#define CSRNG_FIPS_FORCE_FIPS_FORCE_OFFSET 0
170#define CSRNG_FIPS_FORCE_FIPS_FORCE_FIELD \
171 ((bitfield_field32_t) { .mask = CSRNG_FIPS_FORCE_FIPS_FORCE_MASK, .index = CSRNG_FIPS_FORCE_FIPS_FORCE_OFFSET })
172
173// Register write enable for !!GEN_ABORT
174#define CSRNG_GEN_ABORT_REGWEN_REG_OFFSET 0x4c
175#define CSRNG_GEN_ABORT_REGWEN_REG_RESVAL 0x1u
176#define CSRNG_GEN_ABORT_REGWEN_GEN_ABORT_REGWEN_BIT 0
177
178// Generate command abort request register (common parameters)
179#define CSRNG_GEN_ABORT_GEN_ABORT_FIELD_WIDTH 4
180#define CSRNG_GEN_ABORT_MULTIREG_COUNT 3
181
182// Generate command abort request register
183#define CSRNG_GEN_ABORT_0_REG_OFFSET 0x50
184#define CSRNG_GEN_ABORT_0_REG_RESVAL 0x9u
185#define CSRNG_GEN_ABORT_0_GEN_ABORT_0_MASK 0xfu
186#define CSRNG_GEN_ABORT_0_GEN_ABORT_0_OFFSET 0
187#define CSRNG_GEN_ABORT_0_GEN_ABORT_0_FIELD \
188 ((bitfield_field32_t) { .mask = CSRNG_GEN_ABORT_0_GEN_ABORT_0_MASK, .index = CSRNG_GEN_ABORT_0_GEN_ABORT_0_OFFSET })
189
190// Generate command abort request register
191#define CSRNG_GEN_ABORT_1_REG_OFFSET 0x54
192#define CSRNG_GEN_ABORT_1_REG_RESVAL 0x9u
193#define CSRNG_GEN_ABORT_1_GEN_ABORT_1_MASK 0xfu
194#define CSRNG_GEN_ABORT_1_GEN_ABORT_1_OFFSET 0
195#define CSRNG_GEN_ABORT_1_GEN_ABORT_1_FIELD \
196 ((bitfield_field32_t) { .mask = CSRNG_GEN_ABORT_1_GEN_ABORT_1_MASK, .index = CSRNG_GEN_ABORT_1_GEN_ABORT_1_OFFSET })
197
198// Generate command abort request register
199#define CSRNG_GEN_ABORT_2_REG_OFFSET 0x58
200#define CSRNG_GEN_ABORT_2_REG_RESVAL 0x9u
201#define CSRNG_GEN_ABORT_2_GEN_ABORT_2_MASK 0xfu
202#define CSRNG_GEN_ABORT_2_GEN_ABORT_2_OFFSET 0
203#define CSRNG_GEN_ABORT_2_GEN_ABORT_2_FIELD \
204 ((bitfield_field32_t) { .mask = CSRNG_GEN_ABORT_2_GEN_ABORT_2_MASK, .index = CSRNG_GEN_ABORT_2_GEN_ABORT_2_OFFSET })
205
206// Generate command abort completion status register (common parameters)
207#define CSRNG_GEN_ABORT_STATUS_GEN_ABORT_STATUS_FIELD_WIDTH 1
208#define CSRNG_GEN_ABORT_STATUS_MULTIREG_COUNT 3
209
210// Generate command abort completion status register
211#define CSRNG_GEN_ABORT_STATUS_0_REG_OFFSET 0x5c
212#define CSRNG_GEN_ABORT_STATUS_0_REG_RESVAL 0x0u
213#define CSRNG_GEN_ABORT_STATUS_0_GEN_ABORT_STATUS_0_BIT 0
214
215// Generate command abort completion status register
216#define CSRNG_GEN_ABORT_STATUS_1_REG_OFFSET 0x60
217#define CSRNG_GEN_ABORT_STATUS_1_REG_RESVAL 0x0u
218#define CSRNG_GEN_ABORT_STATUS_1_GEN_ABORT_STATUS_1_BIT 0
219
220// Generate command abort completion status register
221#define CSRNG_GEN_ABORT_STATUS_2_REG_OFFSET 0x64
222#define CSRNG_GEN_ABORT_STATUS_2_REG_RESVAL 0x0u
223#define CSRNG_GEN_ABORT_STATUS_2_GEN_ABORT_STATUS_2_BIT 0
224
225// Hardware instance exception status register
226#define CSRNG_HW_EXC_STS_REG_OFFSET 0x68
227#define CSRNG_HW_EXC_STS_REG_RESVAL 0x0u
228#define CSRNG_HW_EXC_STS_HW_EXC_STS_MASK 0xffffu
229#define CSRNG_HW_EXC_STS_HW_EXC_STS_OFFSET 0
230#define CSRNG_HW_EXC_STS_HW_EXC_STS_FIELD \
231 ((bitfield_field32_t) { .mask = CSRNG_HW_EXC_STS_HW_EXC_STS_MASK, .index = CSRNG_HW_EXC_STS_HW_EXC_STS_OFFSET })
232
233// Recoverable alert status register
234#define CSRNG_RECOV_ALERT_STS_REG_OFFSET 0x6c
235#define CSRNG_RECOV_ALERT_STS_REG_RESVAL 0x0u
236#define CSRNG_RECOV_ALERT_STS_ENABLE_FIELD_ALERT_BIT 0
237#define CSRNG_RECOV_ALERT_STS_SW_APP_ENABLE_FIELD_ALERT_BIT 1
238#define CSRNG_RECOV_ALERT_STS_READ_INT_STATE_FIELD_ALERT_BIT 2
239#define CSRNG_RECOV_ALERT_STS_FIPS_FORCE_ENABLE_FIELD_ALERT_BIT 3
240#define CSRNG_RECOV_ALERT_STS_ACMD_FLAG0_FIELD_ALERT_BIT 4
241#define CSRNG_RECOV_ALERT_STS_GEN_ABORT_INVALID_ALERT_BIT 5
242#define CSRNG_RECOV_ALERT_STS_GEN_ABORT_FIELD_ALERT_BIT 6
243#define CSRNG_RECOV_ALERT_STS_CS_BUS_CMP_ALERT_BIT 12
244#define CSRNG_RECOV_ALERT_STS_CMD_STAGE_INVALID_ACMD_ALERT_BIT 13
245#define CSRNG_RECOV_ALERT_STS_CMD_STAGE_INVALID_CMD_SEQ_ALERT_BIT 14
246#define CSRNG_RECOV_ALERT_STS_CMD_STAGE_RESEED_CNT_ALERT_BIT 15
247
248// Hardware detection of error conditions status register
249#define CSRNG_ERR_CODE_REG_OFFSET 0x70
250#define CSRNG_ERR_CODE_REG_RESVAL 0x0u
251#define CSRNG_ERR_CODE_SFIFO_CMD_ERR_BIT 0
252#define CSRNG_ERR_CODE_SFIFO_GENBITS_ERR_BIT 1
253#define CSRNG_ERR_CODE_CMD_STAGE_SM_ERR_BIT 20
254#define CSRNG_ERR_CODE_MAIN_SM_ERR_BIT 21
255#define CSRNG_ERR_CODE_CTR_DRBG_SM_ERR_BIT 22
256#define CSRNG_ERR_CODE_AES_CIPHER_SM_ERR_BIT 25
257#define CSRNG_ERR_CODE_CTR_ERR_BIT 26
258#define CSRNG_ERR_CODE_FIFO_WRITE_ERR_BIT 28
259#define CSRNG_ERR_CODE_FIFO_READ_ERR_BIT 29
260#define CSRNG_ERR_CODE_FIFO_STATE_ERR_BIT 30
261
262// Test error conditions register
263#define CSRNG_ERR_CODE_TEST_REG_OFFSET 0x74
264#define CSRNG_ERR_CODE_TEST_REG_RESVAL 0x0u
265#define CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_MASK 0x1fu
266#define CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_OFFSET 0
267#define CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_FIELD \
268 ((bitfield_field32_t) { .mask = CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_MASK, .index = CSRNG_ERR_CODE_TEST_ERR_CODE_TEST_OFFSET })
269
270// Main state machine state debug register
271#define CSRNG_MAIN_SM_STATE_REG_OFFSET 0x78
272#define CSRNG_MAIN_SM_STATE_REG_RESVAL 0x37u
273#define CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_MASK 0x3fu
274#define CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_OFFSET 0
275#define CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_FIELD \
276 ((bitfield_field32_t) { .mask = CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_MASK, .index = CSRNG_MAIN_SM_STATE_MAIN_SM_STATE_OFFSET })
277
278#ifdef __cplusplus
279} // extern "C"
280#endif
281#endif // _CSRNG_REG_DEFS_
282// End generated register defines for csrng