 |
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 0x80000000u
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
64#define LC_CTRL_ALERT_TEST_REGWEN_BIT 31
68#define LC_CTRL_STATUS_REG_OFFSET 0x4
69#define LC_CTRL_STATUS_REG_RESVAL 0x0u
70#define LC_CTRL_STATUS_INITIALIZED_BIT 0
71#define LC_CTRL_STATUS_READY_BIT 1
72#define LC_CTRL_STATUS_EXT_CLOCK_SWITCHED_BIT 2
73#define LC_CTRL_STATUS_TRANSITION_SUCCESSFUL_BIT 3
74#define LC_CTRL_STATUS_TRANSITION_COUNT_ERROR_BIT 4
75#define LC_CTRL_STATUS_TRANSITION_ERROR_BIT 5
76#define LC_CTRL_STATUS_TOKEN_ERROR_BIT 6
77#define LC_CTRL_STATUS_NVM_RMA_ERROR_BIT 7
78#define LC_CTRL_STATUS_OTP_ERROR_BIT 8
79#define LC_CTRL_STATUS_STATE_ERROR_BIT 9
80#define LC_CTRL_STATUS_BUS_INTEG_ERROR_BIT 10
81#define LC_CTRL_STATUS_OTP_PARTITION_ERROR_BIT 11
84#define LC_CTRL_CLAIM_TRANSITION_IF_REGWEN_REG_OFFSET 0x8
85#define LC_CTRL_CLAIM_TRANSITION_IF_REGWEN_REG_RESVAL 0x1u
86#define LC_CTRL_CLAIM_TRANSITION_IF_REGWEN_CLAIM_TRANSITION_IF_REGWEN_BIT 0
89#define LC_CTRL_CLAIM_TRANSITION_IF_REG_OFFSET 0xc
90#define LC_CTRL_CLAIM_TRANSITION_IF_REG_RESVAL 0x69u
91#define LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_MASK 0xffu
92#define LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_OFFSET 0
93#define LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_FIELD \
94 ((bitfield_field32_t) { .mask = LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_MASK, .index = LC_CTRL_CLAIM_TRANSITION_IF_MUTEX_OFFSET })
97#define LC_CTRL_TRANSITION_REGWEN_REG_OFFSET 0x10
98#define LC_CTRL_TRANSITION_REGWEN_REG_RESVAL 0x0u
99#define LC_CTRL_TRANSITION_REGWEN_TRANSITION_REGWEN_BIT 0
102#define LC_CTRL_TRANSITION_CMD_REG_OFFSET 0x14
103#define LC_CTRL_TRANSITION_CMD_REG_RESVAL 0x0u
104#define LC_CTRL_TRANSITION_CMD_START_BIT 0
107#define LC_CTRL_TRANSITION_CTRL_REG_OFFSET 0x18
108#define LC_CTRL_TRANSITION_CTRL_REG_RESVAL 0x0u
109#define LC_CTRL_TRANSITION_CTRL_EXT_CLOCK_EN_BIT 0
110#define LC_CTRL_TRANSITION_CTRL_VOLATILE_RAW_UNLOCK_BIT 1
113#define LC_CTRL_TRANSITION_TOKEN_TRANSITION_TOKEN_FIELD_WIDTH 32
114#define LC_CTRL_TRANSITION_TOKEN_MULTIREG_COUNT 4
117#define LC_CTRL_TRANSITION_TOKEN_0_REG_OFFSET 0x1c
118#define LC_CTRL_TRANSITION_TOKEN_0_REG_RESVAL 0x0u
121#define LC_CTRL_TRANSITION_TOKEN_1_REG_OFFSET 0x20
122#define LC_CTRL_TRANSITION_TOKEN_1_REG_RESVAL 0x0u
125#define LC_CTRL_TRANSITION_TOKEN_2_REG_OFFSET 0x24
126#define LC_CTRL_TRANSITION_TOKEN_2_REG_RESVAL 0x0u
129#define LC_CTRL_TRANSITION_TOKEN_3_REG_OFFSET 0x28
130#define LC_CTRL_TRANSITION_TOKEN_3_REG_RESVAL 0x0u
133#define LC_CTRL_TRANSITION_TARGET_REG_OFFSET 0x2c
134#define LC_CTRL_TRANSITION_TARGET_REG_RESVAL 0x0u
135#define LC_CTRL_TRANSITION_TARGET_STATE_MASK 0x3fffffffu
136#define LC_CTRL_TRANSITION_TARGET_STATE_OFFSET 0
137#define LC_CTRL_TRANSITION_TARGET_STATE_FIELD \
138 ((bitfield_field32_t) { .mask = LC_CTRL_TRANSITION_TARGET_STATE_MASK, .index = LC_CTRL_TRANSITION_TARGET_STATE_OFFSET })
139#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_RAW 0x0
140#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED0 0x2108421
141#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED0 0x4210842
142#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED1 0x6318c63
143#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED1 0x8421084
144#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED2 0xa5294a5
145#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED2 0xc6318c6
146#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED3 0xe739ce7
147#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED3 0x10842108
148#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED4 0x1294a529
149#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED4 0x14a5294a
150#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED5 0x16b5ad6b
151#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED5 0x18c6318c
152#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED6 0x1ad6b5ad
153#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_LOCKED6 0x1ce739ce
154#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_TEST_UNLOCKED7 0x1ef7bdef
155#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_DEV 0x21084210
156#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_PROD 0x2318c631
157#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_PROD_END 0x25294a52
158#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_RMA 0x2739ce73
159#define LC_CTRL_TRANSITION_TARGET_STATE_VALUE_SCRAP 0x294a5294
162#define LC_CTRL_OTP_VENDOR_TEST_CTRL_REG_OFFSET 0x30
163#define LC_CTRL_OTP_VENDOR_TEST_CTRL_REG_RESVAL 0x0u
166#define LC_CTRL_OTP_VENDOR_TEST_STATUS_REG_OFFSET 0x34
167#define LC_CTRL_OTP_VENDOR_TEST_STATUS_REG_RESVAL 0x0u
170#define LC_CTRL_LC_STATE_REG_OFFSET 0x38
171#define LC_CTRL_LC_STATE_REG_RESVAL 0x0u
172#define LC_CTRL_LC_STATE_STATE_MASK 0x3fffffffu
173#define LC_CTRL_LC_STATE_STATE_OFFSET 0
174#define LC_CTRL_LC_STATE_STATE_FIELD \
175 ((bitfield_field32_t) { .mask = LC_CTRL_LC_STATE_STATE_MASK, .index = LC_CTRL_LC_STATE_STATE_OFFSET })
176#define LC_CTRL_LC_STATE_STATE_VALUE_RAW 0x0
177#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED0 0x2108421
178#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED0 0x4210842
179#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED1 0x6318c63
180#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED1 0x8421084
181#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED2 0xa5294a5
182#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED2 0xc6318c6
183#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED3 0xe739ce7
184#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED3 0x10842108
185#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED4 0x1294a529
186#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED4 0x14a5294a
187#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED5 0x16b5ad6b
188#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED5 0x18c6318c
189#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED6 0x1ad6b5ad
190#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_LOCKED6 0x1ce739ce
191#define LC_CTRL_LC_STATE_STATE_VALUE_TEST_UNLOCKED7 0x1ef7bdef
192#define LC_CTRL_LC_STATE_STATE_VALUE_DEV 0x21084210
193#define LC_CTRL_LC_STATE_STATE_VALUE_PROD 0x2318c631
194#define LC_CTRL_LC_STATE_STATE_VALUE_PROD_END 0x25294a52
195#define LC_CTRL_LC_STATE_STATE_VALUE_RMA 0x2739ce73
196#define LC_CTRL_LC_STATE_STATE_VALUE_SCRAP 0x294a5294
197#define LC_CTRL_LC_STATE_STATE_VALUE_POST_TRANSITION 0x2b5ad6b5
198#define LC_CTRL_LC_STATE_STATE_VALUE_ESCALATE 0x2d6b5ad6
199#define LC_CTRL_LC_STATE_STATE_VALUE_INVALID 0x2f7bdef7
203#define LC_CTRL_LC_TRANSITION_CNT_REG_OFFSET 0x3c
204#define LC_CTRL_LC_TRANSITION_CNT_REG_RESVAL 0x0u
205#define LC_CTRL_LC_TRANSITION_CNT_CNT_MASK 0x1fu
206#define LC_CTRL_LC_TRANSITION_CNT_CNT_OFFSET 0
207#define LC_CTRL_LC_TRANSITION_CNT_CNT_FIELD \
208 ((bitfield_field32_t) { .mask = LC_CTRL_LC_TRANSITION_CNT_CNT_MASK, .index = LC_CTRL_LC_TRANSITION_CNT_CNT_OFFSET })
211#define LC_CTRL_LC_ID_STATE_REG_OFFSET 0x40
212#define LC_CTRL_LC_ID_STATE_REG_RESVAL 0x0u
213#define LC_CTRL_LC_ID_STATE_STATE_VALUE_BLANK 0x0
214#define LC_CTRL_LC_ID_STATE_STATE_VALUE_PERSONALIZED 0x55555555
215#define LC_CTRL_LC_ID_STATE_STATE_VALUE_INVALID 0xaaaaaaaa
218#define LC_CTRL_HW_REVISION0_REG_OFFSET 0x44
219#define LC_CTRL_HW_REVISION0_REG_RESVAL 0x0u
220#define LC_CTRL_HW_REVISION0_PRODUCT_ID_MASK 0xffffu
221#define LC_CTRL_HW_REVISION0_PRODUCT_ID_OFFSET 0
222#define LC_CTRL_HW_REVISION0_PRODUCT_ID_FIELD \
223 ((bitfield_field32_t) { .mask = LC_CTRL_HW_REVISION0_PRODUCT_ID_MASK, .index = LC_CTRL_HW_REVISION0_PRODUCT_ID_OFFSET })
224#define LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_MASK 0xffffu
225#define LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_OFFSET 16
226#define LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_FIELD \
227 ((bitfield_field32_t) { .mask = LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_MASK, .index = LC_CTRL_HW_REVISION0_SILICON_CREATOR_ID_OFFSET })
230#define LC_CTRL_HW_REVISION1_REG_OFFSET 0x48
231#define LC_CTRL_HW_REVISION1_REG_RESVAL 0x0u
232#define LC_CTRL_HW_REVISION1_REVISION_ID_MASK 0xffu
233#define LC_CTRL_HW_REVISION1_REVISION_ID_OFFSET 0
234#define LC_CTRL_HW_REVISION1_REVISION_ID_FIELD \
235 ((bitfield_field32_t) { .mask = LC_CTRL_HW_REVISION1_REVISION_ID_MASK, .index = LC_CTRL_HW_REVISION1_REVISION_ID_OFFSET })
236#define LC_CTRL_HW_REVISION1_RESERVED_MASK 0xffffffu
237#define LC_CTRL_HW_REVISION1_RESERVED_OFFSET 8
238#define LC_CTRL_HW_REVISION1_RESERVED_FIELD \
239 ((bitfield_field32_t) { .mask = LC_CTRL_HW_REVISION1_RESERVED_MASK, .index = LC_CTRL_HW_REVISION1_RESERVED_OFFSET })
243#define LC_CTRL_DEVICE_ID_DEVICE_ID_FIELD_WIDTH 32
244#define LC_CTRL_DEVICE_ID_MULTIREG_COUNT 8
248#define LC_CTRL_DEVICE_ID_0_REG_OFFSET 0x4c
249#define LC_CTRL_DEVICE_ID_0_REG_RESVAL 0x0u
253#define LC_CTRL_DEVICE_ID_1_REG_OFFSET 0x50
254#define LC_CTRL_DEVICE_ID_1_REG_RESVAL 0x0u
258#define LC_CTRL_DEVICE_ID_2_REG_OFFSET 0x54
259#define LC_CTRL_DEVICE_ID_2_REG_RESVAL 0x0u
263#define LC_CTRL_DEVICE_ID_3_REG_OFFSET 0x58
264#define LC_CTRL_DEVICE_ID_3_REG_RESVAL 0x0u
268#define LC_CTRL_DEVICE_ID_4_REG_OFFSET 0x5c
269#define LC_CTRL_DEVICE_ID_4_REG_RESVAL 0x0u
273#define LC_CTRL_DEVICE_ID_5_REG_OFFSET 0x60
274#define LC_CTRL_DEVICE_ID_5_REG_RESVAL 0x0u
278#define LC_CTRL_DEVICE_ID_6_REG_OFFSET 0x64
279#define LC_CTRL_DEVICE_ID_6_REG_RESVAL 0x0u
283#define LC_CTRL_DEVICE_ID_7_REG_OFFSET 0x68
284#define LC_CTRL_DEVICE_ID_7_REG_RESVAL 0x0u
288#define LC_CTRL_MANUF_STATE_MANUF_STATE_FIELD_WIDTH 32
289#define LC_CTRL_MANUF_STATE_MULTIREG_COUNT 8
292#define LC_CTRL_MANUF_STATE_0_REG_OFFSET 0x6c
293#define LC_CTRL_MANUF_STATE_0_REG_RESVAL 0x0u
296#define LC_CTRL_MANUF_STATE_1_REG_OFFSET 0x70
297#define LC_CTRL_MANUF_STATE_1_REG_RESVAL 0x0u
300#define LC_CTRL_MANUF_STATE_2_REG_OFFSET 0x74
301#define LC_CTRL_MANUF_STATE_2_REG_RESVAL 0x0u
304#define LC_CTRL_MANUF_STATE_3_REG_OFFSET 0x78
305#define LC_CTRL_MANUF_STATE_3_REG_RESVAL 0x0u
308#define LC_CTRL_MANUF_STATE_4_REG_OFFSET 0x7c
309#define LC_CTRL_MANUF_STATE_4_REG_RESVAL 0x0u
312#define LC_CTRL_MANUF_STATE_5_REG_OFFSET 0x80
313#define LC_CTRL_MANUF_STATE_5_REG_RESVAL 0x0u
316#define LC_CTRL_MANUF_STATE_6_REG_OFFSET 0x84
317#define LC_CTRL_MANUF_STATE_6_REG_RESVAL 0x0u
320#define LC_CTRL_MANUF_STATE_7_REG_OFFSET 0x88
321#define LC_CTRL_MANUF_STATE_7_REG_RESVAL 0x0u
324#define LC_CTRL_DMI_REG_OFFSET 0x0
325#define LC_CTRL_DMI_SIZE_WORDS 1024
326#define LC_CTRL_DMI_SIZE_BYTES 4096