kopia lustrzana https://github.com/espressif/esp-idf
feat(efuse): Support eFuses and doc for ESP32P4
rodzic
2557513fb5
commit
b29f6d5a40
|
@ -73,6 +73,7 @@ typedef enum {
|
|||
ESP_EFUSE_KEY_PURPOSE_SECURE_BOOT_DIGEST0 = 9, /**< SECURE_BOOT_DIGEST0 (Secure Boot key digest) */
|
||||
ESP_EFUSE_KEY_PURPOSE_SECURE_BOOT_DIGEST1 = 10, /**< SECURE_BOOT_DIGEST1 (Secure Boot key digest) */
|
||||
ESP_EFUSE_KEY_PURPOSE_SECURE_BOOT_DIGEST2 = 11, /**< SECURE_BOOT_DIGEST2 (Secure Boot key digest) */
|
||||
ESP_EFUSE_KEY_PURPOSE_KM_INIT_KEY = 12, /**< KM_INIT_KEY */
|
||||
ESP_EFUSE_KEY_PURPOSE_MAX, /**< MAX PURPOSE */
|
||||
} esp_efuse_purpose_t;
|
||||
|
||||
|
|
|
@ -305,6 +305,9 @@ esp_err_t esp_efuse_write_key(esp_efuse_block_t block, esp_efuse_purpose_t purpo
|
|||
#endif //#ifdef SOC_EFUSE_SUPPORT_XTS_AES_256_KEYS
|
||||
#if SOC_ECDSA_SUPPORTED
|
||||
purpose == ESP_EFUSE_KEY_PURPOSE_ECDSA_KEY ||
|
||||
#endif
|
||||
#if SOC_KEY_MANAGER_SUPPORTED
|
||||
purpose == ESP_EFUSE_KEY_PURPOSE_KM_INIT_KEY ||
|
||||
#endif
|
||||
purpose == ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_ALL ||
|
||||
purpose == ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_JTAG ||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
@ -290,7 +290,7 @@ TEST_CASE("Test esp_efuse_write_keys", "[efuse]")
|
|||
#else
|
||||
esp_efuse_purpose_t purpose1[BLOCKS_NEEDED1] = {
|
||||
ESP_EFUSE_KEY_PURPOSE_XTS_AES_128_KEY,
|
||||
ESP_EFUSE_KEY_PURPOSE_RESERVED
|
||||
ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_ALL
|
||||
};
|
||||
#endif
|
||||
uint8_t keys1[BLOCKS_NEEDED1][32] = {{0xEE}};
|
||||
|
@ -437,19 +437,24 @@ TEST_CASE("Test set_write_protect_of_digest_revoke", "[efuse]")
|
|||
TEST_ESP_OK(esp_efuse_set_write_protect_of_digest_revoke(2));
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_write_protect_of_digest_revoke(2));
|
||||
|
||||
#if CONFIG_EFUSE_VIRTUAL
|
||||
TEST_ESP_OK(esp_efuse_set_digest_revoke(0));
|
||||
TEST_ESP_OK(esp_efuse_set_digest_revoke(1));
|
||||
TEST_ESP_OK(esp_efuse_set_digest_revoke(2));
|
||||
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(0));
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(1));
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(2));
|
||||
#endif // CONFIG_EFUSE_VIRTUAL
|
||||
|
||||
#if CONFIG_EFUSE_FPGA_TEST && !CONFIG_EFUSE_VIRTUAL
|
||||
TEST_ESP_ERR(ESP_FAIL, esp_efuse_set_digest_revoke(0));
|
||||
TEST_ESP_ERR(ESP_FAIL, esp_efuse_set_digest_revoke(1));
|
||||
TEST_ESP_ERR(ESP_FAIL, esp_efuse_set_digest_revoke(2));
|
||||
// the write protection bits are set and the revocation bits will not be changed.
|
||||
TEST_ASSERT_FALSE(esp_efuse_get_digest_revoke(0));
|
||||
TEST_ASSERT_FALSE(esp_efuse_get_digest_revoke(1));
|
||||
TEST_ASSERT_FALSE(esp_efuse_get_digest_revoke(2));
|
||||
#else
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(0));
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(1));
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(2));
|
||||
#endif // CONFIG_EFUSE_FPGA_TEST && !CONFIG_EFUSE_VIRTUAL
|
||||
}
|
||||
#endif // SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY
|
||||
|
|
|
@ -27,7 +27,9 @@ extern "C" {
|
|||
|
||||
typedef enum {
|
||||
ETS_EFUSE_KEY_PURPOSE_USER = 0,
|
||||
ETS_EFUSE_KEY_PURPOSE_RESERVED = 1,
|
||||
ETS_EFUSE_KEY_PURPOSE_ECDSA_KEY = 1,
|
||||
ETS_EFUSE_KEY_PURPOSE_XTS_AES_256_KEY_1 = 2,
|
||||
ETS_EFUSE_KEY_PURPOSE_XTS_AES_256_KEY_2 = 3,
|
||||
ETS_EFUSE_KEY_PURPOSE_XTS_AES_128_KEY = 4,
|
||||
ETS_EFUSE_KEY_PURPOSE_HMAC_DOWN_ALL = 5,
|
||||
ETS_EFUSE_KEY_PURPOSE_HMAC_DOWN_JTAG = 6,
|
||||
|
@ -36,6 +38,7 @@ typedef enum {
|
|||
ETS_EFUSE_KEY_PURPOSE_SECURE_BOOT_DIGEST0 = 9,
|
||||
ETS_EFUSE_KEY_PURPOSE_SECURE_BOOT_DIGEST1 = 10,
|
||||
ETS_EFUSE_KEY_PURPOSE_SECURE_BOOT_DIGEST2 = 11,
|
||||
ETS_EFUSE_KEY_PURPOSE_KM_INIT_KEY = 12,
|
||||
ETS_EFUSE_KEY_PURPOSE_MAX,
|
||||
} ets_efuse_purpose_t;
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ IRAM_ATTR uint32_t efuse_hal_get_minor_chip_version(void)
|
|||
void efuse_hal_set_timing(uint32_t apb_freq_hz)
|
||||
{
|
||||
(void) apb_freq_hz;
|
||||
efuse_ll_set_pwr_off_num(0x190);
|
||||
/* keep timing settings by default */
|
||||
}
|
||||
|
||||
void efuse_hal_read(void)
|
||||
|
|
|
@ -18,8 +18,6 @@ extern "C" {
|
|||
|
||||
// Always inline these functions even no gcc optimization is applied.
|
||||
|
||||
//TODO: IDF-7549
|
||||
|
||||
/******************* eFuse fields *************************/
|
||||
|
||||
__attribute__((always_inline)) static inline uint32_t efuse_ll_get_flash_crypt_cnt(void)
|
||||
|
@ -67,7 +65,7 @@ __attribute__((always_inline)) static inline bool efuse_ll_get_disable_wafer_ver
|
|||
|
||||
__attribute__((always_inline)) static inline uint32_t efuse_ll_get_blk_version_major(void)
|
||||
{
|
||||
return EFUSE.rd_sys_part1_data4.val;
|
||||
return 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline)) static inline uint32_t efuse_ll_get_blk_version_minor(void)
|
||||
|
|
|
@ -166,8 +166,6 @@ api-reference/system/perfmon.rst
|
|||
api-reference/system/ulp-lp-core.rst
|
||||
api-reference/system/ulp.rst
|
||||
api-reference/system/esp_function_with_shared_stack.rst
|
||||
api-reference/system/efuse.rst
|
||||
api-reference/system/chip_revision.rst
|
||||
api-reference/system/ulp_instruction_set.rst
|
||||
api-reference/system/async_memcpy.rst
|
||||
api-reference/system/random.rst
|
||||
|
@ -183,10 +181,7 @@ api-reference/system/power_management.rst
|
|||
api-reference/system/mem_alloc.rst
|
||||
api-reference/system/misc_system_api.rst
|
||||
api-reference/system/bootloader_image_format.rst
|
||||
api-reference/system/inc/espefuse_summary_ESP32-P4.rst
|
||||
api-reference/system/inc/power_management_esp32p4.rst
|
||||
api-reference/system/inc/show-efuse-table_ESP32-P4.rst
|
||||
api-reference/system/inc/revisions_ESP32-P4.rst
|
||||
api-reference/system/heap_debug.rst
|
||||
api-reference/system/mm.rst
|
||||
api-reference/system/ipc.rst
|
||||
|
|
|
@ -1,3 +1,200 @@
|
|||
.. code-block:: none
|
||||
|
||||
TO BE UPDATED IDF-7759
|
||||
espefuse.py -p PORT summary
|
||||
|
||||
espefuse.py v4.7.dev1
|
||||
Connecting....
|
||||
Detecting chip type... ESP32-P4
|
||||
|
||||
=== Run "summary" command ===
|
||||
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
|
||||
----------------------------------------------------------------------------------------
|
||||
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)
|
||||
POWERGLITCH_EN (BLOCK0) Represents whether power glitch function is enable = False R/W (0b0)
|
||||
d. 1: enabled. 0: disabled
|
||||
DIS_TWAI (BLOCK0) Represents whether TWAI function is disabled or en = False R/W (0b0)
|
||||
abled. 1: disabled. 0: enabled
|
||||
KM_HUK_GEN_STATE_LOW (BLOCK0) Set this bit to control validation of HUK generate = 0 R/W (0b000000)
|
||||
mode. Odd of 1 is invalid; even of 1 is valid
|
||||
KM_HUK_GEN_STATE_HIGH (BLOCK0) Set this bit to control validation of HUK generate = 0 R/W (0b000)
|
||||
mode. Odd of 1 is invalid; even of 1 is valid
|
||||
KM_RND_SWITCH_CYCLE (BLOCK0) Set bits to control key manager random number swit = 0 R/W (0b00)
|
||||
ch cycle. 0: control by register. 1: 8 km clk cycl
|
||||
es. 2: 16 km cycles. 3: 32 km cycles
|
||||
KM_DEPLOY_ONLY_ONCE (BLOCK0) Set each bit to control whether corresponding key = 0 R/W (0x0)
|
||||
can only be deployed once. 1 is true; 0 is false.
|
||||
Bit0: ecdsa. Bit1: xts. Bit2: hmac. Bit3: ds
|
||||
DIS_DIRECT_BOOT (BLOCK0) Represents whether direct boot mode is disabled or = False R/W (0b0)
|
||||
enabled. 1: disabled. 0: enabled
|
||||
UART_PRINT_CONTROL (BLOCK0) Represents the type of UART printing. 00: force en = 0 R/W (0b00)
|
||||
able printing. 01: enable printing when GPIO8 is r
|
||||
eset at low level. 10: enable printing when GPIO8
|
||||
is reset at high level. 11: force disable printing
|
||||
HYS_EN_PAD (BLOCK0) Represents whether the hysteresis function of corr = False R/W (0b0)
|
||||
esponding PAD is enabled. 1: enabled. 0:disabled
|
||||
DCDC_VSET (BLOCK0) Set the dcdc voltage default = 0 R/W (0b00000)
|
||||
PXA0_TIEH_SEL_0 (BLOCK0) TBD = 0 R/W (0b00)
|
||||
PXA0_TIEH_SEL_1 (BLOCK0) TBD = 0 R/W (0b00)
|
||||
PXA0_TIEH_SEL_2 (BLOCK0) TBD = 0 R/W (0b00)
|
||||
PXA0_TIEH_SEL_3 (BLOCK0) TBD = 0 R/W (0b00)
|
||||
KM_DISABLE_DEPLOY_MODE (BLOCK0) TBD = 0 R/W (0x0)
|
||||
HP_PWR_SRC_SEL (BLOCK0) HP system power source select. 0:LDO. 1: DCDC = False R/W (0b0)
|
||||
DCDC_VSET_EN (BLOCK0) Select dcdc vset use efuse_dcdc_vset = False R/W (0b0)
|
||||
DIS_SWD (BLOCK0) Set this bit to disable super-watchdog = False R/W (0b0)
|
||||
BLOCK_SYS_DATA1 (BLOCK2) System data part 1
|
||||
= 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_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
|
||||
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
|
||||
|
||||
Flash fuses:
|
||||
FLASH_TYPE (BLOCK0) The type of interfaced flash. 0: four data lines; = False R/W (0b0)
|
||||
1: eight data lines
|
||||
FLASH_PAGE_SIZE (BLOCK0) Set flash page size = 0 R/W (0b00)
|
||||
FLASH_ECC_EN (BLOCK0) Set this bit to enable ecc for flash boot = False R/W (0b0)
|
||||
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 the programmed value. Otherwise; the
|
||||
waiting 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. 1: forced. 0:not for
|
||||
ced
|
||||
|
||||
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
|
||||
SOFT_DIS_JTAG (BLOCK0) Represents whether JTAG is disabled in soft way. O = 0 R/W (0b000)
|
||||
dd number: disabled. Even number: enabled
|
||||
DIS_PAD_JTAG (BLOCK0) Represents whether JTAG is disabled in the hard wa = False R/W (0b0)
|
||||
y(permanently). 1: disabled. 0: enabled
|
||||
|
||||
Mac fuses:
|
||||
MAC (BLOCK1) MAC address
|
||||
= 00:00:00:00:00:00 (OK) R/W
|
||||
MAC_EXT (BLOCK1) Stores the extended bits of MAC address = 00:00 (OK) R/W
|
||||
MAC_EUI64 (BLOCK1) calc MAC_EUI64 = MAC[0]:MAC[1]:MAC[2]:MAC_EXT[0]:M
|
||||
= 00:00:00:00:00:00:00:00 (OK) R/W
|
||||
AC_EXT[1]:MAC[3]:MAC[4]:MAC[5]
|
||||
|
||||
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: disab
|
||||
led. 0: enabled
|
||||
SPI_DOWNLOAD_MSPI_DIS (BLOCK0) Set this bit to disable accessing MSPI flash/MSPI = False R/W (0b0)
|
||||
ram by SYS AXI matrix during boot_mode_download
|
||||
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: disabl
|
||||
ed. 0: enabled
|
||||
FORCE_USE_KEY_MANAGER_KEY (BLOCK0) Set each bit to control whether corresponding key = 0 R/W (0x0)
|
||||
must come from key manager.. 1 is true; 0 is false
|
||||
. Bit0: ecdsa. Bit1: xts. Bit2: hmac. Bit3: ds
|
||||
FORCE_DISABLE_SW_INIT_KEY (BLOCK0) Set this bit to disable software written init key; = False R/W (0b0)
|
||||
and force use efuse_init_key
|
||||
XTS_KEY_LENGTH_256 (BLOCK0) Set this bit to configure flash encryption use xts = False R/W (0b0)
|
||||
-128 key; else use xts-256 key
|
||||
SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000)
|
||||
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)
|
||||
KEY_PURPOSE_0 (BLOCK0) Represents the purpose of Key0 = USER R/W (0x0)
|
||||
KEY_PURPOSE_1 (BLOCK0) Represents the purpose of Key1 = USER R/W (0x0)
|
||||
KEY_PURPOSE_2 (BLOCK0) Represents the purpose of Key2 = USER R/W (0x0)
|
||||
KEY_PURPOSE_3 (BLOCK0) Represents the purpose of Key3 = USER R/W (0x0)
|
||||
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
|
||||
ECDSA_ENABLE_SOFT_K (BLOCK0) Represents whether hardware random number k is for = False R/W (0b0)
|
||||
ced used in ESDCA. 1: force used. 0: not force use
|
||||
d
|
||||
CRYPT_DPA_ENABLE (BLOCK0) Represents whether anti-dpa attack is enabled. 1:e = False R/W (0b0)
|
||||
nabled. 0: disabled
|
||||
SECURE_BOOT_EN (BLOCK0) Represents whether secure boot is enabled or disab = False R/W (0b0)
|
||||
led. 1: enabled. 0: disabled
|
||||
SECURE_BOOT_AGGRESSIVE_REVOKE (BLOCK0) Represents whether revoking aggressive secure boot = False R/W (0b0)
|
||||
is enabled or disabled. 1: enabled. 0: disabled
|
||||
DIS_DOWNLOAD_MODE (BLOCK0) Represents whether Download mode is disabled or en = False R/W (0b0)
|
||||
abled. 1: disabled. 0: enabled
|
||||
LOCK_KM_KEY (BLOCK0) TBD = False R/W (0b0)
|
||||
ENABLE_SECURITY_DOWNLOAD (BLOCK0) Represents whether security download is enabled or = False R/W (0b0)
|
||||
disabled. 1: enabled. 0: disabled
|
||||
SECURE_VERSION (BLOCK0) Represents the version used by ESP-IDF anti-rollba = 0 R/W (0x0000)
|
||||
ck feature
|
||||
SECURE_BOOT_DISABLE_FAST_WAKE (BLOCK0) Represents whether FAST VERIFY ON WAKE is disabled = False R/W (0b0)
|
||||
or enabled when Secure Boot is enabled. 1: disabl
|
||||
ed. 0: enabled
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
Usb fuses:
|
||||
USB_DEVICE_EXCHG_PINS (BLOCK0) Enable usb device exchange pins of D+ and D- = False R/W (0b0)
|
||||
USB_OTG11_EXCHG_PINS (BLOCK0) Enable usb otg11 exchange pins of D+ and D- = False R/W (0b0)
|
||||
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: enable
|
||||
d
|
||||
USB_PHY_SEL (BLOCK0) TBD = False R/W (0b0)
|
||||
DIS_USB_OTG_DOWNLOAD_MODE (BLOCK0) Set this bit to disable download via USB-OTG = False R/W (0b0)
|
||||
DIS_USB_SERIAL_JTAG_ROM_PRINT (BLOCK0) Represents whether print from USB-Serial-JTAG is d = False R/W (0b0)
|
||||
isabled or enabled. 1: disabled. 0: enabled
|
||||
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: disabled. 0: ena
|
||||
bled
|
||||
|
||||
Wdt fuses:
|
||||
WDT_DELAY_SEL (BLOCK0) Represents whether RTC watchdog timeout threshold = 0 R/W (0b00)
|
||||
is selected at startup. 1: selected. 0: not select
|
||||
ed
|
||||
DIS_WDT (BLOCK0) Set this bit to disable watch dog = False R/W (0b0)
|
||||
|
||||
|
||||
To get a dump for all eFuse registers.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
espefuse.py v4.7.dev1
|
||||
Connecting....
|
||||
Detecting chip type... ESP32-P4
|
||||
BLOCK0 ( ) [0 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
MAC_SPI_8M_0 (BLOCK1 ) [1 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_SYS_DATA (BLOCK2 ) [2 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_USR_DATA (BLOCK3 ) [3 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_KEY0 (BLOCK4 ) [4 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_KEY1 (BLOCK5 ) [5 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_KEY2 (BLOCK6 ) [6 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_KEY3 (BLOCK7 ) [7 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_KEY4 (BLOCK8 ) [8 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_KEY5 (BLOCK9 ) [9 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK_SYS_DATA2 (BLOCK10 ) [10] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
BLOCK0 ( ) [0 ] err__regs: 00000000 00000000 00000000 00000000 00000000 00000000
|
||||
EFUSE_RD_RS_ERR0_REG 0x00000000
|
||||
EFUSE_RD_RS_ERR1_REG 0x00000000
|
||||
=== Run "dump" command ===
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
+--------+------------------------+
|
||||
| ECO | Revision (Major.Minor) |
|
||||
+--------+------------------------+
|
||||
| ECO0 | TO BE UPDATED IDF-7759 |
|
||||
| ECO0 | v0.0 |
|
||||
+--------+------------------------+
|
||||
|
|
|
@ -1,4 +1,157 @@
|
|||
|
||||
.. code-block:: none
|
||||
|
||||
TO BE UPDATED IDF-7759
|
||||
$ ./efuse_table_gen.py -t IDF_TARGET_PATH_NAME {IDF_TARGET_PATH_NAME}/esp_efuse_table.csv --info
|
||||
|
||||
Max number of bits in BLK 256
|
||||
Parsing efuse CSV input file ../esp32p4/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.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
|
||||
4 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
|
||||
5 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
|
||||
6 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
|
||||
7 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
|
||||
8 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
|
||||
9 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
|
||||
10 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
|
||||
11 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
|
||||
12 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
|
||||
13 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
|
||||
14 WR_DIS.BLK1 EFUSE_BLK0 20 1
|
||||
15 WR_DIS.MAC EFUSE_BLK0 20 1
|
||||
16 WR_DIS.MAC_EXT EFUSE_BLK0 20 1
|
||||
17 WR_DIS.BLOCK_SYS_DATA1 EFUSE_BLK0 21 1
|
||||
18 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
|
||||
19 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
|
||||
20 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
|
||||
21 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
|
||||
22 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
|
||||
23 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
|
||||
24 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
|
||||
25 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
|
||||
26 RD_DIS EFUSE_BLK0 32 7
|
||||
27 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
|
||||
28 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
|
||||
29 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
|
||||
30 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
|
||||
31 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
|
||||
32 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
|
||||
33 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
|
||||
34 USB_DEVICE_EXCHG_PINS EFUSE_BLK0 39 1
|
||||
35 USB_OTG11_EXCHG_PINS EFUSE_BLK0 40 1
|
||||
36 DIS_USB_JTAG EFUSE_BLK0 41 1
|
||||
37 POWERGLITCH_EN EFUSE_BLK0 42 1
|
||||
38 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
|
||||
39 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 45 1
|
||||
40 DIS_TWAI EFUSE_BLK0 46 1
|
||||
41 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
|
||||
42 SOFT_DIS_JTAG EFUSE_BLK0 48 3
|
||||
43 DIS_PAD_JTAG EFUSE_BLK0 51 1
|
||||
44 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
|
||||
45 USB_PHY_SEL EFUSE_BLK0 57 1
|
||||
46 KM_HUK_GEN_STATE_LOW EFUSE_BLK0 58 6
|
||||
47 KM_HUK_GEN_STATE_HIGH EFUSE_BLK0 64 3
|
||||
48 KM_RND_SWITCH_CYCLE EFUSE_BLK0 67 2
|
||||
49 KM_DEPLOY_ONLY_ONCE EFUSE_BLK0 69 4
|
||||
50 FORCE_USE_KEY_MANAGER_KEY EFUSE_BLK0 73 4
|
||||
51 FORCE_DISABLE_SW_INIT_KEY EFUSE_BLK0 77 1
|
||||
52 XTS_KEY_LENGTH_256 EFUSE_BLK0 78 1
|
||||
53 WDT_DELAY_SEL EFUSE_BLK0 80 2
|
||||
54 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
|
||||
55 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
|
||||
56 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
|
||||
57 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
|
||||
58 KEY_PURPOSE_0 EFUSE_BLK0 88 4
|
||||
59 KEY_PURPOSE_1 EFUSE_BLK0 92 4
|
||||
60 KEY_PURPOSE_2 EFUSE_BLK0 96 4
|
||||
61 KEY_PURPOSE_3 EFUSE_BLK0 100 4
|
||||
62 KEY_PURPOSE_4 EFUSE_BLK0 104 4
|
||||
63 KEY_PURPOSE_5 EFUSE_BLK0 108 4
|
||||
64 SEC_DPA_LEVEL EFUSE_BLK0 112 2
|
||||
65 ECDSA_ENABLE_SOFT_K EFUSE_BLK0 114 1
|
||||
66 CRYPT_DPA_ENABLE EFUSE_BLK0 115 1
|
||||
67 SECURE_BOOT_EN EFUSE_BLK0 116 1
|
||||
68 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
|
||||
69 FLASH_TYPE EFUSE_BLK0 119 1
|
||||
70 FLASH_PAGE_SIZE EFUSE_BLK0 120 2
|
||||
71 FLASH_ECC_EN EFUSE_BLK0 122 1
|
||||
72 DIS_USB_OTG_DOWNLOAD_MODE EFUSE_BLK0 123 1
|
||||
73 FLASH_TPUW EFUSE_BLK0 124 4
|
||||
74 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
|
||||
75 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
|
||||
76 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
|
||||
77 LOCK_KM_KEY EFUSE_BLK0 131 1
|
||||
78 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
|
||||
79 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
|
||||
80 UART_PRINT_CONTROL EFUSE_BLK0 134 2
|
||||
81 FORCE_SEND_RESUME EFUSE_BLK0 136 1
|
||||
82 SECURE_VERSION EFUSE_BLK0 137 16
|
||||
83 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 153 1
|
||||
84 HYS_EN_PAD EFUSE_BLK0 154 1
|
||||
85 DCDC_VSET EFUSE_BLK0 155 5
|
||||
86 PXA0_TIEH_SEL_0 EFUSE_BLK0 160 2
|
||||
87 PXA0_TIEH_SEL_1 EFUSE_BLK0 162 2
|
||||
88 PXA0_TIEH_SEL_2 EFUSE_BLK0 164 2
|
||||
89 PXA0_TIEH_SEL_3 EFUSE_BLK0 166 2
|
||||
90 KM_DISABLE_DEPLOY_MODE EFUSE_BLK0 168 4
|
||||
91 HP_PWR_SRC_SEL EFUSE_BLK0 178 1
|
||||
92 DCDC_VSET_EN EFUSE_BLK0 179 1
|
||||
93 DIS_WDT EFUSE_BLK0 180 1
|
||||
94 DIS_SWD EFUSE_BLK0 181 1
|
||||
95 MAC EFUSE_BLK1 0 8
|
||||
96 MAC EFUSE_BLK1 8 8
|
||||
97 MAC EFUSE_BLK1 16 8
|
||||
98 MAC EFUSE_BLK1 24 8
|
||||
99 MAC EFUSE_BLK1 32 8
|
||||
100 MAC EFUSE_BLK1 40 8
|
||||
101 MAC_EXT EFUSE_BLK1 48 8
|
||||
102 MAC_EXT EFUSE_BLK1 56 8
|
||||
103 SYS_DATA_PART2 EFUSE_BLK10 0 256
|
||||
104 BLOCK_SYS_DATA1 EFUSE_BLK2 0 256
|
||||
105 USER_DATA EFUSE_BLK3 0 256
|
||||
106 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
|
||||
107 KEY0 EFUSE_BLK4 0 256
|
||||
108 KEY1 EFUSE_BLK5 0 256
|
||||
109 KEY2 EFUSE_BLK6 0 256
|
||||
110 KEY3 EFUSE_BLK7 0 256
|
||||
111 KEY4 EFUSE_BLK8 0 256
|
||||
112 KEY5 EFUSE_BLK9 0 256
|
||||
|
||||
Used bits in efuse table:
|
||||
EFUSE_BLK0
|
||||
[0 31] [0 0] [4 13] [15 15] [20 20] [20 20] [20 29] [32 38] [32 42] [44 52] [57 78] [80 117] [119 171] [178 181]
|
||||
|
||||
EFUSE_BLK1
|
||||
[0 63]
|
||||
|
||||
EFUSE_BLK10
|
||||
[0 255]
|
||||
|
||||
EFUSE_BLK2
|
||||
[0 255]
|
||||
|
||||
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)
|
||||
|
|
|
@ -1,3 +1 @@
|
|||
.. code-block:: none
|
||||
|
||||
TO BE UPDATED IDF-7759
|
||||
.. include:: ../../../en/api-reference/system/inc/espefuse_summary_ESP32-P4.rst
|
|
@ -1,6 +1 @@
|
|||
|
||||
+--------+------------------------+
|
||||
| ECO | Revision (Major.Minor) |
|
||||
+--------+------------------------+
|
||||
| ECO0 | TO BE UPDATED IDF-7759 |
|
||||
+--------+------------------------+
|
||||
.. include:: ../../../en/api-reference/system/inc/revisions_ESP32-P4.rst
|
||||
|
|
|
@ -1,4 +1 @@
|
|||
|
||||
.. code-block:: none
|
||||
|
||||
TO BE UPDATED IDF-7759
|
||||
.. include:: ../../../en/api-reference/system/inc/show-efuse-table_ESP32-P4.rst
|
||||
|
|
Ładowanie…
Reference in New Issue