 |
Software APIs
|
Go to the documentation of this file.
13#ifndef _CSRNG_REG_DEFS_
14#define _CSRNG_REG_DEFS_
20#define CSRNG_PARAM_NUM_APPS 3
23#define CSRNG_PARAM_NUM_ALERTS 2
26#define CSRNG_PARAM_REG_WIDTH 32
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
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
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
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
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
66#define CSRNG_REGWEN_REG_OFFSET 0x10
67#define CSRNG_REGWEN_REG_RESVAL 0x1u
68#define CSRNG_REGWEN_REGWEN_BIT 0
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 })
91#define CSRNG_CMD_REQ_REG_OFFSET 0x18
92#define CSRNG_CMD_REQ_REG_RESVAL 0x0u
95#define CSRNG_RESEED_INTERVAL_REG_OFFSET 0x1c
96#define CSRNG_RESEED_INTERVAL_REG_RESVAL 0xffffffffu
99#define CSRNG_RESEED_COUNTER_RESEED_COUNTER_FIELD_WIDTH 32
100#define CSRNG_RESEED_COUNTER_MULTIREG_COUNT 3
103#define CSRNG_RESEED_COUNTER_0_REG_OFFSET 0x20
104#define CSRNG_RESEED_COUNTER_0_REG_RESVAL 0x0u
107#define CSRNG_RESEED_COUNTER_1_REG_OFFSET 0x24
108#define CSRNG_RESEED_COUNTER_1_REG_RESVAL 0x0u
111#define CSRNG_RESEED_COUNTER_2_REG_OFFSET 0x28
112#define CSRNG_RESEED_COUNTER_2_REG_RESVAL 0x0u
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
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
137#define CSRNG_GENBITS_REG_OFFSET 0x34
138#define CSRNG_GENBITS_REG_RESVAL 0x0u
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
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 })
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 })
162#define CSRNG_INT_STATE_VAL_REG_OFFSET 0x44
163#define CSRNG_INT_STATE_VAL_REG_RESVAL 0x0u
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 })
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
179#define CSRNG_GEN_ABORT_GEN_ABORT_FIELD_WIDTH 4
180#define CSRNG_GEN_ABORT_MULTIREG_COUNT 3
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 })
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 })
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 })
207#define CSRNG_GEN_ABORT_STATUS_GEN_ABORT_STATUS_FIELD_WIDTH 1
208#define CSRNG_GEN_ABORT_STATUS_MULTIREG_COUNT 3
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
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
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
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 })
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
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
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 })
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 })