Software APIs
keymgr_dpe_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for keymgr_dpe
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 _KEYMGR_DPE_REG_DEFS_
14#define _KEYMGR_DPE_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number of Registers for SW inputs (Salt)
20#define KEYMGR_DPE_PARAM_NUM_SALT_REG 8
21
22// Number of Registers for SW inputs (SW binding)
23#define KEYMGR_DPE_PARAM_NUM_SW_BINDING_REG 8
24
25// Number of Registers for SW outputs
26#define KEYMGR_DPE_PARAM_NUM_OUT_REG 8
27
28// Number of Registers for key version
29#define KEYMGR_DPE_PARAM_NUM_KEY_VERSION 1
30
31// Number of maximum supported HW slots. If this value is changed then the
32#define KEYMGR_DPE_PARAM_NUM_MAX_HW_SLOT 8
33
34// Number of alerts
35#define KEYMGR_DPE_PARAM_NUM_ALERTS 2
36
37// Register width
38#define KEYMGR_DPE_PARAM_REG_WIDTH 32
39
40// Common Interrupt Offsets
41#define KEYMGR_DPE_INTR_COMMON_OP_DONE_BIT 0
42
43// Interrupt State Register
44#define KEYMGR_DPE_INTR_STATE_REG_OFFSET 0x0
45#define KEYMGR_DPE_INTR_STATE_REG_RESVAL 0x0u
46#define KEYMGR_DPE_INTR_STATE_OP_DONE_BIT 0
47
48// Interrupt Enable Register
49#define KEYMGR_DPE_INTR_ENABLE_REG_OFFSET 0x4
50#define KEYMGR_DPE_INTR_ENABLE_REG_RESVAL 0x0u
51#define KEYMGR_DPE_INTR_ENABLE_OP_DONE_BIT 0
52
53// Interrupt Test Register
54#define KEYMGR_DPE_INTR_TEST_REG_OFFSET 0x8
55#define KEYMGR_DPE_INTR_TEST_REG_RESVAL 0x0u
56#define KEYMGR_DPE_INTR_TEST_OP_DONE_BIT 0
57
58// Alert Test Register
59#define KEYMGR_DPE_ALERT_TEST_REG_OFFSET 0xc
60#define KEYMGR_DPE_ALERT_TEST_REG_RESVAL 0x80000000u
61#define KEYMGR_DPE_ALERT_TEST_RECOV_OPERATION_ERR_BIT 0
62#define KEYMGR_DPE_ALERT_TEST_FATAL_FAULT_ERR_BIT 1
63#define KEYMGR_DPE_ALERT_TEST_REGWEN_BIT 31
64
65// Key manager configuration enable
66#define KEYMGR_DPE_CFG_REGWEN_REG_OFFSET 0x10
67#define KEYMGR_DPE_CFG_REGWEN_REG_RESVAL 0x1u
68#define KEYMGR_DPE_CFG_REGWEN_EN_BIT 0
69
70// Key manager operation start
71#define KEYMGR_DPE_START_REG_OFFSET 0x14
72#define KEYMGR_DPE_START_REG_RESVAL 0x0u
73#define KEYMGR_DPE_START_EN_BIT 0
74#define KEYMGR_DPE_START_EN_VALUE_VALID_STATE 0x1
75
76// Key manager operation controls
77#define KEYMGR_DPE_CONTROL_SHADOWED_REG_OFFSET 0x18
78#define KEYMGR_DPE_CONTROL_SHADOWED_REG_RESVAL 0x10u
79#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_MASK 0x7u
80#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_OFFSET 4
81#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_FIELD \
82 ((bitfield_field32_t) { .mask = KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_MASK, .index = KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_OFFSET })
83#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_VALUE_ADVANCE 0x0
84#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_VALUE_ERASE_SLOT 0x1
85#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_SW_OUTPUT 0x2
86#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_HW_OUTPUT 0x3
87#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_VALUE_DISABLE 0x4
88#define KEYMGR_DPE_CONTROL_SHADOWED_OPERATION_VALUE_LOAD_ROOT_KEY 0x5
89#define KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_MASK 0x7u
90#define KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_OFFSET 11
91#define KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_FIELD \
92 ((bitfield_field32_t) { .mask = KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_MASK, .index = KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_OFFSET })
93#define KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_VALUE_NONE 0x0
94#define KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_VALUE_AES 0x1
95#define KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_VALUE_KMAC 0x2
96#define KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_VALUE_OTBN 0x3
97#define KEYMGR_DPE_CONTROL_SHADOWED_DEST_SEL_VALUE_HMAC 0x4
98#define KEYMGR_DPE_CONTROL_SHADOWED_SLOT_SRC_SEL_MASK 0x7u
99#define KEYMGR_DPE_CONTROL_SHADOWED_SLOT_SRC_SEL_OFFSET 14
100#define KEYMGR_DPE_CONTROL_SHADOWED_SLOT_SRC_SEL_FIELD \
101 ((bitfield_field32_t) { .mask = KEYMGR_DPE_CONTROL_SHADOWED_SLOT_SRC_SEL_MASK, .index = KEYMGR_DPE_CONTROL_SHADOWED_SLOT_SRC_SEL_OFFSET })
102#define KEYMGR_DPE_CONTROL_SHADOWED_SLOT_DST_SEL_MASK 0x7u
103#define KEYMGR_DPE_CONTROL_SHADOWED_SLOT_DST_SEL_OFFSET 18
104#define KEYMGR_DPE_CONTROL_SHADOWED_SLOT_DST_SEL_FIELD \
105 ((bitfield_field32_t) { .mask = KEYMGR_DPE_CONTROL_SHADOWED_SLOT_DST_SEL_MASK, .index = KEYMGR_DPE_CONTROL_SHADOWED_SLOT_DST_SEL_OFFSET })
106#define KEYMGR_DPE_CONTROL_SHADOWED_SW_BINDING_ONLY_BIT 22
107
108// sideload key slots clear
109#define KEYMGR_DPE_SIDELOAD_CLEAR_REG_OFFSET 0x1c
110#define KEYMGR_DPE_SIDELOAD_CLEAR_REG_RESVAL 0x0u
111#define KEYMGR_DPE_SIDELOAD_CLEAR_VAL_MASK 0x7u
112#define KEYMGR_DPE_SIDELOAD_CLEAR_VAL_OFFSET 0
113#define KEYMGR_DPE_SIDELOAD_CLEAR_VAL_FIELD \
114 ((bitfield_field32_t) { .mask = KEYMGR_DPE_SIDELOAD_CLEAR_VAL_MASK, .index = KEYMGR_DPE_SIDELOAD_CLEAR_VAL_OFFSET })
115#define KEYMGR_DPE_SIDELOAD_CLEAR_VAL_VALUE_NONE 0x0
116#define KEYMGR_DPE_SIDELOAD_CLEAR_VAL_VALUE_AES 0x1
117#define KEYMGR_DPE_SIDELOAD_CLEAR_VAL_VALUE_KMAC 0x2
118#define KEYMGR_DPE_SIDELOAD_CLEAR_VAL_VALUE_OTBN 0x3
119#define KEYMGR_DPE_SIDELOAD_CLEAR_VAL_VALUE_HMAC 0x4
120
121// regwen for reseed interval
122#define KEYMGR_DPE_RESEED_INTERVAL_REGWEN_REG_OFFSET 0x20
123#define KEYMGR_DPE_RESEED_INTERVAL_REGWEN_REG_RESVAL 0x1u
124#define KEYMGR_DPE_RESEED_INTERVAL_REGWEN_EN_BIT 0
125
126// Reseed interval for key manager entropy reseed
127#define KEYMGR_DPE_RESEED_INTERVAL_SHADOWED_REG_OFFSET 0x24
128#define KEYMGR_DPE_RESEED_INTERVAL_SHADOWED_REG_RESVAL 0x100u
129#define KEYMGR_DPE_RESEED_INTERVAL_SHADOWED_VAL_MASK 0xffffu
130#define KEYMGR_DPE_RESEED_INTERVAL_SHADOWED_VAL_OFFSET 0
131#define KEYMGR_DPE_RESEED_INTERVAL_SHADOWED_VAL_FIELD \
132 ((bitfield_field32_t) { .mask = KEYMGR_DPE_RESEED_INTERVAL_SHADOWED_VAL_MASK, .index = KEYMGR_DPE_RESEED_INTERVAL_SHADOWED_VAL_OFFSET })
133
134// Register write enable for SLOT_POLICY
135#define KEYMGR_DPE_SLOT_POLICY_REGWEN_REG_OFFSET 0x28
136#define KEYMGR_DPE_SLOT_POLICY_REGWEN_REG_RESVAL 0x1u
137#define KEYMGR_DPE_SLOT_POLICY_REGWEN_EN_BIT 0
138
139// Policy bits for the child DPE context
140#define KEYMGR_DPE_SLOT_POLICY_REG_OFFSET 0x2c
141#define KEYMGR_DPE_SLOT_POLICY_REG_RESVAL 0x0u
142#define KEYMGR_DPE_SLOT_POLICY_ALLOW_CHILD_BIT 0
143#define KEYMGR_DPE_SLOT_POLICY_EXPORTABLE_BIT 1
144#define KEYMGR_DPE_SLOT_POLICY_RETAIN_PARENT_BIT 2
145
146// Register write enable for SOFTWARE_BINDING
147#define KEYMGR_DPE_SW_BINDING_REGWEN_REG_OFFSET 0x30
148#define KEYMGR_DPE_SW_BINDING_REGWEN_REG_RESVAL 0x1u
149#define KEYMGR_DPE_SW_BINDING_REGWEN_EN_BIT 0
150
151// Software binding input of the key manager.
152#define KEYMGR_DPE_SW_BINDING_VAL_FIELD_WIDTH 32
153#define KEYMGR_DPE_SW_BINDING_MULTIREG_COUNT 8
154
155// Software binding input of the key manager.
156#define KEYMGR_DPE_SW_BINDING_0_REG_OFFSET 0x34
157#define KEYMGR_DPE_SW_BINDING_0_REG_RESVAL 0x0u
158
159// Software binding input of the key manager.
160#define KEYMGR_DPE_SW_BINDING_1_REG_OFFSET 0x38
161#define KEYMGR_DPE_SW_BINDING_1_REG_RESVAL 0x0u
162
163// Software binding input of the key manager.
164#define KEYMGR_DPE_SW_BINDING_2_REG_OFFSET 0x3c
165#define KEYMGR_DPE_SW_BINDING_2_REG_RESVAL 0x0u
166
167// Software binding input of the key manager.
168#define KEYMGR_DPE_SW_BINDING_3_REG_OFFSET 0x40
169#define KEYMGR_DPE_SW_BINDING_3_REG_RESVAL 0x0u
170
171// Software binding input of the key manager.
172#define KEYMGR_DPE_SW_BINDING_4_REG_OFFSET 0x44
173#define KEYMGR_DPE_SW_BINDING_4_REG_RESVAL 0x0u
174
175// Software binding input of the key manager.
176#define KEYMGR_DPE_SW_BINDING_5_REG_OFFSET 0x48
177#define KEYMGR_DPE_SW_BINDING_5_REG_RESVAL 0x0u
178
179// Software binding input of the key manager.
180#define KEYMGR_DPE_SW_BINDING_6_REG_OFFSET 0x4c
181#define KEYMGR_DPE_SW_BINDING_6_REG_RESVAL 0x0u
182
183// Software binding input of the key manager.
184#define KEYMGR_DPE_SW_BINDING_7_REG_OFFSET 0x50
185#define KEYMGR_DPE_SW_BINDING_7_REG_RESVAL 0x0u
186
187// Salt value used as part of output generation (common parameters)
188#define KEYMGR_DPE_SALT_VAL_FIELD_WIDTH 32
189#define KEYMGR_DPE_SALT_MULTIREG_COUNT 8
190
191// Salt value used as part of output generation
192#define KEYMGR_DPE_SALT_0_REG_OFFSET 0x54
193#define KEYMGR_DPE_SALT_0_REG_RESVAL 0x0u
194
195// Salt value used as part of output generation
196#define KEYMGR_DPE_SALT_1_REG_OFFSET 0x58
197#define KEYMGR_DPE_SALT_1_REG_RESVAL 0x0u
198
199// Salt value used as part of output generation
200#define KEYMGR_DPE_SALT_2_REG_OFFSET 0x5c
201#define KEYMGR_DPE_SALT_2_REG_RESVAL 0x0u
202
203// Salt value used as part of output generation
204#define KEYMGR_DPE_SALT_3_REG_OFFSET 0x60
205#define KEYMGR_DPE_SALT_3_REG_RESVAL 0x0u
206
207// Salt value used as part of output generation
208#define KEYMGR_DPE_SALT_4_REG_OFFSET 0x64
209#define KEYMGR_DPE_SALT_4_REG_RESVAL 0x0u
210
211// Salt value used as part of output generation
212#define KEYMGR_DPE_SALT_5_REG_OFFSET 0x68
213#define KEYMGR_DPE_SALT_5_REG_RESVAL 0x0u
214
215// Salt value used as part of output generation
216#define KEYMGR_DPE_SALT_6_REG_OFFSET 0x6c
217#define KEYMGR_DPE_SALT_6_REG_RESVAL 0x0u
218
219// Salt value used as part of output generation
220#define KEYMGR_DPE_SALT_7_REG_OFFSET 0x70
221#define KEYMGR_DPE_SALT_7_REG_RESVAL 0x0u
222
223// Version used as part of output generation (common parameters)
224#define KEYMGR_DPE_KEY_VERSION_VAL_FIELD_WIDTH 32
225#define KEYMGR_DPE_KEY_VERSION_MULTIREG_COUNT 1
226
227// Version used as part of output generation
228#define KEYMGR_DPE_KEY_VERSION_REG_OFFSET 0x74
229#define KEYMGR_DPE_KEY_VERSION_REG_RESVAL 0x0u
230
231// Register write enable for MAX_KEY_VERSION
232#define KEYMGR_DPE_MAX_KEY_VER_REGWEN_REG_OFFSET 0x78
233#define KEYMGR_DPE_MAX_KEY_VER_REGWEN_REG_RESVAL 0x1u
234#define KEYMGR_DPE_MAX_KEY_VER_REGWEN_EN_BIT 0
235
236// Max key version
237#define KEYMGR_DPE_MAX_KEY_VER_SHADOWED_REG_OFFSET 0x7c
238#define KEYMGR_DPE_MAX_KEY_VER_SHADOWED_REG_RESVAL 0x0u
239
240// Key manager software output.
241#define KEYMGR_DPE_SW_SHARE0_OUTPUT_VAL_FIELD_WIDTH 32
242#define KEYMGR_DPE_SW_SHARE0_OUTPUT_MULTIREG_COUNT 8
243
244// Key manager software output.
245#define KEYMGR_DPE_SW_SHARE0_OUTPUT_0_REG_OFFSET 0x80
246#define KEYMGR_DPE_SW_SHARE0_OUTPUT_0_REG_RESVAL 0x0u
247
248// Key manager software output.
249#define KEYMGR_DPE_SW_SHARE0_OUTPUT_1_REG_OFFSET 0x84
250#define KEYMGR_DPE_SW_SHARE0_OUTPUT_1_REG_RESVAL 0x0u
251
252// Key manager software output.
253#define KEYMGR_DPE_SW_SHARE0_OUTPUT_2_REG_OFFSET 0x88
254#define KEYMGR_DPE_SW_SHARE0_OUTPUT_2_REG_RESVAL 0x0u
255
256// Key manager software output.
257#define KEYMGR_DPE_SW_SHARE0_OUTPUT_3_REG_OFFSET 0x8c
258#define KEYMGR_DPE_SW_SHARE0_OUTPUT_3_REG_RESVAL 0x0u
259
260// Key manager software output.
261#define KEYMGR_DPE_SW_SHARE0_OUTPUT_4_REG_OFFSET 0x90
262#define KEYMGR_DPE_SW_SHARE0_OUTPUT_4_REG_RESVAL 0x0u
263
264// Key manager software output.
265#define KEYMGR_DPE_SW_SHARE0_OUTPUT_5_REG_OFFSET 0x94
266#define KEYMGR_DPE_SW_SHARE0_OUTPUT_5_REG_RESVAL 0x0u
267
268// Key manager software output.
269#define KEYMGR_DPE_SW_SHARE0_OUTPUT_6_REG_OFFSET 0x98
270#define KEYMGR_DPE_SW_SHARE0_OUTPUT_6_REG_RESVAL 0x0u
271
272// Key manager software output.
273#define KEYMGR_DPE_SW_SHARE0_OUTPUT_7_REG_OFFSET 0x9c
274#define KEYMGR_DPE_SW_SHARE0_OUTPUT_7_REG_RESVAL 0x0u
275
276// Key manager software output.
277#define KEYMGR_DPE_SW_SHARE1_OUTPUT_VAL_FIELD_WIDTH 32
278#define KEYMGR_DPE_SW_SHARE1_OUTPUT_MULTIREG_COUNT 8
279
280// Key manager software output.
281#define KEYMGR_DPE_SW_SHARE1_OUTPUT_0_REG_OFFSET 0xa0
282#define KEYMGR_DPE_SW_SHARE1_OUTPUT_0_REG_RESVAL 0x0u
283
284// Key manager software output.
285#define KEYMGR_DPE_SW_SHARE1_OUTPUT_1_REG_OFFSET 0xa4
286#define KEYMGR_DPE_SW_SHARE1_OUTPUT_1_REG_RESVAL 0x0u
287
288// Key manager software output.
289#define KEYMGR_DPE_SW_SHARE1_OUTPUT_2_REG_OFFSET 0xa8
290#define KEYMGR_DPE_SW_SHARE1_OUTPUT_2_REG_RESVAL 0x0u
291
292// Key manager software output.
293#define KEYMGR_DPE_SW_SHARE1_OUTPUT_3_REG_OFFSET 0xac
294#define KEYMGR_DPE_SW_SHARE1_OUTPUT_3_REG_RESVAL 0x0u
295
296// Key manager software output.
297#define KEYMGR_DPE_SW_SHARE1_OUTPUT_4_REG_OFFSET 0xb0
298#define KEYMGR_DPE_SW_SHARE1_OUTPUT_4_REG_RESVAL 0x0u
299
300// Key manager software output.
301#define KEYMGR_DPE_SW_SHARE1_OUTPUT_5_REG_OFFSET 0xb4
302#define KEYMGR_DPE_SW_SHARE1_OUTPUT_5_REG_RESVAL 0x0u
303
304// Key manager software output.
305#define KEYMGR_DPE_SW_SHARE1_OUTPUT_6_REG_OFFSET 0xb8
306#define KEYMGR_DPE_SW_SHARE1_OUTPUT_6_REG_RESVAL 0x0u
307
308// Key manager software output.
309#define KEYMGR_DPE_SW_SHARE1_OUTPUT_7_REG_OFFSET 0xbc
310#define KEYMGR_DPE_SW_SHARE1_OUTPUT_7_REG_RESVAL 0x0u
311
312// Key manager working state.
313#define KEYMGR_DPE_WORKING_STATE_REG_OFFSET 0xc0
314#define KEYMGR_DPE_WORKING_STATE_REG_RESVAL 0x0u
315#define KEYMGR_DPE_WORKING_STATE_STATE_MASK 0x3u
316#define KEYMGR_DPE_WORKING_STATE_STATE_OFFSET 0
317#define KEYMGR_DPE_WORKING_STATE_STATE_FIELD \
318 ((bitfield_field32_t) { .mask = KEYMGR_DPE_WORKING_STATE_STATE_MASK, .index = KEYMGR_DPE_WORKING_STATE_STATE_OFFSET })
319#define KEYMGR_DPE_WORKING_STATE_STATE_VALUE_RESET 0x0
320#define KEYMGR_DPE_WORKING_STATE_STATE_VALUE_AVAILABLE 0x1
321#define KEYMGR_DPE_WORKING_STATE_STATE_VALUE_DISABLED 0x2
322#define KEYMGR_DPE_WORKING_STATE_STATE_VALUE_INVALID 0x3
323
324// Key manager status.
325#define KEYMGR_DPE_OP_STATUS_REG_OFFSET 0xc4
326#define KEYMGR_DPE_OP_STATUS_REG_RESVAL 0x0u
327#define KEYMGR_DPE_OP_STATUS_STATUS_MASK 0x3u
328#define KEYMGR_DPE_OP_STATUS_STATUS_OFFSET 0
329#define KEYMGR_DPE_OP_STATUS_STATUS_FIELD \
330 ((bitfield_field32_t) { .mask = KEYMGR_DPE_OP_STATUS_STATUS_MASK, .index = KEYMGR_DPE_OP_STATUS_STATUS_OFFSET })
331#define KEYMGR_DPE_OP_STATUS_STATUS_VALUE_IDLE 0x0
332#define KEYMGR_DPE_OP_STATUS_STATUS_VALUE_WIP 0x1
333#define KEYMGR_DPE_OP_STATUS_STATUS_VALUE_DONE_SUCCESS 0x2
334#define KEYMGR_DPE_OP_STATUS_STATUS_VALUE_DONE_ERROR 0x3
335
336// Read metadata (low word) for each HW slot.
337#define KEYMGR_DPE_METADATA_LOW_MAX_KEY_VERSION_FIELD_WIDTH 32
338#define KEYMGR_DPE_METADATA_LOW_MULTIREG_COUNT 8
339
340// Read metadata (low word) for each HW slot.
341#define KEYMGR_DPE_METADATA_LOW_0_REG_OFFSET 0xc8
342#define KEYMGR_DPE_METADATA_LOW_0_REG_RESVAL 0x0u
343
344// Read metadata (low word) for each HW slot.
345#define KEYMGR_DPE_METADATA_LOW_1_REG_OFFSET 0xcc
346#define KEYMGR_DPE_METADATA_LOW_1_REG_RESVAL 0x0u
347
348// Read metadata (low word) for each HW slot.
349#define KEYMGR_DPE_METADATA_LOW_2_REG_OFFSET 0xd0
350#define KEYMGR_DPE_METADATA_LOW_2_REG_RESVAL 0x0u
351
352// Read metadata (low word) for each HW slot.
353#define KEYMGR_DPE_METADATA_LOW_3_REG_OFFSET 0xd4
354#define KEYMGR_DPE_METADATA_LOW_3_REG_RESVAL 0x0u
355
356// Read metadata (low word) for each HW slot.
357#define KEYMGR_DPE_METADATA_LOW_4_REG_OFFSET 0xd8
358#define KEYMGR_DPE_METADATA_LOW_4_REG_RESVAL 0x0u
359
360// Read metadata (low word) for each HW slot.
361#define KEYMGR_DPE_METADATA_LOW_5_REG_OFFSET 0xdc
362#define KEYMGR_DPE_METADATA_LOW_5_REG_RESVAL 0x0u
363
364// Read metadata (low word) for each HW slot.
365#define KEYMGR_DPE_METADATA_LOW_6_REG_OFFSET 0xe0
366#define KEYMGR_DPE_METADATA_LOW_6_REG_RESVAL 0x0u
367
368// Read metadata (low word) for each HW slot.
369#define KEYMGR_DPE_METADATA_LOW_7_REG_OFFSET 0xe4
370#define KEYMGR_DPE_METADATA_LOW_7_REG_RESVAL 0x0u
371
372// Read metadata (high word) for each HW slot.
373#define KEYMGR_DPE_METADATA_HIGH_VALID_FIELD_WIDTH 1
374#define KEYMGR_DPE_METADATA_HIGH_BOOT_STAGE_FIELD_WIDTH 2
375#define KEYMGR_DPE_METADATA_HIGH_ALLOW_CHILD_POLICY_FIELD_WIDTH 1
376#define KEYMGR_DPE_METADATA_HIGH_EXPORTABLE_POLICY_FIELD_WIDTH 1
377#define KEYMGR_DPE_METADATA_HIGH_RETAIN_PARENT_POLICY_FIELD_WIDTH 1
378#define KEYMGR_DPE_METADATA_HIGH_MULTIREG_COUNT 8
379
380// Read metadata (high word) for each HW slot.
381#define KEYMGR_DPE_METADATA_HIGH_0_REG_OFFSET 0xe8
382#define KEYMGR_DPE_METADATA_HIGH_0_REG_RESVAL 0x0u
383#define KEYMGR_DPE_METADATA_HIGH_0_VALID_0_BIT 0
384#define KEYMGR_DPE_METADATA_HIGH_0_BOOT_STAGE_0_MASK 0x3u
385#define KEYMGR_DPE_METADATA_HIGH_0_BOOT_STAGE_0_OFFSET 1
386#define KEYMGR_DPE_METADATA_HIGH_0_BOOT_STAGE_0_FIELD \
387 ((bitfield_field32_t) { .mask = KEYMGR_DPE_METADATA_HIGH_0_BOOT_STAGE_0_MASK, .index = KEYMGR_DPE_METADATA_HIGH_0_BOOT_STAGE_0_OFFSET })
388#define KEYMGR_DPE_METADATA_HIGH_0_ALLOW_CHILD_POLICY_0_BIT 3
389#define KEYMGR_DPE_METADATA_HIGH_0_EXPORTABLE_POLICY_0_BIT 4
390#define KEYMGR_DPE_METADATA_HIGH_0_RETAIN_PARENT_POLICY_0_BIT 5
391
392// Read metadata (high word) for each HW slot.
393#define KEYMGR_DPE_METADATA_HIGH_1_REG_OFFSET 0xec
394#define KEYMGR_DPE_METADATA_HIGH_1_REG_RESVAL 0x0u
395#define KEYMGR_DPE_METADATA_HIGH_1_VALID_1_BIT 0
396#define KEYMGR_DPE_METADATA_HIGH_1_BOOT_STAGE_1_MASK 0x3u
397#define KEYMGR_DPE_METADATA_HIGH_1_BOOT_STAGE_1_OFFSET 1
398#define KEYMGR_DPE_METADATA_HIGH_1_BOOT_STAGE_1_FIELD \
399 ((bitfield_field32_t) { .mask = KEYMGR_DPE_METADATA_HIGH_1_BOOT_STAGE_1_MASK, .index = KEYMGR_DPE_METADATA_HIGH_1_BOOT_STAGE_1_OFFSET })
400#define KEYMGR_DPE_METADATA_HIGH_1_ALLOW_CHILD_POLICY_1_BIT 3
401#define KEYMGR_DPE_METADATA_HIGH_1_EXPORTABLE_POLICY_1_BIT 4
402#define KEYMGR_DPE_METADATA_HIGH_1_RETAIN_PARENT_POLICY_1_BIT 5
403
404// Read metadata (high word) for each HW slot.
405#define KEYMGR_DPE_METADATA_HIGH_2_REG_OFFSET 0xf0
406#define KEYMGR_DPE_METADATA_HIGH_2_REG_RESVAL 0x0u
407#define KEYMGR_DPE_METADATA_HIGH_2_VALID_2_BIT 0
408#define KEYMGR_DPE_METADATA_HIGH_2_BOOT_STAGE_2_MASK 0x3u
409#define KEYMGR_DPE_METADATA_HIGH_2_BOOT_STAGE_2_OFFSET 1
410#define KEYMGR_DPE_METADATA_HIGH_2_BOOT_STAGE_2_FIELD \
411 ((bitfield_field32_t) { .mask = KEYMGR_DPE_METADATA_HIGH_2_BOOT_STAGE_2_MASK, .index = KEYMGR_DPE_METADATA_HIGH_2_BOOT_STAGE_2_OFFSET })
412#define KEYMGR_DPE_METADATA_HIGH_2_ALLOW_CHILD_POLICY_2_BIT 3
413#define KEYMGR_DPE_METADATA_HIGH_2_EXPORTABLE_POLICY_2_BIT 4
414#define KEYMGR_DPE_METADATA_HIGH_2_RETAIN_PARENT_POLICY_2_BIT 5
415
416// Read metadata (high word) for each HW slot.
417#define KEYMGR_DPE_METADATA_HIGH_3_REG_OFFSET 0xf4
418#define KEYMGR_DPE_METADATA_HIGH_3_REG_RESVAL 0x0u
419#define KEYMGR_DPE_METADATA_HIGH_3_VALID_3_BIT 0
420#define KEYMGR_DPE_METADATA_HIGH_3_BOOT_STAGE_3_MASK 0x3u
421#define KEYMGR_DPE_METADATA_HIGH_3_BOOT_STAGE_3_OFFSET 1
422#define KEYMGR_DPE_METADATA_HIGH_3_BOOT_STAGE_3_FIELD \
423 ((bitfield_field32_t) { .mask = KEYMGR_DPE_METADATA_HIGH_3_BOOT_STAGE_3_MASK, .index = KEYMGR_DPE_METADATA_HIGH_3_BOOT_STAGE_3_OFFSET })
424#define KEYMGR_DPE_METADATA_HIGH_3_ALLOW_CHILD_POLICY_3_BIT 3
425#define KEYMGR_DPE_METADATA_HIGH_3_EXPORTABLE_POLICY_3_BIT 4
426#define KEYMGR_DPE_METADATA_HIGH_3_RETAIN_PARENT_POLICY_3_BIT 5
427
428// Read metadata (high word) for each HW slot.
429#define KEYMGR_DPE_METADATA_HIGH_4_REG_OFFSET 0xf8
430#define KEYMGR_DPE_METADATA_HIGH_4_REG_RESVAL 0x0u
431#define KEYMGR_DPE_METADATA_HIGH_4_VALID_4_BIT 0
432#define KEYMGR_DPE_METADATA_HIGH_4_BOOT_STAGE_4_MASK 0x3u
433#define KEYMGR_DPE_METADATA_HIGH_4_BOOT_STAGE_4_OFFSET 1
434#define KEYMGR_DPE_METADATA_HIGH_4_BOOT_STAGE_4_FIELD \
435 ((bitfield_field32_t) { .mask = KEYMGR_DPE_METADATA_HIGH_4_BOOT_STAGE_4_MASK, .index = KEYMGR_DPE_METADATA_HIGH_4_BOOT_STAGE_4_OFFSET })
436#define KEYMGR_DPE_METADATA_HIGH_4_ALLOW_CHILD_POLICY_4_BIT 3
437#define KEYMGR_DPE_METADATA_HIGH_4_EXPORTABLE_POLICY_4_BIT 4
438#define KEYMGR_DPE_METADATA_HIGH_4_RETAIN_PARENT_POLICY_4_BIT 5
439
440// Read metadata (high word) for each HW slot.
441#define KEYMGR_DPE_METADATA_HIGH_5_REG_OFFSET 0xfc
442#define KEYMGR_DPE_METADATA_HIGH_5_REG_RESVAL 0x0u
443#define KEYMGR_DPE_METADATA_HIGH_5_VALID_5_BIT 0
444#define KEYMGR_DPE_METADATA_HIGH_5_BOOT_STAGE_5_MASK 0x3u
445#define KEYMGR_DPE_METADATA_HIGH_5_BOOT_STAGE_5_OFFSET 1
446#define KEYMGR_DPE_METADATA_HIGH_5_BOOT_STAGE_5_FIELD \
447 ((bitfield_field32_t) { .mask = KEYMGR_DPE_METADATA_HIGH_5_BOOT_STAGE_5_MASK, .index = KEYMGR_DPE_METADATA_HIGH_5_BOOT_STAGE_5_OFFSET })
448#define KEYMGR_DPE_METADATA_HIGH_5_ALLOW_CHILD_POLICY_5_BIT 3
449#define KEYMGR_DPE_METADATA_HIGH_5_EXPORTABLE_POLICY_5_BIT 4
450#define KEYMGR_DPE_METADATA_HIGH_5_RETAIN_PARENT_POLICY_5_BIT 5
451
452// Read metadata (high word) for each HW slot.
453#define KEYMGR_DPE_METADATA_HIGH_6_REG_OFFSET 0x100
454#define KEYMGR_DPE_METADATA_HIGH_6_REG_RESVAL 0x0u
455#define KEYMGR_DPE_METADATA_HIGH_6_VALID_6_BIT 0
456#define KEYMGR_DPE_METADATA_HIGH_6_BOOT_STAGE_6_MASK 0x3u
457#define KEYMGR_DPE_METADATA_HIGH_6_BOOT_STAGE_6_OFFSET 1
458#define KEYMGR_DPE_METADATA_HIGH_6_BOOT_STAGE_6_FIELD \
459 ((bitfield_field32_t) { .mask = KEYMGR_DPE_METADATA_HIGH_6_BOOT_STAGE_6_MASK, .index = KEYMGR_DPE_METADATA_HIGH_6_BOOT_STAGE_6_OFFSET })
460#define KEYMGR_DPE_METADATA_HIGH_6_ALLOW_CHILD_POLICY_6_BIT 3
461#define KEYMGR_DPE_METADATA_HIGH_6_EXPORTABLE_POLICY_6_BIT 4
462#define KEYMGR_DPE_METADATA_HIGH_6_RETAIN_PARENT_POLICY_6_BIT 5
463
464// Read metadata (high word) for each HW slot.
465#define KEYMGR_DPE_METADATA_HIGH_7_REG_OFFSET 0x104
466#define KEYMGR_DPE_METADATA_HIGH_7_REG_RESVAL 0x0u
467#define KEYMGR_DPE_METADATA_HIGH_7_VALID_7_BIT 0
468#define KEYMGR_DPE_METADATA_HIGH_7_BOOT_STAGE_7_MASK 0x3u
469#define KEYMGR_DPE_METADATA_HIGH_7_BOOT_STAGE_7_OFFSET 1
470#define KEYMGR_DPE_METADATA_HIGH_7_BOOT_STAGE_7_FIELD \
471 ((bitfield_field32_t) { .mask = KEYMGR_DPE_METADATA_HIGH_7_BOOT_STAGE_7_MASK, .index = KEYMGR_DPE_METADATA_HIGH_7_BOOT_STAGE_7_OFFSET })
472#define KEYMGR_DPE_METADATA_HIGH_7_ALLOW_CHILD_POLICY_7_BIT 3
473#define KEYMGR_DPE_METADATA_HIGH_7_EXPORTABLE_POLICY_7_BIT 4
474#define KEYMGR_DPE_METADATA_HIGH_7_RETAIN_PARENT_POLICY_7_BIT 5
475
476// Key manager error code.
477#define KEYMGR_DPE_ERR_CODE_REG_OFFSET 0x108
478#define KEYMGR_DPE_ERR_CODE_REG_RESVAL 0x0u
479#define KEYMGR_DPE_ERR_CODE_INVALID_OP_BIT 0
480#define KEYMGR_DPE_ERR_CODE_INVALID_KMAC_INPUT_BIT 1
481#define KEYMGR_DPE_ERR_CODE_INVALID_SHADOW_UPDATE_BIT 2
482
483// This register represents both synchronous and asynchronous fatal faults.
484#define KEYMGR_DPE_FAULT_STATUS_REG_OFFSET 0x10c
485#define KEYMGR_DPE_FAULT_STATUS_REG_RESVAL 0x0u
486#define KEYMGR_DPE_FAULT_STATUS_CMD_BIT 0
487#define KEYMGR_DPE_FAULT_STATUS_KMAC_FSM_BIT 1
488#define KEYMGR_DPE_FAULT_STATUS_KMAC_DONE_BIT 2
489#define KEYMGR_DPE_FAULT_STATUS_KMAC_OP_BIT 3
490#define KEYMGR_DPE_FAULT_STATUS_KMAC_OUT_BIT 4
491#define KEYMGR_DPE_FAULT_STATUS_REGFILE_INTG_BIT 5
492#define KEYMGR_DPE_FAULT_STATUS_SHADOW_BIT 6
493#define KEYMGR_DPE_FAULT_STATUS_CTRL_FSM_INTG_BIT 7
494#define KEYMGR_DPE_FAULT_STATUS_CTRL_FSM_CHK_BIT 8
495#define KEYMGR_DPE_FAULT_STATUS_CTRL_FSM_CNT_BIT 9
496#define KEYMGR_DPE_FAULT_STATUS_RESEED_CNT_BIT 10
497#define KEYMGR_DPE_FAULT_STATUS_SIDE_CTRL_FSM_BIT 11
498#define KEYMGR_DPE_FAULT_STATUS_SIDE_CTRL_SEL_BIT 12
499#define KEYMGR_DPE_FAULT_STATUS_KEY_ECC_BIT 13
500
501// The register holds some debug information that may be convenient if keymgr
502#define KEYMGR_DPE_DEBUG_REG_OFFSET 0x110
503#define KEYMGR_DPE_DEBUG_REG_RESVAL 0x0u
504#define KEYMGR_DPE_DEBUG_INVALID_CREATOR_SEED_BIT 0
505#define KEYMGR_DPE_DEBUG_INVALID_OWNER_SEED_BIT 1
506#define KEYMGR_DPE_DEBUG_INVALID_DEV_ID_BIT 2
507#define KEYMGR_DPE_DEBUG_INVALID_HEALTH_STATE_BIT 3
508#define KEYMGR_DPE_DEBUG_INVALID_KEY_VERSION_BIT 4
509#define KEYMGR_DPE_DEBUG_INVALID_KEY_BIT 5
510#define KEYMGR_DPE_DEBUG_INVALID_DIGEST_BIT 6
511#define KEYMGR_DPE_DEBUG_INVALID_ROOT_KEY_BIT 7
512#define KEYMGR_DPE_DEBUG_INACTIVE_LC_EN_BIT 8
513
514// Register write lock for the LOAD_KEY command
515#define KEYMGR_DPE_LOAD_KEY_LOCK_REG_OFFSET 0x114
516#define KEYMGR_DPE_LOAD_KEY_LOCK_REG_RESVAL 0x0u
517#define KEYMGR_DPE_LOAD_KEY_LOCK_LOCK_BIT 0
518
519// Enforce the software binding value as the only advance input message until
520// the next reset
521#define KEYMGR_DPE_ENFORCE_SW_BINDING_REG_OFFSET 0x118
522#define KEYMGR_DPE_ENFORCE_SW_BINDING_REG_RESVAL 0x9u
523#define KEYMGR_DPE_ENFORCE_SW_BINDING_ENFORCE_MASK 0xfu
524#define KEYMGR_DPE_ENFORCE_SW_BINDING_ENFORCE_OFFSET 0
525#define KEYMGR_DPE_ENFORCE_SW_BINDING_ENFORCE_FIELD \
526 ((bitfield_field32_t) { .mask = KEYMGR_DPE_ENFORCE_SW_BINDING_ENFORCE_MASK, .index = KEYMGR_DPE_ENFORCE_SW_BINDING_ENFORCE_OFFSET })
527
528#ifdef __cplusplus
529} // extern "C"
530#endif
531#endif // _KEYMGR_DPE_REG_DEFS_
532// End generated register defines for keymgr_dpe