* Replace old BLOCK_SIZES with definitions of the blocks themselves
The actual block definitions only exist within Python classes so this
commit uses PyO3 to import the esptool.py eFuse block definitions and
generates arrays of the length and read address of each eFuse block.
We need the actual read address here rather than using the old offset
method because not all eFuse blocks are sequential. (On ESP32 the block
0 read registers are followed by the block 0 write registers.)
* xtask: Move efuse generator behind a feature
This prevents Python being necessary to build the xtask binary for other
purposes.
* feat: Initial test
* feat: Initial HIL tests in xtask
* refactor: End test if possible before timeout
* rebase
* Add checking for output from monitor
* CI: use xtask command instead of bash scripts
* clippy
* help find cargo
* Try increase duration for failing test
* remove bash tests
* reviews
* simplify
* Add a local_espflash flag to allow running espflash without re-building (CI) and re-building (locally)
* reviews
---------
Co-authored-by: Sergio Gasquez <sergio.gasquez@gmail.com>
* Show progress when skipping and verifying
The progress callbacks get initialized and updated even if we skip a
segment. For verification, we add an extra step to the progress which is
updated once verification is complete.
* Make callbacks compulsory, add empty impl convience struct
* changelog
* fixups
* Add skip bool to finish to determine whether the segment was finished via skip or real work was done
* more changelog
* Fix new clippy lints introduced in 1.88
---------
Co-authored-by: Jesse Braham <jesse@beta7.io>
* Make efuse field definitions public
* Remove unnecessary argument and simplify return type for `flash_write_size` and `max_ram_block_size` functions
* Update `CHANGELOG.md`
* Make eFuse field definitions public
* Generate eFuse field definitions for ESP32-C5
* Add bootloader and flasher stub for ESP32-C5
* Add initial support for the ESP32-C5
* Mention ESP32-C5 in various READMEs
* Update `CHANGELOG.md`
* Small fixes
* Create the `xtask` package
* Implement and xtask subcommand to generate eFuse field definitions from YAML files
* Generate eFuse field definitions
* Update `target` module to provide new eFuse reading API
* All non-problematic chips working with new eFuse API
* ESP32 is now working
* ESP32-S2 is now (mostly) working
* Very necessary change :)
* Clean up the mess I made of the imports
* Address clippy lints
* Update `CHANGELOG.md`
* Perform fewer raw eFuse field reads for ESP32
* Address review comment regarding `xtask` package
* Verify that `xtask` package builds in CI
* Fix block offset calculation