 |
Software APIs
|
Go to the documentation of this file.
13#ifndef _KEYMGR_REG_DEFS_
14#define _KEYMGR_REG_DEFS_
20#define KEYMGR_PARAM_NUM_SALT_REG 8
23#define KEYMGR_PARAM_NUM_SW_BINDING_REG 8
26#define KEYMGR_PARAM_NUM_OUT_REG 8
29#define KEYMGR_PARAM_NUM_KEY_VERSION 1
32#define KEYMGR_PARAM_NUM_ALERTS 2
35#define KEYMGR_PARAM_REG_WIDTH 32
38#define KEYMGR_INTR_COMMON_OP_DONE_BIT 0
41#define KEYMGR_INTR_STATE_REG_OFFSET 0x0
42#define KEYMGR_INTR_STATE_REG_RESVAL 0x0u
43#define KEYMGR_INTR_STATE_OP_DONE_BIT 0
46#define KEYMGR_INTR_ENABLE_REG_OFFSET 0x4
47#define KEYMGR_INTR_ENABLE_REG_RESVAL 0x0u
48#define KEYMGR_INTR_ENABLE_OP_DONE_BIT 0
51#define KEYMGR_INTR_TEST_REG_OFFSET 0x8
52#define KEYMGR_INTR_TEST_REG_RESVAL 0x0u
53#define KEYMGR_INTR_TEST_OP_DONE_BIT 0
56#define KEYMGR_ALERT_TEST_REG_OFFSET 0xc
57#define KEYMGR_ALERT_TEST_REG_RESVAL 0x0u
58#define KEYMGR_ALERT_TEST_RECOV_OPERATION_ERR_BIT 0
59#define KEYMGR_ALERT_TEST_FATAL_FAULT_ERR_BIT 1
62#define KEYMGR_CFG_REGWEN_REG_OFFSET 0x10
63#define KEYMGR_CFG_REGWEN_REG_RESVAL 0x1u
64#define KEYMGR_CFG_REGWEN_EN_BIT 0
67#define KEYMGR_START_REG_OFFSET 0x14
68#define KEYMGR_START_REG_RESVAL 0x0u
69#define KEYMGR_START_EN_BIT 0
70#define KEYMGR_START_EN_VALUE_VALID_STATE 0x1
73#define KEYMGR_CONTROL_SHADOWED_REG_OFFSET 0x18
74#define KEYMGR_CONTROL_SHADOWED_REG_RESVAL 0x10u
75#define KEYMGR_CONTROL_SHADOWED_OPERATION_MASK 0x7u
76#define KEYMGR_CONTROL_SHADOWED_OPERATION_OFFSET 4
77#define KEYMGR_CONTROL_SHADOWED_OPERATION_FIELD \
78 ((bitfield_field32_t) { .mask = KEYMGR_CONTROL_SHADOWED_OPERATION_MASK, .index = KEYMGR_CONTROL_SHADOWED_OPERATION_OFFSET })
79#define KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_ADVANCE 0x0
80#define KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_ID 0x1
81#define KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_SW_OUTPUT 0x2
82#define KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_HW_OUTPUT 0x3
83#define KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_DISABLE 0x4
84#define KEYMGR_CONTROL_SHADOWED_CDI_SEL_BIT 7
85#define KEYMGR_CONTROL_SHADOWED_CDI_SEL_VALUE_SEALING_CDI 0x0
86#define KEYMGR_CONTROL_SHADOWED_CDI_SEL_VALUE_ATTESTATION_CDI 0x1
87#define KEYMGR_CONTROL_SHADOWED_DEST_SEL_MASK 0x3u
88#define KEYMGR_CONTROL_SHADOWED_DEST_SEL_OFFSET 12
89#define KEYMGR_CONTROL_SHADOWED_DEST_SEL_FIELD \
90 ((bitfield_field32_t) { .mask = KEYMGR_CONTROL_SHADOWED_DEST_SEL_MASK, .index = KEYMGR_CONTROL_SHADOWED_DEST_SEL_OFFSET })
91#define KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_NONE 0x0
92#define KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_AES 0x1
93#define KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_KMAC 0x2
94#define KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_OTBN 0x3
97#define KEYMGR_SIDELOAD_CLEAR_REG_OFFSET 0x1c
98#define KEYMGR_SIDELOAD_CLEAR_REG_RESVAL 0x0u
99#define KEYMGR_SIDELOAD_CLEAR_VAL_MASK 0x7u
100#define KEYMGR_SIDELOAD_CLEAR_VAL_OFFSET 0
101#define KEYMGR_SIDELOAD_CLEAR_VAL_FIELD \
102 ((bitfield_field32_t) { .mask = KEYMGR_SIDELOAD_CLEAR_VAL_MASK, .index = KEYMGR_SIDELOAD_CLEAR_VAL_OFFSET })
103#define KEYMGR_SIDELOAD_CLEAR_VAL_VALUE_NONE 0x0
104#define KEYMGR_SIDELOAD_CLEAR_VAL_VALUE_AES 0x1
105#define KEYMGR_SIDELOAD_CLEAR_VAL_VALUE_KMAC 0x2
106#define KEYMGR_SIDELOAD_CLEAR_VAL_VALUE_OTBN 0x3
109#define KEYMGR_RESEED_INTERVAL_REGWEN_REG_OFFSET 0x20
110#define KEYMGR_RESEED_INTERVAL_REGWEN_REG_RESVAL 0x1u
111#define KEYMGR_RESEED_INTERVAL_REGWEN_EN_BIT 0
114#define KEYMGR_RESEED_INTERVAL_SHADOWED_REG_OFFSET 0x24
115#define KEYMGR_RESEED_INTERVAL_SHADOWED_REG_RESVAL 0x100u
116#define KEYMGR_RESEED_INTERVAL_SHADOWED_VAL_MASK 0xffffu
117#define KEYMGR_RESEED_INTERVAL_SHADOWED_VAL_OFFSET 0
118#define KEYMGR_RESEED_INTERVAL_SHADOWED_VAL_FIELD \
119 ((bitfield_field32_t) { .mask = KEYMGR_RESEED_INTERVAL_SHADOWED_VAL_MASK, .index = KEYMGR_RESEED_INTERVAL_SHADOWED_VAL_OFFSET })
122#define KEYMGR_SW_BINDING_REGWEN_REG_OFFSET 0x28
123#define KEYMGR_SW_BINDING_REGWEN_REG_RESVAL 0x1u
124#define KEYMGR_SW_BINDING_REGWEN_EN_BIT 0
127#define KEYMGR_SEALING_SW_BINDING_VAL_FIELD_WIDTH 32
128#define KEYMGR_SEALING_SW_BINDING_MULTIREG_COUNT 8
131#define KEYMGR_SEALING_SW_BINDING_0_REG_OFFSET 0x2c
132#define KEYMGR_SEALING_SW_BINDING_0_REG_RESVAL 0x0u
135#define KEYMGR_SEALING_SW_BINDING_1_REG_OFFSET 0x30
136#define KEYMGR_SEALING_SW_BINDING_1_REG_RESVAL 0x0u
139#define KEYMGR_SEALING_SW_BINDING_2_REG_OFFSET 0x34
140#define KEYMGR_SEALING_SW_BINDING_2_REG_RESVAL 0x0u
143#define KEYMGR_SEALING_SW_BINDING_3_REG_OFFSET 0x38
144#define KEYMGR_SEALING_SW_BINDING_3_REG_RESVAL 0x0u
147#define KEYMGR_SEALING_SW_BINDING_4_REG_OFFSET 0x3c
148#define KEYMGR_SEALING_SW_BINDING_4_REG_RESVAL 0x0u
151#define KEYMGR_SEALING_SW_BINDING_5_REG_OFFSET 0x40
152#define KEYMGR_SEALING_SW_BINDING_5_REG_RESVAL 0x0u
155#define KEYMGR_SEALING_SW_BINDING_6_REG_OFFSET 0x44
156#define KEYMGR_SEALING_SW_BINDING_6_REG_RESVAL 0x0u
159#define KEYMGR_SEALING_SW_BINDING_7_REG_OFFSET 0x48
160#define KEYMGR_SEALING_SW_BINDING_7_REG_RESVAL 0x0u
163#define KEYMGR_ATTEST_SW_BINDING_VAL_FIELD_WIDTH 32
164#define KEYMGR_ATTEST_SW_BINDING_MULTIREG_COUNT 8
167#define KEYMGR_ATTEST_SW_BINDING_0_REG_OFFSET 0x4c
168#define KEYMGR_ATTEST_SW_BINDING_0_REG_RESVAL 0x0u
171#define KEYMGR_ATTEST_SW_BINDING_1_REG_OFFSET 0x50
172#define KEYMGR_ATTEST_SW_BINDING_1_REG_RESVAL 0x0u
175#define KEYMGR_ATTEST_SW_BINDING_2_REG_OFFSET 0x54
176#define KEYMGR_ATTEST_SW_BINDING_2_REG_RESVAL 0x0u
179#define KEYMGR_ATTEST_SW_BINDING_3_REG_OFFSET 0x58
180#define KEYMGR_ATTEST_SW_BINDING_3_REG_RESVAL 0x0u
183#define KEYMGR_ATTEST_SW_BINDING_4_REG_OFFSET 0x5c
184#define KEYMGR_ATTEST_SW_BINDING_4_REG_RESVAL 0x0u
187#define KEYMGR_ATTEST_SW_BINDING_5_REG_OFFSET 0x60
188#define KEYMGR_ATTEST_SW_BINDING_5_REG_RESVAL 0x0u
191#define KEYMGR_ATTEST_SW_BINDING_6_REG_OFFSET 0x64
192#define KEYMGR_ATTEST_SW_BINDING_6_REG_RESVAL 0x0u
195#define KEYMGR_ATTEST_SW_BINDING_7_REG_OFFSET 0x68
196#define KEYMGR_ATTEST_SW_BINDING_7_REG_RESVAL 0x0u
199#define KEYMGR_SALT_VAL_FIELD_WIDTH 32
200#define KEYMGR_SALT_MULTIREG_COUNT 8
203#define KEYMGR_SALT_0_REG_OFFSET 0x6c
204#define KEYMGR_SALT_0_REG_RESVAL 0x0u
207#define KEYMGR_SALT_1_REG_OFFSET 0x70
208#define KEYMGR_SALT_1_REG_RESVAL 0x0u
211#define KEYMGR_SALT_2_REG_OFFSET 0x74
212#define KEYMGR_SALT_2_REG_RESVAL 0x0u
215#define KEYMGR_SALT_3_REG_OFFSET 0x78
216#define KEYMGR_SALT_3_REG_RESVAL 0x0u
219#define KEYMGR_SALT_4_REG_OFFSET 0x7c
220#define KEYMGR_SALT_4_REG_RESVAL 0x0u
223#define KEYMGR_SALT_5_REG_OFFSET 0x80
224#define KEYMGR_SALT_5_REG_RESVAL 0x0u
227#define KEYMGR_SALT_6_REG_OFFSET 0x84
228#define KEYMGR_SALT_6_REG_RESVAL 0x0u
231#define KEYMGR_SALT_7_REG_OFFSET 0x88
232#define KEYMGR_SALT_7_REG_RESVAL 0x0u
235#define KEYMGR_KEY_VERSION_VAL_FIELD_WIDTH 32
236#define KEYMGR_KEY_VERSION_MULTIREG_COUNT 1
239#define KEYMGR_KEY_VERSION_REG_OFFSET 0x8c
240#define KEYMGR_KEY_VERSION_REG_RESVAL 0x0u
243#define KEYMGR_MAX_CREATOR_KEY_VER_REGWEN_REG_OFFSET 0x90
244#define KEYMGR_MAX_CREATOR_KEY_VER_REGWEN_REG_RESVAL 0x1u
245#define KEYMGR_MAX_CREATOR_KEY_VER_REGWEN_EN_BIT 0
248#define KEYMGR_MAX_CREATOR_KEY_VER_SHADOWED_REG_OFFSET 0x94
249#define KEYMGR_MAX_CREATOR_KEY_VER_SHADOWED_REG_RESVAL 0x0u
252#define KEYMGR_MAX_OWNER_INT_KEY_VER_REGWEN_REG_OFFSET 0x98
253#define KEYMGR_MAX_OWNER_INT_KEY_VER_REGWEN_REG_RESVAL 0x1u
254#define KEYMGR_MAX_OWNER_INT_KEY_VER_REGWEN_EN_BIT 0
257#define KEYMGR_MAX_OWNER_INT_KEY_VER_SHADOWED_REG_OFFSET 0x9c
258#define KEYMGR_MAX_OWNER_INT_KEY_VER_SHADOWED_REG_RESVAL 0x1u
261#define KEYMGR_MAX_OWNER_KEY_VER_REGWEN_REG_OFFSET 0xa0
262#define KEYMGR_MAX_OWNER_KEY_VER_REGWEN_REG_RESVAL 0x1u
263#define KEYMGR_MAX_OWNER_KEY_VER_REGWEN_EN_BIT 0
266#define KEYMGR_MAX_OWNER_KEY_VER_SHADOWED_REG_OFFSET 0xa4
267#define KEYMGR_MAX_OWNER_KEY_VER_SHADOWED_REG_RESVAL 0x0u
270#define KEYMGR_SW_SHARE0_OUTPUT_VAL_FIELD_WIDTH 32
271#define KEYMGR_SW_SHARE0_OUTPUT_MULTIREG_COUNT 8
274#define KEYMGR_SW_SHARE0_OUTPUT_0_REG_OFFSET 0xa8
275#define KEYMGR_SW_SHARE0_OUTPUT_0_REG_RESVAL 0x0u
278#define KEYMGR_SW_SHARE0_OUTPUT_1_REG_OFFSET 0xac
279#define KEYMGR_SW_SHARE0_OUTPUT_1_REG_RESVAL 0x0u
282#define KEYMGR_SW_SHARE0_OUTPUT_2_REG_OFFSET 0xb0
283#define KEYMGR_SW_SHARE0_OUTPUT_2_REG_RESVAL 0x0u
286#define KEYMGR_SW_SHARE0_OUTPUT_3_REG_OFFSET 0xb4
287#define KEYMGR_SW_SHARE0_OUTPUT_3_REG_RESVAL 0x0u
290#define KEYMGR_SW_SHARE0_OUTPUT_4_REG_OFFSET 0xb8
291#define KEYMGR_SW_SHARE0_OUTPUT_4_REG_RESVAL 0x0u
294#define KEYMGR_SW_SHARE0_OUTPUT_5_REG_OFFSET 0xbc
295#define KEYMGR_SW_SHARE0_OUTPUT_5_REG_RESVAL 0x0u
298#define KEYMGR_SW_SHARE0_OUTPUT_6_REG_OFFSET 0xc0
299#define KEYMGR_SW_SHARE0_OUTPUT_6_REG_RESVAL 0x0u
302#define KEYMGR_SW_SHARE0_OUTPUT_7_REG_OFFSET 0xc4
303#define KEYMGR_SW_SHARE0_OUTPUT_7_REG_RESVAL 0x0u
306#define KEYMGR_SW_SHARE1_OUTPUT_VAL_FIELD_WIDTH 32
307#define KEYMGR_SW_SHARE1_OUTPUT_MULTIREG_COUNT 8
310#define KEYMGR_SW_SHARE1_OUTPUT_0_REG_OFFSET 0xc8
311#define KEYMGR_SW_SHARE1_OUTPUT_0_REG_RESVAL 0x0u
314#define KEYMGR_SW_SHARE1_OUTPUT_1_REG_OFFSET 0xcc
315#define KEYMGR_SW_SHARE1_OUTPUT_1_REG_RESVAL 0x0u
318#define KEYMGR_SW_SHARE1_OUTPUT_2_REG_OFFSET 0xd0
319#define KEYMGR_SW_SHARE1_OUTPUT_2_REG_RESVAL 0x0u
322#define KEYMGR_SW_SHARE1_OUTPUT_3_REG_OFFSET 0xd4
323#define KEYMGR_SW_SHARE1_OUTPUT_3_REG_RESVAL 0x0u
326#define KEYMGR_SW_SHARE1_OUTPUT_4_REG_OFFSET 0xd8
327#define KEYMGR_SW_SHARE1_OUTPUT_4_REG_RESVAL 0x0u
330#define KEYMGR_SW_SHARE1_OUTPUT_5_REG_OFFSET 0xdc
331#define KEYMGR_SW_SHARE1_OUTPUT_5_REG_RESVAL 0x0u
334#define KEYMGR_SW_SHARE1_OUTPUT_6_REG_OFFSET 0xe0
335#define KEYMGR_SW_SHARE1_OUTPUT_6_REG_RESVAL 0x0u
338#define KEYMGR_SW_SHARE1_OUTPUT_7_REG_OFFSET 0xe4
339#define KEYMGR_SW_SHARE1_OUTPUT_7_REG_RESVAL 0x0u
342#define KEYMGR_WORKING_STATE_REG_OFFSET 0xe8
343#define KEYMGR_WORKING_STATE_REG_RESVAL 0x0u
344#define KEYMGR_WORKING_STATE_STATE_MASK 0x7u
345#define KEYMGR_WORKING_STATE_STATE_OFFSET 0
346#define KEYMGR_WORKING_STATE_STATE_FIELD \
347 ((bitfield_field32_t) { .mask = KEYMGR_WORKING_STATE_STATE_MASK, .index = KEYMGR_WORKING_STATE_STATE_OFFSET })
348#define KEYMGR_WORKING_STATE_STATE_VALUE_RESET 0x0
349#define KEYMGR_WORKING_STATE_STATE_VALUE_INIT 0x1
350#define KEYMGR_WORKING_STATE_STATE_VALUE_CREATOR_ROOT_KEY 0x2
351#define KEYMGR_WORKING_STATE_STATE_VALUE_OWNER_INTERMEDIATE_KEY 0x3
352#define KEYMGR_WORKING_STATE_STATE_VALUE_OWNER_KEY 0x4
353#define KEYMGR_WORKING_STATE_STATE_VALUE_DISABLED 0x5
354#define KEYMGR_WORKING_STATE_STATE_VALUE_INVALID 0x6
357#define KEYMGR_OP_STATUS_REG_OFFSET 0xec
358#define KEYMGR_OP_STATUS_REG_RESVAL 0x0u
359#define KEYMGR_OP_STATUS_STATUS_MASK 0x3u
360#define KEYMGR_OP_STATUS_STATUS_OFFSET 0
361#define KEYMGR_OP_STATUS_STATUS_FIELD \
362 ((bitfield_field32_t) { .mask = KEYMGR_OP_STATUS_STATUS_MASK, .index = KEYMGR_OP_STATUS_STATUS_OFFSET })
363#define KEYMGR_OP_STATUS_STATUS_VALUE_IDLE 0x0
364#define KEYMGR_OP_STATUS_STATUS_VALUE_WIP 0x1
365#define KEYMGR_OP_STATUS_STATUS_VALUE_DONE_SUCCESS 0x2
366#define KEYMGR_OP_STATUS_STATUS_VALUE_DONE_ERROR 0x3
369#define KEYMGR_ERR_CODE_REG_OFFSET 0xf0
370#define KEYMGR_ERR_CODE_REG_RESVAL 0x0u
371#define KEYMGR_ERR_CODE_INVALID_OP_BIT 0
372#define KEYMGR_ERR_CODE_INVALID_KMAC_INPUT_BIT 1
373#define KEYMGR_ERR_CODE_INVALID_SHADOW_UPDATE_BIT 2
376#define KEYMGR_FAULT_STATUS_REG_OFFSET 0xf4
377#define KEYMGR_FAULT_STATUS_REG_RESVAL 0x0u
378#define KEYMGR_FAULT_STATUS_CMD_BIT 0
379#define KEYMGR_FAULT_STATUS_KMAC_FSM_BIT 1
380#define KEYMGR_FAULT_STATUS_KMAC_DONE_BIT 2
381#define KEYMGR_FAULT_STATUS_KMAC_OP_BIT 3
382#define KEYMGR_FAULT_STATUS_KMAC_OUT_BIT 4
383#define KEYMGR_FAULT_STATUS_REGFILE_INTG_BIT 5
384#define KEYMGR_FAULT_STATUS_SHADOW_BIT 6
385#define KEYMGR_FAULT_STATUS_CTRL_FSM_INTG_BIT 7
386#define KEYMGR_FAULT_STATUS_CTRL_FSM_CHK_BIT 8
387#define KEYMGR_FAULT_STATUS_CTRL_FSM_CNT_BIT 9
388#define KEYMGR_FAULT_STATUS_RESEED_CNT_BIT 10
389#define KEYMGR_FAULT_STATUS_SIDE_CTRL_FSM_BIT 11
390#define KEYMGR_FAULT_STATUS_SIDE_CTRL_SEL_BIT 12
391#define KEYMGR_FAULT_STATUS_KEY_ECC_BIT 13
394#define KEYMGR_DEBUG_REG_OFFSET 0xf8
395#define KEYMGR_DEBUG_REG_RESVAL 0x0u
396#define KEYMGR_DEBUG_INVALID_CREATOR_SEED_BIT 0
397#define KEYMGR_DEBUG_INVALID_OWNER_SEED_BIT 1
398#define KEYMGR_DEBUG_INVALID_DEV_ID_BIT 2
399#define KEYMGR_DEBUG_INVALID_HEALTH_STATE_BIT 3
400#define KEYMGR_DEBUG_INVALID_KEY_VERSION_BIT 4
401#define KEYMGR_DEBUG_INVALID_KEY_BIT 5
402#define KEYMGR_DEBUG_INVALID_DIGEST_BIT 6