HPM SDK
HPMicro Software Development Kit
hpm_otp_table.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2025 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 
9 #ifndef HPM_OTP_TABLE_H
10 #define HPM_OTP_TABLE_H
11 
12 /* OTP WORD OFFSET */
13 #define OTP_TABLE_HARD_LOCK_OFFSET (0U)
14 #define OTP_TABLE_LIFECYCLE_B_OFFSET (1U)
15 #define OTP_TABLE_TCU_DISABLE_OFFSET (1U)
16 #define OTP_TABLE_DEBUG_DISABLE_OFFSET (1U)
17 #define OTP_TABLE_JTAG_DISABLE_OFFSET (1U)
18 #define OTP_TABLE_PUK_REVOKE_OFFSET (1U)
19 #define OTP_TABLE_LIFECYCLE_A_OFFSET (1U)
20 #define OTP_TABLE_MONO_EPOCH_OFFSET (2U)
21 #define OTP_TABLE_SW_VER_OFFSET (3U)
22 #define OTP_TABLE_DIE_TRACE_OFFSET (8U)
23 #define OTP_TABLE_DEBUG_KEY_OFFSET (12U)
24 #define OTP_TABLE_TSNS_BASE_OFFSET (21U)
25 #define OTP_TABLE_TSNS_SLOPE_OFFSET (21U)
26 #define OTP_TABLE_TSNS_BASE_EN_OFFSET (21U)
27 #define OTP_TABLE_TSNS_SLOPE_EN_OFFSET (21U)
28 #define OTP_TABLE_CHIP_ID_OFFSET (64U)
29 #define OTP_TABLE_MAC0_OFFSET (65U)
30 #define OTP_TABLE_MAC1_OFFSET (66U)
31 #define OTP_TABLE_USB_PID_OFFSET (68U)
32 #define OTP_TABLE_USB_VID_OFFSET (68U)
33 #define OTP_TABLE_PUBLIC_KEY_HASH_OFFSET (80U)
34 #define OTP_TABLE_UUID_OFFSET (88U)
35 #define OTP_TABLE_EXIP0_KEY_OFFSET (96U)
36 #define OTP_TABLE_EXIP1_KEY_OFFSET (100U)
37 #define OTP_TABLE_USER_KEY_OFFSET (104U)
38 #define OTP_TABLE_MASTER_KEY_OFFSET (112U)
39 
40 /* HARD_LOCK */
41 #define OTP_TABLE_HARD_LOCK_MASK (0xFFFFFFFFU)
42 #define OTP_TABLE_HARD_LOCK_SHIFT (0x0U)
43 #define OTP_TABLE_HARD_LOCK_SET(x) (((uint32_t)(x) << OTP_TABLE_HARD_LOCK_SHIFT) & OTP_TABLE_HARD_LOCK_MASK)
44 #define OTP_TABLE_HARD_LOCK_GET(x) (((uint32_t)(x) & OTP_TABLE_HARD_LOCK_MASK) >> OTP_TABLE_HARD_LOCK_SHIFT)
45 
46 /* LIFECYCLE_B */
47 #define OTP_TABLE_LIFECYCLE_B_MASK (0xF0000000U)
48 #define OTP_TABLE_LIFECYCLE_B_SHIFT (0x1CU)
49 #define OTP_TABLE_LIFECYCLE_B_SET(x) (((uint32_t)(x) << OTP_TABLE_LIFECYCLE_B_SHIFT) & OTP_TABLE_LIFECYCLE_B_MASK)
50 #define OTP_TABLE_LIFECYCLE_B_GET(x) (((uint32_t)(x) & OTP_TABLE_LIFECYCLE_B_MASK) >> OTP_TABLE_LIFECYCLE_B_SHIFT)
51 
52 /* TCU_DISABLE */
53 #define OTP_TABLE_TCU_DISABLE_MASK (0x80000U)
54 #define OTP_TABLE_TCU_DISABLE_SHIFT (0x13U)
55 #define OTP_TABLE_TCU_DISABLE_SET(x) (((uint32_t)(x) << OTP_TABLE_TCU_DISABLE_SHIFT) & OTP_TABLE_TCU_DISABLE_MASK)
56 #define OTP_TABLE_TCU_DISABLE_GET(x) (((uint32_t)(x) & OTP_TABLE_TCU_DISABLE_MASK) >> OTP_TABLE_TCU_DISABLE_SHIFT)
57 
58 /* DEBUG_DISABLE */
59 #define OTP_TABLE_DEBUG_DISABLE_MASK (0x20000U)
60 #define OTP_TABLE_DEBUG_DISABLE_SHIFT (0x11U)
61 #define OTP_TABLE_DEBUG_DISABLE_SET(x) (((uint32_t)(x) << OTP_TABLE_DEBUG_DISABLE_SHIFT) & OTP_TABLE_DEBUG_DISABLE_MASK)
62 #define OTP_TABLE_DEBUG_DISABLE_GET(x) (((uint32_t)(x) & OTP_TABLE_DEBUG_DISABLE_MASK) >> OTP_TABLE_DEBUG_DISABLE_SHIFT)
63 
64 /* JTAG_DISABLE */
65 #define OTP_TABLE_JTAG_DISABLE_MASK (0x10000U)
66 #define OTP_TABLE_JTAG_DISABLE_SHIFT (0x10U)
67 #define OTP_TABLE_JTAG_DISABLE_SET(x) (((uint32_t)(x) << OTP_TABLE_JTAG_DISABLE_SHIFT) & OTP_TABLE_JTAG_DISABLE_MASK)
68 #define OTP_TABLE_JTAG_DISABLE_GET(x) (((uint32_t)(x) & OTP_TABLE_JTAG_DISABLE_MASK) >> OTP_TABLE_JTAG_DISABLE_SHIFT)
69 
70 /* PUK_REVOKE */
71 #define OTP_TABLE_PUK_REVOKE_MASK (0xFF00U)
72 #define OTP_TABLE_PUK_REVOKE_SHIFT (0x8U)
73 #define OTP_TABLE_PUK_REVOKE_SET(x) (((uint32_t)(x) << OTP_TABLE_PUK_REVOKE_SHIFT) & OTP_TABLE_PUK_REVOKE_MASK)
74 #define OTP_TABLE_PUK_REVOKE_GET(x) (((uint32_t)(x) & OTP_TABLE_PUK_REVOKE_MASK) >> OTP_TABLE_PUK_REVOKE_SHIFT)
75 
76 /* LIFECYCLE_A */
77 #define OTP_TABLE_LIFECYCLE_A_MASK (0xFU)
78 #define OTP_TABLE_LIFECYCLE_A_SHIFT (0x0U)
79 #define OTP_TABLE_LIFECYCLE_A_SET(x) (((uint32_t)(x) << OTP_TABLE_LIFECYCLE_A_SHIFT) & OTP_TABLE_LIFECYCLE_A_MASK)
80 #define OTP_TABLE_LIFECYCLE_A_GET(x) (((uint32_t)(x) & OTP_TABLE_LIFECYCLE_A_MASK) >> OTP_TABLE_LIFECYCLE_A_SHIFT)
81 
82 /* MONO_EPOCH */
83 #define OTP_TABLE_MONO_EPOCH_MASK (0xFFFF0000U)
84 #define OTP_TABLE_MONO_EPOCH_SHIFT (0x10U)
85 #define OTP_TABLE_MONO_EPOCH_SET(x) (((uint32_t)(x) << OTP_TABLE_MONO_EPOCH_SHIFT) & OTP_TABLE_MONO_EPOCH_MASK)
86 #define OTP_TABLE_MONO_EPOCH_GET(x) (((uint32_t)(x) & OTP_TABLE_MONO_EPOCH_MASK) >> OTP_TABLE_MONO_EPOCH_SHIFT)
87 
88 /* SW_VER */
89 #define OTP_TABLE_SW_VER_MASK (0xFFFFFFFFU)
90 #define OTP_TABLE_SW_VER_SHIFT (0x0U)
91 #define OTP_TABLE_SW_VER_SET(x) (((uint32_t)(x) << OTP_TABLE_SW_VER_SHIFT) & OTP_TABLE_SW_VER_MASK)
92 #define OTP_TABLE_SW_VER_GET(x) (((uint32_t)(x) & OTP_TABLE_SW_VER_MASK) >> OTP_TABLE_SW_VER_SHIFT)
93 
94 /* DIE_TRACE */
95 #define OTP_TABLE_DIE_TRACE_SHIFT (0x0U)
96 #define OTP_TABLE_DIE_TRACE_BIT_LENGTH (0x80U)
97 
98 /* DEBUG_KEY */
99 #define OTP_TABLE_DEBUG_KEY_SHIFT (0x0U)
100 #define OTP_TABLE_DEBUG_KEY_BIT_LENGTH (0x80U)
101 
102 /* TSNS_BASE */
103 #define OTP_TABLE_TSNS_BASE_MASK (0xFFFU)
104 #define OTP_TABLE_TSNS_BASE_SHIFT (0x0U)
105 #define OTP_TABLE_TSNS_BASE_SET(x) (((uint32_t)(x) << OTP_TABLE_TSNS_BASE_SHIFT) & OTP_TABLE_TSNS_BASE_MASK)
106 #define OTP_TABLE_TSNS_BASE_GET(x) (((uint32_t)(x) & OTP_TABLE_TSNS_BASE_MASK) >> OTP_TABLE_TSNS_BASE_SHIFT)
107 
108 /* TSNS_SLOPE */
109 #define OTP_TABLE_TSNS_SLOPE_MASK (0xFFF000U)
110 #define OTP_TABLE_TSNS_SLOPE_SHIFT (0xCU)
111 #define OTP_TABLE_TSNS_SLOPE_SET(x) (((uint32_t)(x) << OTP_TABLE_TSNS_SLOPE_SHIFT) & OTP_TABLE_TSNS_SLOPE_MASK)
112 #define OTP_TABLE_TSNS_SLOPE_GET(x) (((uint32_t)(x) & OTP_TABLE_TSNS_SLOPE_MASK) >> OTP_TABLE_TSNS_SLOPE_SHIFT)
113 
114 /* TSNS_BASE_EN */
115 #define OTP_TABLE_TSNS_BASE_EN_MASK (0x1000000U)
116 #define OTP_TABLE_TSNS_BASE_EN_SHIFT (0x18U)
117 #define OTP_TABLE_TSNS_BASE_EN_SET(x) (((uint32_t)(x) << OTP_TABLE_TSNS_BASE_EN_SHIFT) & OTP_TABLE_TSNS_BASE_EN_MASK)
118 #define OTP_TABLE_TSNS_BASE_EN_GET(x) (((uint32_t)(x) & OTP_TABLE_TSNS_BASE_EN_MASK) >> OTP_TABLE_TSNS_BASE_EN_SHIFT)
119 
120 /* TSNS_SLOPE_EN */
121 #define OTP_TABLE_TSNS_SLOPE_EN_MASK (0x2000000U)
122 #define OTP_TABLE_TSNS_SLOPE_EN_SHIFT (0x19U)
123 #define OTP_TABLE_TSNS_SLOPE_EN_SET(x) (((uint32_t)(x) << OTP_TABLE_TSNS_SLOPE_EN_SHIFT) & OTP_TABLE_TSNS_SLOPE_EN_MASK)
124 #define OTP_TABLE_TSNS_SLOPE_EN_GET(x) (((uint32_t)(x) & OTP_TABLE_TSNS_SLOPE_EN_MASK) >> OTP_TABLE_TSNS_SLOPE_EN_SHIFT)
125 
126 /* CHIP_ID */
127 #define OTP_TABLE_CHIP_ID_MASK (0xFFFFFFFFU)
128 #define OTP_TABLE_CHIP_ID_SHIFT (0x0U)
129 #define OTP_TABLE_CHIP_ID_SET(x) (((uint32_t)(x) << OTP_TABLE_CHIP_ID_SHIFT) & OTP_TABLE_CHIP_ID_MASK)
130 #define OTP_TABLE_CHIP_ID_GET(x) (((uint32_t)(x) & OTP_TABLE_CHIP_ID_MASK) >> OTP_TABLE_CHIP_ID_SHIFT)
131 
132 /* MAC0 */
133 #define OTP_TABLE_MAC0_SHIFT (0x0U)
134 #define OTP_TABLE_MAC0_BIT_LENGTH (0x30U)
135 
136 /* MAC1 */
137 #define OTP_TABLE_MAC1_SHIFT (0x10U)
138 #define OTP_TABLE_MAC1_BIT_LENGTH (0x30U)
139 
140 /* USB_PID */
141 #define OTP_TABLE_USB_PID_MASK (0xFFFFU)
142 #define OTP_TABLE_USB_PID_SHIFT (0x0U)
143 #define OTP_TABLE_USB_PID_SET(x) (((uint32_t)(x) << OTP_TABLE_USB_PID_SHIFT) & OTP_TABLE_USB_PID_MASK)
144 #define OTP_TABLE_USB_PID_GET(x) (((uint32_t)(x) & OTP_TABLE_USB_PID_MASK) >> OTP_TABLE_USB_PID_SHIFT)
145 
146 /* USB_VID */
147 #define OTP_TABLE_USB_VID_MASK (0xFFFF0000U)
148 #define OTP_TABLE_USB_VID_SHIFT (0x10U)
149 #define OTP_TABLE_USB_VID_SET(x) (((uint32_t)(x) << OTP_TABLE_USB_VID_SHIFT) & OTP_TABLE_USB_VID_MASK)
150 #define OTP_TABLE_USB_VID_GET(x) (((uint32_t)(x) & OTP_TABLE_USB_VID_MASK) >> OTP_TABLE_USB_VID_SHIFT)
151 
152 /* PUBLIC_KEY_HASH */
153 #define OTP_TABLE_PUBLIC_KEY_HASH_SHIFT (0x0U)
154 #define OTP_TABLE_PUBLIC_KEY_HASH_BIT_LENGTH (0x100U)
155 
156 /* UUID */
157 #define OTP_TABLE_UUID_SHIFT (0x0U)
158 #define OTP_TABLE_UUID_BIT_LENGTH (0x80U)
159 
160 /* EXIP0_KEY */
161 #define OTP_TABLE_EXIP0_KEY_SHIFT (0x0U)
162 #define OTP_TABLE_EXIP0_KEY_BIT_LENGTH (0x80U)
163 
164 /* EXIP1_KEY */
165 #define OTP_TABLE_EXIP1_KEY_SHIFT (0x0U)
166 #define OTP_TABLE_EXIP1_KEY_BIT_LENGTH (0x80U)
167 
168 /* USER_KEY */
169 #define OTP_TABLE_USER_KEY_SHIFT (0x0U)
170 #define OTP_TABLE_USER_KEY_BIT_LENGTH (0x100U)
171 
172 /* MASTER_KEY */
173 #define OTP_TABLE_MASTER_KEY_SHIFT (0x0U)
174 #define OTP_TABLE_MASTER_KEY_BIT_LENGTH (0x100U)
175 
176 
177 #endif /* HPM_OTP_TABLE_H */