1## v4.8.1 (2024-09-25) 2 3### Bug Fixes 4 5- **esp32c2**: Add esp32c2 eco4 rom magic value 6- **packaging**: Correctly exclude the unwanted sub/modules 7 8## v4.8.0 (2024-09-18) 9 10### New Features 11 12- **espefuse**: Supports wafer efuse versions for esp32c61 13- **esptool**: add new command SFDP read 14- **esptool**: Add option to retry connection in a loop 15- **efuse**: Updates efuse table for esp32c5 16- **efuse**: Updates efuse table for esp32p4 17- **esp32c61**: Added stub flasher support 18- **cli**: add autocompletions 19- **esptool**: allow picking UART by VID/PID/Name 20- **esp32c5**: Add USB-serial/JTAG stub support 21- **esp32c5**: Add UART stub support 22- **esptool**: Print key_purpose name for get_security_info cmd 23- **espefuse**: Adds support extend efuse table by user CSV file 24- **espefuse**: Adds efuse dump formats: separated(default) and united(new) 25- **espefuse**: Adds incompatible eFuse settings check for S3 26- **reset**: Apply reconnections to the whole reset sequence, not line transitions 27- **reset**: Automatically reconnect if port disconnects during reset 28- **esp32-p4**: Add ECO1 magic number 29- **espsecure**: Add support for secure boot v2 using ECDSA-P384 signatures 30- **write_flash**: retry flashing if chip disconnects 31- **espefuse**: Allow filtering efuses based on command line arguments 32- **esploader**: Enable context manager for esp instances 33- **espefuse**: Added check for correctness of written data 34- **espefuse**: Improves help for burn_efuse cmd 35- **esp32s3**: clear boot control register on hard reset 36- **esp32-p4**: add spi-connection restriction to ROM class 37- add UF2 IDs for ESP32-C5 and ESP32-C61 38- **espefuse**: Updates efuses for C5 and C61 39- **esp32c61**: add c61 basic flash support (no_stub) 40- **esp32c5**: skipped the stub check for esp32c5 mp 41- **esp32c5**: base support of esp32c5 mp (no stub) 42- Added warning when secure boot enabled 43- **cmds/write_flash**: Recalculated SHA digest for image binary 44- print flash voltage in flash_id command 45- **esptool**: Adds wafer and pkg versions 46- **espefuse**: Update adc_info commands for all chips 47- **espefuse**: Adds new efuses for esp32p4 48- **espefuse**: Allow the espefuse.py to work when coding scheme == 3 49- **err_defs**: Add ROM bootloader flash error definitions 50- Use ruff instead of flake8 and black both in pre-commit and CI 51- **esp32p4**: Enable USB-serial/JTAG in flasher stub 52- **espefuse**: Postpone some efuses to burn them at the very end 53- add advisory port locking 54- **espefuse**: check_error --recover chip even if there are num_errors 55- **espefuse**: Adds new efuses for esp32c6 and esp32h2 56- **esp32c5**: add target esp32c5 beta3 57 58### Bug Fixes 59 60- **esptool**: Fix esp32c61 flash frequency config 61- **esptool**: Fix incorrect chip version for esp32c5 62- **write_flash**: Verify if files will fit against the real flash size when possible 63- **remote_ports**: Disable reset sequence when a socket is used 64- **bitstring**: Restricted bitstring dependency to fix 32-bit compatibility 65- **esp32_d0wdr2_v3**: Print correct chip name 66- pass error message to exception in OTG mode 67- **bin_image**: add check for ELF file segment when saving RAM segments 68- **docs**: Add a note about entering manual bootloader mode 69- **esp32c5**: Fix MAC reading for esptool 70- Erase non-aligned bytes with --no-stub 71- **esp32-c5**: Use a longer reset delay with usb-serial/jtag to stabilize boot-up 72- **espefuse**: Use stub class if stub flasher is running 73- Do not append SHA256 when `--ram-only-header` 74- **elf2image**: add ELF flags to merge condition 75- ram_only_header: pad flash segment to next boundary 76- sort segments if ram_only_header is used 77- **espefuse**: Fix efuse base addr for esp32c5 MP 78- fix type annotation to comply with mypy 79- **espefuse**: Fix burn_key for ECDSA_KEY, it can read pem file 80- **secure_download_mode**: Disable secure boot detection and print more info 81- **esptool**: clear boot control register on ESP32-S3 82- **intelhex**: catch unicode decode errors when converting hex to binary 83- ROM doesn't attach in-package flash chips 84- close file gracefully in espsecure 85- Fixed glitches on RTS line when no_reset option on Windows 86- **merge_bin**: treat files starting with colon as raw files 87- Index image segments from 0 instead of 1 88- **read_flash**: add flash size arg to enable reading past 2MB without stub 89- **read_flash**: flush transmit buffer less often to inrease throughput 90- **esptool**: Proper alignment for SoCs with offset load 91- ignore resetting on unsupported ports 92- **esptool**: Remove the shebang from uf2_writer.py 93 94### Code Refactoring 95 96- Migrated esp_rfc2217_server into standalone subpackage 97- **test/esptool**: Updated tests according to SHA recomputation for binary 98- **style**: Comply with black>=24.0.0 99 100## v4.7.0 (2023-12-13) 101 102### New Features 103 104- **test_esptool**: Added test for embedded and detected flash size match 105- **spi_connection**: Support --spi-connection on all chips 106- **espefuse**: Support XTS_AES_256_KEY key_purpose for ESP32P4 107- **xip_psram**: support xip psram feature on esp32p4 108- add support for intel hex format 109- **esp32p4**: Stub flasher support 110- **elf2image**: add ram-only-header argument 111- **rfc2217_server**: Add hard reset sequence 112- **espefuse**: Adds efuse ADC calibration data for ESP32H2 113- **espefuse**: Update the way to complete the operation 114- add support for get_security_info on esp32c3 ECO7 115- **loader**: Added hints for some serial port issues when rising port error 116- Add support for Python 3.12 117- **esp32c3**: Support ECO6 and ECO7 magic numbers 118- **merge_bin**: add support for uf2 format 119- **esp32-s3**: Support >16MB quad flash chips 120- **efuse**: Update key purpose table and tests 121- **efuse**: ESP32P4 adds ecdsa_key support 122- **espefuse**: Add support for esp32p4 chip 123- **esptool**: added target to esp32p4 124- **espsecure**: Allow prompting for HSM PIN in read_hsm_config 125- **esptool**: Add new packages for ESP32C3 and flash efuses 126- **esptool**: Add tests for get_chip_features 127- **esptool**: Add PICO package for ESP32S3 and flash/psram efuses 128- **get_security_info**: Improved the output format and added more details 129 130### Bug Fixes 131 132- **esp32c2**: Added get_flash_cap and get_flash_vendor 133- **testloadram**: Windows assertion error 134- fixed exit() to be used from right module 135- **esp32c2**: Recommend using higher baud rate if connection fails 136- **test_esptool**: Fixed connection issue on Windows 137- **esptool**: Rephrase the --ram-only-header command message 138- **load_ram**: check for overlaps in bss section 139- **tests/intelhex**: make sure file is closed on Windows 140- **spi_connection**: Unattach previously attached SPI flash 141- **espefuse**: Fix ECDSA_FORCE_USE_HARDWARE_K for ECDSA key (esp32h2) 142- **loader**: Could not open serial port message adjusted 143- **flasher_stub**: fix usb-serial-jtag enabled non-related intr source 144- **bin_image**: Check only ELF sections when searching for .flash.appdesc 145- **danger-github**: Fir Danger GitHub token permission 146- Fix redirection of STDOUT 147- **autodetection**: Remove the ESP32-S2 ROM class from get_security_info autodetection 148- assert in esp32 exclusive workaround 149- **elf2image**: fix text/rodata mapping overlap issue on uni-idrom bus chips 150- **dangerGH**: Update token permissions - allow Danger to add comments to PR 151- **expand file args**: Correctly print the expanded command 152- **esp32-c2**: Enable flashing in secure download mode 153 154### Code Refactoring 155 156- **stub_flasher**: Cleanup, make adding new targets easier 157 158## v4.6.2 (2023-06-12) 159 160### Bug Fixes 161 162- **CH9102F**: Suggest to install new serial drivers if writing to RAM fails 163- **compressed upload**: Accept short data blocks with only Adler-32 bytes 164 165## v4.6.1 (2023-06-01) 166 167### Bug Fixes 168 169- **ESP32-S3**: Correct RTC WDT registers to fix resets during flashing 170 171## v4.6 (2023-05-29) 172 173### New Features 174 175- **esptool**: add option to dump whole flash based on detected size 176 177### Bug Fixes 178 179- inconsistent usage of dirs separator 180- USB-JTAG-Serial PID detection error 181- Set flash parameters even with --flash_size keep 182- **ESP32-C6**: Fix get_pkg_version and get_{major,minor}_chip_version 183 184## v4.5.1 (2023-02-28) 185 186### Bug Fixes 187 188- **ESP32-S3**: Temporarily disable increasing CPU freq 189- Unknown chip (ID or magic number) error 190- **ESP32-S3**: Lower CPU freq to improve flasher stub stability 191- **rfc2217_server**: Use new reset sequences 192 193## v4.5 (2023-02-10) 194 195### New Features 196 197- **stub**: Add ESP32-S3 octal flash support 198- **esp32h2**: Enable USB-JTAG/Serial mode in the stub flasher 199- **bootloader reset**: Allow custom reset strategy setting with a config file 200- Allow configuration with a config file 201- **bootloader reset**: Tighter transitions on Unix systems 202- **ci**: Publish development releases with custom pipeline 203- **esp32c6 stub**: Increase CPU frequency and write/read speeds over USB-JTAG/Serial 204- **esp32c6 stub**: Enable USB-JTAG/Serial 205- **flash_id**: Print the flash type if available for the chip 206 207### Bug Fixes 208 209- **cmds**: Make clear that flash type is from eFuse and not detection 210- **load config file**: Sort unknown config options 211- **esp32c6**: Workaround for bad MSPI frequency in HS mode 212- **flasher_stub**: Correct boundaries for SPIWrite4B and SPIRead4B 213- **secure download mode**: Reconnect if ROM refuses to respond 214- **secure download mode**: Fix SDM detection on S2/S3 215- **ci**: Merge two "ci" directories and build_tools into one 216- **ci**: The development release job should not run by default 217- **setup**: Use latest reedsolo package which can be installed with Python3.10 and Cython 218- **write_flash**: Fix `--erase-all` option 219- **espefuse**: Close serial port even when espefuse fails 220- **espefuse**: Fix compatibility with Bitstring>=4 221 222### Code Refactoring 223 224- Comply with black 23.1 style 225- Optimize unnecessary chip interrogations 226- **connection attempt**: Decouple reset sequence settings 227 228## v4.4 (2022-11-21) 229 230### New Features 231 232- **flasher_stub**: Increase CPU frequency and write/read speeds over native USB (USB-OTG) 233- **flasher_stub**: Increase CPU frequency and write/read speeds over USB-JTAG/Serial 234- Readable error message for serial-related issues 235- Detect Guru Meditation errors 236 237### Bug Fixes 238 239- Add workaround for breaking changes of bitstring==4 240- close unused ports while get_default_connected_device 241 242## v4.3 (2022-09-14) 243 244### New Features 245 246- **image_info**: Print application information if possible 247- Add Macronix flash memory density definitions 248- **write_flash**: Prevent flashing incompatible images 249- Recover from serial errors when flashing 250- Add stub flasher error messages definitions 251- **image_info**: Image type autodetection 252 253### Code Refactoring 254 255- **elf2image**: Simplify bootloader image selection 256