Available on crate feature
unstable
only.Expand description
§Stability
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
§Reading of eFuses (ESP32-S2)
§Overview
The efuse
module provides functionality for reading eFuse data
from the ESP32-S2
chip, allowing access to various chip-specific
information such as:
- MAC address
- core count
- CPU frequency
- chip type
and more. It is useful for retrieving chip-specific configuration and identification data during runtime.
The Efuse
struct represents the eFuse peripheral and is responsible for
reading various eFuse fields and values.
§Examples
§Read data from the eFuse storage.
let mac_address = Efuse::read_base_mac_address();
println!(
"MAC: {:#X}:{:#X}:{:#X}:{:#X}:{:#X}:{:#X}",
mac_address[0],
mac_address[1],
mac_address[2],
mac_address[3],
mac_address[4],
mac_address[5]
);
println!("MAC address {:02x?}", Efuse::mac_address());
println!("Flash Encryption {:?}", Efuse::flash_encryption());
Structs§
- Efuse
- A struct representing the eFuse functionality of the chip.
Constants§
- ADC_
CALIB - 4 bit of ADC calibration
- BLK_
VERSION_ MAJOR - BLK_VERSION_MAJOR
- BLK_
VERSION_ MINOR - BLK_VERSION_MINOR of BLOCK2
- BLOC
K0_ VERSION - BLOCK0 efuse version
- BLOCK_
KEY0 - Key0 or user data
- BLOCK_
KEY1 - Key1 or user data
- BLOCK_
KEY2 - Key2 or user data
- BLOCK_
KEY3 - Key3 or user data
- BLOCK_
KEY4 - Key4 or user data
- BLOCK_
KEY5 - Key5 or user data
- BLOCK_
SYS_ DATA2 - System data part 2 (reserved)
- BLOCK_
USR_ DATA - User data
- CUSTOM_
MAC - Custom MAC
- DISABLE_
BLK_ VERSION_ MAJOR - Disables check of blk version major
- DISABLE_
WAFER_ VERSION_ MAJOR - Disables check of wafer version major
- DIS_
BOOT_ REMAP - Disables capability to Remap RAM to ROM address space
- DIS_
DCACHE - Set this bit to disable Dcache
- DIS_
DOWNLOAD_ DCACHE - Disables Dcache when SoC is in Download mode
- DIS_
DOWNLOAD_ ICACHE - Disables Icache when SoC is in Download mode
- DIS_
DOWNLOAD_ MANUAL_ ENCRYPT - Disables flash encryption when in download boot modes
- DIS_
DOWNLOAD_ MODE - Set this bit to disable all download boot modes
- DIS_
FORCE_ DOWNLOAD - Set this bit to disable the function that forces chip into download mode
- DIS_
ICACHE - Set this bit to disable Icache
- DIS_
LEGACY_ SPI_ BOOT - Set this bit to disable Legacy SPI boot mode
- DIS_
RTC_ RAM_ BOOT - Reserved
- DIS_
TWAI - Set this bit to disable the TWAI Controller function
- DIS_USB
- Set this bit to disable USB OTG function
- DIS_
USB_ DOWNLOAD_ MODE - Set this bit to disable use of USB OTG in UART download boot mode
- ENABLE_
SECURITY_ DOWNLOAD - Set this bit to enable secure UART download mode (read/write flash only)
- FLASH_
TPUW - Configures flash startup delay after SoC power-up; in unit of (ms/2). When the value is 15; delay is 7.5 ms
- FLASH_
TYPE - SPI flash type
- FLASH_
VERSION - Flash version
- FORCE_
SEND_ RESUME - If set; forces ROM code to send an SPI flash resume command during SPI boot
- HARD_
DIS_ JTAG - Hardware disables JTAG permanently
- KEY_
PURPOSE_ 0 - Purpose of KEY0
- KEY_
PURPOSE_ 1 - Purpose of KEY1
- KEY_
PURPOSE_ 2 - Purpose of KEY2
- KEY_
PURPOSE_ 3 - Purpose of KEY3
- KEY_
PURPOSE_ 4 - Purpose of KEY4
- KEY_
PURPOSE_ 5 - Purpose of KEY5
- KEY_
PURPOSE_ 6 - Purpose of KEY6
- MAC0
- MAC address
- MAC1
- MAC address
- OPTIONAL_
UNIQUE_ ID - Optional unique 128-bit ID
- PIN_
POWER_ SELECTION - Set default power supply for GPIO33-GPIO37; set when SPI flash is initialized
- PKG_
VERSION - Package version
- PSRAM_
VERSION - PSRAM version
- RD_DIS
- Disable reading from BlOCK4-10
- RESERVED_
0_ 162 - reserved
- RESERVED_
1_ 123 - reserved
- RESERVED_
1_ 135 - reserved
- RESERVED_
3_ 192 - reserved
- RESERVED_
3_ 248 - reserved
- RPT4_
RESERVE D1 - Reserved (used for four backups method)
- RPT4_
RESERVE D2 - Reserved (used for four backups method)
- RPT4_
RESERVE D3 - Reserved (used for four backups method)
- RPT4_
RESERVE D5 - Reserved (used for four backups method)
- RTCCALIB_
V1IDX_ A10H - RTCCALIB_
V1IDX_ A10L - RTCCALIB_
V1IDX_ A11H - RTCCALIB_
V1IDX_ A11L - RTCCALIB_
V1IDX_ A12H - RTCCALIB_
V1IDX_ A12L - RTCCALIB_
V1IDX_ A13H - RTCCALIB_
V1IDX_ A13L - RTCCALIB_
V1IDX_ A20H - RTCCALIB_
V1IDX_ A20L - RTCCALIB_
V1IDX_ A21H - RTCCALIB_
V1IDX_ A21L - RTCCALIB_
V1IDX_ A22H - RTCCALIB_
V1IDX_ A22L - RTCCALIB_
V1IDX_ A23H - RTCCALIB_
V1IDX_ A23L - SECURE_
BOOT_ AGGRESSIVE_ REVOKE - Set this bit to enable aggressive secure boot key revocation mode
- SECURE_
BOOT_ EN - Set this bit to enable secure boot
- SECURE_
BOOT_ KEY_ REVOK E0 - Revoke 1st secure boot key
- SECURE_
BOOT_ KEY_ REVOK E1 - Revoke 2nd secure boot key
- SECURE_
BOOT_ KEY_ REVOK E2 - Revoke 3rd secure boot key
- SECURE_
VERSION - Secure version (used by ESP-IDF anti-rollback feature)
- SOFT_
DIS_ JTAG - Software disables JTAG. When software disabled; JTAG can be activated temporarily by HMAC peripheral
- SPI_
BOOT_ CRYPT_ CNT - Enables flash encryption when 1 or 3 bits are set and disabled otherwise
- SPI_
PAD_ CONFIG_ CLK - SPI_PAD_configure CLK
- SPI_
PAD_ CONFIG_ CS - SPI_PAD_configure CS
- SPI_
PAD_ CONFIG_ D - SPI_PAD_configure D(D0)
- SPI_
PAD_ CONFIG_ D4 - SPI_PAD_configure D4
- SPI_
PAD_ CONFIG_ D5 - SPI_PAD_configure D5
- SPI_
PAD_ CONFIG_ D6 - SPI_PAD_configure D6
- SPI_
PAD_ CONFIG_ D7 - SPI_PAD_configure D7
- SPI_
PAD_ CONFIG_ DQS - SPI_PAD_configure DQS
- SPI_
PAD_ CONFIG_ HD - SPI_PAD_configure HD(D3)
- SPI_
PAD_ CONFIG_ Q - SPI_PAD_configure Q(D1)
- SPI_
PAD_ CONFIG_ WP - SPI_PAD_configure WP(D2)
- SYS_
DATA_ PART0_ 2 - Stores the second part of the zeroth part of system data
- TEMP_
CALIB - Temperature calibration data
- UART_
PRINT_ CHANNEL - Selects the default UART for printing boot messages
- UART_
PRINT_ CONTROL - Set the default UART boot message output mode
- USB_
DREFH - Controls single-end input threshold vrefh; 1.76 V to 2 V with step of 80 mV; stored in eFuse
- USB_
DREFL - Controls single-end input threshold vrefl; 0.8 V to 1.04 V with step of 80 mV; stored in eFuse
- USB_
EXCHG_ PINS - Set this bit to exchange USB D+ and D- pins
- USB_
EXT_ PHY_ ENABLE - Set this bit to enable external USB PHY
- USB_
FORCE_ NOPERSIST - If set; forces USB BVALID to 1
- VDD_
SPI_ DCAP - Prevents SPI regulator from overshoot
- VDD_
SPI_ DCURLIM - Tunes the current limit threshold of SPI regulator when tieh=0; about 800 mA/(8+d)
- VDD_
SPI_ DREFH - SPI regulator high voltage reference
- VDD_
SPI_ DREFL - SPI regulator low voltage reference
- VDD_
SPI_ DREFM - SPI regulator medium voltage reference
- VDD_
SPI_ ENCURLIM - Set SPI regulator to 1 to enable output current limit
- VDD_
SPI_ EN_ INIT - Set SPI regulator to 0 to configure init[1:0]=0
- VDD_
SPI_ FORCE - Set this bit to use XPD_VDD_PSI_REG and VDD_SPI_TIEH to configure VDD_SPI LDO
- VDD_
SPI_ INIT - Adds resistor from LDO output to ground
- VDD_
SPI_ MODECURLIM - SPI regulator switches current limit mode
- VDD_
SPI_ TIEH - If VDD_SPI_FORCE is 1; determines VDD_SPI voltage
- VDD_
SPI_ XPD - If VDD_SPI_FORCE is 1; this value determines if the VDD_SPI regulator is powered on
- WAFER_
VERSION_ MAJOR - WAFER_VERSION_MAJOR
- WAFER_
VERSION_ MINOR_ HI - WAFER_VERSION_MINOR most significant bit
- WAFER_
VERSION_ MINOR_ LO - WAFER_VERSION_MINOR least significant bits
- WDT_
DELAY_ SEL - RTC watchdog timeout threshold; in unit of slow clock cycle
- WR_DIS
- Disable programming of individual eFuses