Burn Bit
The espefuse.py burn_bit
command burns bits in efuse blocks by bit number. This is useful when the fields are not represented in the eFuse table.
Positional arguments:
block
- Efuse block.bit number
- Bit number in the efuse block [0..BLK_LEN-1] (list of numbers, like 10 15 18 17 5 etc.).
Optional arguments:
--force-write-always
. Burn it even if it looks like it is already been written, or is write protected. Note that this option can not disable write protection, or clear any bit which has already been set.
Usage
Burning bits to BLOCK2:
> espefuse.py burn_bit BLOCK2 15 16 17 18 19 20
=== Run "burn_bit" command ===
bit_number: [255]........................................................[0]
BLOCK2 : 0x00000000000000000000000000000000000000000000000000000000001f8000
BLOCK2 (secure_boot_v1 s) [2 ] regs_to_write: 001f8000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Check all blocks for burn...
idx, BLOCK_NAME, Conclusion
[02] BLOCK2 is empty, will burn the new value
.
This is an irreversible operation!
Type 'BURN' (all capitals) to continue.
BURN
BURN BLOCK2 - OK (write block == read block)
Reading updated efuses...
Successful
Burning In Multiple Blocks
> espefuse.py --virt burn_bit BLOCK2 15 16 17 18 19 20 \
burn_bit BLOCK3 15 16 17 18 19 20
=== Run "burn_bit" command ===
bit_number: [255]........................................................[0]
BLOCK2 : 0x00000000000000000000000000000000000000000000000000000000001f8000
BLOCK2 (secure_boot_v1 s) [2 ] regs_to_write: 001f8000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Batch mode is enabled, the burn will be done at the end of the command.
=== Run "burn_bit" command ===
bit_number: [255]........................................................[0]
BLOCK3 : 0x00000000000000000000000000000000000000000000000000000000001f8000
BLOCK3 ( ) [3 ] regs_to_write: 001f8000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Batch mode is enabled, the burn will be done at the end of the command.
Check all blocks for burn...
idx, BLOCK_NAME, Conclusion
[02] BLOCK2 is empty, will burn the new value
[03] BLOCK3 is empty, will burn the new value
.
This is an irreversible operation!
Type 'BURN' (all capitals) to continue.
BURN
BURN BLOCK3 - OK (write block == read block)
BURN BLOCK2 - OK (write block == read block)
Reading updated efuses...