 |
Software APIs
|
Go to the documentation of this file.
13#ifndef _LC_CTRL_REG_DEFS_
14#define _LC_CTRL_REG_DEFS_
20#define LC_CTRL_PARAM_SILICON_CREATOR_ID_WIDTH 16
23#define LC_CTRL_PARAM_PRODUCT_ID_WIDTH 16
26#define LC_CTRL_PARAM_REVISION_ID_WIDTH 8
29#define LC_CTRL_PARAM_NUM_TOKEN_WORDS 4
32#define LC_CTRL_PARAM_CSR_LC_STATE_WIDTH 30
35#define LC_CTRL_PARAM_CSR_LC_COUNT_WIDTH 5
38#define LC_CTRL_PARAM_CSR_LC_ID_STATE_WIDTH 32
41#define LC_CTRL_PARAM_CSR_OTP_TEST_CTRL_WIDTH 32
44#define LC_CTRL_PARAM_CSR_OTP_TEST_STATUS_WIDTH 32
47#define LC_CTRL_PARAM_NUM_DEVICE_ID_WORDS 8
50#define LC_CTRL_PARAM_NUM_MANUF_STATE_WORDS 8
53#define LC_CTRL_PARAM_NUM_ALERTS 3
56#define LC_CTRL_PARAM_REG_WIDTH 32
59#define LC_CTRL_ALERT_TEST_REG_OFFSET 0x0
60#define LC_CTRL_ALERT_TEST_REG_RESVAL 0x0u
61#define LC_CTRL_ALERT_TEST_FATAL_PROG_ERROR_BIT 0
62#define LC_CTRL_ALERT_TEST_FATAL_STATE_ERROR_BIT 1
63#define LC_CTRL_ALERT_TEST_FATAL_BUS_INTEG_ERROR_BIT 2
67#define LC_CTRL_STATUS_REG_OFFSET 0x4
68#define LC_CTRL_STATUS_REG_RESVAL 0x0u
69#define LC_CTRL_STATUS_INITIALIZED_BIT 0
70#define LC_CTRL_STATUS_READY_BIT 1
71#define LC_CTRL_STATUS_EXT_CLOCK_SWITCHED_BIT 2
72#define LC_CTRL_STATUS_TRANSITION_SUCCESSFUL_BIT 3
73#define LC_CTRL_STATUS_TRANSITION_COUNT_ERROR_BIT 4
74#define LC_CTRL_STATUS_TRANSITION_ERROR_BIT 5
75#define LC_CTRL_STATUS_TOKEN_ERROR_BIT 6
76#define LC_CTRL_STATUS_FLASH_RMA_ERROR_BIT 7
77#define LC_CTRL_STATUS_OTP_ERROR_BIT 8
78#define LC_CTRL_STATUS_STATE_ERROR_BIT 9
79#define LC_CTRL_STATUS_BUS_INTEG_ERROR_BIT 10
80#define LC_CTRL_STATUS_OTP_PARTITION_ERROR_BIT 11
83#define LC_CTRL_CLAIM_TRANSITION_IF_REGWEN_REG_OFFSET 0x8
84#define LC_CTRL_CLAIM_TRANSITION_IF_REGWEN_REG_RESVAL 0x1u
85#define LC_CTRL_CLAIM_TRANSITION_IF_REGWEN_CLAIM_TRANSITION_IF_REGWEN_BIT 0
88#define LC_CTRL_CLAIM_TRANSITION_IF_REG_OFFSET 0xc
89#define LC_CTRL_CLAIM_TRANSITION_IF_REG_RESVAL 0x69u
90#define LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_MASK 0xffu
91#define LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_OFFSET 0
92#define LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_FIELD \
93 ((bitfield_field32_t) { .mask = LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_MASK, .index = LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_OFFSET })
96#define LC_CTRL_TRANSITION_REGWEN_REG_OFFSET 0x10
97#define LC_CTRL_TRANSITION_REGWEN_REG_RESVAL 0x0u
98#define LC_CTRL_TRANSITION_REGWEN_TRANSITION_REGWEN_BIT 0
101#define LC_CTRL_TRANSITION_CMD_REG_OFFSET 0x14
102#define LC_CTRL_TRANSITION_CMD_REG_RESVAL 0x0u
103#define LC_CTRL_TRANSITION_CMD_START_BIT 0
106#define LC_CTRL_TRANSITION_CTRL_REG_OFFSET 0x18
107#define LC_CTRL_TRANSITION_CTRL_REG_RESVAL 0x0u
108#define LC_CTRL_TRANSITION_CTRL_EXT_CLOCK_EN_BIT 0
109#define LC_CTRL_TRANSITION_CTRL_VOLATILE_RAW_UNLOCK_BIT 1
112#define LC_CTRL_TRANSITION_TOKEN_TRANSITION_TOKEN_FIELD_WIDTH 32
113#define LC_CTRL_TRANSITION_TOKEN_MULTIREG_COUNT 4
116#define LC_CTRL_TRANSITION_TOKEN_0_REG_OFFSET 0x1c
117#define LC_CTRL_TRANSITION_TOKEN_0_REG_RESVAL 0x0u
120#define LC_CTRL_TRANSITION_TOKEN_1_REG_OFFSET 0x20
121#define LC_CTRL_TRANSITION_TOKEN_1_REG_RESVAL 0x0u
124#define LC_CTRL_TRANSITION_TOKEN_2_REG_OFFSET 0x24
125#define LC_CTRL_TRANSITION_TOKEN_2_REG_RESVAL 0x0u
128#define LC_CTRL_TRANSITION_TOKEN_3_REG_OFFSET 0x28
129#define LC_CTRL_TRANSITION_TOKEN_3_REG_RESVAL 0x0u
132#define LC_CTRL_TRANSITION_TARGET_REG_OFFSET 0x2c
133#define LC_CTRL_TRANSITION_TARGET_REG_RESVAL 0x0u
134#define LC_CTRL_TRANSITION_TARGET_STATE_MASK 0x3fffffffu
135#define LC_CTRL_TRANSITION_TARGET_STATE_OFFSET 0
136#define LC_CTRL_TRANSITION_TARGET_STATE_FIELD \
137 ((bitfield_field32_t) { .mask = LC_CTRL_TRANSITION_TARGET_STATE_MASK, .index = LC_CTRL_TRANSITION_TARGET_STATE_OFFSET })
138#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_RAW 0x0
139#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED0 0x2108421
140#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED0 0x4210842
141#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED1 0x6318c63
142#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED1 0x8421084
143#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED2 0xa5294a5
144#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED2 0xc6318c6
145#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED3 0xe739ce7
146#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED3 0x10842108
147#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED4 0x1294a529
148#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED4 0x14a5294a
149#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED5 0x16b5ad6b
150#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED5 0x18c6318c
151#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED6 0x1ad6b5ad
152#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED6 0x1ce739ce
153#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED7 0x1ef7bdef
154#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_DEV 0x21084210
155#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_PROD 0x2318c631
156#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_PROD_END 0x25294a52
157#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_RMA 0x2739ce73
158#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_SCRAP 0x294a5294
161#define LC_CTRL_OTP_VENDOR_TEST_CTRL_REG_OFFSET 0x30
162#define LC_CTRL_OTP_VENDOR_TEST_CTRL_REG_RESVAL 0x0u
165#define LC_CTRL_OTP_VENDOR_TEST_STATUS_REG_OFFSET 0x34
166#define LC_CTRL_OTP_VENDOR_TEST_STATUS_REG_RESVAL 0x0u
169#define LC_CTRL_LC_STATE_REG_OFFSET 0x38
170#define LC_CTRL_LC_STATE_REG_RESVAL 0x0u
171#define LC_CTRL_LC_STATE_STATE_MASK 0x3fffffffu
172#define LC_CTRL_LC_STATE_STATE_OFFSET 0
173#define LC_CTRL_LC_STATE_STATE_FIELD \
174 ((bitfield_field32_t) { .mask = LC_CTRL_LC_STATE_STATE_MASK, .index = LC_CTRL_LC_STATE_STATE_OFFSET })
175#define LC_CTRL_LC_STATE_STATE_VALUE_RAW 0x0
176#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED0 0x2108421
177#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED0 0x4210842
178#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED1 0x6318c63
179#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED1 0x8421084
180#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED2 0xa5294a5
181#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED2 0xc6318c6
182#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED3 0xe739ce7
183#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED3 0x10842108
184#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED4 0x1294a529
185#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED4 0x14a5294a
186#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED5 0x16b5ad6b
187#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED5 0x18c6318c
188#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED6 0x1ad6b5ad
189#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED6 0x1ce739ce
190#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED7 0x1ef7bdef
191#define LC_CTRL_LC_STATE_STATE_VALUE_DEV 0x21084210
192#define LC_CTRL_LC_STATE_STATE_VALUE_PROD 0x2318c631
193#define LC_CTRL_LC_STATE_STATE_VALUE_PROD_END 0x25294a52
194#define LC_CTRL_LC_STATE_STATE_VALUE_RMA 0x2739ce73
195#define LC_CTRL_LC_STATE_STATE_VALUE_SCRAP 0x294a5294
196#define LC_CTRL_LC_STATE_STATE_VALUE_POST_TRANSITION 0x2b5ad6b5
197#define LC_CTRL_LC_STATE_STATE_VALUE_ESCALATE 0x2d6b5ad6
198#define LC_CTRL_LC_STATE_STATE_VALUE_INVALID 0x2f7bdef7
202#define LC_CTRL_LC_TRANSITION_CNT_REG_OFFSET 0x3c
203#define LC_CTRL_LC_TRANSITION_CNT_REG_RESVAL 0x0u
204#define LC_CTRL_LC_TRANSITION_CNT_CNT_MASK 0x1fu
205#define LC_CTRL_LC_TRANSITION_CNT_CNT_OFFSET 0
206#define LC_CTRL_LC_TRANSITION_CNT_CNT_FIELD \
207 ((bitfield_field32_t) { .mask = LC_CTRL_LC_TRANSITION_CNT_CNT_MASK, .index = LC_CTRL_LC_TRANSITION_CNT_CNT_OFFSET })
210#define LC_CTRL_LC_ID_STATE_REG_OFFSET 0x40
211#define LC_CTRL_LC_ID_STATE_REG_RESVAL 0x0u
212#define LC_CTRL_LC_ID_STATE_STATE_VALUE_BLANK 0x0
213#define LC_CTRL_LC_ID_STATE_STATE_VALUE_PERSONALIZED 0x55555555
214#define LC_CTRL_LC_ID_STATE_STATE_VALUE_INVALID 0xaaaaaaaa
217#define LC_CTRL_HW_REVISION0_REG_OFFSET 0x44
218#define LC_CTRL_HW_REVISION0_REG_RESVAL 0x0u
219#define LC_CTRL_HW_REVISION0_PRODUCT_ID_MASK 0xffffu
220#define LC_CTRL_HW_REVISION0_PRODUCT_ID_OFFSET 0
221#define LC_CTRL_HW_REVISION0_PRODUCT_ID_FIELD \
222 ((bitfield_field32_t) { .mask = LC_CTRL_HW_REVISION0_PRODUCT_ID_MASK, .index = LC_CTRL_HW_REVISION0_PRODUCT_ID_OFFSET })
223#define LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_MASK 0xffffu
224#define LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_OFFSET 16
225#define LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_FIELD \
226 ((bitfield_field32_t) { .mask = LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_MASK, .index = LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_OFFSET })
229#define LC_CTRL_HW_REVISION1_REG_OFFSET 0x48
230#define LC_CTRL_HW_REVISION1_REG_RESVAL 0x0u
231#define LC_CTRL_HW_REVISION1_REVISION_ID_MASK 0xffu
232#define LC_CTRL_HW_REVISION1_REVISION_ID_OFFSET 0
233#define LC_CTRL_HW_REVISION1_REVISION_ID_FIELD \
234 ((bitfield_field32_t) { .mask = LC_CTRL_HW_REVISION1_REVISION_ID_MASK, .index = LC_CTRL_HW_REVISION1_REVISION_ID_OFFSET })
235#define LC_CTRL_HW_REVISION1_RESERVED_MASK 0xffffffu
236#define LC_CTRL_HW_REVISION1_RESERVED_OFFSET 8
237#define LC_CTRL_HW_REVISION1_RESERVED_FIELD \
238 ((bitfield_field32_t) { .mask = LC_CTRL_HW_REVISION1_RESERVED_MASK, .index = LC_CTRL_HW_REVISION1_RESERVED_OFFSET })
242#define LC_CTRL_DEVICE_ID_DEVICE_ID_FIELD_WIDTH 32
243#define LC_CTRL_DEVICE_ID_MULTIREG_COUNT 8
247#define LC_CTRL_DEVICE_ID_0_REG_OFFSET 0x4c
248#define LC_CTRL_DEVICE_ID_0_REG_RESVAL 0x0u
252#define LC_CTRL_DEVICE_ID_1_REG_OFFSET 0x50
253#define LC_CTRL_DEVICE_ID_1_REG_RESVAL 0x0u
257#define LC_CTRL_DEVICE_ID_2_REG_OFFSET 0x54
258#define LC_CTRL_DEVICE_ID_2_REG_RESVAL 0x0u
262#define LC_CTRL_DEVICE_ID_3_REG_OFFSET 0x58
263#define LC_CTRL_DEVICE_ID_3_REG_RESVAL 0x0u
267#define LC_CTRL_DEVICE_ID_4_REG_OFFSET 0x5c
268#define LC_CTRL_DEVICE_ID_4_REG_RESVAL 0x0u
272#define LC_CTRL_DEVICE_ID_5_REG_OFFSET 0x60
273#define LC_CTRL_DEVICE_ID_5_REG_RESVAL 0x0u
277#define LC_CTRL_DEVICE_ID_6_REG_OFFSET 0x64
278#define LC_CTRL_DEVICE_ID_6_REG_RESVAL 0x0u
282#define LC_CTRL_DEVICE_ID_7_REG_OFFSET 0x68
283#define LC_CTRL_DEVICE_ID_7_REG_RESVAL 0x0u
287#define LC_CTRL_MANUF_STATE_MANUF_STATE_FIELD_WIDTH 32
288#define LC_CTRL_MANUF_STATE_MULTIREG_COUNT 8
291#define LC_CTRL_MANUF_STATE_0_REG_OFFSET 0x6c
292#define LC_CTRL_MANUF_STATE_0_REG_RESVAL 0x0u
295#define LC_CTRL_MANUF_STATE_1_REG_OFFSET 0x70
296#define LC_CTRL_MANUF_STATE_1_REG_RESVAL 0x0u
299#define LC_CTRL_MANUF_STATE_2_REG_OFFSET 0x74
300#define LC_CTRL_MANUF_STATE_2_REG_RESVAL 0x0u
303#define LC_CTRL_MANUF_STATE_3_REG_OFFSET 0x78
304#define LC_CTRL_MANUF_STATE_3_REG_RESVAL 0x0u
307#define LC_CTRL_MANUF_STATE_4_REG_OFFSET 0x7c
308#define LC_CTRL_MANUF_STATE_4_REG_RESVAL 0x0u
311#define LC_CTRL_MANUF_STATE_5_REG_OFFSET 0x80
312#define LC_CTRL_MANUF_STATE_5_REG_RESVAL 0x0u
315#define LC_CTRL_MANUF_STATE_6_REG_OFFSET 0x84
316#define LC_CTRL_MANUF_STATE_6_REG_RESVAL 0x0u
319#define LC_CTRL_MANUF_STATE_7_REG_OFFSET 0x88
320#define LC_CTRL_MANUF_STATE_7_REG_RESVAL 0x0u
323#define LC_CTRL_DMI_REG_OFFSET 0x0
324#define LC_CTRL_DMI_SIZE_WORDS 1024
325#define LC_CTRL_DMI_SIZE_BYTES 4096