From d834e4333ae5d98f390a2baaa3c3965f33cf656c Mon Sep 17 00:00:00 2001 From: Konstantin Kondrashov Date: Thu, 14 Aug 2025 11:47:58 +0300 Subject: [PATCH] feat(docs): Update ESP32-C61 efuse documentation --- docs/docs_not_updated/esp32c61.txt | 2 - .../system/inc/espefuse_summary_ESP32-C61.rst | 166 +++++---- .../inc/espefuse_summary_ESP32-C61_dump.rst | 13 +- .../system/inc/show-efuse-table_ESP32-C61.rst | 319 +++++++++++------- 4 files changed, 303 insertions(+), 197 deletions(-) diff --git a/docs/docs_not_updated/esp32c61.txt b/docs/docs_not_updated/esp32c61.txt index fe9b90c588..f6522a60f8 100644 --- a/docs/docs_not_updated/esp32c61.txt +++ b/docs/docs_not_updated/esp32c61.txt @@ -49,9 +49,7 @@ api-reference/network/esp_netif.rst api-reference/system/sleep_modes.rst api-reference/system/app_trace.rst api-reference/system/power_management.rst -api-reference/system/inc/show-efuse-table_ESP32-C61.rst api-reference/system/inc/power_management_esp32c61.rst -api-reference/system/inc/espefuse_summary_ESP32-C61.rst api-reference/error-codes.rst api-reference/index.rst api-reference/protocols/icmp_echo.rst diff --git a/docs/en/api-reference/system/inc/espefuse_summary_ESP32-C61.rst b/docs/en/api-reference/system/inc/espefuse_summary_ESP32-C61.rst index f09ca9aae8..7838b515cf 100644 --- a/docs/en/api-reference/system/inc/espefuse_summary_ESP32-C61.rst +++ b/docs/en/api-reference/system/inc/espefuse_summary_ESP32-C61.rst @@ -1,7 +1,9 @@ .. code-block:: none - espefuse.py --virt -c esp32c61 summary - espefuse.py v4.7.0 + idf.py -p /dev/ttyUSB0 efuse-summary + + espefuse.py v4.10.dev2 + Connecting.... === Run "summary" command === EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value) @@ -9,61 +11,83 @@ Config fuses: WR_DIS (BLOCK0) Disable programming of individual eFuses = 0 R/W (0x00000000) RD_DIS (BLOCK0) Disable reading from BlOCK4-10 = 0 R/W (0b0000000) - DIS_ICACHE (BLOCK0) Represents whether icache is disabled or enabled.\ = False R/W (0b0) - \ 1: disabled\\ 0: enabled\\ + DIS_ICACHE (BLOCK0) Represents whether cache is disabled. 1: Disabled = False R/W (0b0) + 0: Enabled. DIS_DIRECT_BOOT (BLOCK0) Represents whether direct boot mode is disabled or = False R/W (0b0) - enabled.\\ 1. Disable\\ 0: Enable\\ + enabled. 1. Disable 0: Enable UART_PRINT_CONTROL (BLOCK0) Represents the types of UART printing = 0 R/W (0b00) - HYS_EN_PAD (BLOCK0) Represents whether the hysteresis function of = False R/W (0b0) - corresponding PAD is enabled.\\ 1: enabled\\ 0:disable - d\\ - DIS_WIFI6 (BLOCK0) Represents whether the WiFi 6 feature is enable or = False R/W (0b0) - disable.\\ 1: WiFi 6 is disable\\ 0: WiFi 6 is en - abled.\\ + HYS_EN_PAD (BLOCK0) Set bits to enable hysteresis function of PAD0~27 = False R/W (0b0) + DIS_WIFI6 (BLOCK0) Represents whether the WIFI6 feature is enable or = False R/W (0b0) + disabled. 1: WIFI6 is disable; 0: WIFI6 is enabled ECC_FORCE_CONST_TIME (BLOCK0) Represents whether to force ecc to use const-time = False R/W (0b0) - calculation mode. \\ 1: Enable. \\ 0: Disable - BLOCK_SYS_DATA1 (BLOCK2) System data part 1 (reserved) - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + calculation mode. 1: Enable. 0: Disable + BOOTLOADER_ANTI_ROLLBACK_EN (BLOCK0) Represents whether the ani-rollback check for the = False R/W (0b0) + 2nd stage bootloader is enabled.1: Enabled0: Disab + led + BOOTLOADER_ANTI_ROLLBACK_UPDATE_IN_ROM (BLOCK0) Represents whether the ani-rollback SECURE_VERSION = False R/W (0b0) + will be updated from the ROM bootloader.1: Enable + 0: Disable + REPEAT_DATA4 (BLOCK0) Reserved = 0 R/W (0x000000) + PSRAM_CAP (BLOCK1) PSRAM capacity = 0 R/W (0b000) + PSRAM_VENDOR (BLOCK1) PSRAM vendor = 0 R/W (0b00) + TEMP (BLOCK1) Temperature = 0 R/W (0b00) BLOCK_USR_DATA (BLOCK3) User data - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved) - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W Flash fuses: FLASH_TPUW (BLOCK0) Represents the flash waiting time after power-up; = 0 R/W (0x0) - in unit of ms. When the value less than 15; the wa - iting time is programmed value. Otherwise; the wai - ting time is 2 times the programmed value + in unit of ms. When the value less than 15; the wa + iting time is programmed value. Otherwise; the wai + ting time is 2 times the programmed value FORCE_SEND_RESUME (BLOCK0) Represents whether ROM code is forced to send a re = False R/W (0b0) - sume command during SPI boot + sume command during SPI boot + RECOVERY_BOOTLOADER_FLASH_SECTOR (BLOCK0) Represents the starting flash sector (flash sector = 1008 R/W (0x3f0) + size is 0x1000) of the recovery bootloader used b + y the ROM bootloader If the primary bootloader fai + ls. 0 and 0xFFF - this feature is disabled + FLASH_CAP (BLOCK1) Flash capacity = 0 R/W (0b000) + FLASH_VENDOR (BLOCK1) Flash vendor = 0 R/W (0b000) + + Identity fuses: + WAFER_VERSION_MINOR (BLOCK1) Minor chip version = 0 R/W (0x0) + WAFER_VERSION_MAJOR (BLOCK1) Major chip version = 1 R/W (0b01) + DISABLE_WAFER_VERSION_MAJOR (BLOCK1) Disables check of wafer version major = False R/W (0b0) + DISABLE_BLK_VERSION_MAJOR (BLOCK1) Disables check of blk version major = False R/W (0b0) + BLK_VERSION_MINOR (BLOCK1) BLK_VERSION_MINOR of BLOCK2 = 0 R/W (0b000) + BLK_VERSION_MAJOR (BLOCK1) BLK_VERSION_MAJOR of BLOCK2 = 0 R/W (0b00) + PKG_VERSION (BLOCK1) Package version = 0 R/W (0b000) + OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W Jtag fuses: JTAG_SEL_ENABLE (BLOCK0) Represents whether the selection between usb_to_jt = False R/W (0b0) - ag and pad_to_jtag through strapping gpio15 when b - oth EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are - equal to 0 is enabled or disabled.\\ 1: enabled\\ - 0: disabled\\ + ag and pad_to_jtag through strapping gpio15 when b + oth EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are + equal to 0 is enabled or disabled. 1: enabled 0: d + isabled DIS_PAD_JTAG (BLOCK0) Represents whether JTAG is disabled in the hard wa = False R/W (0b0) - y(permanently).\\ 1: disabled\\ 0: enabled\\ + y(permanently). 1: disabled 0: enabled Mac fuses: MAC (BLOCK1) MAC address - = 00:00:00:00:00:00 (OK) R/W + = 30:ed:a0:e5:25:20 (OK) R/W CUSTOM_MAC (BLOCK3) Custom MAC - = 00:00:00:00:00:00 (OK) R/W + = 00:00:00:00:00:00 (OK) R/W Security fuses: DIS_FORCE_DOWNLOAD (BLOCK0) Represents whether the function that forces chip i = False R/W (0b0) - nto download mode is disabled or enabled.\\ 1: dis - abled\\ 0: enabled\\ + nto download mode is disabled or enabled. 1: disab + led 0: enabled SPI_DOWNLOAD_MSPI_DIS (BLOCK0) Represents whether SPI0 controller during boot_mod = False R/W (0b0) - e_download is disabled or enabled.\\ 1: disabled\\ - 0: enabled\\ + e_download is disabled or enabled. 1: disabled 0: + enabled DIS_DOWNLOAD_MANUAL_ENCRYPT (BLOCK0) Represents whether flash encrypt function is disab = False R/W (0b0) - led or enabled(except in SPI boot mode).\\ 1: disa - bled\\ 0: enabled\\ + led or enabled(except in SPI boot mode). 1: disabled + 0: enabled SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000) - and disables otherwise + and disables otherwise SECURE_BOOT_KEY_REVOKE0 (BLOCK0) Revoke 1st secure boot key = False R/W (0b0) SECURE_BOOT_KEY_REVOKE1 (BLOCK0) Revoke 2nd secure boot key = False R/W (0b0) SECURE_BOOT_KEY_REVOKE2 (BLOCK0) Revoke 3rd secure boot key = False R/W (0b0) @@ -74,71 +98,67 @@ KEY_PURPOSE_4 (BLOCK0) Represents the purpose of Key4 = USER R/W (0x0) KEY_PURPOSE_5 (BLOCK0) Represents the purpose of Key5 = USER R/W (0x0) SEC_DPA_LEVEL (BLOCK0) Represents the spa secure level by configuring the = 0 R/W (0b00) - clock random divide mode + clock random divide mode SECURE_BOOT_EN (BLOCK0) Represents whether secure boot is enabled or disab = False R/W (0b0) - led.\\ 1: enabled\\ 0: disabled\\ + led. 1. Enable 0: Disable SECURE_BOOT_AGGRESSIVE_REVOKE (BLOCK0) Represents whether revoking aggressive secure boot = False R/W (0b0) - is enabled or disabled.\\ 1: enabled.\\ 0: disabled\\ + is enabled or disabled. 1. Enable 0: Disable DIS_DOWNLOAD_MODE (BLOCK0) Represents whether Download mode is disable or ena = False R/W (0b0) - ble.\\ 1. Disable\\ 0: Enable\\ + ble. 1. Disable 0: Enable ENABLE_SECURITY_DOWNLOAD (BLOCK0) Represents whether security download is enabled or = False R/W (0b0) - disabled.\\ 1: Enable\\ 0: Disable\\ + disabled. 1: Enable 0: Disable SECURE_VERSION (BLOCK0) Represents the version used by ESP-IDF anti-rollba = 0 R/W (0x0000) - ck feature + ck feature SECURE_BOOT_DISABLE_FAST_WAKE (BLOCK0) Represents whether FAST_VERIFY_ON_WAKE is disable = False R/W (0b0) - or enable when Secure Boot is enable - XTS_DPA_CLK_ENABLE (BLOCK0) Represents whether anti-dpa attack clock function = False R/W (0b0) - is enabled.\\ 1. Enable\\ 0: Disable\\ - XTS_DPA_PSEUDO_LEVEL (BLOCK0) Represents the anti-dpa attack pseudo function lev = 0 R/W (0b00) - el.\\ 3:High\\ 2: Moderate\\ 1: Low\\ 0: Decided b - y register configuration\\ + or enable when Secure Boot is enable + XTS_DPA_CLK_ENABLE (BLOCK0) Represents whether xts-aes anti-dpa attack clock i = False R/W (0b0) + s enabled. 1. Enable. 0: Disable. + XTS_DPA_PSEUDO_LEVEL (BLOCK0) Represents the pseudo round level of xts-aes anti- = 0 R/W (0b00) + dpa attack. 3: High. 2: Moderate 1. Low 0: Disabled ECDSA_DISABLE_P192 (BLOCK0) Represents whether to disable P192 curve in ECDSA. = False R/W (0b0) - \\ 1: Disabled.\\ 0: Not disable + 1: Disabled. 0: Not disabled + BOOTLOADER_ANTI_ROLLBACK_SECURE_VERSION (BLOCK0) Represents the anti-rollback secure version of the = 0 R/W (0x0) + 2nd stage bootloader used by the ROM bootloader BLOCK_KEY0 (BLOCK4) Purpose: USER - Key0 or user data - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + Key0 or user data + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W BLOCK_KEY1 (BLOCK5) Purpose: USER - Key1 or user data - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + Key1 or user data + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W BLOCK_KEY2 (BLOCK6) Purpose: USER - Key2 or user data - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + Key2 or user data + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W BLOCK_KEY3 (BLOCK7) Purpose: USER - Key3 or user data - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + Key3 or user data + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W BLOCK_KEY4 (BLOCK8) Purpose: USER - Key4 or user data - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + Key4 or user data + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W BLOCK_KEY5 (BLOCK9) Purpose: USER - Key5 or user data - = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W + Key5 or user data + = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W Usb fuses: DIS_USB_JTAG (BLOCK0) Represents whether the function of usb switch to j = False R/W (0b0) - tag is disabled or enabled.\\ 1: disabled\\ 0: ena - bled\\ - USB_EXCHG_PINS (BLOCK0) Represents whether the D+ and D- pins is exchanged = False R/W (0b0) - .\\ 1: exchanged\\ 0: not exchanged\\ + tag is disabled or enabled. 1: disabled 0: enabled + USB_EXCHG_PINS (BLOCK0) Represents whether the D+ and D- pins of USB_SERIA = False R/W (0b0) + L_JTAG PHY is exchanged. 1: exchanged 0: not excha + nged DIS_USB_SERIAL_JTAG_ROM_PRINT (BLOCK0) Represents whether print from USB-Serial-JTAG is d = False R/W (0b0) - isabled or enabled.\\ 1. Disable\\ 0: Enable\\ + isabled or enabled. 1. Disable 0: Enable DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE (BLOCK0) Represents whether the USB-Serial-JTAG download fu = False R/W (0b0) - nction is disabled or enabled.\\ 1: Disable\\ 0: E - nable\\ + nction is disabled or enabled. 1: Disable 0: Enable Vdd fuses: VDD_SPI_AS_GPIO (BLOCK0) Represents whether vdd spi pin is functioned as gp = False R/W (0b0) - io.\\ 1: functioned\\ 0: not functioned\\ + io. 1: functioned 0: not functioned Wdt fuses: - WDT_DELAY_SEL (BLOCK0) Represents the threshold level of the RTC watchdog = 0 R/W (0b00) - STG0 timeout.\\ 0: Original threshold configurati - on value of STG0 *2 \\1: Original threshold config - uration value of STG0 *4 \\2: Original threshold c - onfiguration value of STG0 *8 \\3: Original thresh - old configuration value of STG0 *16 \\ + WDT_DELAY_SEL (BLOCK0) lp wdt timeout threshold at startup = initial time = 0 R/W (0b00) + out value * (2 ^ (EFUSE_WDT_DELAY_SEL + 1)) diff --git a/docs/en/api-reference/system/inc/espefuse_summary_ESP32-C61_dump.rst b/docs/en/api-reference/system/inc/espefuse_summary_ESP32-C61_dump.rst index 5ea5f9cebd..797bd7e973 100644 --- a/docs/en/api-reference/system/inc/espefuse_summary_ESP32-C61_dump.rst +++ b/docs/en/api-reference/system/inc/espefuse_summary_ESP32-C61_dump.rst @@ -1,10 +1,13 @@ .. code-block:: none - espefuse.py --virt -c esp32c61 dump + idf.py -p /dev/ttyUSB0 efuse-dump - espefuse.py v4.7.0 - BLOCK0 ( ) [0 ] dump: 00000000 00000000 00000000 00000000 00000000 00000000 - MAC_SPI_8M_0 (BLOCK1 ) [1 ] dump: 00000000 00000000 00000000 00000000 00000000 00000000 + espefuse.py v4.10.dev2 + Connecting.... + + === Run "dump" command === + BLOCK0 ( ) [0 ] dump: 00000000 00000000 00000000 00000000 0000fc00 00000000 + MAC_SPI_8M_0 (BLOCK1 ) [1 ] dump: a0e52520 000030ed 00000010 00000000 00000000 00000000 BLOCK_SYS_DATA (BLOCK2 ) [2 ] dump: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 BLOCK_USR_DATA (BLOCK3 ) [3 ] dump: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 BLOCK_KEY0 (BLOCK4 ) [4 ] dump: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 @@ -14,5 +17,3 @@ BLOCK_KEY4 (BLOCK8 ) [8 ] dump: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 BLOCK_KEY5 (BLOCK9 ) [9 ] dump: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 BLOCK_SYS_DATA2 (BLOCK10 ) [10] dump: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 - - === Run "dump" command === diff --git a/docs/en/api-reference/system/inc/show-efuse-table_ESP32-C61.rst b/docs/en/api-reference/system/inc/show-efuse-table_ESP32-C61.rst index aca45b5f71..f7a8f1abdf 100644 --- a/docs/en/api-reference/system/inc/show-efuse-table_ESP32-C61.rst +++ b/docs/en/api-reference/system/inc/show-efuse-table_ESP32-C61.rst @@ -1,4 +1,3 @@ - .. code-block:: none $ ./efuse_table_gen.py -t IDF_TARGET_PATH_NAME {IDF_TARGET_PATH_NAME}/esp_efuse_table.csv --info @@ -7,140 +6,228 @@ Parsing efuse CSV input file esp32c61/esp_efuse_table.csv ... Verifying efuse table... Sorted efuse table: - # field_name efuse_block bit_start bit_count - 1 WR_DIS EFUSE_BLK0 0 32 - 2 WR_DIS.RD_DIS EFUSE_BLK0 0 1 - 3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1 - 4 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1 - 5 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1 - 6 WR_DIS.JTAG_SEL_ENABLE EFUSE_BLK0 2 1 - 7 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1 - 8 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1 - 9 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1 - 10 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1 - 11 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1 - 12 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1 - 13 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1 - 14 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1 - 15 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1 - 16 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1 - 17 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1 - 18 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1 - 19 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1 - 20 WR_DIS.SEC_DPA_LEVEL EFUSE_BLK0 14 1 - 21 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1 - 22 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1 - 23 WR_DIS.SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 17 1 - 24 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1 - 25 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1 - 26 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1 - 27 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1 - 28 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1 - 29 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1 - 30 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1 - 31 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1 - 32 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1 - 33 WR_DIS.SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 19 1 - 34 WR_DIS.BLK1 EFUSE_BLK0 20 1 - 35 WR_DIS.MAC EFUSE_BLK0 20 1 - 36 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1 - 37 WR_DIS.BLOCK_SYS_DATA1 EFUSE_BLK0 21 1 - 38 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1 - 39 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1 - 40 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1 - 41 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1 - 42 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1 - 43 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1 - 44 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1 - 45 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1 - 46 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1 - 47 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1 - 48 WR_DIS.VDD_SPI_AS_GPIO EFUSE_BLK0 30 1 - 49 RD_DIS EFUSE_BLK0 32 7 - 50 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1 - 51 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1 - 52 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1 - 53 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1 - 54 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1 - 55 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1 - 56 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1 - 57 DIS_ICACHE EFUSE_BLK0 39 1 - 58 DIS_USB_JTAG EFUSE_BLK0 40 1 - 59 DIS_FORCE_DOWNLOAD EFUSE_BLK0 42 1 - 60 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 43 1 - 61 JTAG_SEL_ENABLE EFUSE_BLK0 44 1 - 62 DIS_PAD_JTAG EFUSE_BLK0 45 1 - 63 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 46 1 - 64 USB_EXCHG_PINS EFUSE_BLK0 51 1 - 65 VDD_SPI_AS_GPIO EFUSE_BLK0 52 1 - 66 WDT_DELAY_SEL EFUSE_BLK0 53 2 - 67 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 55 3 - 68 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 58 1 - 69 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 59 1 - 70 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 60 1 - 71 KEY_PURPOSE_0 EFUSE_BLK0 64 4 - 72 KEY_PURPOSE_1 EFUSE_BLK0 68 4 - 73 KEY_PURPOSE_2 EFUSE_BLK0 72 4 - 74 KEY_PURPOSE_3 EFUSE_BLK0 76 4 - 75 KEY_PURPOSE_4 EFUSE_BLK0 80 4 - 76 KEY_PURPOSE_5 EFUSE_BLK0 84 4 - 77 SEC_DPA_LEVEL EFUSE_BLK0 88 2 - 78 SECURE_BOOT_EN EFUSE_BLK0 90 1 - 79 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 91 1 - 80 FLASH_TPUW EFUSE_BLK0 92 4 - 81 DIS_DOWNLOAD_MODE EFUSE_BLK0 96 1 - 82 DIS_DIRECT_BOOT EFUSE_BLK0 97 1 - 83 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 98 1 - 84 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 99 1 - 85 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 100 1 - 86 UART_PRINT_CONTROL EFUSE_BLK0 101 2 - 87 FORCE_SEND_RESUME EFUSE_BLK0 103 1 - 88 SECURE_VERSION EFUSE_BLK0 104 16 - 89 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 120 1 - 90 HYS_EN_PAD EFUSE_BLK0 121 1 - 91 XTS_DPA_CLK_ENABLE EFUSE_BLK0 122 1 - 92 XTS_DPA_PSEUDO_LEVEL EFUSE_BLK0 123 2 - 93 DIS_WIFI6 EFUSE_BLK0 125 1 - 94 ECDSA_DISABLE_P192 EFUSE_BLK0 126 1 - 95 ECC_FORCE_CONST_TIME EFUSE_BLK0 127 1 - 96 MAC EFUSE_BLK1 0 8 - 97 MAC EFUSE_BLK1 8 8 - 98 MAC EFUSE_BLK1 16 8 - 99 MAC EFUSE_BLK1 24 8 - 100 MAC EFUSE_BLK1 32 8 - 101 MAC EFUSE_BLK1 40 8 - 102 SYS_DATA_PART2 EFUSE_BLK10 0 256 - 103 BLOCK_SYS_DATA1 EFUSE_BLK2 0 256 - 104 USER_DATA EFUSE_BLK3 0 256 - 105 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48 - 106 KEY0 EFUSE_BLK4 0 256 - 107 KEY1 EFUSE_BLK5 0 256 - 108 KEY2 EFUSE_BLK6 0 256 - 109 KEY3 EFUSE_BLK7 0 256 - 110 KEY4 EFUSE_BLK8 0 256 - 111 KEY5 EFUSE_BLK9 0 256 + # field_name efuse_block bit_start bit_count + 1 WR_DIS EFUSE_BLK0 0 32 + 2 WR_DIS.RD_DIS EFUSE_BLK0 0 1 + 3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1 + 4 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1 + 5 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1 + 6 WR_DIS.SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 2 1 + 7 WR_DIS.JTAG_SEL_ENABLE EFUSE_BLK0 2 1 + 8 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1 + 9 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1 + 10 WR_DIS.HYS_EN_PAD EFUSE_BLK0 2 1 + 11 WR_DIS.DIS_WIFI6 EFUSE_BLK0 2 1 + 12 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1 + 13 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1 + 14 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1 + 15 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1 + 16 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1 + 17 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1 + 18 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1 + 19 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1 + 20 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1 + 21 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1 + 22 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1 + 23 WR_DIS.SEC_DPA_LEVEL EFUSE_BLK0 14 1 + 24 WR_DIS.XTS_DPA_CLK_ENABLE EFUSE_BLK0 14 1 + 25 WR_DIS.XTS_DPA_PSEUDO_LEVEL EFUSE_BLK0 14 1 + 26 WR_DIS.ECDSA_DISABLE_P192 EFUSE_BLK0 14 1 + 27 WR_DIS.ECC_FORCE_CONST_TIME EFUSE_BLK0 14 1 + 28 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1 + 29 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1 + 30 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1 + 31 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1 + 32 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1 + 33 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1 + 34 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1 + 35 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1 + 36 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1 + 37 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1 + 38 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1 + 39 WR_DIS.SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 18 1 + 40 WR_DIS.BLK1 EFUSE_BLK0 20 1 + 41 WR_DIS.MAC EFUSE_BLK0 20 1 + 42 WR_DIS.WAFER_VERSION_MINOR EFUSE_BLK0 20 1 + 43 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1 + 44 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 20 1 + 45 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 20 1 + 46 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 20 1 + 47 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 20 1 + 48 WR_DIS.FLASH_CAP EFUSE_BLK0 20 1 + 49 WR_DIS.FLASH_VENDOR EFUSE_BLK0 20 1 + 50 WR_DIS.PSRAM_CAP EFUSE_BLK0 20 1 + 51 WR_DIS.PSRAM_VENDOR EFUSE_BLK0 20 1 + 52 WR_DIS.TEMP EFUSE_BLK0 20 1 + 53 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1 + 54 WR_DIS.ACTIVE_HP_DBIAS EFUSE_BLK0 20 1 + 55 WR_DIS.ACTIVE_LP_DBIAS EFUSE_BLK0 20 1 + 56 WR_DIS.LSLP_HP_DBG EFUSE_BLK0 20 1 + 57 WR_DIS.LSLP_HP_DBIAS EFUSE_BLK0 20 1 + 58 WR_DIS.DSLP_LP_DBG EFUSE_BLK0 20 1 + 59 WR_DIS.DSLP_LP_DBIAS EFUSE_BLK0 20 1 + 60 WR_DIS.LP_HP_DBIAS_VOL_GAP EFUSE_BLK0 20 1 + 61 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1 + 62 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1 + 63 WR_DIS.TEMPERATURE_SENSOR EFUSE_BLK0 21 1 + 64 WR_DIS.OCODE EFUSE_BLK0 21 1 + 65 WR_DIS.ADC1_AVE_INIT_CODE_ATTEN0 EFUSE_BLK0 21 1 + 66 WR_DIS.ADC1_AVE_INIT_CODE_ATTEN1 EFUSE_BLK0 21 1 + 67 WR_DIS.ADC1_AVE_INIT_CODE_ATTEN2 EFUSE_BLK0 21 1 + 68 WR_DIS.ADC1_AVE_INIT_CODE_ATTEN3 EFUSE_BLK0 21 1 + 69 WR_DIS.ADC1_HI_DOUT_ATTEN0 EFUSE_BLK0 21 1 + 70 WR_DIS.ADC1_HI_DOUT_ATTEN1 EFUSE_BLK0 21 1 + 71 WR_DIS.ADC1_HI_DOUT_ATTEN2 EFUSE_BLK0 21 1 + 72 WR_DIS.ADC1_HI_DOUT_ATTEN3 EFUSE_BLK0 21 1 + 73 WR_DIS.ADC1_CH0_ATTEN0_INITCODE_DIFF EFUSE_BLK0 21 1 + 74 WR_DIS.ADC1_CH1_ATTEN0_INITCODE_DIFF EFUSE_BLK0 21 1 + 75 WR_DIS.ADC1_CH2_ATTEN0_INITCODE_DIFF EFUSE_BLK0 21 1 + 76 WR_DIS.ADC1_CH3_ATTEN0_INITCODE_DIFF EFUSE_BLK0 21 1 + 77 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1 + 78 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1 + 79 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1 + 80 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1 + 81 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1 + 82 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1 + 83 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1 + 84 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1 + 85 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1 + 86 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1 + 87 WR_DIS.VDD_SPI_AS_GPIO EFUSE_BLK0 30 1 + 88 RD_DIS EFUSE_BLK0 32 7 + 89 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1 + 90 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1 + 91 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1 + 92 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1 + 93 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1 + 94 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1 + 95 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1 + 96 DIS_ICACHE EFUSE_BLK0 39 1 + 97 DIS_USB_JTAG EFUSE_BLK0 40 1 + 98 DIS_FORCE_DOWNLOAD EFUSE_BLK0 42 1 + 99 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 43 1 + 100 JTAG_SEL_ENABLE EFUSE_BLK0 44 1 + 101 DIS_PAD_JTAG EFUSE_BLK0 45 1 + 102 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 46 1 + 103 USB_EXCHG_PINS EFUSE_BLK0 51 1 + 104 VDD_SPI_AS_GPIO EFUSE_BLK0 52 1 + 105 WDT_DELAY_SEL EFUSE_BLK0 53 2 + 106 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 55 3 + 107 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 58 1 + 108 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 59 1 + 109 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 60 1 + 110 KEY_PURPOSE_0 EFUSE_BLK0 64 4 + 111 KEY_PURPOSE_1 EFUSE_BLK0 68 4 + 112 KEY_PURPOSE_2 EFUSE_BLK0 72 4 + 113 KEY_PURPOSE_3 EFUSE_BLK0 76 4 + 114 KEY_PURPOSE_4 EFUSE_BLK0 80 4 + 115 KEY_PURPOSE_5 EFUSE_BLK0 84 4 + 116 SEC_DPA_LEVEL EFUSE_BLK0 88 2 + 117 SECURE_BOOT_EN EFUSE_BLK0 90 1 + 118 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 91 1 + 119 FLASH_TPUW EFUSE_BLK0 92 4 + 120 DIS_DOWNLOAD_MODE EFUSE_BLK0 96 1 + 121 DIS_DIRECT_BOOT EFUSE_BLK0 97 1 + 122 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 98 1 + 123 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 99 1 + 124 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 100 1 + 125 UART_PRINT_CONTROL EFUSE_BLK0 101 2 + 126 FORCE_SEND_RESUME EFUSE_BLK0 103 1 + 127 SECURE_VERSION EFUSE_BLK0 104 16 + 128 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 120 1 + 129 HYS_EN_PAD EFUSE_BLK0 121 1 + 130 XTS_DPA_CLK_ENABLE EFUSE_BLK0 122 1 + 131 XTS_DPA_PSEUDO_LEVEL EFUSE_BLK0 123 2 + 132 DIS_WIFI6 EFUSE_BLK0 125 1 + 133 ECDSA_DISABLE_P192 EFUSE_BLK0 126 1 + 134 ECC_FORCE_CONST_TIME EFUSE_BLK0 127 1 + 135 BOOTLOADER_ANTI_ROLLBACK_SECURE_VERSION EFUSE_BLK0 128 4 + 136 BOOTLOADER_ANTI_ROLLBACK_EN EFUSE_BLK0 132 1 + 137 BOOTLOADER_ANTI_ROLLBACK_UPDATE_IN_ROM EFUSE_BLK0 133 1 + 138 RECOVERY_BOOTLOADER_FLASH_SECTOR EFUSE_BLK0 134 12 + 139 REPEAT_DATA4 EFUSE_BLK0 160 24 + 140 MAC EFUSE_BLK1 0 8 + 141 MAC EFUSE_BLK1 8 8 + 142 MAC EFUSE_BLK1 16 8 + 143 MAC EFUSE_BLK1 24 8 + 144 MAC EFUSE_BLK1 32 8 + 145 MAC EFUSE_BLK1 40 8 + 146 WAFER_VERSION_MINOR EFUSE_BLK1 64 4 + 147 WAFER_VERSION_MAJOR EFUSE_BLK1 68 2 + 148 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK1 70 1 + 149 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK1 71 1 + 150 BLK_VERSION_MINOR EFUSE_BLK1 72 3 + 151 BLK_VERSION_MAJOR EFUSE_BLK1 75 2 + 152 FLASH_CAP EFUSE_BLK1 77 3 + 153 FLASH_VENDOR EFUSE_BLK1 80 3 + 154 PSRAM_CAP EFUSE_BLK1 83 3 + 155 PSRAM_VENDOR EFUSE_BLK1 86 2 + 156 TEMP EFUSE_BLK1 88 2 + 157 PKG_VERSION EFUSE_BLK1 90 3 + 158 ACTIVE_HP_DBIAS EFUSE_BLK1 93 4 + 159 ACTIVE_LP_DBIAS EFUSE_BLK1 97 4 + 160 LSLP_HP_DBG EFUSE_BLK1 101 2 + 161 LSLP_HP_DBIAS EFUSE_BLK1 103 4 + 162 DSLP_LP_DBG EFUSE_BLK1 107 4 + 163 DSLP_LP_DBIAS EFUSE_BLK1 111 5 + 164 LP_HP_DBIAS_VOL_GAP EFUSE_BLK1 116 5 + 165 SYS_DATA_PART2 EFUSE_BLK10 0 256 + 166 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128 + 167 TEMPERATURE_SENSOR EFUSE_BLK2 128 9 + 168 OCODE EFUSE_BLK2 137 8 + 169 ADC1_AVE_INIT_CODE_ATTEN0 EFUSE_BLK2 145 10 + 170 ADC1_AVE_INIT_CODE_ATTEN1 EFUSE_BLK2 155 10 + 171 ADC1_AVE_INIT_CODE_ATTEN2 EFUSE_BLK2 165 10 + 172 ADC1_AVE_INIT_CODE_ATTEN3 EFUSE_BLK2 175 10 + 173 ADC1_HI_DOUT_ATTEN0 EFUSE_BLK2 185 10 + 174 ADC1_HI_DOUT_ATTEN1 EFUSE_BLK2 195 10 + 175 ADC1_HI_DOUT_ATTEN2 EFUSE_BLK2 205 10 + 176 ADC1_HI_DOUT_ATTEN3 EFUSE_BLK2 215 10 + 177 ADC1_CH0_ATTEN0_INITCODE_DIFF EFUSE_BLK2 225 4 + 178 ADC1_CH1_ATTEN0_INITCODE_DIFF EFUSE_BLK2 229 4 + 179 ADC1_CH2_ATTEN0_INITCODE_DIFF EFUSE_BLK2 233 4 + 180 ADC1_CH3_ATTEN0_INITCODE_DIFF EFUSE_BLK2 237 4 + 181 USER_DATA EFUSE_BLK3 0 256 + 182 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48 + 183 KEY0 EFUSE_BLK4 0 256 + 184 KEY1 EFUSE_BLK5 0 256 + 185 KEY2 EFUSE_BLK6 0 256 + 186 KEY3 EFUSE_BLK7 0 256 + 187 KEY4 EFUSE_BLK8 0 256 + 188 KEY5 EFUSE_BLK9 0 256 Used bits in efuse table: EFUSE_BLK0 - [0 31] [0 0] [2 2] ... [20 21] [21 22] [22 30] [30 30] [32 38] [32 40] [42 46] [51 60] [64 127] + [0 31] [0 0] [2 2] ... [64 145] [160 183] + EFUSE_BLK1 - [0 47] + [0 47] [64 120] + EFUSE_BLK10 [0 255] + EFUSE_BLK2 - [0 255] + [0 240] + EFUSE_BLK3 [0 255] [200 247] + EFUSE_BLK4 [0 255] + EFUSE_BLK5 [0 255] + EFUSE_BLK6 [0 255] + EFUSE_BLK7 [0 255] + EFUSE_BLK8 [0 255] + EFUSE_BLK9 [0 255] + Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)