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 2e197b7b14eec62fa5bdf94c6d71e87a
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 #define MAX_BLK_LEN 256
19 
20 // The last free bit in the block is counted over the entire file.
21 #define LAST_FREE_BIT_BLK1 MAX_BLK_LEN
22 #define LAST_FREE_BIT_BLK2 MAX_BLK_LEN
23 #define LAST_FREE_BIT_BLK3 192
24 
25 _Static_assert(LAST_FREE_BIT_BLK1 <= MAX_BLK_LEN, "The eFuse table does not match the coding scheme. Edit the table and restart the efuse_common_table or efuse_custom_table command to regenerate the new files.");
26 _Static_assert(LAST_FREE_BIT_BLK2 <= MAX_BLK_LEN, "The eFuse table does not match the coding scheme. Edit the table and restart the efuse_common_table or efuse_custom_table command to regenerate the new files.");
27 _Static_assert(LAST_FREE_BIT_BLK3 <= MAX_BLK_LEN, "The eFuse table does not match the coding scheme. Edit the table and restart the efuse_common_table or efuse_custom_table command to regenerate the new files.");
28 
29 static const esp_efuse_desc_t WR_DIS[] = {
30     {EFUSE_BLK0, 0, 16}, 	 // [] Efuse write disable mask,
31 };
32 
33 static const esp_efuse_desc_t WR_DIS_RD_DIS[] = {
34     {EFUSE_BLK0, 0, 1}, 	 // [WR_DIS.EFUSE_RD_DISABLE] wr_dis of RD_DIS,
35 };
36 
37 static const esp_efuse_desc_t WR_DIS_WR_DIS[] = {
38     {EFUSE_BLK0, 1, 1}, 	 // [] wr_dis of WR_DIS,
39 };
40 
41 static const esp_efuse_desc_t WR_DIS_FLASH_CRYPT_CNT[] = {
42     {EFUSE_BLK0, 2, 1}, 	 // [] wr_dis of FLASH_CRYPT_CNT,
43 };
44 
45 static const esp_efuse_desc_t WR_DIS_UART_DOWNLOAD_DIS[] = {
46     {EFUSE_BLK0, 2, 1}, 	 // [] wr_dis of UART_DOWNLOAD_DIS,
47 };
48 
49 static const esp_efuse_desc_t WR_DIS_MAC[] = {
50     {EFUSE_BLK0, 3, 1}, 	 // [WR_DIS.MAC_FACTORY] wr_dis of MAC,
51 };
52 
53 static const esp_efuse_desc_t WR_DIS_MAC_CRC[] = {
54     {EFUSE_BLK0, 3, 1}, 	 // [WR_DIS.MAC_FACTORY_CRC] wr_dis of MAC_CRC,
55 };
56 
57 static const esp_efuse_desc_t WR_DIS_DISABLE_APP_CPU[] = {
58     {EFUSE_BLK0, 3, 1}, 	 // [WR_DIS.CHIP_VER_DIS_APP_CPU] wr_dis of DISABLE_APP_CPU,
59 };
60 
61 static const esp_efuse_desc_t WR_DIS_DISABLE_BT[] = {
62     {EFUSE_BLK0, 3, 1}, 	 // [WR_DIS.CHIP_VER_DIS_BT] wr_dis of DISABLE_BT,
63 };
64 
65 static const esp_efuse_desc_t WR_DIS_DIS_CACHE[] = {
66     {EFUSE_BLK0, 3, 1}, 	 // [WR_DIS.CHIP_VER_DIS_CACHE] wr_dis of DIS_CACHE,
67 };
68 
69 static const esp_efuse_desc_t WR_DIS_VOL_LEVEL_HP_INV[] = {
70     {EFUSE_BLK0, 3, 1}, 	 // [] wr_dis of VOL_LEVEL_HP_INV,
71 };
72 
73 static const esp_efuse_desc_t WR_DIS_CLK8M_FREQ[] = {
74     {EFUSE_BLK0, 4, 1}, 	 // [WR_DIS.CK8M_FREQ] wr_dis of CLK8M_FREQ,
75 };
76 
77 static const esp_efuse_desc_t WR_DIS_ADC_VREF[] = {
78     {EFUSE_BLK0, 4, 1}, 	 // [] wr_dis of ADC_VREF,
79 };
80 
81 static const esp_efuse_desc_t WR_DIS_XPD_SDIO_REG[] = {
82     {EFUSE_BLK0, 5, 1}, 	 // [] wr_dis of XPD_SDIO_REG,
83 };
84 
85 static const esp_efuse_desc_t WR_DIS_XPD_SDIO_TIEH[] = {
86     {EFUSE_BLK0, 5, 1}, 	 // [WR_DIS.SDIO_TIEH] wr_dis of XPD_SDIO_TIEH,
87 };
88 
89 static const esp_efuse_desc_t WR_DIS_XPD_SDIO_FORCE[] = {
90     {EFUSE_BLK0, 5, 1}, 	 // [WR_DIS.SDIO_FORCE] wr_dis of XPD_SDIO_FORCE,
91 };
92 
93 static const esp_efuse_desc_t WR_DIS_SPI_PAD_CONFIG_CLK[] = {
94     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of SPI_PAD_CONFIG_CLK,
95 };
96 
97 static const esp_efuse_desc_t WR_DIS_SPI_PAD_CONFIG_Q[] = {
98     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of SPI_PAD_CONFIG_Q,
99 };
100 
101 static const esp_efuse_desc_t WR_DIS_SPI_PAD_CONFIG_D[] = {
102     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of SPI_PAD_CONFIG_D,
103 };
104 
105 static const esp_efuse_desc_t WR_DIS_SPI_PAD_CONFIG_CS0[] = {
106     {EFUSE_BLK0, 6, 1}, 	 // [] wr_dis of SPI_PAD_CONFIG_CS0,
107 };
108 
109 static const esp_efuse_desc_t WR_DIS_BLOCK1[] = {
110     {EFUSE_BLK0, 7, 1}, 	 // [WR_DIS.ENCRYPT_FLASH_KEY WR_DIS.BLK1] wr_dis of BLOCK1,
111 };
112 
113 static const esp_efuse_desc_t WR_DIS_BLOCK2[] = {
114     {EFUSE_BLK0, 8, 1}, 	 // [WR_DIS.SECURE_BOOT_KEY WR_DIS.BLK2] wr_dis of BLOCK2,
115 };
116 
117 static const esp_efuse_desc_t WR_DIS_BLOCK3[] = {
118     {EFUSE_BLK0, 9, 1}, 	 // [WR_DIS.BLK3] wr_dis of BLOCK3,
119 };
120 
121 static const esp_efuse_desc_t WR_DIS_CUSTOM_MAC_CRC[] = {
122     {EFUSE_BLK0, 9, 1}, 	 // [WR_DIS.MAC_CUSTOM_CRC] wr_dis of CUSTOM_MAC_CRC,
123 };
124 
125 static const esp_efuse_desc_t WR_DIS_CUSTOM_MAC[] = {
126     {EFUSE_BLK0, 9, 1}, 	 // [WR_DIS.MAC_CUSTOM] wr_dis of CUSTOM_MAC,
127 };
128 
129 static const esp_efuse_desc_t WR_DIS_ADC1_TP_LOW[] = {
130     {EFUSE_BLK0, 9, 1}, 	 // [] wr_dis of ADC1_TP_LOW,
131 };
132 
133 static const esp_efuse_desc_t WR_DIS_ADC1_TP_HIGH[] = {
134     {EFUSE_BLK0, 9, 1}, 	 // [] wr_dis of ADC1_TP_HIGH,
135 };
136 
137 static const esp_efuse_desc_t WR_DIS_ADC2_TP_LOW[] = {
138     {EFUSE_BLK0, 9, 1}, 	 // [] wr_dis of ADC2_TP_LOW,
139 };
140 
141 static const esp_efuse_desc_t WR_DIS_ADC2_TP_HIGH[] = {
142     {EFUSE_BLK0, 9, 1}, 	 // [] wr_dis of ADC2_TP_HIGH,
143 };
144 
145 static const esp_efuse_desc_t WR_DIS_SECURE_VERSION[] = {
146     {EFUSE_BLK0, 9, 1}, 	 // [] wr_dis of SECURE_VERSION,
147 };
148 
149 static const esp_efuse_desc_t WR_DIS_MAC_VERSION[] = {
150     {EFUSE_BLK0, 9, 1}, 	 // [WR_DIS.MAC_CUSTOM_VER] wr_dis of MAC_VERSION,
151 };
152 
153 static const esp_efuse_desc_t WR_DIS_BLK3_PART_RESERVE[] = {
154     {EFUSE_BLK0, 10, 1}, 	 // [] wr_dis of BLK3_PART_RESERVE,
155 };
156 
157 static const esp_efuse_desc_t WR_DIS_FLASH_CRYPT_CONFIG[] = {
158     {EFUSE_BLK0, 10, 1}, 	 // [WR_DIS.ENCRYPT_CONFIG] wr_dis of FLASH_CRYPT_CONFIG,
159 };
160 
161 static const esp_efuse_desc_t WR_DIS_CODING_SCHEME[] = {
162     {EFUSE_BLK0, 10, 1}, 	 // [] wr_dis of CODING_SCHEME,
163 };
164 
165 static const esp_efuse_desc_t WR_DIS_KEY_STATUS[] = {
166     {EFUSE_BLK0, 10, 1}, 	 // [] wr_dis of KEY_STATUS,
167 };
168 
169 static const esp_efuse_desc_t WR_DIS_ABS_DONE_0[] = {
170     {EFUSE_BLK0, 12, 1}, 	 // [] wr_dis of ABS_DONE_0,
171 };
172 
173 static const esp_efuse_desc_t WR_DIS_ABS_DONE_1[] = {
174     {EFUSE_BLK0, 13, 1}, 	 // [] wr_dis of ABS_DONE_1,
175 };
176 
177 static const esp_efuse_desc_t WR_DIS_JTAG_DISABLE[] = {
178     {EFUSE_BLK0, 14, 1}, 	 // [WR_DIS.DISABLE_JTAG] wr_dis of JTAG_DISABLE,
179 };
180 
181 static const esp_efuse_desc_t WR_DIS_CONSOLE_DEBUG_DISABLE[] = {
182     {EFUSE_BLK0, 15, 1}, 	 // [] wr_dis of CONSOLE_DEBUG_DISABLE,
183 };
184 
185 static const esp_efuse_desc_t WR_DIS_DISABLE_DL_ENCRYPT[] = {
186     {EFUSE_BLK0, 15, 1}, 	 // [] wr_dis of DISABLE_DL_ENCRYPT,
187 };
188 
189 static const esp_efuse_desc_t WR_DIS_DISABLE_DL_DECRYPT[] = {
190     {EFUSE_BLK0, 15, 1}, 	 // [] wr_dis of DISABLE_DL_DECRYPT,
191 };
192 
193 static const esp_efuse_desc_t WR_DIS_DISABLE_DL_CACHE[] = {
194     {EFUSE_BLK0, 15, 1}, 	 // [] wr_dis of DISABLE_DL_CACHE,
195 };
196 
197 static const esp_efuse_desc_t RD_DIS[] = {
198     {EFUSE_BLK0, 16, 4}, 	 // [] Disable reading from BlOCK1-3,
199 };
200 
201 static const esp_efuse_desc_t RD_DIS_BLOCK1[] = {
202     {EFUSE_BLK0, 16, 1}, 	 // [RD_DIS.ENCRYPT_FLASH_KEY RD_DIS.BLK1] rd_dis of BLOCK1,
203 };
204 
205 static const esp_efuse_desc_t RD_DIS_BLOCK2[] = {
206     {EFUSE_BLK0, 17, 1}, 	 // [RD_DIS.SECURE_BOOT_KEY RD_DIS.BLK2] rd_dis of BLOCK2,
207 };
208 
209 static const esp_efuse_desc_t RD_DIS_BLOCK3[] = {
210     {EFUSE_BLK0, 18, 1}, 	 // [RD_DIS.BLK3] rd_dis of BLOCK3,
211 };
212 
213 static const esp_efuse_desc_t RD_DIS_CUSTOM_MAC_CRC[] = {
214     {EFUSE_BLK0, 18, 1}, 	 // [RD_DIS.MAC_CUSTOM_CRC] rd_dis of CUSTOM_MAC_CRC,
215 };
216 
217 static const esp_efuse_desc_t RD_DIS_CUSTOM_MAC[] = {
218     {EFUSE_BLK0, 18, 1}, 	 // [RD_DIS.MAC_CUSTOM] rd_dis of CUSTOM_MAC,
219 };
220 
221 static const esp_efuse_desc_t RD_DIS_ADC1_TP_LOW[] = {
222     {EFUSE_BLK0, 18, 1}, 	 // [] rd_dis of ADC1_TP_LOW,
223 };
224 
225 static const esp_efuse_desc_t RD_DIS_ADC1_TP_HIGH[] = {
226     {EFUSE_BLK0, 18, 1}, 	 // [] rd_dis of ADC1_TP_HIGH,
227 };
228 
229 static const esp_efuse_desc_t RD_DIS_ADC2_TP_LOW[] = {
230     {EFUSE_BLK0, 18, 1}, 	 // [] rd_dis of ADC2_TP_LOW,
231 };
232 
233 static const esp_efuse_desc_t RD_DIS_ADC2_TP_HIGH[] = {
234     {EFUSE_BLK0, 18, 1}, 	 // [] rd_dis of ADC2_TP_HIGH,
235 };
236 
237 static const esp_efuse_desc_t RD_DIS_SECURE_VERSION[] = {
238     {EFUSE_BLK0, 18, 1}, 	 // [] rd_dis of SECURE_VERSION,
239 };
240 
241 static const esp_efuse_desc_t RD_DIS_MAC_VERSION[] = {
242     {EFUSE_BLK0, 18, 1}, 	 // [RD_DIS.MAC_CUSTOM_VER] rd_dis of MAC_VERSION,
243 };
244 
245 static const esp_efuse_desc_t RD_DIS_BLK3_PART_RESERVE[] = {
246     {EFUSE_BLK0, 19, 1}, 	 // [] rd_dis of BLK3_PART_RESERVE,
247 };
248 
249 static const esp_efuse_desc_t RD_DIS_FLASH_CRYPT_CONFIG[] = {
250     {EFUSE_BLK0, 19, 1}, 	 // [RD_DIS.ENCRYPT_CONFIG] rd_dis of FLASH_CRYPT_CONFIG,
251 };
252 
253 static const esp_efuse_desc_t RD_DIS_CODING_SCHEME[] = {
254     {EFUSE_BLK0, 19, 1}, 	 // [] rd_dis of CODING_SCHEME,
255 };
256 
257 static const esp_efuse_desc_t RD_DIS_KEY_STATUS[] = {
258     {EFUSE_BLK0, 19, 1}, 	 // [] rd_dis of KEY_STATUS,
259 };
260 
261 static const esp_efuse_desc_t FLASH_CRYPT_CNT[] = {
262     {EFUSE_BLK0, 20, 7}, 	 // [] Flash encryption is enabled if this field has an odd number of bits set,
263 };
264 
265 static const esp_efuse_desc_t UART_DOWNLOAD_DIS[] = {
266     {EFUSE_BLK0, 27, 1}, 	 // [] Disable UART download mode. Valid for ESP32 V3 and newer; only,
267 };
268 
269 static const esp_efuse_desc_t MAC[] = {
270     {EFUSE_BLK0, 72, 8}, 	 // [MAC_FACTORY] MAC address,
271     {EFUSE_BLK0, 64, 8}, 	 // [MAC_FACTORY] MAC address,
272     {EFUSE_BLK0, 56, 8}, 	 // [MAC_FACTORY] MAC address,
273     {EFUSE_BLK0, 48, 8}, 	 // [MAC_FACTORY] MAC address,
274     {EFUSE_BLK0, 40, 8}, 	 // [MAC_FACTORY] MAC address,
275     {EFUSE_BLK0, 32, 8}, 	 // [MAC_FACTORY] MAC address,
276 };
277 
278 static const esp_efuse_desc_t MAC_CRC[] = {
279     {EFUSE_BLK0, 80, 8}, 	 // [MAC_FACTORY_CRC] CRC8 for MAC address,
280 };
281 
282 static const esp_efuse_desc_t DISABLE_APP_CPU[] = {
283     {EFUSE_BLK0, 96, 1}, 	 // [CHIP_VER_DIS_APP_CPU] Disables APP CPU,
284 };
285 
286 static const esp_efuse_desc_t DISABLE_BT[] = {
287     {EFUSE_BLK0, 97, 1}, 	 // [CHIP_VER_DIS_BT] Disables Bluetooth,
288 };
289 
290 static const esp_efuse_desc_t CHIP_PACKAGE_4BIT[] = {
291     {EFUSE_BLK0, 98, 1}, 	 // [CHIP_VER_PKG_4BIT] Chip package identifier #4bit,
292 };
293 
294 static const esp_efuse_desc_t DIS_CACHE[] = {
295     {EFUSE_BLK0, 99, 1}, 	 // [CHIP_VER_DIS_CACHE] Disables cache,
296 };
297 
298 static const esp_efuse_desc_t SPI_PAD_CONFIG_HD[] = {
299     {EFUSE_BLK0, 100, 5}, 	 // [] read for SPI_pad_config_hd,
300 };
301 
302 static const esp_efuse_desc_t CHIP_PACKAGE[] = {
303     {EFUSE_BLK0, 105, 3}, 	 // [CHIP_VER_PKG] Chip package identifier,
304 };
305 
306 static const esp_efuse_desc_t CHIP_CPU_FREQ_LOW[] = {
307     {EFUSE_BLK0, 108, 1}, 	 // [] If set alongside EFUSE_RD_CHIP_CPU_FREQ_RATED; the ESP32's max CPU frequency is rated for 160MHz. 240MHz otherwise,
308 };
309 
310 static const esp_efuse_desc_t CHIP_CPU_FREQ_RATED[] = {
311     {EFUSE_BLK0, 109, 1}, 	 // [] If set; the ESP32's maximum CPU frequency has been rated,
312 };
313 
314 static const esp_efuse_desc_t BLK3_PART_RESERVE[] = {
315     {EFUSE_BLK0, 110, 1}, 	 // [] BLOCK3 partially served for ADC calibration data,
316 };
317 
318 static const esp_efuse_desc_t CHIP_VER_REV1[] = {
319     {EFUSE_BLK0, 111, 1}, 	 // [] bit is set to 1 for rev1 silicon,
320 };
321 
322 static const esp_efuse_desc_t CLK8M_FREQ[] = {
323     {EFUSE_BLK0, 128, 8}, 	 // [CK8M_FREQ] 8MHz clock freq override,
324 };
325 
326 static const esp_efuse_desc_t ADC_VREF[] = {
327     {EFUSE_BLK0, 136, 5}, 	 // [] True ADC reference voltage,
328 };
329 
330 static const esp_efuse_desc_t XPD_SDIO_REG[] = {
331     {EFUSE_BLK0, 142, 1}, 	 // [] read for XPD_SDIO_REG,
332 };
333 
334 static const esp_efuse_desc_t XPD_SDIO_TIEH[] = {
335     {EFUSE_BLK0, 143, 1}, 	 // [SDIO_TIEH] If XPD_SDIO_FORCE & XPD_SDIO_REG {1: "3.3V"; 0: "1.8V"},
336 };
337 
338 static const esp_efuse_desc_t XPD_SDIO_FORCE[] = {
339     {EFUSE_BLK0, 144, 1}, 	 // [SDIO_FORCE] Ignore MTDI pin (GPIO12) for VDD_SDIO on reset,
340 };
341 
342 static const esp_efuse_desc_t SPI_PAD_CONFIG_CLK[] = {
343     {EFUSE_BLK0, 160, 5}, 	 // [] Override SD_CLK pad (GPIO6/SPICLK),
344 };
345 
346 static const esp_efuse_desc_t SPI_PAD_CONFIG_Q[] = {
347     {EFUSE_BLK0, 165, 5}, 	 // [] Override SD_DATA_0 pad (GPIO7/SPIQ),
348 };
349 
350 static const esp_efuse_desc_t SPI_PAD_CONFIG_D[] = {
351     {EFUSE_BLK0, 170, 5}, 	 // [] Override SD_DATA_1 pad (GPIO8/SPID),
352 };
353 
354 static const esp_efuse_desc_t SPI_PAD_CONFIG_CS0[] = {
355     {EFUSE_BLK0, 175, 5}, 	 // [] Override SD_CMD pad (GPIO11/SPICS0),
356 };
357 
358 static const esp_efuse_desc_t CHIP_VER_REV2[] = {
359     {EFUSE_BLK0, 180, 1}, 	 // [],
360 };
361 
362 static const esp_efuse_desc_t VOL_LEVEL_HP_INV[] = {
363     {EFUSE_BLK0, 182, 2}, 	 // [] This field stores the voltage level for CPU to run at 240 MHz; or for flash/PSRAM to run at 80 MHz.0x0: level 7; 0x1: level 6; 0x2: level 5; 0x3: level 4. (RO),
364 };
365 
366 static const esp_efuse_desc_t WAFER_VERSION_MINOR[] = {
367     {EFUSE_BLK0, 184, 2}, 	 // [],
368 };
369 
370 static const esp_efuse_desc_t FLASH_CRYPT_CONFIG[] = {
371     {EFUSE_BLK0, 188, 4}, 	 // [ENCRYPT_CONFIG] Flash encryption config (key tweak bits),
372 };
373 
374 static const esp_efuse_desc_t CODING_SCHEME[] = {
375     {EFUSE_BLK0, 192, 2}, 	 // [] Efuse variable block length scheme {0: "NONE (BLK1-3 len=256 bits)"; 1: "3/4 (BLK1-3 len=192 bits)"; 2: "REPEAT (BLK1-3 len=128 bits) not supported"; 3: "NONE (BLK1-3 len=256 bits)"},
376 };
377 
378 static const esp_efuse_desc_t CONSOLE_DEBUG_DISABLE[] = {
379     {EFUSE_BLK0, 194, 1}, 	 // [] Disable ROM BASIC interpreter fallback,
380 };
381 
382 static const esp_efuse_desc_t DISABLE_SDIO_HOST[] = {
383     {EFUSE_BLK0, 195, 1}, 	 // [],
384 };
385 
386 static const esp_efuse_desc_t ABS_DONE_0[] = {
387     {EFUSE_BLK0, 196, 1}, 	 // [] Secure boot V1 is enabled for bootloader image,
388 };
389 
390 static const esp_efuse_desc_t ABS_DONE_1[] = {
391     {EFUSE_BLK0, 197, 1}, 	 // [] Secure boot V2 is enabled for bootloader image,
392 };
393 
394 static const esp_efuse_desc_t JTAG_DISABLE[] = {
395     {EFUSE_BLK0, 198, 1}, 	 // [DISABLE_JTAG] Disable JTAG,
396 };
397 
398 static const esp_efuse_desc_t DISABLE_DL_ENCRYPT[] = {
399     {EFUSE_BLK0, 199, 1}, 	 // [] Disable flash encryption in UART bootloader,
400 };
401 
402 static const esp_efuse_desc_t DISABLE_DL_DECRYPT[] = {
403     {EFUSE_BLK0, 200, 1}, 	 // [] Disable flash decryption in UART bootloader,
404 };
405 
406 static const esp_efuse_desc_t DISABLE_DL_CACHE[] = {
407     {EFUSE_BLK0, 201, 1}, 	 // [] Disable flash cache in UART bootloader,
408 };
409 
410 static const esp_efuse_desc_t KEY_STATUS[] = {
411     {EFUSE_BLK0, 202, 1}, 	 // [] Usage of efuse block 3 (reserved),
412 };
413 
414 static const esp_efuse_desc_t BLOCK1[] = {
415     {EFUSE_BLK1, 0, MAX_BLK_LEN}, 	 // [ENCRYPT_FLASH_KEY] Flash encryption key,
416 };
417 
418 static const esp_efuse_desc_t BLOCK2[] = {
419     {EFUSE_BLK2, 0, MAX_BLK_LEN}, 	 // [SECURE_BOOT_KEY] Security boot key,
420 };
421 
422 static const esp_efuse_desc_t CUSTOM_MAC_CRC[] = {
423     {EFUSE_BLK3, 0, 8}, 	 // [MAC_CUSTOM_CRC] CRC8 for custom MAC address,
424 };
425 
426 static const esp_efuse_desc_t MAC_CUSTOM[] = {
427     {EFUSE_BLK3, 8, 48}, 	 // [MAC_CUSTOM] Custom MAC address,
428 };
429 
430 static const esp_efuse_desc_t ADC1_TP_LOW[] = {
431     {EFUSE_BLK3, 96, 7}, 	 // [] ADC1 Two Point calibration low point. Only valid if EFUSE_RD_BLK3_PART_RESERVE,
432 };
433 
434 static const esp_efuse_desc_t ADC1_TP_HIGH[] = {
435     {EFUSE_BLK3, 103, 9}, 	 // [] ADC1 Two Point calibration high point. Only valid if EFUSE_RD_BLK3_PART_RESERVE,
436 };
437 
438 static const esp_efuse_desc_t ADC2_TP_LOW[] = {
439     {EFUSE_BLK3, 112, 7}, 	 // [] ADC2 Two Point calibration low point. Only valid if EFUSE_RD_BLK3_PART_RESERVE,
440 };
441 
442 static const esp_efuse_desc_t ADC2_TP_HIGH[] = {
443     {EFUSE_BLK3, 119, 9}, 	 // [] ADC2 Two Point calibration high point. Only valid if EFUSE_RD_BLK3_PART_RESERVE,
444 };
445 
446 static const esp_efuse_desc_t SECURE_VERSION[] = {
447     {EFUSE_BLK3, 128, 32}, 	 // [] Secure version for anti-rollback,
448 };
449 
450 static const esp_efuse_desc_t MAC_VERSION[] = {
451     {EFUSE_BLK3, 184, 8}, 	 // [MAC_CUSTOM_VER] Version of the MAC field {1: "Custom MAC in BLOCK3"},
452 };
453 
454 
455 
456 
457 
458 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS[] = {
459     &WR_DIS[0],    		// [] Efuse write disable mask
460     NULL
461 };
462 
463 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_RD_DIS[] = {
464     &WR_DIS_RD_DIS[0],    		// [WR_DIS.EFUSE_RD_DISABLE] wr_dis of RD_DIS
465     NULL
466 };
467 
468 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_WR_DIS[] = {
469     &WR_DIS_WR_DIS[0],    		// [] wr_dis of WR_DIS
470     NULL
471 };
472 
473 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_FLASH_CRYPT_CNT[] = {
474     &WR_DIS_FLASH_CRYPT_CNT[0],    		// [] wr_dis of FLASH_CRYPT_CNT
475     NULL
476 };
477 
478 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_UART_DOWNLOAD_DIS[] = {
479     &WR_DIS_UART_DOWNLOAD_DIS[0],    		// [] wr_dis of UART_DOWNLOAD_DIS
480     NULL
481 };
482 
483 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC[] = {
484     &WR_DIS_MAC[0],    		// [WR_DIS.MAC_FACTORY] wr_dis of MAC
485     NULL
486 };
487 
488 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC_CRC[] = {
489     &WR_DIS_MAC_CRC[0],    		// [WR_DIS.MAC_FACTORY_CRC] wr_dis of MAC_CRC
490     NULL
491 };
492 
493 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_APP_CPU[] = {
494     &WR_DIS_DISABLE_APP_CPU[0],    		// [WR_DIS.CHIP_VER_DIS_APP_CPU] wr_dis of DISABLE_APP_CPU
495     NULL
496 };
497 
498 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_BT[] = {
499     &WR_DIS_DISABLE_BT[0],    		// [WR_DIS.CHIP_VER_DIS_BT] wr_dis of DISABLE_BT
500     NULL
501 };
502 
503 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIS_CACHE[] = {
504     &WR_DIS_DIS_CACHE[0],    		// [WR_DIS.CHIP_VER_DIS_CACHE] wr_dis of DIS_CACHE
505     NULL
506 };
507 
508 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_VOL_LEVEL_HP_INV[] = {
509     &WR_DIS_VOL_LEVEL_HP_INV[0],    		// [] wr_dis of VOL_LEVEL_HP_INV
510     NULL
511 };
512 
513 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CLK8M_FREQ[] = {
514     &WR_DIS_CLK8M_FREQ[0],    		// [WR_DIS.CK8M_FREQ] wr_dis of CLK8M_FREQ
515     NULL
516 };
517 
518 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC_VREF[] = {
519     &WR_DIS_ADC_VREF[0],    		// [] wr_dis of ADC_VREF
520     NULL
521 };
522 
523 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XPD_SDIO_REG[] = {
524     &WR_DIS_XPD_SDIO_REG[0],    		// [] wr_dis of XPD_SDIO_REG
525     NULL
526 };
527 
528 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XPD_SDIO_TIEH[] = {
529     &WR_DIS_XPD_SDIO_TIEH[0],    		// [WR_DIS.SDIO_TIEH] wr_dis of XPD_SDIO_TIEH
530     NULL
531 };
532 
533 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XPD_SDIO_FORCE[] = {
534     &WR_DIS_XPD_SDIO_FORCE[0],    		// [WR_DIS.SDIO_FORCE] wr_dis of XPD_SDIO_FORCE
535     NULL
536 };
537 
538 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD_CONFIG_CLK[] = {
539     &WR_DIS_SPI_PAD_CONFIG_CLK[0],    		// [] wr_dis of SPI_PAD_CONFIG_CLK
540     NULL
541 };
542 
543 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD_CONFIG_Q[] = {
544     &WR_DIS_SPI_PAD_CONFIG_Q[0],    		// [] wr_dis of SPI_PAD_CONFIG_Q
545     NULL
546 };
547 
548 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD_CONFIG_D[] = {
549     &WR_DIS_SPI_PAD_CONFIG_D[0],    		// [] wr_dis of SPI_PAD_CONFIG_D
550     NULL
551 };
552 
553 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD_CONFIG_CS0[] = {
554     &WR_DIS_SPI_PAD_CONFIG_CS0[0],    		// [] wr_dis of SPI_PAD_CONFIG_CS0
555     NULL
556 };
557 
558 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLOCK1[] = {
559     &WR_DIS_BLOCK1[0],    		// [WR_DIS.ENCRYPT_FLASH_KEY WR_DIS.BLK1] wr_dis of BLOCK1
560     NULL
561 };
562 
563 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLOCK2[] = {
564     &WR_DIS_BLOCK2[0],    		// [WR_DIS.SECURE_BOOT_KEY WR_DIS.BLK2] wr_dis of BLOCK2
565     NULL
566 };
567 
568 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLOCK3[] = {
569     &WR_DIS_BLOCK3[0],    		// [WR_DIS.BLK3] wr_dis of BLOCK3
570     NULL
571 };
572 
573 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CUSTOM_MAC_CRC[] = {
574     &WR_DIS_CUSTOM_MAC_CRC[0],    		// [WR_DIS.MAC_CUSTOM_CRC] wr_dis of CUSTOM_MAC_CRC
575     NULL
576 };
577 
578 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CUSTOM_MAC[] = {
579     &WR_DIS_CUSTOM_MAC[0],    		// [WR_DIS.MAC_CUSTOM] wr_dis of CUSTOM_MAC
580     NULL
581 };
582 
583 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC1_TP_LOW[] = {
584     &WR_DIS_ADC1_TP_LOW[0],    		// [] wr_dis of ADC1_TP_LOW
585     NULL
586 };
587 
588 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC1_TP_HIGH[] = {
589     &WR_DIS_ADC1_TP_HIGH[0],    		// [] wr_dis of ADC1_TP_HIGH
590     NULL
591 };
592 
593 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC2_TP_LOW[] = {
594     &WR_DIS_ADC2_TP_LOW[0],    		// [] wr_dis of ADC2_TP_LOW
595     NULL
596 };
597 
598 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC2_TP_HIGH[] = {
599     &WR_DIS_ADC2_TP_HIGH[0],    		// [] wr_dis of ADC2_TP_HIGH
600     NULL
601 };
602 
603 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SECURE_VERSION[] = {
604     &WR_DIS_SECURE_VERSION[0],    		// [] wr_dis of SECURE_VERSION
605     NULL
606 };
607 
608 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC_VERSION[] = {
609     &WR_DIS_MAC_VERSION[0],    		// [WR_DIS.MAC_CUSTOM_VER] wr_dis of MAC_VERSION
610     NULL
611 };
612 
613 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLK3_PART_RESERVE[] = {
614     &WR_DIS_BLK3_PART_RESERVE[0],    		// [] wr_dis of BLK3_PART_RESERVE
615     NULL
616 };
617 
618 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_FLASH_CRYPT_CONFIG[] = {
619     &WR_DIS_FLASH_CRYPT_CONFIG[0],    		// [WR_DIS.ENCRYPT_CONFIG] wr_dis of FLASH_CRYPT_CONFIG
620     NULL
621 };
622 
623 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CODING_SCHEME[] = {
624     &WR_DIS_CODING_SCHEME[0],    		// [] wr_dis of CODING_SCHEME
625     NULL
626 };
627 
628 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_KEY_STATUS[] = {
629     &WR_DIS_KEY_STATUS[0],    		// [] wr_dis of KEY_STATUS
630     NULL
631 };
632 
633 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ABS_DONE_0[] = {
634     &WR_DIS_ABS_DONE_0[0],    		// [] wr_dis of ABS_DONE_0
635     NULL
636 };
637 
638 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ABS_DONE_1[] = {
639     &WR_DIS_ABS_DONE_1[0],    		// [] wr_dis of ABS_DONE_1
640     NULL
641 };
642 
643 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_JTAG_DISABLE[] = {
644     &WR_DIS_JTAG_DISABLE[0],    		// [WR_DIS.DISABLE_JTAG] wr_dis of JTAG_DISABLE
645     NULL
646 };
647 
648 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CONSOLE_DEBUG_DISABLE[] = {
649     &WR_DIS_CONSOLE_DEBUG_DISABLE[0],    		// [] wr_dis of CONSOLE_DEBUG_DISABLE
650     NULL
651 };
652 
653 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_DL_ENCRYPT[] = {
654     &WR_DIS_DISABLE_DL_ENCRYPT[0],    		// [] wr_dis of DISABLE_DL_ENCRYPT
655     NULL
656 };
657 
658 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_DL_DECRYPT[] = {
659     &WR_DIS_DISABLE_DL_DECRYPT[0],    		// [] wr_dis of DISABLE_DL_DECRYPT
660     NULL
661 };
662 
663 const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_DL_CACHE[] = {
664     &WR_DIS_DISABLE_DL_CACHE[0],    		// [] wr_dis of DISABLE_DL_CACHE
665     NULL
666 };
667 
668 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS[] = {
669     &RD_DIS[0],    		// [] Disable reading from BlOCK1-3
670     NULL
671 };
672 
673 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_BLOCK1[] = {
674     &RD_DIS_BLOCK1[0],    		// [RD_DIS.ENCRYPT_FLASH_KEY RD_DIS.BLK1] rd_dis of BLOCK1
675     NULL
676 };
677 
678 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_BLOCK2[] = {
679     &RD_DIS_BLOCK2[0],    		// [RD_DIS.SECURE_BOOT_KEY RD_DIS.BLK2] rd_dis of BLOCK2
680     NULL
681 };
682 
683 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_BLOCK3[] = {
684     &RD_DIS_BLOCK3[0],    		// [RD_DIS.BLK3] rd_dis of BLOCK3
685     NULL
686 };
687 
688 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_CUSTOM_MAC_CRC[] = {
689     &RD_DIS_CUSTOM_MAC_CRC[0],    		// [RD_DIS.MAC_CUSTOM_CRC] rd_dis of CUSTOM_MAC_CRC
690     NULL
691 };
692 
693 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_CUSTOM_MAC[] = {
694     &RD_DIS_CUSTOM_MAC[0],    		// [RD_DIS.MAC_CUSTOM] rd_dis of CUSTOM_MAC
695     NULL
696 };
697 
698 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_ADC1_TP_LOW[] = {
699     &RD_DIS_ADC1_TP_LOW[0],    		// [] rd_dis of ADC1_TP_LOW
700     NULL
701 };
702 
703 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_ADC1_TP_HIGH[] = {
704     &RD_DIS_ADC1_TP_HIGH[0],    		// [] rd_dis of ADC1_TP_HIGH
705     NULL
706 };
707 
708 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_ADC2_TP_LOW[] = {
709     &RD_DIS_ADC2_TP_LOW[0],    		// [] rd_dis of ADC2_TP_LOW
710     NULL
711 };
712 
713 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_ADC2_TP_HIGH[] = {
714     &RD_DIS_ADC2_TP_HIGH[0],    		// [] rd_dis of ADC2_TP_HIGH
715     NULL
716 };
717 
718 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_SECURE_VERSION[] = {
719     &RD_DIS_SECURE_VERSION[0],    		// [] rd_dis of SECURE_VERSION
720     NULL
721 };
722 
723 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_MAC_VERSION[] = {
724     &RD_DIS_MAC_VERSION[0],    		// [RD_DIS.MAC_CUSTOM_VER] rd_dis of MAC_VERSION
725     NULL
726 };
727 
728 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_BLK3_PART_RESERVE[] = {
729     &RD_DIS_BLK3_PART_RESERVE[0],    		// [] rd_dis of BLK3_PART_RESERVE
730     NULL
731 };
732 
733 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_FLASH_CRYPT_CONFIG[] = {
734     &RD_DIS_FLASH_CRYPT_CONFIG[0],    		// [RD_DIS.ENCRYPT_CONFIG] rd_dis of FLASH_CRYPT_CONFIG
735     NULL
736 };
737 
738 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_CODING_SCHEME[] = {
739     &RD_DIS_CODING_SCHEME[0],    		// [] rd_dis of CODING_SCHEME
740     NULL
741 };
742 
743 const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_KEY_STATUS[] = {
744     &RD_DIS_KEY_STATUS[0],    		// [] rd_dis of KEY_STATUS
745     NULL
746 };
747 
748 const esp_efuse_desc_t* ESP_EFUSE_FLASH_CRYPT_CNT[] = {
749     &FLASH_CRYPT_CNT[0],    		// [] Flash encryption is enabled if this field has an odd number of bits set
750     NULL
751 };
752 
753 const esp_efuse_desc_t* ESP_EFUSE_UART_DOWNLOAD_DIS[] = {
754     &UART_DOWNLOAD_DIS[0],    		// [] Disable UART download mode. Valid for ESP32 V3 and newer; only
755     NULL
756 };
757 
758 const esp_efuse_desc_t* ESP_EFUSE_MAC[] = {
759     &MAC[0],    		// [MAC_FACTORY] MAC address
760     &MAC[1],    		// [MAC_FACTORY] MAC address
761     &MAC[2],    		// [MAC_FACTORY] MAC address
762     &MAC[3],    		// [MAC_FACTORY] MAC address
763     &MAC[4],    		// [MAC_FACTORY] MAC address
764     &MAC[5],    		// [MAC_FACTORY] MAC address
765     NULL
766 };
767 
768 const esp_efuse_desc_t* ESP_EFUSE_MAC_CRC[] = {
769     &MAC_CRC[0],    		// [MAC_FACTORY_CRC] CRC8 for MAC address
770     NULL
771 };
772 
773 const esp_efuse_desc_t* ESP_EFUSE_DISABLE_APP_CPU[] = {
774     &DISABLE_APP_CPU[0],    		// [CHIP_VER_DIS_APP_CPU] Disables APP CPU
775     NULL
776 };
777 
778 const esp_efuse_desc_t* ESP_EFUSE_DISABLE_BT[] = {
779     &DISABLE_BT[0],    		// [CHIP_VER_DIS_BT] Disables Bluetooth
780     NULL
781 };
782 
783 const esp_efuse_desc_t* ESP_EFUSE_CHIP_PACKAGE_4BIT[] = {
784     &CHIP_PACKAGE_4BIT[0],    		// [CHIP_VER_PKG_4BIT] Chip package identifier #4bit
785     NULL
786 };
787 
788 const esp_efuse_desc_t* ESP_EFUSE_DIS_CACHE[] = {
789     &DIS_CACHE[0],    		// [CHIP_VER_DIS_CACHE] Disables cache
790     NULL
791 };
792 
793 const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_HD[] = {
794     &SPI_PAD_CONFIG_HD[0],    		// [] read for SPI_pad_config_hd
795     NULL
796 };
797 
798 const esp_efuse_desc_t* ESP_EFUSE_CHIP_PACKAGE[] = {
799     &CHIP_PACKAGE[0],    		// [CHIP_VER_PKG] Chip package identifier
800     NULL
801 };
802 
803 const esp_efuse_desc_t* ESP_EFUSE_CHIP_CPU_FREQ_LOW[] = {
804     &CHIP_CPU_FREQ_LOW[0],    		// [] If set alongside EFUSE_RD_CHIP_CPU_FREQ_RATED; the ESP32's max CPU frequency is rated for 160MHz. 240MHz otherwise
805     NULL
806 };
807 
808 const esp_efuse_desc_t* ESP_EFUSE_CHIP_CPU_FREQ_RATED[] = {
809     &CHIP_CPU_FREQ_RATED[0],    		// [] If set; the ESP32's maximum CPU frequency has been rated
810     NULL
811 };
812 
813 const esp_efuse_desc_t* ESP_EFUSE_BLK3_PART_RESERVE[] = {
814     &BLK3_PART_RESERVE[0],    		// [] BLOCK3 partially served for ADC calibration data
815     NULL
816 };
817 
818 const esp_efuse_desc_t* ESP_EFUSE_CHIP_VER_REV1[] = {
819     &CHIP_VER_REV1[0],    		// [] bit is set to 1 for rev1 silicon
820     NULL
821 };
822 
823 const esp_efuse_desc_t* ESP_EFUSE_CLK8M_FREQ[] = {
824     &CLK8M_FREQ[0],    		// [CK8M_FREQ] 8MHz clock freq override
825     NULL
826 };
827 
828 const esp_efuse_desc_t* ESP_EFUSE_ADC_VREF[] = {
829     &ADC_VREF[0],    		// [] True ADC reference voltage
830     NULL
831 };
832 
833 const esp_efuse_desc_t* ESP_EFUSE_XPD_SDIO_REG[] = {
834     &XPD_SDIO_REG[0],    		// [] read for XPD_SDIO_REG
835     NULL
836 };
837 
838 const esp_efuse_desc_t* ESP_EFUSE_XPD_SDIO_TIEH[] = {
839     &XPD_SDIO_TIEH[0],    		// [SDIO_TIEH] If XPD_SDIO_FORCE & XPD_SDIO_REG {1: "3.3V"; 0: "1.8V"}
840     NULL
841 };
842 
843 const esp_efuse_desc_t* ESP_EFUSE_XPD_SDIO_FORCE[] = {
844     &XPD_SDIO_FORCE[0],    		// [SDIO_FORCE] Ignore MTDI pin (GPIO12) for VDD_SDIO on reset
845     NULL
846 };
847 
848 const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_CLK[] = {
849     &SPI_PAD_CONFIG_CLK[0],    		// [] Override SD_CLK pad (GPIO6/SPICLK)
850     NULL
851 };
852 
853 const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_Q[] = {
854     &SPI_PAD_CONFIG_Q[0],    		// [] Override SD_DATA_0 pad (GPIO7/SPIQ)
855     NULL
856 };
857 
858 const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_D[] = {
859     &SPI_PAD_CONFIG_D[0],    		// [] Override SD_DATA_1 pad (GPIO8/SPID)
860     NULL
861 };
862 
863 const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_CS0[] = {
864     &SPI_PAD_CONFIG_CS0[0],    		// [] Override SD_CMD pad (GPIO11/SPICS0)
865     NULL
866 };
867 
868 const esp_efuse_desc_t* ESP_EFUSE_CHIP_VER_REV2[] = {
869     &CHIP_VER_REV2[0],    		// []
870     NULL
871 };
872 
873 const esp_efuse_desc_t* ESP_EFUSE_VOL_LEVEL_HP_INV[] = {
874     &VOL_LEVEL_HP_INV[0],    		// [] This field stores the voltage level for CPU to run at 240 MHz; or for flash/PSRAM to run at 80 MHz.0x0: level 7; 0x1: level 6; 0x2: level 5; 0x3: level 4. (RO)
875     NULL
876 };
877 
878 const esp_efuse_desc_t* ESP_EFUSE_WAFER_VERSION_MINOR[] = {
879     &WAFER_VERSION_MINOR[0],    		// []
880     NULL
881 };
882 
883 const esp_efuse_desc_t* ESP_EFUSE_FLASH_CRYPT_CONFIG[] = {
884     &FLASH_CRYPT_CONFIG[0],    		// [ENCRYPT_CONFIG] Flash encryption config (key tweak bits)
885     NULL
886 };
887 
888 const esp_efuse_desc_t* ESP_EFUSE_CODING_SCHEME[] = {
889     &CODING_SCHEME[0],    		// [] Efuse variable block length scheme {0: "NONE (BLK1-3 len=256 bits)"; 1: "3/4 (BLK1-3 len=192 bits)"; 2: "REPEAT (BLK1-3 len=128 bits) not supported"; 3: "NONE (BLK1-3 len=256 bits)"}
890     NULL
891 };
892 
893 const esp_efuse_desc_t* ESP_EFUSE_CONSOLE_DEBUG_DISABLE[] = {
894     &CONSOLE_DEBUG_DISABLE[0],    		// [] Disable ROM BASIC interpreter fallback
895     NULL
896 };
897 
898 const esp_efuse_desc_t* ESP_EFUSE_DISABLE_SDIO_HOST[] = {
899     &DISABLE_SDIO_HOST[0],    		// []
900     NULL
901 };
902 
903 const esp_efuse_desc_t* ESP_EFUSE_ABS_DONE_0[] = {
904     &ABS_DONE_0[0],    		// [] Secure boot V1 is enabled for bootloader image
905     NULL
906 };
907 
908 const esp_efuse_desc_t* ESP_EFUSE_ABS_DONE_1[] = {
909     &ABS_DONE_1[0],    		// [] Secure boot V2 is enabled for bootloader image
910     NULL
911 };
912 
913 const esp_efuse_desc_t* ESP_EFUSE_JTAG_DISABLE[] = {
914     &JTAG_DISABLE[0],    		// [DISABLE_JTAG] Disable JTAG
915     NULL
916 };
917 
918 const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_ENCRYPT[] = {
919     &DISABLE_DL_ENCRYPT[0],    		// [] Disable flash encryption in UART bootloader
920     NULL
921 };
922 
923 const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_DECRYPT[] = {
924     &DISABLE_DL_DECRYPT[0],    		// [] Disable flash decryption in UART bootloader
925     NULL
926 };
927 
928 const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_CACHE[] = {
929     &DISABLE_DL_CACHE[0],    		// [] Disable flash cache in UART bootloader
930     NULL
931 };
932 
933 const esp_efuse_desc_t* ESP_EFUSE_KEY_STATUS[] = {
934     &KEY_STATUS[0],    		// [] Usage of efuse block 3 (reserved)
935     NULL
936 };
937 
938 const esp_efuse_desc_t* ESP_EFUSE_BLOCK1[] = {
939     &BLOCK1[0],    		// [ENCRYPT_FLASH_KEY] Flash encryption key
940     NULL
941 };
942 
943 const esp_efuse_desc_t* ESP_EFUSE_BLOCK2[] = {
944     &BLOCK2[0],    		// [SECURE_BOOT_KEY] Security boot key
945     NULL
946 };
947 
948 const esp_efuse_desc_t* ESP_EFUSE_CUSTOM_MAC_CRC[] = {
949     &CUSTOM_MAC_CRC[0],    		// [MAC_CUSTOM_CRC] CRC8 for custom MAC address
950     NULL
951 };
952 
953 const esp_efuse_desc_t* ESP_EFUSE_MAC_CUSTOM[] = {
954     &MAC_CUSTOM[0],    		// [MAC_CUSTOM] Custom MAC address
955     NULL
956 };
957 
958 const esp_efuse_desc_t* ESP_EFUSE_ADC1_TP_LOW[] = {
959     &ADC1_TP_LOW[0],    		// [] ADC1 Two Point calibration low point. Only valid if EFUSE_RD_BLK3_PART_RESERVE
960     NULL
961 };
962 
963 const esp_efuse_desc_t* ESP_EFUSE_ADC1_TP_HIGH[] = {
964     &ADC1_TP_HIGH[0],    		// [] ADC1 Two Point calibration high point. Only valid if EFUSE_RD_BLK3_PART_RESERVE
965     NULL
966 };
967 
968 const esp_efuse_desc_t* ESP_EFUSE_ADC2_TP_LOW[] = {
969     &ADC2_TP_LOW[0],    		// [] ADC2 Two Point calibration low point. Only valid if EFUSE_RD_BLK3_PART_RESERVE
970     NULL
971 };
972 
973 const esp_efuse_desc_t* ESP_EFUSE_ADC2_TP_HIGH[] = {
974     &ADC2_TP_HIGH[0],    		// [] ADC2 Two Point calibration high point. Only valid if EFUSE_RD_BLK3_PART_RESERVE
975     NULL
976 };
977 
978 const esp_efuse_desc_t* ESP_EFUSE_SECURE_VERSION[] = {
979     &SECURE_VERSION[0],    		// [] Secure version for anti-rollback
980     NULL
981 };
982 
983 const esp_efuse_desc_t* ESP_EFUSE_MAC_VERSION[] = {
984     &MAC_VERSION[0],    		// [MAC_CUSTOM_VER] Version of the MAC field {1: "Custom MAC in BLOCK3"}
985     NULL
986 };
987