Chapter 2. API Reference
• ESP_ERR_EFUSE_REPEATED_PROG: Error repeated programming of programmed bits is
strictly forbidden.
• ESP_ERR_CODING: Error range of data does not match the coding scheme.
Parameters
• [in] num_digest: The number of digest in range 0..2
bool esp_efuse_get_write_protect_of_digest_revoke(unsigned num_digest)
Returns a write protection of the Secure Boot public key digest revocation bit.
Return True: The revocation bit is write protected. False: The revocation bit is writeable.
Parameters
• [in] num_digest: The number of digest in range 0..2
esp_err_t
esp_efuse_set_write_protect_of_digest_revoke(unsigned num_digest)
Sets a write protection of the Secure Boot public key digest revocation bit.
Return
• ESP_OK: Successful.
• ESP_ERR_INVALID_ARG: Error in the passed arguments.
• ESP_ERR_EFUSE_REPEATED_PROG: Error repeated programming of programmed bits is
strictly forbidden.
• ESP_ERR_CODING: Error range of data does not match the coding scheme.
Parameters
• [in] num_digest: The number of digest in range 0..2
esp_err_t
esp_efuse_write_key(esp_efuse_block_t block, esp_efuse_purpose_t purpose, const void
Program a block of key data to an efuse block.
The burn of a key, protection bits, and a purpose happens in batch mode.
Return
• ESP_OK: Successful.
• ESP_ERR_INVALID_ARG: Error in the passed arguments.
• ESP_ERR_INVALID_STATE: Error in efuses state, unused block not found.
• ESP_ERR_EFUSE_REPEATED_PROG: Error repeated programming of programmed bits is
strictly forbidden.
• ESP_ERR_CODING: Error range of data does not match the coding scheme.
Parameters
• [in]
block: Block to read purpose for.
EFUSE_BLK_KEY_MAX. Key block must be unused (esp_efuse_key_block_unused).
• [in] purpose: Purpose to set for this key. Purpose must be already unset.
• [in] key: Pointer to data to write.
• [in] key_size_bytes: Bytes length of data to write.
esp_err_t
esp_efuse_write_keys(const esp_efuse_purpose_t purposes[], uint8_t keys[][32], un-
Program keys to unused efuse blocks.
The burn of keys, protection bits, and purposes happens in batch mode.
Return
• ESP_OK: Successful.
• ESP_ERR_INVALID_ARG: Error in the passed arguments.
• ESP_ERR_INVALID_STATE: Error in efuses state, unused block not found.
• ESP_ERR_NOT_ENOUGH_UNUSED_KEY_BLOCKS: Error not enough unused key blocks
available
• ESP_ERR_EFUSE_REPEATED_PROG: Error repeated programming of programmed bits is
strictly forbidden.
• ESP_ERR_CODING: Error range of data does not match the coding scheme.
Parameters
• [in] purposes: Array of purposes (purpose[number_of_keys]).
• [in] keys: Array of keys (uint8_t keys[number_of_keys][32]). Each key is 32 bytes long.
Espressif Systems
*key, size_t key_size_bytes)
signed number_of_keys)
823
Submit Document Feedback
Must be in range EFUSE_BLK_KEY0 to
Release v4.4
Need help?
Do you have a question about the ESP32-S2 and is the answer not in the manual?
Questions and answers