Chapter 2. API Reference
• argc: number of arguments
• argv: array with argc entries, each pointing to a zero-terminated string argument
typedef struct
esp_console_repl_s
Type defined for console REPL.
2.6.5 eFuse Manager
Introduction
The eFuse Manager library is designed to structure access to eFuse bits and make using these easy. This library
operates eFuse bits by a structure name which is assigned in eFuse table. This sections introduces some concepts
used by eFuse Manager.
Hardware description
The ESP32-S2 has a number of eFuses which can store system and user parameters. Each eFuse is a one-bit field
which can be programmed to 1 after which it cannot be reverted back to 0. Some of system parameters are using
these eFuse bits directly by hardware modules and have special place (for example EFUSE_BLK0).
For more details, see ESP32-S2 Technical Reference Manual > eFuse Controller (eFuse) [PDF]. Some eFuse bits are
available for user applications.
ESP32-S2 has 11 eFuse blocks each of the size of 256 bits (not all bits are available):
• EFUSE_BLK0 is used entirely for system purposes;
• EFUSE_BLK1 is used entirely for system purposes;
• EFUSE_BLK2 is used entirely for system purposes;
• EFUSE_BLK3 or EFUSE_BLK_USER_DATA can be used for user purposes;
• EFUSE_BLK4 or EFUSE_BLK_KEY0 can be used as key (for secure_boot or flash_encryption) or for user
purposes;
• EFUSE_BLK5 or EFUSE_BLK_KEY1 can be used as key (for secure_boot or flash_encryption) or for user
purposes;
• EFUSE_BLK6 or EFUSE_BLK_KEY2 can be used as key (for secure_boot or flash_encryption) or for user
purposes;
• EFUSE_BLK7 or EFUSE_BLK_KEY3 can be used as key (for secure_boot or flash_encryption) or for user
purposes;
• EFUSE_BLK8 or EFUSE_BLK_KEY4 can be used as key (for secure_boot or flash_encryption) or for user
purposes;
• EFUSE_BLK9 or EFUSE_BLK_KEY5 can be used as key (for secure_boot or flash_encryption) or for user
purposes;
• EFUSE_BLK10 or EFUSE_BLK_SYS_DATA_PART2 is reseved for system purposes.
Each block is divided into 8 32-bits registers.
eFuse Manager component
The component has API functions for reading and writing fields. Access to the fields is carried out through the
structures that describe the location of the eFuse bits in the blocks. The component provides the ability to form fields
of any length and from any number of individual bits. The description of the fields is made in a CSV file in a table
form. To generate from a tabular form (CSV file) in the C-source uses the tool efuse_table_gen.py. The tool checks
the CSV file for uniqueness of field names and bit intersection, in case of using a custom file from the user's project
directory, the utility will check with the common CSV file.
CSV files:
• common (esp_efuse_table.csv) - contains eFuse fields which are used inside the IDF. C-source generation should
be done manually when changing this file (run command idf.py efuse-common-table). Note that
changes in this file can lead to incorrect operation.
Espressif Systems
esp_console_repl_t
805
Submit Document Feedback
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