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