* 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.
* Change long form of save-image --ignore-app-descriptor
* fix fmt
* Update changelog
* support alias
* format
---------
Co-authored-by: Dane Slattery <dane@polarmonitoring.com>
Downstream applications needed to duplicate the padding to 4 bytes
logic that the CLI application does (although that requirement was
not documented). Otherwise flashing could fail with a RomError with
error code 0.
* 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>
* Derive more traits on public types in `image_format` module
* Don't leak `PartitionTable` type in public API
* Derive more traits on public types in `command` module
* fixups
* impl Hash for things
* fmt
* wording consistency
* feat: Udpate docstrings and derives
* feat: Implement C-CONV
* Derive more traits on public types in `flasher` module
* docs: Add missing module documentation
* docs: Udpate changelog
* docs: Fix changelog
---------
Co-authored-by: Scott Mabin <scott@mabez.dev>
Co-authored-by: Sergio Gasquez <sergio.gasquez@gmail.com>
* Indicate in CLI when a partition was skipped or being verified
* Fix target address alignment, and just append to last msg.
* Modify changelog with logs of changes
* 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
* App desc check only for esp-hal projects
* clippy
* comment why it is esp-hal specific
* Check if the project is esp-idf based and if it has an app desc section present
* clippy
* reviews
* fmt
* update link