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 */
soc
HPM5E00
HPM5E31
hpm_otp_table.h
Generated on Tue Jan 13 2026 09:59:11 for HPM SDK by
1.9.1