1 /*
2  * SPDX-FileCopyrightText: 2017-2023 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include "sdkconfig.h"
8 #include "esp_efuse.h"
9 #include <assert.h>
10 #include "esp_efuse_table.h"
11 
12 // md5_digest_table 439495cbc35dc68d7566e05ac3dbb248
13 // This file was generated from the file esp_efuse_table.csv. DO NOT CHANGE THIS FILE MANUALLY.
14 // If you want to change some fields, you need to change esp_efuse_table.csv file
15 // then run `efuse_common_table` or `efuse_custom_table` command it will generate this file.
16 // To show efuse_table run the command 'show_efuse_table'.
17 
18 static const esp_efuse_desc_t WR_DIS[] = {
19     {EFUSE_BLK0, 0, 8}, 	 // [] Disable programming of individual eFuses,
20 };
21 
22 static const esp_efuse_desc_t WR_DIS_RD_DIS[] = {
23     {EFUSE_BLK0, 0, 1}, 	 // [] wr_dis of RD_DIS,
24 };
25 
26 static const esp_efuse_desc_t WR_DIS_WDT_DELAY_SEL[] = {
27     {EFUSE_BLK0, 1, 1}, 	 // [] wr_dis of WDT_DELAY_SEL,
28 };
29 
30 static const esp_efuse_desc_t WR_DIS_DIS_PAD_JTAG[] = {
31     {EFUSE_BLK0, 1, 1}, 	 // [] wr_dis of DIS_PAD_JTAG,
32 };
33 
34 static const esp_efuse_desc_t WR_DIS_DIS_DOWNLOAD_ICACHE[] = {
35     {EFUSE_BLK0, 1, 1}, 	 // [] wr_dis of DIS_DOWNLOAD_ICACHE,
36 };
37 
38 static const esp_efuse_desc_t WR_DIS_DIS_DOWNLOAD_MANUAL_ENCRYPT[] = {
39     {EFUSE_BLK0, 2, 1}, 	 // [] wr_dis of DIS_DOWNLOAD_MANUAL_ENCRYPT,
40 };
41 
42 static const esp_efuse_desc_t WR_DIS_SPI_BOOT_CRYPT_CNT[] = {
43     {EFUSE_BLK0, 2, 1}, 	 // [] wr_dis of SPI_BOOT_CRYPT_CNT,
44 };
45 
46 static const esp_efuse_desc_t WR_DIS_XTS_KEY_LENGTH_256[] = {
47     {EFUSE_BLK0, 2, 1}, 	 // [] wr_dis of XTS_KEY_LENGTH_256,
48 };
49 
50 static const esp_efuse_desc_t WR_DIS_SECURE_BOOT_EN[] = {
51     {EFUSE_BLK0, 2, 1}, 	 // [] wr_dis of SECURE_BOOT_EN,
52 };
53 
54 static const esp_efuse_desc_t WR_DIS_UART_PRINT_CONTROL[] = {
55     {EFUSE_BLK0, 3, 1}, 	 // [] wr_dis of UART_PRINT_CONTROL,
56 };
57 
58 static const esp_efuse_desc_t WR_DIS_FORCE_SEND_RESUME[] = {
59     {EFUSE_BLK0, 3, 1}, 	 // [] wr_dis of FORCE_SEND_RESUME,
60 };
61 
62 static const esp_efuse_desc_t WR_DIS_DIS_DOWNLOAD_MODE[] = {
63     {EFUSE_BLK0, 3, 1}, 	 // [] wr_dis of DIS_DOWNLOAD_MODE,
64 };
65 
66 static const esp_efuse_desc_t WR_DIS_DIS_DIRECT_BOOT[] = {
67     {EFUSE_BLK0, 3, 1}, 	 // [] wr_dis of DIS_DIRECT_BOOT,
68 };
69 
70 static const esp_efuse_desc_t WR_DIS_ENABLE_SECURITY_DOWNLOAD[] = {
71     {EFUSE_BLK0, 3, 1}, 	 // [] wr_dis of ENABLE_SECURITY_DOWNLOAD,
72 };
73 
74 static const esp_efuse_desc_t WR_DIS_FLASH_TPUW[] = {
75     {EFUSE_BLK0, 3, 1}, 	 // [] wr_dis of FLASH_TPUW,
76 };
77 
78 static const esp_efuse_desc_t WR_DIS_SECURE_VERSION[] = {
79     {EFUSE_BLK0, 4, 1}, 	 // [] wr_dis of SECURE_VERSION,
80 };
81 
82 static const esp_efuse_desc_t WR_DIS_CUSTOM_MAC_USED[] = {
83     {EFUSE_BLK0, 4, 1}, 	 // [WR_DIS.ENABLE_CUSTOM_MAC] wr_dis of CUSTOM_MAC_USED,
84 };
85 
86 static const esp_efuse_desc_t WR_DIS_DISABLE_WAFER_VERSION_MAJOR[] = {
87     {EFUSE_BLK0, 4, 1}, 	 // [] wr_dis of DISABLE_WAFER_VERSION_MAJOR,
88 };
89 
90 static const esp_efuse_desc_t WR_DIS_DISABLE_BLK_VERSION_MAJOR[] = {
91     {EFUSE_BLK0, 4, 1}, 	 // [] wr_dis of DISABLE_BLK_VERSION_MAJOR,
92 };
93 
94 static const esp_efuse_desc_t WR_DIS_CUSTOM_MAC[] = {
95     {EFUSE_BLK0, 5, 1}, 	 // [WR_DIS.MAC_CUSTOM WR_DIS.USER_DATA_MAC_CUSTOM] wr_dis of CUSTOM_MAC,
96 };
97 
98 static const esp_efuse_desc_t WR_DIS_MAC[] = {
99     {EFUSE_BLK0, 6, 1}, 	 // [WR_DIS.MAC_FACTORY] wr_dis of MAC,
100 };
101 
102 static const esp_efuse_desc_t WR_DIS_WAFER_VERSION_MINOR[] = {
103     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of WAFER_VERSION_MINOR,
104 };
105 
106 static const esp_efuse_desc_t WR_DIS_WAFER_VERSION_MAJOR[] = {
107     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of WAFER_VERSION_MAJOR,
108 };
109 
110 static const esp_efuse_desc_t WR_DIS_PKG_VERSION[] = {
111     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of PKG_VERSION,
112 };
113 
114 static const esp_efuse_desc_t WR_DIS_BLK_VERSION_MINOR[] = {
115     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of BLK_VERSION_MINOR,
116 };
117 
118 static const esp_efuse_desc_t WR_DIS_BLK_VERSION_MAJOR[] = {
119     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of BLK_VERSION_MAJOR,
120 };
121 
122 static const esp_efuse_desc_t WR_DIS_OCODE[] = {
123     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of OCODE,
124 };
125 
126 static const esp_efuse_desc_t WR_DIS_TEMP_CALIB[] = {
127     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of TEMP_CALIB,
128 };
129 
130 static const esp_efuse_desc_t WR_DIS_ADC1_INIT_CODE_ATTEN0[] = {
131     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of ADC1_INIT_CODE_ATTEN0,
132 };
133 
134 static const esp_efuse_desc_t WR_DIS_ADC1_INIT_CODE_ATTEN3[] = {
135     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of ADC1_INIT_CODE_ATTEN3,
136 };
137 
138 static const esp_efuse_desc_t WR_DIS_ADC1_CAL_VOL_ATTEN0[] = {
139     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of ADC1_CAL_VOL_ATTEN0,
140 };
141 
142 static const esp_efuse_desc_t WR_DIS_ADC1_CAL_VOL_ATTEN3[] = {
143     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of ADC1_CAL_VOL_ATTEN3,
144 };
145 
146 static const esp_efuse_desc_t WR_DIS_DIG_DBIAS_HVT[] = {
147     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of DIG_DBIAS_HVT,
148 };
149 
150 static const esp_efuse_desc_t WR_DIS_DIG_LDO_SLP_DBIAS2[] = {
151     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of DIG_LDO_SLP_DBIAS2,
152 };
153 
154 static const esp_efuse_desc_t WR_DIS_DIG_LDO_SLP_DBIAS26[] = {
155     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of DIG_LDO_SLP_DBIAS26,
156 };
157 
158 static const esp_efuse_desc_t WR_DIS_DIG_LDO_ACT_DBIAS26[] = {
159     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of DIG_LDO_ACT_DBIAS26,
160 };
161 
162 static const esp_efuse_desc_t WR_DIS_DIG_LDO_ACT_STEPD10[] = {
163     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of DIG_LDO_ACT_STEPD10,
164 };
165 
166 static const esp_efuse_desc_t WR_DIS_RTC_LDO_SLP_DBIAS13[] = {
167     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of RTC_LDO_SLP_DBIAS13,
168 };
169 
170 static const esp_efuse_desc_t WR_DIS_RTC_LDO_SLP_DBIAS29[] = {
171     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of RTC_LDO_SLP_DBIAS29,
172 };
173 
174 static const esp_efuse_desc_t WR_DIS_RTC_LDO_SLP_DBIAS31[] = {
175     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of RTC_LDO_SLP_DBIAS31,
176 };
177 
178 static const esp_efuse_desc_t WR_DIS_RTC_LDO_ACT_DBIAS31[] = {
179     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of RTC_LDO_ACT_DBIAS31,
180 };
181 
182 static const esp_efuse_desc_t WR_DIS_RTC_LDO_ACT_DBIAS13[] = {
183     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of RTC_LDO_ACT_DBIAS13,
184 };
185 
186 static const esp_efuse_desc_t WR_DIS_ADC_CALIBRATION_3[] = {
187     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of ADC_CALIBRATION_3,
188 };
189 
190 static const esp_efuse_desc_t WR_DIS_BLOCK_KEY0[] = {
191     {EFUSE_BLK0, 7, 1}, 	 // [WR_DIS.KEY0] wr_dis of BLOCK_KEY0,
192 };
193 
194 static const esp_efuse_desc_t RD_DIS[] = {
195     {EFUSE_BLK0, 32, 2}, 	 // [] Disable reading from BlOCK3,
196 };
197 
198 static const esp_efuse_desc_t RD_DIS_KEY0[] = {
199     {EFUSE_BLK0, 32, 2}, 	 // [] Read protection for EFUSE_BLK3. KEY0,
200 };
201 
202 static const esp_efuse_desc_t RD_DIS_KEY0_LOW[] = {
203     {EFUSE_BLK0, 32, 1}, 	 // [] Read protection for EFUSE_BLK3. KEY0 lower 128-bit key,
204 };
205 
206 static const esp_efuse_desc_t RD_DIS_KEY0_HI[] = {
207     {EFUSE_BLK0, 33, 1}, 	 // [] Read protection for EFUSE_BLK3. KEY0 higher 128-bit key,
208 };
209 
210 static const esp_efuse_desc_t WDT_DELAY_SEL[] = {
211     {EFUSE_BLK0, 34, 2}, 	 // [] RTC watchdog timeout threshold; in unit of slow clock cycle {0: "40000"; 1: "80000"; 2: "160000"; 3: "320000"},
212 };
213 
214 static const esp_efuse_desc_t DIS_PAD_JTAG[] = {
215     {EFUSE_BLK0, 36, 1}, 	 // [] Set this bit to disable pad jtag,
216 };
217 
218 static const esp_efuse_desc_t DIS_DOWNLOAD_ICACHE[] = {
219     {EFUSE_BLK0, 37, 1}, 	 // [] The bit be set to disable icache in download mode,
220 };
221 
222 static const esp_efuse_desc_t DIS_DOWNLOAD_MANUAL_ENCRYPT[] = {
223     {EFUSE_BLK0, 38, 1}, 	 // [] The bit be set to disable manual encryption,
224 };
225 
226 static const esp_efuse_desc_t SPI_BOOT_CRYPT_CNT[] = {
227     {EFUSE_BLK0, 39, 3}, 	 // [] Enables flash encryption when 1 or 3 bits are set and disables otherwise {0: "Disable"; 1: "Enable"; 3: "Disable"; 7: "Enable"},
228 };
229 
230 static const esp_efuse_desc_t XTS_KEY_LENGTH_256[] = {
231     {EFUSE_BLK0, 42, 1}, 	 // [] Flash encryption key length {0: "128 bits key"; 1: "256 bits key"},
232 };
233 
234 static const esp_efuse_desc_t UART_PRINT_CONTROL[] = {
235     {EFUSE_BLK0, 43, 2}, 	 // [] Set the default UARTboot message output mode {0: "Enable"; 1: "Enable when GPIO8 is low at reset"; 2: "Enable when GPIO8 is high at reset"; 3: "Disable"},
236 };
237 
238 static const esp_efuse_desc_t FORCE_SEND_RESUME[] = {
239     {EFUSE_BLK0, 45, 1}, 	 // [] Set this bit to force ROM code to send a resume command during SPI boot,
240 };
241 
242 static const esp_efuse_desc_t DIS_DOWNLOAD_MODE[] = {
243     {EFUSE_BLK0, 46, 1}, 	 // [] Set this bit to disable download mode (boot_mode[3:0] = 0; 1; 2; 4; 5; 6; 7),
244 };
245 
246 static const esp_efuse_desc_t DIS_DIRECT_BOOT[] = {
247     {EFUSE_BLK0, 47, 1}, 	 // [] This bit set means disable direct_boot mode,
248 };
249 
250 static const esp_efuse_desc_t ENABLE_SECURITY_DOWNLOAD[] = {
251     {EFUSE_BLK0, 48, 1}, 	 // [] Set this bit to enable secure UART download mode,
252 };
253 
254 static const esp_efuse_desc_t FLASH_TPUW[] = {
255     {EFUSE_BLK0, 49, 4}, 	 // [] Configures flash waiting time after power-up; in unit of ms. If the value is less than 15; the waiting time is the configurable value.  Otherwise; the waiting time is twice the configurable value,
256 };
257 
258 static const esp_efuse_desc_t SECURE_BOOT_EN[] = {
259     {EFUSE_BLK0, 53, 1}, 	 // [] The bit be set to enable secure boot,
260 };
261 
262 static const esp_efuse_desc_t SECURE_VERSION[] = {
263     {EFUSE_BLK0, 54, 4}, 	 // [] Secure version for anti-rollback,
264 };
265 
266 static const esp_efuse_desc_t CUSTOM_MAC_USED[] = {
267     {EFUSE_BLK0, 58, 1}, 	 // [ENABLE_CUSTOM_MAC] True if MAC_CUSTOM is burned,
268 };
269 
270 static const esp_efuse_desc_t DISABLE_WAFER_VERSION_MAJOR[] = {
271     {EFUSE_BLK0, 59, 1}, 	 // [] Disables check of wafer version major,
272 };
273 
274 static const esp_efuse_desc_t DISABLE_BLK_VERSION_MAJOR[] = {
275     {EFUSE_BLK0, 60, 1}, 	 // [] Disables check of blk version major,
276 };
277 
278 static const esp_efuse_desc_t USER_DATA[] = {
279     {EFUSE_BLK1, 0, 88}, 	 // [] User data block,
280 };
281 
282 static const esp_efuse_desc_t USER_DATA_MAC_CUSTOM[] = {
283     {EFUSE_BLK1, 0, 48}, 	 // [MAC_CUSTOM CUSTOM_MAC] Custom MAC address,
284 };
285 
286 static const esp_efuse_desc_t MAC[] = {
287     {EFUSE_BLK2, 40, 8}, 	 // [MAC_FACTORY] MAC address,
288     {EFUSE_BLK2, 32, 8}, 	 // [MAC_FACTORY] MAC address,
289     {EFUSE_BLK2, 24, 8}, 	 // [MAC_FACTORY] MAC address,
290     {EFUSE_BLK2, 16, 8}, 	 // [MAC_FACTORY] MAC address,
291     {EFUSE_BLK2, 8, 8}, 	 // [MAC_FACTORY] MAC address,
292     {EFUSE_BLK2, 0, 8}, 	 // [MAC_FACTORY] MAC address,
293 };
294 
295 static const esp_efuse_desc_t WAFER_VERSION_MINOR[] = {
296     {EFUSE_BLK2, 48, 4}, 	 // [] WAFER_VERSION_MINOR,
297 };
298 
299 static const esp_efuse_desc_t WAFER_VERSION_MAJOR[] = {
300     {EFUSE_BLK2, 52, 2}, 	 // [] WAFER_VERSION_MAJOR,
301 };
302 
303 static const esp_efuse_desc_t PKG_VERSION[] = {
304     {EFUSE_BLK2, 54, 3}, 	 // [] EFUSE_PKG_VERSION,
305 };
306 
307 static const esp_efuse_desc_t BLK_VERSION_MINOR[] = {
308     {EFUSE_BLK2, 57, 3}, 	 // [] Minor version of BLOCK2 {0: "No calib"; 1: "With calib"},
309 };
310 
311 static const esp_efuse_desc_t BLK_VERSION_MAJOR[] = {
312     {EFUSE_BLK2, 60, 2}, 	 // [] Major version of BLOCK2,
313 };
314 
315 static const esp_efuse_desc_t OCODE[] = {
316     {EFUSE_BLK2, 62, 7}, 	 // [] OCode,
317 };
318 
319 static const esp_efuse_desc_t TEMP_CALIB[] = {
320     {EFUSE_BLK2, 69, 9}, 	 // [] Temperature calibration data,
321 };
322 
323 static const esp_efuse_desc_t ADC1_INIT_CODE_ATTEN0[] = {
324     {EFUSE_BLK2, 78, 8}, 	 // [] ADC1 init code at atten0,
325 };
326 
327 static const esp_efuse_desc_t ADC1_INIT_CODE_ATTEN3[] = {
328     {EFUSE_BLK2, 86, 5}, 	 // [] ADC1 init code at atten3,
329 };
330 
331 static const esp_efuse_desc_t ADC1_CAL_VOL_ATTEN0[] = {
332     {EFUSE_BLK2, 91, 8}, 	 // [] ADC1 calibration voltage at atten0,
333 };
334 
335 static const esp_efuse_desc_t ADC1_CAL_VOL_ATTEN3[] = {
336     {EFUSE_BLK2, 99, 6}, 	 // [] ADC1 calibration voltage at atten3,
337 };
338 
339 static const esp_efuse_desc_t DIG_DBIAS_HVT[] = {
340     {EFUSE_BLK2, 105, 5}, 	 // [] BLOCK2 digital dbias when hvt,
341 };
342 
343 static const esp_efuse_desc_t DIG_LDO_SLP_DBIAS2[] = {
344     {EFUSE_BLK2, 110, 7}, 	 // [] BLOCK2 DIG_LDO_DBG0_DBIAS2,
345 };
346 
347 static const esp_efuse_desc_t DIG_LDO_SLP_DBIAS26[] = {
348     {EFUSE_BLK2, 117, 8}, 	 // [] BLOCK2 DIG_LDO_DBG0_DBIAS26,
349 };
350 
351 static const esp_efuse_desc_t DIG_LDO_ACT_DBIAS26[] = {
352     {EFUSE_BLK2, 125, 6}, 	 // [] BLOCK2 DIG_LDO_ACT_DBIAS26,
353 };
354 
355 static const esp_efuse_desc_t DIG_LDO_ACT_STEPD10[] = {
356     {EFUSE_BLK2, 131, 4}, 	 // [] BLOCK2 DIG_LDO_ACT_STEPD10,
357 };
358 
359 static const esp_efuse_desc_t RTC_LDO_SLP_DBIAS13[] = {
360     {EFUSE_BLK2, 135, 7}, 	 // [] BLOCK2 DIG_LDO_SLP_DBIAS13,
361 };
362 
363 static const esp_efuse_desc_t RTC_LDO_SLP_DBIAS29[] = {
364     {EFUSE_BLK2, 142, 9}, 	 // [] BLOCK2 DIG_LDO_SLP_DBIAS29,
365 };
366 
367 static const esp_efuse_desc_t RTC_LDO_SLP_DBIAS31[] = {
368     {EFUSE_BLK2, 151, 6}, 	 // [] BLOCK2 DIG_LDO_SLP_DBIAS31,
369 };
370 
371 static const esp_efuse_desc_t RTC_LDO_ACT_DBIAS31[] = {
372     {EFUSE_BLK2, 157, 6}, 	 // [] BLOCK2 DIG_LDO_ACT_DBIAS31,
373 };
374 
375 static const esp_efuse_desc_t RTC_LDO_ACT_DBIAS13[] = {
376     {EFUSE_BLK2, 163, 8}, 	 // [] BLOCK2 DIG_LDO_ACT_DBIAS13,
377 };
378 
379 static const esp_efuse_desc_t ADC_CALIBRATION_3[] = {
380     {EFUSE_BLK2, 192, 11}, 	 // [] Store the bit [86:96] of ADC calibration data,
381 };
382 
383 static const esp_efuse_desc_t KEY0[] = {
384     {EFUSE_BLK3, 0, 256}, 	 // [BLOCK_KEY0] BLOCK_BLOCK_KEY0 - 256-bits. 256-bit key of Flash Encryption,
385 };
386 
387 static const esp_efuse_desc_t KEY0_FE_256BIT[] = {
388     {EFUSE_BLK3, 0, 256}, 	 // [] 256bit FE key,
389 };
390 
391 static const esp_efuse_desc_t KEY0_FE_128BIT[] = {
392     {EFUSE_BLK3, 0, 128}, 	 // [] 128bit FE key,
393 };
394 
395 static const esp_efuse_desc_t KEY0_SB_128BIT[] = {
396     {EFUSE_BLK3, 128, 128}, 	 // [] 128bit SB key,
397 };
398 
399 
400 
401 
402 
403 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS[] = {
404     &WR_DIS[0],    		// [] Disable programming of individual eFuses
405     NULL
406 };
407 
408 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_RD_DIS[] = {
409     &WR_DIS_RD_DIS[0],    		// [] wr_dis of RD_DIS
410     NULL
411 };
412 
413 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_WDT_DELAY_SEL[] = {
414     &WR_DIS_WDT_DELAY_SEL[0],    		// [] wr_dis of WDT_DELAY_SEL
415     NULL
416 };
417 
418 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIS_PAD_JTAG[] = {
419     &WR_DIS_DIS_PAD_JTAG[0],    		// [] wr_dis of DIS_PAD_JTAG
420     NULL
421 };
422 
423 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIS_DOWNLOAD_ICACHE[] = {
424     &WR_DIS_DIS_DOWNLOAD_ICACHE[0],    		// [] wr_dis of DIS_DOWNLOAD_ICACHE
425     NULL
426 };
427 
428 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIS_DOWNLOAD_MANUAL_ENCRYPT[] = {
429     &WR_DIS_DIS_DOWNLOAD_MANUAL_ENCRYPT[0],    		// [] wr_dis of DIS_DOWNLOAD_MANUAL_ENCRYPT
430     NULL
431 };
432 
433 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_BOOT_CRYPT_CNT[] = {
434     &WR_DIS_SPI_BOOT_CRYPT_CNT[0],    		// [] wr_dis of SPI_BOOT_CRYPT_CNT
435     NULL
436 };
437 
438 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XTS_KEY_LENGTH_256[] = {
439     &WR_DIS_XTS_KEY_LENGTH_256[0],    		// [] wr_dis of XTS_KEY_LENGTH_256
440     NULL
441 };
442 
443 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SECURE_BOOT_EN[] = {
444     &WR_DIS_SECURE_BOOT_EN[0],    		// [] wr_dis of SECURE_BOOT_EN
445     NULL
446 };
447 
448 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_UART_PRINT_CONTROL[] = {
449     &WR_DIS_UART_PRINT_CONTROL[0],    		// [] wr_dis of UART_PRINT_CONTROL
450     NULL
451 };
452 
453 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_FORCE_SEND_RESUME[] = {
454     &WR_DIS_FORCE_SEND_RESUME[0],    		// [] wr_dis of FORCE_SEND_RESUME
455     NULL
456 };
457 
458 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIS_DOWNLOAD_MODE[] = {
459     &WR_DIS_DIS_DOWNLOAD_MODE[0],    		// [] wr_dis of DIS_DOWNLOAD_MODE
460     NULL
461 };
462 
463 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIS_DIRECT_BOOT[] = {
464     &WR_DIS_DIS_DIRECT_BOOT[0],    		// [] wr_dis of DIS_DIRECT_BOOT
465     NULL
466 };
467 
468 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ENABLE_SECURITY_DOWNLOAD[] = {
469     &WR_DIS_ENABLE_SECURITY_DOWNLOAD[0],    		// [] wr_dis of ENABLE_SECURITY_DOWNLOAD
470     NULL
471 };
472 
473 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_FLASH_TPUW[] = {
474     &WR_DIS_FLASH_TPUW[0],    		// [] wr_dis of FLASH_TPUW
475     NULL
476 };
477 
478 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SECURE_VERSION[] = {
479     &WR_DIS_SECURE_VERSION[0],    		// [] wr_dis of SECURE_VERSION
480     NULL
481 };
482 
483 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CUSTOM_MAC_USED[] = {
484     &WR_DIS_CUSTOM_MAC_USED[0],    		// [WR_DIS.ENABLE_CUSTOM_MAC] wr_dis of CUSTOM_MAC_USED
485     NULL
486 };
487 
488 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_WAFER_VERSION_MAJOR[] = {
489     &WR_DIS_DISABLE_WAFER_VERSION_MAJOR[0],    		// [] wr_dis of DISABLE_WAFER_VERSION_MAJOR
490     NULL
491 };
492 
493 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_BLK_VERSION_MAJOR[] = {
494     &WR_DIS_DISABLE_BLK_VERSION_MAJOR[0],    		// [] wr_dis of DISABLE_BLK_VERSION_MAJOR
495     NULL
496 };
497 
498 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CUSTOM_MAC[] = {
499     &WR_DIS_CUSTOM_MAC[0],    		// [WR_DIS.MAC_CUSTOM WR_DIS.USER_DATA_MAC_CUSTOM] wr_dis of CUSTOM_MAC
500     NULL
501 };
502 
503 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC[] = {
504     &WR_DIS_MAC[0],    		// [WR_DIS.MAC_FACTORY] wr_dis of MAC
505     NULL
506 };
507 
508 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_WAFER_VERSION_MINOR[] = {
509     &WR_DIS_WAFER_VERSION_MINOR[0],    		// [] wr_dis of WAFER_VERSION_MINOR
510     NULL
511 };
512 
513 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_WAFER_VERSION_MAJOR[] = {
514     &WR_DIS_WAFER_VERSION_MAJOR[0],    		// [] wr_dis of WAFER_VERSION_MAJOR
515     NULL
516 };
517 
518 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_PKG_VERSION[] = {
519     &WR_DIS_PKG_VERSION[0],    		// [] wr_dis of PKG_VERSION
520     NULL
521 };
522 
523 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLK_VERSION_MINOR[] = {
524     &WR_DIS_BLK_VERSION_MINOR[0],    		// [] wr_dis of BLK_VERSION_MINOR
525     NULL
526 };
527 
528 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLK_VERSION_MAJOR[] = {
529     &WR_DIS_BLK_VERSION_MAJOR[0],    		// [] wr_dis of BLK_VERSION_MAJOR
530     NULL
531 };
532 
533 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_OCODE[] = {
534     &WR_DIS_OCODE[0],    		// [] wr_dis of OCODE
535     NULL
536 };
537 
538 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_TEMP_CALIB[] = {
539     &WR_DIS_TEMP_CALIB[0],    		// [] wr_dis of TEMP_CALIB
540     NULL
541 };
542 
543 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC1_INIT_CODE_ATTEN0[] = {
544     &WR_DIS_ADC1_INIT_CODE_ATTEN0[0],    		// [] wr_dis of ADC1_INIT_CODE_ATTEN0
545     NULL
546 };
547 
548 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC1_INIT_CODE_ATTEN3[] = {
549     &WR_DIS_ADC1_INIT_CODE_ATTEN3[0],    		// [] wr_dis of ADC1_INIT_CODE_ATTEN3
550     NULL
551 };
552 
553 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC1_CAL_VOL_ATTEN0[] = {
554     &WR_DIS_ADC1_CAL_VOL_ATTEN0[0],    		// [] wr_dis of ADC1_CAL_VOL_ATTEN0
555     NULL
556 };
557 
558 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC1_CAL_VOL_ATTEN3[] = {
559     &WR_DIS_ADC1_CAL_VOL_ATTEN3[0],    		// [] wr_dis of ADC1_CAL_VOL_ATTEN3
560     NULL
561 };
562 
563 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIG_DBIAS_HVT[] = {
564     &WR_DIS_DIG_DBIAS_HVT[0],    		// [] wr_dis of DIG_DBIAS_HVT
565     NULL
566 };
567 
568 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIG_LDO_SLP_DBIAS2[] = {
569     &WR_DIS_DIG_LDO_SLP_DBIAS2[0],    		// [] wr_dis of DIG_LDO_SLP_DBIAS2
570     NULL
571 };
572 
573 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIG_LDO_SLP_DBIAS26[] = {
574     &WR_DIS_DIG_LDO_SLP_DBIAS26[0],    		// [] wr_dis of DIG_LDO_SLP_DBIAS26
575     NULL
576 };
577 
578 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIG_LDO_ACT_DBIAS26[] = {
579     &WR_DIS_DIG_LDO_ACT_DBIAS26[0],    		// [] wr_dis of DIG_LDO_ACT_DBIAS26
580     NULL
581 };
582 
583 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIG_LDO_ACT_STEPD10[] = {
584     &WR_DIS_DIG_LDO_ACT_STEPD10[0],    		// [] wr_dis of DIG_LDO_ACT_STEPD10
585     NULL
586 };
587 
588 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_RTC_LDO_SLP_DBIAS13[] = {
589     &WR_DIS_RTC_LDO_SLP_DBIAS13[0],    		// [] wr_dis of RTC_LDO_SLP_DBIAS13
590     NULL
591 };
592 
593 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_RTC_LDO_SLP_DBIAS29[] = {
594     &WR_DIS_RTC_LDO_SLP_DBIAS29[0],    		// [] wr_dis of RTC_LDO_SLP_DBIAS29
595     NULL
596 };
597 
598 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_RTC_LDO_SLP_DBIAS31[] = {
599     &WR_DIS_RTC_LDO_SLP_DBIAS31[0],    		// [] wr_dis of RTC_LDO_SLP_DBIAS31
600     NULL
601 };
602 
603 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_RTC_LDO_ACT_DBIAS31[] = {
604     &WR_DIS_RTC_LDO_ACT_DBIAS31[0],    		// [] wr_dis of RTC_LDO_ACT_DBIAS31
605     NULL
606 };
607 
608 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_RTC_LDO_ACT_DBIAS13[] = {
609     &WR_DIS_RTC_LDO_ACT_DBIAS13[0],    		// [] wr_dis of RTC_LDO_ACT_DBIAS13
610     NULL
611 };
612 
613 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC_CALIBRATION_3[] = {
614     &WR_DIS_ADC_CALIBRATION_3[0],    		// [] wr_dis of ADC_CALIBRATION_3
615     NULL
616 };
617 
618 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLOCK_KEY0[] = {
619     &WR_DIS_BLOCK_KEY0[0],    		// [WR_DIS.KEY0] wr_dis of BLOCK_KEY0
620     NULL
621 };
622 
623 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS[] = {
624     &RD_DIS[0],    		// [] Disable reading from BlOCK3
625     NULL
626 };
627 
628 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_KEY0[] = {
629     &RD_DIS_KEY0[0],    		// [] Read protection for EFUSE_BLK3. KEY0
630     NULL
631 };
632 
633 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_KEY0_LOW[] = {
634     &RD_DIS_KEY0_LOW[0],    		// [] Read protection for EFUSE_BLK3. KEY0 lower 128-bit key
635     NULL
636 };
637 
638 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_KEY0_HI[] = {
639     &RD_DIS_KEY0_HI[0],    		// [] Read protection for EFUSE_BLK3. KEY0 higher 128-bit key
640     NULL
641 };
642 
643 const esp_efuse_desc_t* ESP_EFUSE_WDT_DELAY_SEL[] = {
644     &WDT_DELAY_SEL[0],    		// [] RTC watchdog timeout threshold; in unit of slow clock cycle {0: "40000"; 1: "80000"; 2: "160000"; 3: "320000"}
645     NULL
646 };
647 
648 const esp_efuse_desc_t* ESP_EFUSE_DIS_PAD_JTAG[] = {
649     &DIS_PAD_JTAG[0],    		// [] Set this bit to disable pad jtag
650     NULL
651 };
652 
653 const esp_efuse_desc_t* ESP_EFUSE_DIS_DOWNLOAD_ICACHE[] = {
654     &DIS_DOWNLOAD_ICACHE[0],    		// [] The bit be set to disable icache in download mode
655     NULL
656 };
657 
658 const esp_efuse_desc_t* ESP_EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT[] = {
659     &DIS_DOWNLOAD_MANUAL_ENCRYPT[0],    		// [] The bit be set to disable manual encryption
660     NULL
661 };
662 
663 const esp_efuse_desc_t* ESP_EFUSE_SPI_BOOT_CRYPT_CNT[] = {
664     &SPI_BOOT_CRYPT_CNT[0],    		// [] Enables flash encryption when 1 or 3 bits are set and disables otherwise {0: "Disable"; 1: "Enable"; 3: "Disable"; 7: "Enable"}
665     NULL
666 };
667 
668 const esp_efuse_desc_t* ESP_EFUSE_XTS_KEY_LENGTH_256[] = {
669     &XTS_KEY_LENGTH_256[0],    		// [] Flash encryption key length {0: "128 bits key"; 1: "256 bits key"}
670     NULL
671 };
672 
673 const esp_efuse_desc_t* ESP_EFUSE_UART_PRINT_CONTROL[] = {
674     &UART_PRINT_CONTROL[0],    		// [] Set the default UARTboot message output mode {0: "Enable"; 1: "Enable when GPIO8 is low at reset"; 2: "Enable when GPIO8 is high at reset"; 3: "Disable"}
675     NULL
676 };
677 
678 const esp_efuse_desc_t* ESP_EFUSE_FORCE_SEND_RESUME[] = {
679     &FORCE_SEND_RESUME[0],    		// [] Set this bit to force ROM code to send a resume command during SPI boot
680     NULL
681 };
682 
683 const esp_efuse_desc_t* ESP_EFUSE_DIS_DOWNLOAD_MODE[] = {
684     &DIS_DOWNLOAD_MODE[0],    		// [] Set this bit to disable download mode (boot_mode[3:0] = 0; 1; 2; 4; 5; 6; 7)
685     NULL
686 };
687 
688 const esp_efuse_desc_t* ESP_EFUSE_DIS_DIRECT_BOOT[] = {
689     &DIS_DIRECT_BOOT[0],    		// [] This bit set means disable direct_boot mode
690     NULL
691 };
692 
693 const esp_efuse_desc_t* ESP_EFUSE_ENABLE_SECURITY_DOWNLOAD[] = {
694     &ENABLE_SECURITY_DOWNLOAD[0],    		// [] Set this bit to enable secure UART download mode
695     NULL
696 };
697 
698 const esp_efuse_desc_t* ESP_EFUSE_FLASH_TPUW[] = {
699     &FLASH_TPUW[0],    		// [] Configures flash waiting time after power-up; in unit of ms. If the value is less than 15; the waiting time is the configurable value.  Otherwise; the waiting time is twice the configurable value
700     NULL
701 };
702 
703 const esp_efuse_desc_t* ESP_EFUSE_SECURE_BOOT_EN[] = {
704     &SECURE_BOOT_EN[0],    		// [] The bit be set to enable secure boot
705     NULL
706 };
707 
708 const esp_efuse_desc_t* ESP_EFUSE_SECURE_VERSION[] = {
709     &SECURE_VERSION[0],    		// [] Secure version for anti-rollback
710     NULL
711 };
712 
713 const esp_efuse_desc_t* ESP_EFUSE_CUSTOM_MAC_USED[] = {
714     &CUSTOM_MAC_USED[0],    		// [ENABLE_CUSTOM_MAC] True if MAC_CUSTOM is burned
715     NULL
716 };
717 
718 const esp_efuse_desc_t* ESP_EFUSE_DISABLE_WAFER_VERSION_MAJOR[] = {
719     &DISABLE_WAFER_VERSION_MAJOR[0],    		// [] Disables check of wafer version major
720     NULL
721 };
722 
723 const esp_efuse_desc_t* ESP_EFUSE_DISABLE_BLK_VERSION_MAJOR[] = {
724     &DISABLE_BLK_VERSION_MAJOR[0],    		// [] Disables check of blk version major
725     NULL
726 };
727 
728 const esp_efuse_desc_t* ESP_EFUSE_USER_DATA[] = {
729     &USER_DATA[0],    		// [] User data block
730     NULL
731 };
732 
733 const esp_efuse_desc_t* ESP_EFUSE_USER_DATA_MAC_CUSTOM[] = {
734     &USER_DATA_MAC_CUSTOM[0],    		// [MAC_CUSTOM CUSTOM_MAC] Custom MAC address
735     NULL
736 };
737 
738 const esp_efuse_desc_t* ESP_EFUSE_MAC[] = {
739     &MAC[0],    		// [MAC_FACTORY] MAC address
740     &MAC[1],    		// [MAC_FACTORY] MAC address
741     &MAC[2],    		// [MAC_FACTORY] MAC address
742     &MAC[3],    		// [MAC_FACTORY] MAC address
743     &MAC[4],    		// [MAC_FACTORY] MAC address
744     &MAC[5],    		// [MAC_FACTORY] MAC address
745     NULL
746 };
747 
748 const esp_efuse_desc_t* ESP_EFUSE_WAFER_VERSION_MINOR[] = {
749     &WAFER_VERSION_MINOR[0],    		// [] WAFER_VERSION_MINOR
750     NULL
751 };
752 
753 const esp_efuse_desc_t* ESP_EFUSE_WAFER_VERSION_MAJOR[] = {
754     &WAFER_VERSION_MAJOR[0],    		// [] WAFER_VERSION_MAJOR
755     NULL
756 };
757 
758 const esp_efuse_desc_t* ESP_EFUSE_PKG_VERSION[] = {
759     &PKG_VERSION[0],    		// [] EFUSE_PKG_VERSION
760     NULL
761 };
762 
763 const esp_efuse_desc_t* ESP_EFUSE_BLK_VERSION_MINOR[] = {
764     &BLK_VERSION_MINOR[0],    		// [] Minor version of BLOCK2 {0: "No calib"; 1: "With calib"}
765     NULL
766 };
767 
768 const esp_efuse_desc_t* ESP_EFUSE_BLK_VERSION_MAJOR[] = {
769     &BLK_VERSION_MAJOR[0],    		// [] Major version of BLOCK2
770     NULL
771 };
772 
773 const esp_efuse_desc_t* ESP_EFUSE_OCODE[] = {
774     &OCODE[0],    		// [] OCode
775     NULL
776 };
777 
778 const esp_efuse_desc_t* ESP_EFUSE_TEMP_CALIB[] = {
779     &TEMP_CALIB[0],    		// [] Temperature calibration data
780     NULL
781 };
782 
783 const esp_efuse_desc_t* ESP_EFUSE_ADC1_INIT_CODE_ATTEN0[] = {
784     &ADC1_INIT_CODE_ATTEN0[0],    		// [] ADC1 init code at atten0
785     NULL
786 };
787 
788 const esp_efuse_desc_t* ESP_EFUSE_ADC1_INIT_CODE_ATTEN3[] = {
789     &ADC1_INIT_CODE_ATTEN3[0],    		// [] ADC1 init code at atten3
790     NULL
791 };
792 
793 const esp_efuse_desc_t* ESP_EFUSE_ADC1_CAL_VOL_ATTEN0[] = {
794     &ADC1_CAL_VOL_ATTEN0[0],    		// [] ADC1 calibration voltage at atten0
795     NULL
796 };
797 
798 const esp_efuse_desc_t* ESP_EFUSE_ADC1_CAL_VOL_ATTEN3[] = {
799     &ADC1_CAL_VOL_ATTEN3[0],    		// [] ADC1 calibration voltage at atten3
800     NULL
801 };
802 
803 const esp_efuse_desc_t* ESP_EFUSE_DIG_DBIAS_HVT[] = {
804     &DIG_DBIAS_HVT[0],    		// [] BLOCK2 digital dbias when hvt
805     NULL
806 };
807 
808 const esp_efuse_desc_t* ESP_EFUSE_DIG_LDO_SLP_DBIAS2[] = {
809     &DIG_LDO_SLP_DBIAS2[0],    		// [] BLOCK2 DIG_LDO_DBG0_DBIAS2
810     NULL
811 };
812 
813 const esp_efuse_desc_t* ESP_EFUSE_DIG_LDO_SLP_DBIAS26[] = {
814     &DIG_LDO_SLP_DBIAS26[0],    		// [] BLOCK2 DIG_LDO_DBG0_DBIAS26
815     NULL
816 };
817 
818 const esp_efuse_desc_t* ESP_EFUSE_DIG_LDO_ACT_DBIAS26[] = {
819     &DIG_LDO_ACT_DBIAS26[0],    		// [] BLOCK2 DIG_LDO_ACT_DBIAS26
820     NULL
821 };
822 
823 const esp_efuse_desc_t* ESP_EFUSE_DIG_LDO_ACT_STEPD10[] = {
824     &DIG_LDO_ACT_STEPD10[0],    		// [] BLOCK2 DIG_LDO_ACT_STEPD10
825     NULL
826 };
827 
828 const esp_efuse_desc_t* ESP_EFUSE_RTC_LDO_SLP_DBIAS13[] = {
829     &RTC_LDO_SLP_DBIAS13[0],    		// [] BLOCK2 DIG_LDO_SLP_DBIAS13
830     NULL
831 };
832 
833 const esp_efuse_desc_t* ESP_EFUSE_RTC_LDO_SLP_DBIAS29[] = {
834     &RTC_LDO_SLP_DBIAS29[0],    		// [] BLOCK2 DIG_LDO_SLP_DBIAS29
835     NULL
836 };
837 
838 const esp_efuse_desc_t* ESP_EFUSE_RTC_LDO_SLP_DBIAS31[] = {
839     &RTC_LDO_SLP_DBIAS31[0],    		// [] BLOCK2 DIG_LDO_SLP_DBIAS31
840     NULL
841 };
842 
843 const esp_efuse_desc_t* ESP_EFUSE_RTC_LDO_ACT_DBIAS31[] = {
844     &RTC_LDO_ACT_DBIAS31[0],    		// [] BLOCK2 DIG_LDO_ACT_DBIAS31
845     NULL
846 };
847 
848 const esp_efuse_desc_t* ESP_EFUSE_RTC_LDO_ACT_DBIAS13[] = {
849     &RTC_LDO_ACT_DBIAS13[0],    		// [] BLOCK2 DIG_LDO_ACT_DBIAS13
850     NULL
851 };
852 
853 const esp_efuse_desc_t* ESP_EFUSE_ADC_CALIBRATION_3[] = {
854     &ADC_CALIBRATION_3[0],    		// [] Store the bit [86:96] of ADC calibration data
855     NULL
856 };
857 
858 const esp_efuse_desc_t* ESP_EFUSE_KEY0[] = {
859     &KEY0[0],    		// [BLOCK_KEY0] BLOCK_BLOCK_KEY0 - 256-bits. 256-bit key of Flash Encryption
860     NULL
861 };
862 
863 const esp_efuse_desc_t* ESP_EFUSE_KEY0_FE_256BIT[] = {
864     &KEY0_FE_256BIT[0],    		// [] 256bit FE key
865     NULL
866 };
867 
868 const esp_efuse_desc_t* ESP_EFUSE_KEY0_FE_128BIT[] = {
869     &KEY0_FE_128BIT[0],    		// [] 128bit FE key
870     NULL
871 };
872 
873 const esp_efuse_desc_t* ESP_EFUSE_KEY0_SB_128BIT[] = {
874     &KEY0_SB_128BIT[0],    		// [] 128bit SB key
875     NULL
876 };
877