esp_efuse_table.c 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986
  1. /*
  2. * SPDX-FileCopyrightText: 2017-2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include "sdkconfig.h"
  7. #include "esp_efuse.h"
  8. #include <assert.h>
  9. #include "esp_efuse_table.h"
  10. // md5_digest_table 2e197b7b14eec62fa5bdf94c6d71e87a
  11. // This file was generated from the file esp_efuse_table.csv. DO NOT CHANGE THIS FILE MANUALLY.
  12. // If you want to change some fields, you need to change esp_efuse_table.csv file
  13. // then run `efuse_common_table` or `efuse_custom_table` command it will generate this file.
  14. // To show efuse_table run the command 'show_efuse_table'.
  15. #define MAX_BLK_LEN CONFIG_EFUSE_MAX_BLK_LEN
  16. // The last free bit in the block is counted over the entire file.
  17. #define LAST_FREE_BIT_BLK1 MAX_BLK_LEN
  18. #define LAST_FREE_BIT_BLK2 MAX_BLK_LEN
  19. #define LAST_FREE_BIT_BLK3 192
  20. _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.");
  21. _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.");
  22. _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.");
  23. static const esp_efuse_desc_t WR_DIS[] = {
  24. {EFUSE_BLK0, 0, 16}, // [] Efuse write disable mask,
  25. };
  26. static const esp_efuse_desc_t WR_DIS_RD_DIS[] = {
  27. {EFUSE_BLK0, 0, 1}, // [WR_DIS.EFUSE_RD_DISABLE] wr_dis of RD_DIS,
  28. };
  29. static const esp_efuse_desc_t WR_DIS_WR_DIS[] = {
  30. {EFUSE_BLK0, 1, 1}, // [] wr_dis of WR_DIS,
  31. };
  32. static const esp_efuse_desc_t WR_DIS_FLASH_CRYPT_CNT[] = {
  33. {EFUSE_BLK0, 2, 1}, // [] wr_dis of FLASH_CRYPT_CNT,
  34. };
  35. static const esp_efuse_desc_t WR_DIS_UART_DOWNLOAD_DIS[] = {
  36. {EFUSE_BLK0, 2, 1}, // [] wr_dis of UART_DOWNLOAD_DIS,
  37. };
  38. static const esp_efuse_desc_t WR_DIS_MAC[] = {
  39. {EFUSE_BLK0, 3, 1}, // [WR_DIS.MAC_FACTORY] wr_dis of MAC,
  40. };
  41. static const esp_efuse_desc_t WR_DIS_MAC_CRC[] = {
  42. {EFUSE_BLK0, 3, 1}, // [WR_DIS.MAC_FACTORY_CRC] wr_dis of MAC_CRC,
  43. };
  44. static const esp_efuse_desc_t WR_DIS_DISABLE_APP_CPU[] = {
  45. {EFUSE_BLK0, 3, 1}, // [WR_DIS.CHIP_VER_DIS_APP_CPU] wr_dis of DISABLE_APP_CPU,
  46. };
  47. static const esp_efuse_desc_t WR_DIS_DISABLE_BT[] = {
  48. {EFUSE_BLK0, 3, 1}, // [WR_DIS.CHIP_VER_DIS_BT] wr_dis of DISABLE_BT,
  49. };
  50. static const esp_efuse_desc_t WR_DIS_DIS_CACHE[] = {
  51. {EFUSE_BLK0, 3, 1}, // [WR_DIS.CHIP_VER_DIS_CACHE] wr_dis of DIS_CACHE,
  52. };
  53. static const esp_efuse_desc_t WR_DIS_VOL_LEVEL_HP_INV[] = {
  54. {EFUSE_BLK0, 3, 1}, // [] wr_dis of VOL_LEVEL_HP_INV,
  55. };
  56. static const esp_efuse_desc_t WR_DIS_CLK8M_FREQ[] = {
  57. {EFUSE_BLK0, 4, 1}, // [WR_DIS.CK8M_FREQ] wr_dis of CLK8M_FREQ,
  58. };
  59. static const esp_efuse_desc_t WR_DIS_ADC_VREF[] = {
  60. {EFUSE_BLK0, 4, 1}, // [] wr_dis of ADC_VREF,
  61. };
  62. static const esp_efuse_desc_t WR_DIS_XPD_SDIO_REG[] = {
  63. {EFUSE_BLK0, 5, 1}, // [] wr_dis of XPD_SDIO_REG,
  64. };
  65. static const esp_efuse_desc_t WR_DIS_XPD_SDIO_TIEH[] = {
  66. {EFUSE_BLK0, 5, 1}, // [WR_DIS.SDIO_TIEH] wr_dis of XPD_SDIO_TIEH,
  67. };
  68. static const esp_efuse_desc_t WR_DIS_XPD_SDIO_FORCE[] = {
  69. {EFUSE_BLK0, 5, 1}, // [WR_DIS.SDIO_FORCE] wr_dis of XPD_SDIO_FORCE,
  70. };
  71. static const esp_efuse_desc_t WR_DIS_SPI_PAD_CONFIG_CLK[] = {
  72. {EFUSE_BLK0, 6, 1}, // [] wr_dis of SPI_PAD_CONFIG_CLK,
  73. };
  74. static const esp_efuse_desc_t WR_DIS_SPI_PAD_CONFIG_Q[] = {
  75. {EFUSE_BLK0, 6, 1}, // [] wr_dis of SPI_PAD_CONFIG_Q,
  76. };
  77. static const esp_efuse_desc_t WR_DIS_SPI_PAD_CONFIG_D[] = {
  78. {EFUSE_BLK0, 6, 1}, // [] wr_dis of SPI_PAD_CONFIG_D,
  79. };
  80. static const esp_efuse_desc_t WR_DIS_SPI_PAD_CONFIG_CS0[] = {
  81. {EFUSE_BLK0, 6, 1}, // [] wr_dis of SPI_PAD_CONFIG_CS0,
  82. };
  83. static const esp_efuse_desc_t WR_DIS_BLOCK1[] = {
  84. {EFUSE_BLK0, 7, 1}, // [WR_DIS.ENCRYPT_FLASH_KEY WR_DIS.BLK1] wr_dis of BLOCK1,
  85. };
  86. static const esp_efuse_desc_t WR_DIS_BLOCK2[] = {
  87. {EFUSE_BLK0, 8, 1}, // [WR_DIS.SECURE_BOOT_KEY WR_DIS.BLK2] wr_dis of BLOCK2,
  88. };
  89. static const esp_efuse_desc_t WR_DIS_BLOCK3[] = {
  90. {EFUSE_BLK0, 9, 1}, // [WR_DIS.BLK3] wr_dis of BLOCK3,
  91. };
  92. static const esp_efuse_desc_t WR_DIS_CUSTOM_MAC_CRC[] = {
  93. {EFUSE_BLK0, 9, 1}, // [WR_DIS.MAC_CUSTOM_CRC] wr_dis of CUSTOM_MAC_CRC,
  94. };
  95. static const esp_efuse_desc_t WR_DIS_CUSTOM_MAC[] = {
  96. {EFUSE_BLK0, 9, 1}, // [WR_DIS.MAC_CUSTOM] wr_dis of CUSTOM_MAC,
  97. };
  98. static const esp_efuse_desc_t WR_DIS_ADC1_TP_LOW[] = {
  99. {EFUSE_BLK0, 9, 1}, // [] wr_dis of ADC1_TP_LOW,
  100. };
  101. static const esp_efuse_desc_t WR_DIS_ADC1_TP_HIGH[] = {
  102. {EFUSE_BLK0, 9, 1}, // [] wr_dis of ADC1_TP_HIGH,
  103. };
  104. static const esp_efuse_desc_t WR_DIS_ADC2_TP_LOW[] = {
  105. {EFUSE_BLK0, 9, 1}, // [] wr_dis of ADC2_TP_LOW,
  106. };
  107. static const esp_efuse_desc_t WR_DIS_ADC2_TP_HIGH[] = {
  108. {EFUSE_BLK0, 9, 1}, // [] wr_dis of ADC2_TP_HIGH,
  109. };
  110. static const esp_efuse_desc_t WR_DIS_SECURE_VERSION[] = {
  111. {EFUSE_BLK0, 9, 1}, // [] wr_dis of SECURE_VERSION,
  112. };
  113. static const esp_efuse_desc_t WR_DIS_MAC_VERSION[] = {
  114. {EFUSE_BLK0, 9, 1}, // [WR_DIS.MAC_CUSTOM_VER] wr_dis of MAC_VERSION,
  115. };
  116. static const esp_efuse_desc_t WR_DIS_BLK3_PART_RESERVE[] = {
  117. {EFUSE_BLK0, 10, 1}, // [] wr_dis of BLK3_PART_RESERVE,
  118. };
  119. static const esp_efuse_desc_t WR_DIS_FLASH_CRYPT_CONFIG[] = {
  120. {EFUSE_BLK0, 10, 1}, // [WR_DIS.ENCRYPT_CONFIG] wr_dis of FLASH_CRYPT_CONFIG,
  121. };
  122. static const esp_efuse_desc_t WR_DIS_CODING_SCHEME[] = {
  123. {EFUSE_BLK0, 10, 1}, // [] wr_dis of CODING_SCHEME,
  124. };
  125. static const esp_efuse_desc_t WR_DIS_KEY_STATUS[] = {
  126. {EFUSE_BLK0, 10, 1}, // [] wr_dis of KEY_STATUS,
  127. };
  128. static const esp_efuse_desc_t WR_DIS_ABS_DONE_0[] = {
  129. {EFUSE_BLK0, 12, 1}, // [] wr_dis of ABS_DONE_0,
  130. };
  131. static const esp_efuse_desc_t WR_DIS_ABS_DONE_1[] = {
  132. {EFUSE_BLK0, 13, 1}, // [] wr_dis of ABS_DONE_1,
  133. };
  134. static const esp_efuse_desc_t WR_DIS_JTAG_DISABLE[] = {
  135. {EFUSE_BLK0, 14, 1}, // [WR_DIS.DISABLE_JTAG] wr_dis of JTAG_DISABLE,
  136. };
  137. static const esp_efuse_desc_t WR_DIS_CONSOLE_DEBUG_DISABLE[] = {
  138. {EFUSE_BLK0, 15, 1}, // [] wr_dis of CONSOLE_DEBUG_DISABLE,
  139. };
  140. static const esp_efuse_desc_t WR_DIS_DISABLE_DL_ENCRYPT[] = {
  141. {EFUSE_BLK0, 15, 1}, // [] wr_dis of DISABLE_DL_ENCRYPT,
  142. };
  143. static const esp_efuse_desc_t WR_DIS_DISABLE_DL_DECRYPT[] = {
  144. {EFUSE_BLK0, 15, 1}, // [] wr_dis of DISABLE_DL_DECRYPT,
  145. };
  146. static const esp_efuse_desc_t WR_DIS_DISABLE_DL_CACHE[] = {
  147. {EFUSE_BLK0, 15, 1}, // [] wr_dis of DISABLE_DL_CACHE,
  148. };
  149. static const esp_efuse_desc_t RD_DIS[] = {
  150. {EFUSE_BLK0, 16, 4}, // [] Disable reading from BlOCK1-3,
  151. };
  152. static const esp_efuse_desc_t RD_DIS_BLOCK1[] = {
  153. {EFUSE_BLK0, 16, 1}, // [RD_DIS.ENCRYPT_FLASH_KEY RD_DIS.BLK1] rd_dis of BLOCK1,
  154. };
  155. static const esp_efuse_desc_t RD_DIS_BLOCK2[] = {
  156. {EFUSE_BLK0, 17, 1}, // [RD_DIS.SECURE_BOOT_KEY RD_DIS.BLK2] rd_dis of BLOCK2,
  157. };
  158. static const esp_efuse_desc_t RD_DIS_BLOCK3[] = {
  159. {EFUSE_BLK0, 18, 1}, // [RD_DIS.BLK3] rd_dis of BLOCK3,
  160. };
  161. static const esp_efuse_desc_t RD_DIS_CUSTOM_MAC_CRC[] = {
  162. {EFUSE_BLK0, 18, 1}, // [RD_DIS.MAC_CUSTOM_CRC] rd_dis of CUSTOM_MAC_CRC,
  163. };
  164. static const esp_efuse_desc_t RD_DIS_CUSTOM_MAC[] = {
  165. {EFUSE_BLK0, 18, 1}, // [RD_DIS.MAC_CUSTOM] rd_dis of CUSTOM_MAC,
  166. };
  167. static const esp_efuse_desc_t RD_DIS_ADC1_TP_LOW[] = {
  168. {EFUSE_BLK0, 18, 1}, // [] rd_dis of ADC1_TP_LOW,
  169. };
  170. static const esp_efuse_desc_t RD_DIS_ADC1_TP_HIGH[] = {
  171. {EFUSE_BLK0, 18, 1}, // [] rd_dis of ADC1_TP_HIGH,
  172. };
  173. static const esp_efuse_desc_t RD_DIS_ADC2_TP_LOW[] = {
  174. {EFUSE_BLK0, 18, 1}, // [] rd_dis of ADC2_TP_LOW,
  175. };
  176. static const esp_efuse_desc_t RD_DIS_ADC2_TP_HIGH[] = {
  177. {EFUSE_BLK0, 18, 1}, // [] rd_dis of ADC2_TP_HIGH,
  178. };
  179. static const esp_efuse_desc_t RD_DIS_SECURE_VERSION[] = {
  180. {EFUSE_BLK0, 18, 1}, // [] rd_dis of SECURE_VERSION,
  181. };
  182. static const esp_efuse_desc_t RD_DIS_MAC_VERSION[] = {
  183. {EFUSE_BLK0, 18, 1}, // [RD_DIS.MAC_CUSTOM_VER] rd_dis of MAC_VERSION,
  184. };
  185. static const esp_efuse_desc_t RD_DIS_BLK3_PART_RESERVE[] = {
  186. {EFUSE_BLK0, 19, 1}, // [] rd_dis of BLK3_PART_RESERVE,
  187. };
  188. static const esp_efuse_desc_t RD_DIS_FLASH_CRYPT_CONFIG[] = {
  189. {EFUSE_BLK0, 19, 1}, // [RD_DIS.ENCRYPT_CONFIG] rd_dis of FLASH_CRYPT_CONFIG,
  190. };
  191. static const esp_efuse_desc_t RD_DIS_CODING_SCHEME[] = {
  192. {EFUSE_BLK0, 19, 1}, // [] rd_dis of CODING_SCHEME,
  193. };
  194. static const esp_efuse_desc_t RD_DIS_KEY_STATUS[] = {
  195. {EFUSE_BLK0, 19, 1}, // [] rd_dis of KEY_STATUS,
  196. };
  197. static const esp_efuse_desc_t FLASH_CRYPT_CNT[] = {
  198. {EFUSE_BLK0, 20, 7}, // [] Flash encryption is enabled if this field has an odd number of bits set,
  199. };
  200. static const esp_efuse_desc_t UART_DOWNLOAD_DIS[] = {
  201. {EFUSE_BLK0, 27, 1}, // [] Disable UART download mode. Valid for ESP32 V3 and newer; only,
  202. };
  203. static const esp_efuse_desc_t MAC[] = {
  204. {EFUSE_BLK0, 72, 8}, // [MAC_FACTORY] MAC address,
  205. {EFUSE_BLK0, 64, 8}, // [MAC_FACTORY] MAC address,
  206. {EFUSE_BLK0, 56, 8}, // [MAC_FACTORY] MAC address,
  207. {EFUSE_BLK0, 48, 8}, // [MAC_FACTORY] MAC address,
  208. {EFUSE_BLK0, 40, 8}, // [MAC_FACTORY] MAC address,
  209. {EFUSE_BLK0, 32, 8}, // [MAC_FACTORY] MAC address,
  210. };
  211. static const esp_efuse_desc_t MAC_CRC[] = {
  212. {EFUSE_BLK0, 80, 8}, // [MAC_FACTORY_CRC] CRC8 for MAC address,
  213. };
  214. static const esp_efuse_desc_t DISABLE_APP_CPU[] = {
  215. {EFUSE_BLK0, 96, 1}, // [CHIP_VER_DIS_APP_CPU] Disables APP CPU,
  216. };
  217. static const esp_efuse_desc_t DISABLE_BT[] = {
  218. {EFUSE_BLK0, 97, 1}, // [CHIP_VER_DIS_BT] Disables Bluetooth,
  219. };
  220. static const esp_efuse_desc_t CHIP_PACKAGE_4BIT[] = {
  221. {EFUSE_BLK0, 98, 1}, // [CHIP_VER_PKG_4BIT] Chip package identifier #4bit,
  222. };
  223. static const esp_efuse_desc_t DIS_CACHE[] = {
  224. {EFUSE_BLK0, 99, 1}, // [CHIP_VER_DIS_CACHE] Disables cache,
  225. };
  226. static const esp_efuse_desc_t SPI_PAD_CONFIG_HD[] = {
  227. {EFUSE_BLK0, 100, 5}, // [] read for SPI_pad_config_hd,
  228. };
  229. static const esp_efuse_desc_t CHIP_PACKAGE[] = {
  230. {EFUSE_BLK0, 105, 3}, // [CHIP_VER_PKG] Chip package identifier,
  231. };
  232. static const esp_efuse_desc_t CHIP_CPU_FREQ_LOW[] = {
  233. {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,
  234. };
  235. static const esp_efuse_desc_t CHIP_CPU_FREQ_RATED[] = {
  236. {EFUSE_BLK0, 109, 1}, // [] If set; the ESP32's maximum CPU frequency has been rated,
  237. };
  238. static const esp_efuse_desc_t BLK3_PART_RESERVE[] = {
  239. {EFUSE_BLK0, 110, 1}, // [] BLOCK3 partially served for ADC calibration data,
  240. };
  241. static const esp_efuse_desc_t CHIP_VER_REV1[] = {
  242. {EFUSE_BLK0, 111, 1}, // [] bit is set to 1 for rev1 silicon,
  243. };
  244. static const esp_efuse_desc_t CLK8M_FREQ[] = {
  245. {EFUSE_BLK0, 128, 8}, // [CK8M_FREQ] 8MHz clock freq override,
  246. };
  247. static const esp_efuse_desc_t ADC_VREF[] = {
  248. {EFUSE_BLK0, 136, 5}, // [] True ADC reference voltage,
  249. };
  250. static const esp_efuse_desc_t XPD_SDIO_REG[] = {
  251. {EFUSE_BLK0, 142, 1}, // [] read for XPD_SDIO_REG,
  252. };
  253. static const esp_efuse_desc_t XPD_SDIO_TIEH[] = {
  254. {EFUSE_BLK0, 143, 1}, // [SDIO_TIEH] If XPD_SDIO_FORCE & XPD_SDIO_REG {1: "3.3V"; 0: "1.8V"},
  255. };
  256. static const esp_efuse_desc_t XPD_SDIO_FORCE[] = {
  257. {EFUSE_BLK0, 144, 1}, // [SDIO_FORCE] Ignore MTDI pin (GPIO12) for VDD_SDIO on reset,
  258. };
  259. static const esp_efuse_desc_t SPI_PAD_CONFIG_CLK[] = {
  260. {EFUSE_BLK0, 160, 5}, // [] Override SD_CLK pad (GPIO6/SPICLK),
  261. };
  262. static const esp_efuse_desc_t SPI_PAD_CONFIG_Q[] = {
  263. {EFUSE_BLK0, 165, 5}, // [] Override SD_DATA_0 pad (GPIO7/SPIQ),
  264. };
  265. static const esp_efuse_desc_t SPI_PAD_CONFIG_D[] = {
  266. {EFUSE_BLK0, 170, 5}, // [] Override SD_DATA_1 pad (GPIO8/SPID),
  267. };
  268. static const esp_efuse_desc_t SPI_PAD_CONFIG_CS0[] = {
  269. {EFUSE_BLK0, 175, 5}, // [] Override SD_CMD pad (GPIO11/SPICS0),
  270. };
  271. static const esp_efuse_desc_t CHIP_VER_REV2[] = {
  272. {EFUSE_BLK0, 180, 1}, // [],
  273. };
  274. static const esp_efuse_desc_t VOL_LEVEL_HP_INV[] = {
  275. {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),
  276. };
  277. static const esp_efuse_desc_t WAFER_VERSION_MINOR[] = {
  278. {EFUSE_BLK0, 184, 2}, // [],
  279. };
  280. static const esp_efuse_desc_t FLASH_CRYPT_CONFIG[] = {
  281. {EFUSE_BLK0, 188, 4}, // [ENCRYPT_CONFIG] Flash encryption config (key tweak bits),
  282. };
  283. static const esp_efuse_desc_t CODING_SCHEME[] = {
  284. {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)"},
  285. };
  286. static const esp_efuse_desc_t CONSOLE_DEBUG_DISABLE[] = {
  287. {EFUSE_BLK0, 194, 1}, // [] Disable ROM BASIC interpreter fallback,
  288. };
  289. static const esp_efuse_desc_t DISABLE_SDIO_HOST[] = {
  290. {EFUSE_BLK0, 195, 1}, // [],
  291. };
  292. static const esp_efuse_desc_t ABS_DONE_0[] = {
  293. {EFUSE_BLK0, 196, 1}, // [] Secure boot V1 is enabled for bootloader image,
  294. };
  295. static const esp_efuse_desc_t ABS_DONE_1[] = {
  296. {EFUSE_BLK0, 197, 1}, // [] Secure boot V2 is enabled for bootloader image,
  297. };
  298. static const esp_efuse_desc_t JTAG_DISABLE[] = {
  299. {EFUSE_BLK0, 198, 1}, // [DISABLE_JTAG] Disable JTAG,
  300. };
  301. static const esp_efuse_desc_t DISABLE_DL_ENCRYPT[] = {
  302. {EFUSE_BLK0, 199, 1}, // [] Disable flash encryption in UART bootloader,
  303. };
  304. static const esp_efuse_desc_t DISABLE_DL_DECRYPT[] = {
  305. {EFUSE_BLK0, 200, 1}, // [] Disable flash decryption in UART bootloader,
  306. };
  307. static const esp_efuse_desc_t DISABLE_DL_CACHE[] = {
  308. {EFUSE_BLK0, 201, 1}, // [] Disable flash cache in UART bootloader,
  309. };
  310. static const esp_efuse_desc_t KEY_STATUS[] = {
  311. {EFUSE_BLK0, 202, 1}, // [] Usage of efuse block 3 (reserved),
  312. };
  313. static const esp_efuse_desc_t BLOCK1[] = {
  314. {EFUSE_BLK1, 0, MAX_BLK_LEN}, // [ENCRYPT_FLASH_KEY] Flash encryption key,
  315. };
  316. static const esp_efuse_desc_t BLOCK2[] = {
  317. {EFUSE_BLK2, 0, MAX_BLK_LEN}, // [SECURE_BOOT_KEY] Security boot key,
  318. };
  319. static const esp_efuse_desc_t CUSTOM_MAC_CRC[] = {
  320. {EFUSE_BLK3, 0, 8}, // [MAC_CUSTOM_CRC] CRC8 for custom MAC address,
  321. };
  322. static const esp_efuse_desc_t MAC_CUSTOM[] = {
  323. {EFUSE_BLK3, 8, 48}, // [MAC_CUSTOM] Custom MAC address,
  324. };
  325. static const esp_efuse_desc_t ADC1_TP_LOW[] = {
  326. {EFUSE_BLK3, 96, 7}, // [] ADC1 Two Point calibration low point. Only valid if EFUSE_RD_BLK3_PART_RESERVE,
  327. };
  328. static const esp_efuse_desc_t ADC1_TP_HIGH[] = {
  329. {EFUSE_BLK3, 103, 9}, // [] ADC1 Two Point calibration high point. Only valid if EFUSE_RD_BLK3_PART_RESERVE,
  330. };
  331. static const esp_efuse_desc_t ADC2_TP_LOW[] = {
  332. {EFUSE_BLK3, 112, 7}, // [] ADC2 Two Point calibration low point. Only valid if EFUSE_RD_BLK3_PART_RESERVE,
  333. };
  334. static const esp_efuse_desc_t ADC2_TP_HIGH[] = {
  335. {EFUSE_BLK3, 119, 9}, // [] ADC2 Two Point calibration high point. Only valid if EFUSE_RD_BLK3_PART_RESERVE,
  336. };
  337. static const esp_efuse_desc_t SECURE_VERSION[] = {
  338. {EFUSE_BLK3, 128, 32}, // [] Secure version for anti-rollback,
  339. };
  340. static const esp_efuse_desc_t MAC_VERSION[] = {
  341. {EFUSE_BLK3, 184, 8}, // [MAC_CUSTOM_VER] Version of the MAC field {1: "Custom MAC in BLOCK3"},
  342. };
  343. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS[] = {
  344. &WR_DIS[0], // [] Efuse write disable mask
  345. NULL
  346. };
  347. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_RD_DIS[] = {
  348. &WR_DIS_RD_DIS[0], // [WR_DIS.EFUSE_RD_DISABLE] wr_dis of RD_DIS
  349. NULL
  350. };
  351. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_WR_DIS[] = {
  352. &WR_DIS_WR_DIS[0], // [] wr_dis of WR_DIS
  353. NULL
  354. };
  355. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_FLASH_CRYPT_CNT[] = {
  356. &WR_DIS_FLASH_CRYPT_CNT[0], // [] wr_dis of FLASH_CRYPT_CNT
  357. NULL
  358. };
  359. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_UART_DOWNLOAD_DIS[] = {
  360. &WR_DIS_UART_DOWNLOAD_DIS[0], // [] wr_dis of UART_DOWNLOAD_DIS
  361. NULL
  362. };
  363. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC[] = {
  364. &WR_DIS_MAC[0], // [WR_DIS.MAC_FACTORY] wr_dis of MAC
  365. NULL
  366. };
  367. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC_CRC[] = {
  368. &WR_DIS_MAC_CRC[0], // [WR_DIS.MAC_FACTORY_CRC] wr_dis of MAC_CRC
  369. NULL
  370. };
  371. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_APP_CPU[] = {
  372. &WR_DIS_DISABLE_APP_CPU[0], // [WR_DIS.CHIP_VER_DIS_APP_CPU] wr_dis of DISABLE_APP_CPU
  373. NULL
  374. };
  375. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_BT[] = {
  376. &WR_DIS_DISABLE_BT[0], // [WR_DIS.CHIP_VER_DIS_BT] wr_dis of DISABLE_BT
  377. NULL
  378. };
  379. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DIS_CACHE[] = {
  380. &WR_DIS_DIS_CACHE[0], // [WR_DIS.CHIP_VER_DIS_CACHE] wr_dis of DIS_CACHE
  381. NULL
  382. };
  383. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_VOL_LEVEL_HP_INV[] = {
  384. &WR_DIS_VOL_LEVEL_HP_INV[0], // [] wr_dis of VOL_LEVEL_HP_INV
  385. NULL
  386. };
  387. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CLK8M_FREQ[] = {
  388. &WR_DIS_CLK8M_FREQ[0], // [WR_DIS.CK8M_FREQ] wr_dis of CLK8M_FREQ
  389. NULL
  390. };
  391. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC_VREF[] = {
  392. &WR_DIS_ADC_VREF[0], // [] wr_dis of ADC_VREF
  393. NULL
  394. };
  395. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XPD_SDIO_REG[] = {
  396. &WR_DIS_XPD_SDIO_REG[0], // [] wr_dis of XPD_SDIO_REG
  397. NULL
  398. };
  399. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XPD_SDIO_TIEH[] = {
  400. &WR_DIS_XPD_SDIO_TIEH[0], // [WR_DIS.SDIO_TIEH] wr_dis of XPD_SDIO_TIEH
  401. NULL
  402. };
  403. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XPD_SDIO_FORCE[] = {
  404. &WR_DIS_XPD_SDIO_FORCE[0], // [WR_DIS.SDIO_FORCE] wr_dis of XPD_SDIO_FORCE
  405. NULL
  406. };
  407. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD_CONFIG_CLK[] = {
  408. &WR_DIS_SPI_PAD_CONFIG_CLK[0], // [] wr_dis of SPI_PAD_CONFIG_CLK
  409. NULL
  410. };
  411. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD_CONFIG_Q[] = {
  412. &WR_DIS_SPI_PAD_CONFIG_Q[0], // [] wr_dis of SPI_PAD_CONFIG_Q
  413. NULL
  414. };
  415. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD_CONFIG_D[] = {
  416. &WR_DIS_SPI_PAD_CONFIG_D[0], // [] wr_dis of SPI_PAD_CONFIG_D
  417. NULL
  418. };
  419. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD_CONFIG_CS0[] = {
  420. &WR_DIS_SPI_PAD_CONFIG_CS0[0], // [] wr_dis of SPI_PAD_CONFIG_CS0
  421. NULL
  422. };
  423. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLOCK1[] = {
  424. &WR_DIS_BLOCK1[0], // [WR_DIS.ENCRYPT_FLASH_KEY WR_DIS.BLK1] wr_dis of BLOCK1
  425. NULL
  426. };
  427. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLOCK2[] = {
  428. &WR_DIS_BLOCK2[0], // [WR_DIS.SECURE_BOOT_KEY WR_DIS.BLK2] wr_dis of BLOCK2
  429. NULL
  430. };
  431. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLOCK3[] = {
  432. &WR_DIS_BLOCK3[0], // [WR_DIS.BLK3] wr_dis of BLOCK3
  433. NULL
  434. };
  435. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CUSTOM_MAC_CRC[] = {
  436. &WR_DIS_CUSTOM_MAC_CRC[0], // [WR_DIS.MAC_CUSTOM_CRC] wr_dis of CUSTOM_MAC_CRC
  437. NULL
  438. };
  439. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CUSTOM_MAC[] = {
  440. &WR_DIS_CUSTOM_MAC[0], // [WR_DIS.MAC_CUSTOM] wr_dis of CUSTOM_MAC
  441. NULL
  442. };
  443. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC1_TP_LOW[] = {
  444. &WR_DIS_ADC1_TP_LOW[0], // [] wr_dis of ADC1_TP_LOW
  445. NULL
  446. };
  447. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC1_TP_HIGH[] = {
  448. &WR_DIS_ADC1_TP_HIGH[0], // [] wr_dis of ADC1_TP_HIGH
  449. NULL
  450. };
  451. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC2_TP_LOW[] = {
  452. &WR_DIS_ADC2_TP_LOW[0], // [] wr_dis of ADC2_TP_LOW
  453. NULL
  454. };
  455. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ADC2_TP_HIGH[] = {
  456. &WR_DIS_ADC2_TP_HIGH[0], // [] wr_dis of ADC2_TP_HIGH
  457. NULL
  458. };
  459. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SECURE_VERSION[] = {
  460. &WR_DIS_SECURE_VERSION[0], // [] wr_dis of SECURE_VERSION
  461. NULL
  462. };
  463. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC_VERSION[] = {
  464. &WR_DIS_MAC_VERSION[0], // [WR_DIS.MAC_CUSTOM_VER] wr_dis of MAC_VERSION
  465. NULL
  466. };
  467. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLK3_PART_RESERVE[] = {
  468. &WR_DIS_BLK3_PART_RESERVE[0], // [] wr_dis of BLK3_PART_RESERVE
  469. NULL
  470. };
  471. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_FLASH_CRYPT_CONFIG[] = {
  472. &WR_DIS_FLASH_CRYPT_CONFIG[0], // [WR_DIS.ENCRYPT_CONFIG] wr_dis of FLASH_CRYPT_CONFIG
  473. NULL
  474. };
  475. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CODING_SCHEME[] = {
  476. &WR_DIS_CODING_SCHEME[0], // [] wr_dis of CODING_SCHEME
  477. NULL
  478. };
  479. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_KEY_STATUS[] = {
  480. &WR_DIS_KEY_STATUS[0], // [] wr_dis of KEY_STATUS
  481. NULL
  482. };
  483. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ABS_DONE_0[] = {
  484. &WR_DIS_ABS_DONE_0[0], // [] wr_dis of ABS_DONE_0
  485. NULL
  486. };
  487. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ABS_DONE_1[] = {
  488. &WR_DIS_ABS_DONE_1[0], // [] wr_dis of ABS_DONE_1
  489. NULL
  490. };
  491. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_JTAG_DISABLE[] = {
  492. &WR_DIS_JTAG_DISABLE[0], // [WR_DIS.DISABLE_JTAG] wr_dis of JTAG_DISABLE
  493. NULL
  494. };
  495. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CONSOLE_DEBUG_DISABLE[] = {
  496. &WR_DIS_CONSOLE_DEBUG_DISABLE[0], // [] wr_dis of CONSOLE_DEBUG_DISABLE
  497. NULL
  498. };
  499. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_DL_ENCRYPT[] = {
  500. &WR_DIS_DISABLE_DL_ENCRYPT[0], // [] wr_dis of DISABLE_DL_ENCRYPT
  501. NULL
  502. };
  503. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_DL_DECRYPT[] = {
  504. &WR_DIS_DISABLE_DL_DECRYPT[0], // [] wr_dis of DISABLE_DL_DECRYPT
  505. NULL
  506. };
  507. const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_DISABLE_DL_CACHE[] = {
  508. &WR_DIS_DISABLE_DL_CACHE[0], // [] wr_dis of DISABLE_DL_CACHE
  509. NULL
  510. };
  511. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS[] = {
  512. &RD_DIS[0], // [] Disable reading from BlOCK1-3
  513. NULL
  514. };
  515. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_BLOCK1[] = {
  516. &RD_DIS_BLOCK1[0], // [RD_DIS.ENCRYPT_FLASH_KEY RD_DIS.BLK1] rd_dis of BLOCK1
  517. NULL
  518. };
  519. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_BLOCK2[] = {
  520. &RD_DIS_BLOCK2[0], // [RD_DIS.SECURE_BOOT_KEY RD_DIS.BLK2] rd_dis of BLOCK2
  521. NULL
  522. };
  523. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_BLOCK3[] = {
  524. &RD_DIS_BLOCK3[0], // [RD_DIS.BLK3] rd_dis of BLOCK3
  525. NULL
  526. };
  527. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_CUSTOM_MAC_CRC[] = {
  528. &RD_DIS_CUSTOM_MAC_CRC[0], // [RD_DIS.MAC_CUSTOM_CRC] rd_dis of CUSTOM_MAC_CRC
  529. NULL
  530. };
  531. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_CUSTOM_MAC[] = {
  532. &RD_DIS_CUSTOM_MAC[0], // [RD_DIS.MAC_CUSTOM] rd_dis of CUSTOM_MAC
  533. NULL
  534. };
  535. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_ADC1_TP_LOW[] = {
  536. &RD_DIS_ADC1_TP_LOW[0], // [] rd_dis of ADC1_TP_LOW
  537. NULL
  538. };
  539. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_ADC1_TP_HIGH[] = {
  540. &RD_DIS_ADC1_TP_HIGH[0], // [] rd_dis of ADC1_TP_HIGH
  541. NULL
  542. };
  543. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_ADC2_TP_LOW[] = {
  544. &RD_DIS_ADC2_TP_LOW[0], // [] rd_dis of ADC2_TP_LOW
  545. NULL
  546. };
  547. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_ADC2_TP_HIGH[] = {
  548. &RD_DIS_ADC2_TP_HIGH[0], // [] rd_dis of ADC2_TP_HIGH
  549. NULL
  550. };
  551. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_SECURE_VERSION[] = {
  552. &RD_DIS_SECURE_VERSION[0], // [] rd_dis of SECURE_VERSION
  553. NULL
  554. };
  555. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_MAC_VERSION[] = {
  556. &RD_DIS_MAC_VERSION[0], // [RD_DIS.MAC_CUSTOM_VER] rd_dis of MAC_VERSION
  557. NULL
  558. };
  559. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_BLK3_PART_RESERVE[] = {
  560. &RD_DIS_BLK3_PART_RESERVE[0], // [] rd_dis of BLK3_PART_RESERVE
  561. NULL
  562. };
  563. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_FLASH_CRYPT_CONFIG[] = {
  564. &RD_DIS_FLASH_CRYPT_CONFIG[0], // [RD_DIS.ENCRYPT_CONFIG] rd_dis of FLASH_CRYPT_CONFIG
  565. NULL
  566. };
  567. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_CODING_SCHEME[] = {
  568. &RD_DIS_CODING_SCHEME[0], // [] rd_dis of CODING_SCHEME
  569. NULL
  570. };
  571. const esp_efuse_desc_t* ESP_EFUSE_RD_DIS_KEY_STATUS[] = {
  572. &RD_DIS_KEY_STATUS[0], // [] rd_dis of KEY_STATUS
  573. NULL
  574. };
  575. const esp_efuse_desc_t* ESP_EFUSE_FLASH_CRYPT_CNT[] = {
  576. &FLASH_CRYPT_CNT[0], // [] Flash encryption is enabled if this field has an odd number of bits set
  577. NULL
  578. };
  579. const esp_efuse_desc_t* ESP_EFUSE_UART_DOWNLOAD_DIS[] = {
  580. &UART_DOWNLOAD_DIS[0], // [] Disable UART download mode. Valid for ESP32 V3 and newer; only
  581. NULL
  582. };
  583. const esp_efuse_desc_t* ESP_EFUSE_MAC[] = {
  584. &MAC[0], // [MAC_FACTORY] MAC address
  585. &MAC[1], // [MAC_FACTORY] MAC address
  586. &MAC[2], // [MAC_FACTORY] MAC address
  587. &MAC[3], // [MAC_FACTORY] MAC address
  588. &MAC[4], // [MAC_FACTORY] MAC address
  589. &MAC[5], // [MAC_FACTORY] MAC address
  590. NULL
  591. };
  592. const esp_efuse_desc_t* ESP_EFUSE_MAC_CRC[] = {
  593. &MAC_CRC[0], // [MAC_FACTORY_CRC] CRC8 for MAC address
  594. NULL
  595. };
  596. const esp_efuse_desc_t* ESP_EFUSE_DISABLE_APP_CPU[] = {
  597. &DISABLE_APP_CPU[0], // [CHIP_VER_DIS_APP_CPU] Disables APP CPU
  598. NULL
  599. };
  600. const esp_efuse_desc_t* ESP_EFUSE_DISABLE_BT[] = {
  601. &DISABLE_BT[0], // [CHIP_VER_DIS_BT] Disables Bluetooth
  602. NULL
  603. };
  604. const esp_efuse_desc_t* ESP_EFUSE_CHIP_PACKAGE_4BIT[] = {
  605. &CHIP_PACKAGE_4BIT[0], // [CHIP_VER_PKG_4BIT] Chip package identifier #4bit
  606. NULL
  607. };
  608. const esp_efuse_desc_t* ESP_EFUSE_DIS_CACHE[] = {
  609. &DIS_CACHE[0], // [CHIP_VER_DIS_CACHE] Disables cache
  610. NULL
  611. };
  612. const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_HD[] = {
  613. &SPI_PAD_CONFIG_HD[0], // [] read for SPI_pad_config_hd
  614. NULL
  615. };
  616. const esp_efuse_desc_t* ESP_EFUSE_CHIP_PACKAGE[] = {
  617. &CHIP_PACKAGE[0], // [CHIP_VER_PKG] Chip package identifier
  618. NULL
  619. };
  620. const esp_efuse_desc_t* ESP_EFUSE_CHIP_CPU_FREQ_LOW[] = {
  621. &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
  622. NULL
  623. };
  624. const esp_efuse_desc_t* ESP_EFUSE_CHIP_CPU_FREQ_RATED[] = {
  625. &CHIP_CPU_FREQ_RATED[0], // [] If set; the ESP32's maximum CPU frequency has been rated
  626. NULL
  627. };
  628. const esp_efuse_desc_t* ESP_EFUSE_BLK3_PART_RESERVE[] = {
  629. &BLK3_PART_RESERVE[0], // [] BLOCK3 partially served for ADC calibration data
  630. NULL
  631. };
  632. const esp_efuse_desc_t* ESP_EFUSE_CHIP_VER_REV1[] = {
  633. &CHIP_VER_REV1[0], // [] bit is set to 1 for rev1 silicon
  634. NULL
  635. };
  636. const esp_efuse_desc_t* ESP_EFUSE_CLK8M_FREQ[] = {
  637. &CLK8M_FREQ[0], // [CK8M_FREQ] 8MHz clock freq override
  638. NULL
  639. };
  640. const esp_efuse_desc_t* ESP_EFUSE_ADC_VREF[] = {
  641. &ADC_VREF[0], // [] True ADC reference voltage
  642. NULL
  643. };
  644. const esp_efuse_desc_t* ESP_EFUSE_XPD_SDIO_REG[] = {
  645. &XPD_SDIO_REG[0], // [] read for XPD_SDIO_REG
  646. NULL
  647. };
  648. const esp_efuse_desc_t* ESP_EFUSE_XPD_SDIO_TIEH[] = {
  649. &XPD_SDIO_TIEH[0], // [SDIO_TIEH] If XPD_SDIO_FORCE & XPD_SDIO_REG {1: "3.3V"; 0: "1.8V"}
  650. NULL
  651. };
  652. const esp_efuse_desc_t* ESP_EFUSE_XPD_SDIO_FORCE[] = {
  653. &XPD_SDIO_FORCE[0], // [SDIO_FORCE] Ignore MTDI pin (GPIO12) for VDD_SDIO on reset
  654. NULL
  655. };
  656. const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_CLK[] = {
  657. &SPI_PAD_CONFIG_CLK[0], // [] Override SD_CLK pad (GPIO6/SPICLK)
  658. NULL
  659. };
  660. const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_Q[] = {
  661. &SPI_PAD_CONFIG_Q[0], // [] Override SD_DATA_0 pad (GPIO7/SPIQ)
  662. NULL
  663. };
  664. const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_D[] = {
  665. &SPI_PAD_CONFIG_D[0], // [] Override SD_DATA_1 pad (GPIO8/SPID)
  666. NULL
  667. };
  668. const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_CS0[] = {
  669. &SPI_PAD_CONFIG_CS0[0], // [] Override SD_CMD pad (GPIO11/SPICS0)
  670. NULL
  671. };
  672. const esp_efuse_desc_t* ESP_EFUSE_CHIP_VER_REV2[] = {
  673. &CHIP_VER_REV2[0], // []
  674. NULL
  675. };
  676. const esp_efuse_desc_t* ESP_EFUSE_VOL_LEVEL_HP_INV[] = {
  677. &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)
  678. NULL
  679. };
  680. const esp_efuse_desc_t* ESP_EFUSE_WAFER_VERSION_MINOR[] = {
  681. &WAFER_VERSION_MINOR[0], // []
  682. NULL
  683. };
  684. const esp_efuse_desc_t* ESP_EFUSE_FLASH_CRYPT_CONFIG[] = {
  685. &FLASH_CRYPT_CONFIG[0], // [ENCRYPT_CONFIG] Flash encryption config (key tweak bits)
  686. NULL
  687. };
  688. const esp_efuse_desc_t* ESP_EFUSE_CODING_SCHEME[] = {
  689. &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)"}
  690. NULL
  691. };
  692. const esp_efuse_desc_t* ESP_EFUSE_CONSOLE_DEBUG_DISABLE[] = {
  693. &CONSOLE_DEBUG_DISABLE[0], // [] Disable ROM BASIC interpreter fallback
  694. NULL
  695. };
  696. const esp_efuse_desc_t* ESP_EFUSE_DISABLE_SDIO_HOST[] = {
  697. &DISABLE_SDIO_HOST[0], // []
  698. NULL
  699. };
  700. const esp_efuse_desc_t* ESP_EFUSE_ABS_DONE_0[] = {
  701. &ABS_DONE_0[0], // [] Secure boot V1 is enabled for bootloader image
  702. NULL
  703. };
  704. const esp_efuse_desc_t* ESP_EFUSE_ABS_DONE_1[] = {
  705. &ABS_DONE_1[0], // [] Secure boot V2 is enabled for bootloader image
  706. NULL
  707. };
  708. const esp_efuse_desc_t* ESP_EFUSE_JTAG_DISABLE[] = {
  709. &JTAG_DISABLE[0], // [DISABLE_JTAG] Disable JTAG
  710. NULL
  711. };
  712. const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_ENCRYPT[] = {
  713. &DISABLE_DL_ENCRYPT[0], // [] Disable flash encryption in UART bootloader
  714. NULL
  715. };
  716. const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_DECRYPT[] = {
  717. &DISABLE_DL_DECRYPT[0], // [] Disable flash decryption in UART bootloader
  718. NULL
  719. };
  720. const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_CACHE[] = {
  721. &DISABLE_DL_CACHE[0], // [] Disable flash cache in UART bootloader
  722. NULL
  723. };
  724. const esp_efuse_desc_t* ESP_EFUSE_KEY_STATUS[] = {
  725. &KEY_STATUS[0], // [] Usage of efuse block 3 (reserved)
  726. NULL
  727. };
  728. const esp_efuse_desc_t* ESP_EFUSE_BLOCK1[] = {
  729. &BLOCK1[0], // [ENCRYPT_FLASH_KEY] Flash encryption key
  730. NULL
  731. };
  732. const esp_efuse_desc_t* ESP_EFUSE_BLOCK2[] = {
  733. &BLOCK2[0], // [SECURE_BOOT_KEY] Security boot key
  734. NULL
  735. };
  736. const esp_efuse_desc_t* ESP_EFUSE_CUSTOM_MAC_CRC[] = {
  737. &CUSTOM_MAC_CRC[0], // [MAC_CUSTOM_CRC] CRC8 for custom MAC address
  738. NULL
  739. };
  740. const esp_efuse_desc_t* ESP_EFUSE_MAC_CUSTOM[] = {
  741. &MAC_CUSTOM[0], // [MAC_CUSTOM] Custom MAC address
  742. NULL
  743. };
  744. const esp_efuse_desc_t* ESP_EFUSE_ADC1_TP_LOW[] = {
  745. &ADC1_TP_LOW[0], // [] ADC1 Two Point calibration low point. Only valid if EFUSE_RD_BLK3_PART_RESERVE
  746. NULL
  747. };
  748. const esp_efuse_desc_t* ESP_EFUSE_ADC1_TP_HIGH[] = {
  749. &ADC1_TP_HIGH[0], // [] ADC1 Two Point calibration high point. Only valid if EFUSE_RD_BLK3_PART_RESERVE
  750. NULL
  751. };
  752. const esp_efuse_desc_t* ESP_EFUSE_ADC2_TP_LOW[] = {
  753. &ADC2_TP_LOW[0], // [] ADC2 Two Point calibration low point. Only valid if EFUSE_RD_BLK3_PART_RESERVE
  754. NULL
  755. };
  756. const esp_efuse_desc_t* ESP_EFUSE_ADC2_TP_HIGH[] = {
  757. &ADC2_TP_HIGH[0], // [] ADC2 Two Point calibration high point. Only valid if EFUSE_RD_BLK3_PART_RESERVE
  758. NULL
  759. };
  760. const esp_efuse_desc_t* ESP_EFUSE_SECURE_VERSION[] = {
  761. &SECURE_VERSION[0], // [] Secure version for anti-rollback
  762. NULL
  763. };
  764. const esp_efuse_desc_t* ESP_EFUSE_MAC_VERSION[] = {
  765. &MAC_VERSION[0], // [MAC_CUSTOM_VER] Version of the MAC field {1: "Custom MAC in BLOCK3"}
  766. NULL
  767. };