espflash/target/efuse/
esp32c3.rs

1//! eFuse field definitions for the esp32c3
2//!
3//! This file was automatically generated, please do not edit it manually!
4//!
5//! Generated: 2025-06-26 09:47
6//! Version:   4622cf9245401eca0eb1df8122449a6d
7
8#![allow(unused)]
9
10use super::EfuseField;
11
12/// Total size in bytes of each block
13pub(crate) const BLOCK_SIZES: &[u32] = &[23, 24, 32, 32, 32, 32, 32, 32, 32, 32, 32];
14
15/// Disable programming of individual eFuses
16pub const WR_DIS: EfuseField = EfuseField::new(0, 0, 0, 32);
17/// Disable reading from BlOCK4-10
18pub const RD_DIS: EfuseField = EfuseField::new(0, 1, 32, 7);
19/// Set this bit to disable boot from RTC RAM
20pub const DIS_RTC_RAM_BOOT: EfuseField = EfuseField::new(0, 1, 39, 1);
21/// Set this bit to disable Icache
22pub const DIS_ICACHE: EfuseField = EfuseField::new(0, 1, 40, 1);
23/// Set this bit to disable function of usb switch to jtag in module of usb
24/// device
25pub const DIS_USB_JTAG: EfuseField = EfuseField::new(0, 1, 41, 1);
26/// Set this bit to disable Icache in download mode (boot_mode\[3:0\] is 0; 1;
27/// 2; 3; 6; 7)
28pub const DIS_DOWNLOAD_ICACHE: EfuseField = EfuseField::new(0, 1, 42, 1);
29/// USB-Serial-JTAG
30pub const DIS_USB_SERIAL_JTAG: EfuseField = EfuseField::new(0, 1, 43, 1);
31/// Set this bit to disable the function that forces chip into download mode
32pub const DIS_FORCE_DOWNLOAD: EfuseField = EfuseField::new(0, 1, 44, 1);
33/// Reserved (used for four backups method)
34pub const RPT4_RESERVED6: EfuseField = EfuseField::new(0, 1, 45, 1);
35/// Set this bit to disable CAN function
36pub const DIS_TWAI: EfuseField = EfuseField::new(0, 1, 46, 1);
37/// Set this bit to enable selection between usb_to_jtag and pad_to_jtag through
38/// strapping gpio10 when both reg_dis_usb_jtag and reg_dis_pad_jtag are equal
39/// to 0
40pub const JTAG_SEL_ENABLE: EfuseField = EfuseField::new(0, 1, 47, 1);
41/// Set these bits to disable JTAG in the soft way (odd number 1 means disable
42/// ). JTAG can be enabled in HMAC module
43pub const SOFT_DIS_JTAG: EfuseField = EfuseField::new(0, 1, 48, 3);
44/// Set this bit to disable JTAG in the hard way. JTAG is disabled permanently
45pub const DIS_PAD_JTAG: EfuseField = EfuseField::new(0, 1, 51, 1);
46/// Set this bit to disable flash encryption when in download boot modes
47pub const DIS_DOWNLOAD_MANUAL_ENCRYPT: EfuseField = EfuseField::new(0, 1, 52, 1);
48/// Controls single-end input threshold vrefh; 1.76 V to 2 V with step of 80 mV;
49/// stored in eFuse
50pub const USB_DREFH: EfuseField = EfuseField::new(0, 1, 53, 2);
51/// Controls single-end input threshold vrefl; 0.8 V to 1.04 V with step of 80
52/// mV; stored in eFuse
53pub const USB_DREFL: EfuseField = EfuseField::new(0, 1, 55, 2);
54/// Set this bit to exchange USB D+ and D- pins
55pub const USB_EXCHG_PINS: EfuseField = EfuseField::new(0, 1, 57, 1);
56/// Set this bit to vdd spi pin function as gpio
57pub const VDD_SPI_AS_GPIO: EfuseField = EfuseField::new(0, 1, 58, 1);
58/// Enable btlc gpio
59pub const BTLC_GPIO_ENABLE: EfuseField = EfuseField::new(0, 1, 59, 2);
60/// Set this bit to enable power glitch function
61pub const POWERGLITCH_EN: EfuseField = EfuseField::new(0, 1, 61, 1);
62/// Sample delay configuration of power glitch
63pub const POWER_GLITCH_DSENSE: EfuseField = EfuseField::new(0, 1, 62, 2);
64/// Reserved (used for four backups method)
65pub const RPT4_RESERVED2: EfuseField = EfuseField::new(0, 2, 64, 16);
66/// RTC watchdog timeout threshold; in unit of slow clock cycle
67pub const WDT_DELAY_SEL: EfuseField = EfuseField::new(0, 2, 80, 2);
68/// Enables flash encryption when 1 or 3 bits are set and disables otherwise
69pub const SPI_BOOT_CRYPT_CNT: EfuseField = EfuseField::new(0, 2, 82, 3);
70/// Revoke 1st secure boot key
71pub const SECURE_BOOT_KEY_REVOKE0: EfuseField = EfuseField::new(0, 2, 85, 1);
72/// Revoke 2nd secure boot key
73pub const SECURE_BOOT_KEY_REVOKE1: EfuseField = EfuseField::new(0, 2, 86, 1);
74/// Revoke 3rd secure boot key
75pub const SECURE_BOOT_KEY_REVOKE2: EfuseField = EfuseField::new(0, 2, 87, 1);
76/// Purpose of Key0
77pub const KEY_PURPOSE_0: EfuseField = EfuseField::new(0, 2, 88, 4);
78/// Purpose of Key1
79pub const KEY_PURPOSE_1: EfuseField = EfuseField::new(0, 2, 92, 4);
80/// Purpose of Key2
81pub const KEY_PURPOSE_2: EfuseField = EfuseField::new(0, 3, 96, 4);
82/// Purpose of Key3
83pub const KEY_PURPOSE_3: EfuseField = EfuseField::new(0, 3, 100, 4);
84/// Purpose of Key4
85pub const KEY_PURPOSE_4: EfuseField = EfuseField::new(0, 3, 104, 4);
86/// Purpose of Key5
87pub const KEY_PURPOSE_5: EfuseField = EfuseField::new(0, 3, 108, 4);
88/// Reserved (used for four backups method)
89pub const RPT4_RESERVED3: EfuseField = EfuseField::new(0, 3, 112, 4);
90/// Set this bit to enable secure boot
91pub const SECURE_BOOT_EN: EfuseField = EfuseField::new(0, 3, 116, 1);
92/// Set this bit to enable revoking aggressive secure boot
93pub const SECURE_BOOT_AGGRESSIVE_REVOKE: EfuseField = EfuseField::new(0, 3, 117, 1);
94/// Reserved (used for four backups method)
95pub const RPT4_RESERVED0: EfuseField = EfuseField::new(0, 3, 118, 6);
96/// Configures flash waiting time after power-up; in unit of ms. If the value is
97/// less than 15; the waiting time is the configurable value; Otherwise; the
98/// waiting time is twice the configurable value
99pub const FLASH_TPUW: EfuseField = EfuseField::new(0, 3, 124, 4);
100/// Set this bit to disable download mode (boot_mode\[3:0\] = 0; 1; 2; 3; 6; 7)
101pub const DIS_DOWNLOAD_MODE: EfuseField = EfuseField::new(0, 4, 128, 1);
102/// Disable direct boot mode
103pub const DIS_DIRECT_BOOT: EfuseField = EfuseField::new(0, 4, 129, 1);
104/// USB printing
105pub const DIS_USB_SERIAL_JTAG_ROM_PRINT: EfuseField = EfuseField::new(0, 4, 130, 1);
106/// ECC mode in ROM
107pub const FLASH_ECC_MODE: EfuseField = EfuseField::new(0, 4, 131, 1);
108/// Disable UART download mode through USB-Serial-JTAG
109pub const DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE: EfuseField = EfuseField::new(0, 4, 132, 1);
110/// Set this bit to enable secure UART download mode
111pub const ENABLE_SECURITY_DOWNLOAD: EfuseField = EfuseField::new(0, 4, 133, 1);
112/// Set the default UARTboot message output mode
113pub const UART_PRINT_CONTROL: EfuseField = EfuseField::new(0, 4, 134, 2);
114/// GPIO33-GPIO37 power supply selection in ROM code
115pub const PIN_POWER_SELECTION: EfuseField = EfuseField::new(0, 4, 136, 1);
116/// Maximum lines of SPI flash
117pub const FLASH_TYPE: EfuseField = EfuseField::new(0, 4, 137, 1);
118/// Set Flash page size
119pub const FLASH_PAGE_SIZE: EfuseField = EfuseField::new(0, 4, 138, 2);
120/// Set 1 to enable ECC for flash boot
121pub const FLASH_ECC_EN: EfuseField = EfuseField::new(0, 4, 140, 1);
122/// Set this bit to force ROM code to send a resume command during SPI boot
123pub const FORCE_SEND_RESUME: EfuseField = EfuseField::new(0, 4, 141, 1);
124/// Secure version (used by ESP-IDF anti-rollback feature)
125pub const SECURE_VERSION: EfuseField = EfuseField::new(0, 4, 142, 16);
126/// reserved
127pub const RESERVED_0_158: EfuseField = EfuseField::new(0, 4, 158, 1);
128/// Use BLOCK0 to check error record registers
129pub const ERR_RST_ENABLE: EfuseField = EfuseField::new(0, 4, 159, 1);
130/// Disables check of wafer version major
131pub const DISABLE_WAFER_VERSION_MAJOR: EfuseField = EfuseField::new(0, 5, 160, 1);
132/// Disables check of blk version major
133pub const DISABLE_BLK_VERSION_MAJOR: EfuseField = EfuseField::new(0, 5, 161, 1);
134/// reserved
135pub const RESERVED_0_162: EfuseField = EfuseField::new(0, 5, 162, 22);
136/// MAC address
137pub const MAC0: EfuseField = EfuseField::new(1, 0, 0, 32);
138/// MAC address
139pub const MAC1: EfuseField = EfuseField::new(1, 1, 32, 16);
140/// SPI PAD CLK
141pub const SPI_PAD_CONFIG_CLK: EfuseField = EfuseField::new(1, 1, 48, 6);
142/// SPI PAD Q(D1)
143pub const SPI_PAD_CONFIG_Q: EfuseField = EfuseField::new(1, 1, 54, 6);
144/// SPI PAD D(D0)
145pub const SPI_PAD_CONFIG_D: EfuseField = EfuseField::new(1, 1, 60, 6);
146/// SPI PAD CS
147pub const SPI_PAD_CONFIG_CS: EfuseField = EfuseField::new(1, 2, 66, 6);
148/// SPI PAD HD(D3)
149pub const SPI_PAD_CONFIG_HD: EfuseField = EfuseField::new(1, 2, 72, 6);
150/// SPI PAD WP(D2)
151pub const SPI_PAD_CONFIG_WP: EfuseField = EfuseField::new(1, 2, 78, 6);
152/// SPI PAD DQS
153pub const SPI_PAD_CONFIG_DQS: EfuseField = EfuseField::new(1, 2, 84, 6);
154/// SPI PAD D4
155pub const SPI_PAD_CONFIG_D4: EfuseField = EfuseField::new(1, 2, 90, 6);
156/// SPI PAD D5
157pub const SPI_PAD_CONFIG_D5: EfuseField = EfuseField::new(1, 3, 96, 6);
158/// SPI PAD D6
159pub const SPI_PAD_CONFIG_D6: EfuseField = EfuseField::new(1, 3, 102, 6);
160/// SPI PAD D7
161pub const SPI_PAD_CONFIG_D7: EfuseField = EfuseField::new(1, 3, 108, 6);
162/// WAFER_VERSION_MINOR least significant bits
163pub const WAFER_VERSION_MINOR_LO: EfuseField = EfuseField::new(1, 3, 114, 3);
164/// Package version
165pub const PKG_VERSION: EfuseField = EfuseField::new(1, 3, 117, 3);
166/// BLK_VERSION_MINOR
167pub const BLK_VERSION_MINOR: EfuseField = EfuseField::new(1, 3, 120, 3);
168/// Flash capacity
169pub const FLASH_CAP: EfuseField = EfuseField::new(1, 3, 123, 3);
170/// Flash temperature
171pub const FLASH_TEMP: EfuseField = EfuseField::new(1, 3, 126, 2);
172/// Flash vendor
173pub const FLASH_VENDOR: EfuseField = EfuseField::new(1, 4, 128, 3);
174/// reserved
175pub const RESERVED_1_131: EfuseField = EfuseField::new(1, 4, 131, 4);
176/// BLOCK1 K_RTC_LDO
177pub const K_RTC_LDO: EfuseField = EfuseField::new(1, 4, 135, 7);
178/// BLOCK1 K_DIG_LDO
179pub const K_DIG_LDO: EfuseField = EfuseField::new(1, 4, 142, 7);
180/// BLOCK1 voltage of rtc dbias20
181pub const V_RTC_DBIAS20: EfuseField = EfuseField::new(1, 4, 149, 8);
182/// BLOCK1 voltage of digital dbias20
183pub const V_DIG_DBIAS20: EfuseField = EfuseField::new(1, 4, 157, 8);
184/// BLOCK1 digital dbias when hvt
185pub const DIG_DBIAS_HVT: EfuseField = EfuseField::new(1, 5, 165, 5);
186/// BLOCK1 pvt threshold when hvt
187pub const THRES_HVT: EfuseField = EfuseField::new(1, 5, 170, 10);
188/// reserved
189pub const RESERVED_1_180: EfuseField = EfuseField::new(1, 5, 180, 3);
190/// WAFER_VERSION_MINOR most significant bit
191pub const WAFER_VERSION_MINOR_HI: EfuseField = EfuseField::new(1, 5, 183, 1);
192/// WAFER_VERSION_MAJOR
193pub const WAFER_VERSION_MAJOR: EfuseField = EfuseField::new(1, 5, 184, 2);
194/// reserved
195pub const RESERVED_1_186: EfuseField = EfuseField::new(1, 5, 186, 6);
196/// Optional unique 128-bit ID
197pub const OPTIONAL_UNIQUE_ID: EfuseField = EfuseField::new(2, 0, 0, 128);
198/// BLK_VERSION_MAJOR of BLOCK2
199pub const BLK_VERSION_MAJOR: EfuseField = EfuseField::new(2, 4, 128, 2);
200/// reserved
201pub const RESERVED_2_130: EfuseField = EfuseField::new(2, 4, 130, 1);
202/// Temperature calibration data
203pub const TEMP_CALIB: EfuseField = EfuseField::new(2, 4, 131, 9);
204/// ADC OCode
205pub const OCODE: EfuseField = EfuseField::new(2, 4, 140, 8);
206/// ADC1 init code at atten0
207pub const ADC1_INIT_CODE_ATTEN0: EfuseField = EfuseField::new(2, 4, 148, 10);
208/// ADC1 init code at atten1
209pub const ADC1_INIT_CODE_ATTEN1: EfuseField = EfuseField::new(2, 4, 158, 10);
210/// ADC1 init code at atten2
211pub const ADC1_INIT_CODE_ATTEN2: EfuseField = EfuseField::new(2, 5, 168, 10);
212/// ADC1 init code at atten3
213pub const ADC1_INIT_CODE_ATTEN3: EfuseField = EfuseField::new(2, 5, 178, 10);
214/// ADC1 calibration voltage at atten0
215pub const ADC1_CAL_VOL_ATTEN0: EfuseField = EfuseField::new(2, 5, 188, 10);
216/// ADC1 calibration voltage at atten1
217pub const ADC1_CAL_VOL_ATTEN1: EfuseField = EfuseField::new(2, 6, 198, 10);
218/// ADC1 calibration voltage at atten2
219pub const ADC1_CAL_VOL_ATTEN2: EfuseField = EfuseField::new(2, 6, 208, 10);
220/// ADC1 calibration voltage at atten3
221pub const ADC1_CAL_VOL_ATTEN3: EfuseField = EfuseField::new(2, 6, 218, 10);
222/// reserved
223pub const RESERVED_2_228: EfuseField = EfuseField::new(2, 7, 228, 28);
224/// User data
225pub const BLOCK_USR_DATA: EfuseField = EfuseField::new(3, 0, 0, 192);
226/// reserved
227pub const RESERVED_3_192: EfuseField = EfuseField::new(3, 6, 192, 8);
228/// Custom MAC address
229pub const CUSTOM_MAC: EfuseField = EfuseField::new(3, 6, 200, 48);
230/// reserved
231pub const RESERVED_3_248: EfuseField = EfuseField::new(3, 7, 248, 8);
232/// Key0 or user data
233pub const BLOCK_KEY0: EfuseField = EfuseField::new(4, 0, 0, 256);
234/// Key1 or user data
235pub const BLOCK_KEY1: EfuseField = EfuseField::new(5, 0, 0, 256);
236/// Key2 or user data
237pub const BLOCK_KEY2: EfuseField = EfuseField::new(6, 0, 0, 256);
238/// Key3 or user data
239pub const BLOCK_KEY3: EfuseField = EfuseField::new(7, 0, 0, 256);
240/// Key4 or user data
241pub const BLOCK_KEY4: EfuseField = EfuseField::new(8, 0, 0, 256);
242/// Key5 or user data
243pub const BLOCK_KEY5: EfuseField = EfuseField::new(9, 0, 0, 256);
244/// System data part 2 (reserved)
245pub const BLOCK_SYS_DATA2: EfuseField = EfuseField::new(10, 0, 0, 256);