Skip to content

Releases: espressif/openocd-esp32

v0.11.0-esp32-20211220

20 Dec 20:21
Compare
Choose a tag to compare

2021/12/20 Release, based on OpenOCD v0.11.0

Features:

  • Merge with upstream. Bump version to v0.11.0. This also closes a couple of issues: #198, #199, and #196
  • esp/riscv: Add flash breakpoints support for Espresif RISCV chips. Currently, only ESP32-C3 is supported.
  • jtag/esp_usb: Add Espressif USB bridge support

Bug fixes:

  • esp/flash: Add check for a maximum number of flash mappings. Prevent flash driver crash when flasher stub returns garbage upon flash mappings request.
  • esp32s3/esp_usb_jtag: Dummy jtag call before running an algorithm. It works around the problem on ESP32-S3 when USB JTAG device gets stuck after running flasher stub algorithm. That problem leads to a flash probing problem upon GDB connection or any other flash access command.
  • jtag/esp_usb: Check if USB device handle is valid before close
  • esp32s3: Add missed irom_mask_low mem region to the config.
  • rtos: Fix heap usage after free during rtos_destroy
  • esp_apptrace: Restart idle timeout after target reconnection. That could lead to data timeout error after target reset during tracing.

v0.10.0-esp32-20211111

11 Nov 10:30
Compare
Choose a tag to compare

2021/11/11 Release, based on OpenOCD v0.10.0

Features:

  • flash/esp32s3: Added ESP32-S3 flash support (#178 (comment)). Access to chip's flash is supported including setting breakpoints there.
  • esp/riscv: Added coverage data collection support for Espressif RISCV chips. Currently this functionality is verified for ESP32-C3 only.
  • esp_usb_jtag: Added ability to filter out USB device by product serial. Now it is possible to specify which USB device should be used by command espusbjtag serial <serial_num>.

Bug fixes:

  • esp32s2-c3: Added automatic target reset upon GDB connection if memory protection is enabled (#190, #183, #176 (comment)).
  • esp32c3: Avoided missing chip reset due to problems with dmi_scan. This led to the problem when SW breakpoints and syscalls do not work.
  • esp32c3: Enables ebreaks in 'FLASH_BOOT' mode only. This led to the problem with flashing esp32c3 over UART with connected OpenOCD.
  • flash/esp: Added detection of unexpected target algorithm exit during a flash read/write. Now the error message is printed if flash stub invocation ended up accidentally.
  • flash/esp: Fixed cache flush in flasher stub for esp32s2/esp32c3. This problem led to partial data writes to flash.
  • esp_usb_jtag: Added USB device re-enumeration in case of data transfer problem (#176, #178). This problem led to built-in USB-JTAG getting stuck after HW reset.
  • esp_usb_jtag: Made tx/rx routines a bit more responsive and reliable. Added several attempts to tx/rx data in of failure.
  • esp32s2-s3: Added power config register reset to prevent getting stuck in soft reset. This problem led to application getting stuck after resetting the target with reset run.
  • esp32c3: Fixed WDT reset issue while waiting for resume after soft reset. This problem led to application getting stuck after resetting the target with reset run.
  • esp_remote: Fixed runtest function. This problem was causing error during ESP32-C3 examination.
  • gdb_server: Fixed registers access error reporting. Now it is controlled by gdb_report_register_access_error command. This problem led to RISCV GDB register access reporting and when GDB register packet is received when target is running.
  • algorithm: Fixed cleaning up algorithm data upon failure.
  • algorithm: Fixed '.data' and '.bss' section size alignment to avoid possible data corruption when running algorithms.

v0.10.0-esp32-20210902

02 Sep 20:21
Compare
Choose a tag to compare

2021/09/02 Release, based on OpenOCD v0.10.0

Features:

  • esp_remote: New command to set JTAG clock freqency

Bug fixes:

  • esp_xtensa_smp: Fixes problem when APP CPU is left unexamined after target is reset externally by esptool.py (#160)
  • esp_xtensa_smp: Fixes TRAX tracing start on one core only
  • xtensa: Fixes memory leak in TRAX tracing dump command handler
  • algorithm: Skip loading sections with zero size. This led to the algoritm run failure when algorithm image has zero-sized sections.

v0.10.0-esp32-20210721

21 Jul 18:08
Compare
Choose a tag to compare

2021/07/21 Release, based on OpenOCD v0.10.0

Features:

  • esp32s3: Added base support for the latest ESP32-S3 chip revision. It includes base debugging support w/o flash support and other features.
  • tcl/esp32s3: Added esp_get_mac support for ESP32-S3.
  • esp32c3: Added separate target for ESP32-C3 chip. Now ESP32-C3 has its own target implemented basing on RISCV one. Thsi allows to keep ESP32-C3 specific features in separate module and minimize modification to base RISCV target.
  • esp/apptrace/esp32c3: Added application level tracing support for ESP32-C3.
  • algorithm/esp32c3: Added support for running algorithms on ESP32-C3.
  • flash/esp32c3: Added flash support for ESP32-C3 (#165).
  • riscv: Added command to mask IRQ during stepping. Implemented ARM-like command to control how IRQs are controlled during stepping. Currently to modes are supported: off and steponly.
  • riscv: Implemented batch JTAG ops for memory read. Combined JTAG operations into batches to speed up memory reads.
  • riscv: Emulated 8-/16-bit memory access via SBA using 32-bit read/write. SBA mode allows to access memory on running target. When 8-/16-bit memory accesses via SBA are not supported they are emulated via 32-bit ones if it is possible.
  • loaders/esp: Added encrypted flash support for esp32, esp32s2 and esp32c3.
  • loaders/esp: Added command to enable/disable CPU clock boosting when flasher stub is running on target. This allows to increase flash programing speed significantly.
  • loaders/esp: Enable by default CPU clock boosting when programming via program_esp. Clock can be restored after flashing when restore_clock option is specified.
  • loaders/esp: Added command esp verify_bank_hash to verify flash uploads using sha256 hash.
  • esp: Added Espressif USB JTAG/serial debug unit and USB Bridge udev rules.
  • esp: Added release binaries signing for MacOS.

Bug fixes:

  • riscv: Disabled watchpoints on stepping to avoid watchpoint re-triggering.
  • tcl/esp: Added check for flash support before running program_esp to provide clearer error reasoning for users (#165 (comment)).
  • freertos: Made threads list updating tolerant to list reading errors.
  • target/riscv: Added get_gdb_arch target API implementation to avoid GDB errors when riscv arch is not exactly specifed (#144 (comment)).
  • esp32c3: Call rtos post_reset_cleanup method after reset to clear RTOS data (#144).
  • riscv: Avoided increasing dmi_busy_delay due to garbage data received by dmi_scan during chip reset. Thsi allows to avoid unnecessary and abnormal increasin of dmi_busy_delay leading to quite slow JTAG communication after several target resets.
  • esp/apptrace: Added target connection status check while polling for apptrace data (#149). This allows to avoid apptrace data losing due to target reset.
  • target/{esp32s2,esp32s3,esp32c3}: Disabled SWD on reset or halt (#153).
  • jtag_esp_remote: Added several fixes of the ESP Remote protocol JTAG driver.
  • esp_usb_jtag: Fixed stack overflow. This prevents OpenOCD crashing or stucking in infinite loop when started w/o connected device.
  • esp: Fixed files paths typo in boards description file.

v0.10.0-esp32-20210401

08 Apr 08:39
Compare
Choose a tag to compare

2020/04/01 Release, based on OpenOCD v0.10.0

Bug fixes:

  • Add missing zlib DLL into Windows release package (#151)

v0.10.0-esp32-20210329

29 Mar 21:53
Compare
Choose a tag to compare

2021/03/29 Release, based on OpenOCD v0.10.0

Features

  • flash/esp_xtensa: Added compression support for write operations. Compression can be enabled by adding compress argument to program_esp command. Compression is not enabled by default, yet.
  • rtos/FreeRTOS: Changed task list update algorithm basing on uxTaskNumber. This reduces the amount of data transferred over JTAG in some cases, and makes stepping through the code faster.
  • target/esp32c3: Added SoC reset support. reset halt command now resets the digital peripherals, in addition to the CPU, same as it does on esp32 and esp32s2.
  • target/esp32c3: Reduced timeouts to reasonable values
  • board/esp32c3-ftdi: set lower JTAG clock used by default. Since there is no development board with FT2232H and ESP32-C3 yet, they are most likely connected by jumper cables, so a lower frequency should be used.
  • xtensa: Made 'xtensa_smpbreak_get' returning configured value

Bug fixes:

  • esp32s3: Disabled flash support by default, since it's not implemented yet. It will be re-enabled once the feature is implemented.
  • esp/semihost: Added callback to disable WDTs upon syscall.
  • riscv: Maintain target halted state across reset
  • riscv: Fixed RTOS checks in reset procedure
  • riscv: Fixed semihosting code to adjust the PC to the next instruction also for GDB fileio
  • esp/gcov: Ensured that esp gcov dump is run on examined target
  • esp/gcov: Fixed acknowledgement of the block with command w/o response data
  • esp/gcov: Halt target before on-the-fly gcov dump
  • semihosting: Fixed file name length parameter for GDB File IO to match GDB docs.
  • xtensa: Marked target as unexamined when 'powered' bit is reset during several polling periods.
  • In this release we have stared running the test suite with sanitizers (AddressSanitizer, UndefinedBehaviorSanitizer) enabled, and fixed the following issues:
    • target/esp_xtensa_apptrace: Fixed 'unaligned buffer' issue
    • esp32s2: Fixed left shift runtime errors found by sanitizers
    • gdb_server: Fixed AdressSanitizer issue caused by missing null character
    • xtensa: Fixed sanitizer warnings when shifting integer constants
    • xtensa: Fixed buffer overflow due to incorrect size allocated for wide user registers
    • xtensa: Fixed buffer overflow when reading trace data

v0.10.0-esp32-20201202

04 Dec 14:50
Compare
Choose a tag to compare

2020/12/02 Release, based on OpenOCD v0.10.0

Features

  • rtos: NuttX RTOS support on ESP32

Bug fixes:

  • libftdi: support libftdi 1.5 (upstream fix)
  • ci: fix "-dirty" suffix in the version reported by v0.10.0-esp32-20201125 release.

v0.10.0-esp32-20201125

25 Nov 22:11
Compare
Choose a tag to compare

2020/11/25 Release, based on OpenOCD v0.10.0

Features

  • esp32s3: Added base support for ESP32-S3.
  • esp32c3: Added base support for ESP32-C3.
  • esp/jtag: Added esp_remote JTAG interface over USB and TCP.
  • esp/jtag: Added esp_usb_jtag JTAG interace for embedded USB-to-JTAG functionality.
  • esp/xtensa: Refactored to make use of native SMP support in OpenOCD.
  • esp: Added program_esp_bins command to flash binaries specified in flasher_args.json file produced by ESP-IDF build system.
  • esp: Added esp_get_mac [format] command to obtain the factory MAC address.
  • helper: Added Espressif JEDEC code
  • esp/smp: Added generic ESP Xtensa SMP functionality.
  • jimtcl: Upgraded to 0.79 and enabled JSON extension.
  • esp32s2: Renamed esp32_s2 target to esp32s2 (backwards compatible)
  • xtensa: Implemented memory access range check.

Bug fixes:

  • esp32s2: Fixed issue with software reset when memory protection is enabled in the app.
  • esp32: Fixed program_esp32 TCL function to correctly pass arguments to program_esp (#122, thanks @pridgeway-rsc).
  • apptrace: Fixed running command on an unexamined core.
  • libftdi: Updated deprecated function calls.
  • semihosting: Fixed a bug with an incorrect return value for the custom lseek implementation.
  • semihosting: Fixed handling of invalid syscall arguments.
  • esp32: Fixed usage of unintialized GDB service.
  • freertos: Fixed non-general registers access from GDB.
  • freertos: Fixed GDB reg list usage in get_thread_reg_list.
  • esp32xx: Fixed ESP32 and ESP32-S2 Xtensa config.
  • apptrace: Fixed connection to already running target.

v0.10.0-esp32-20200709

09 Jul 09:57
Compare
Choose a tag to compare

2020/07/09 Release, based on OpenOCD v0.10.0

Bug fixes

  • esp: Fix chips memory layout
  • esp/apptrace: Fix apptrace auto-stop

Note: this is a bug fix update for the previous release, v0.10.0-esp32-20200526. It does not include latest changes present in the master branch, related to the native SMP support.

v0.10.0-esp32-20200526

26 May 10:52
Compare
Choose a tag to compare

2020/05/26 Release, based on OpenOCD v0.10.0

Features

  • boards: add ESP32-S2 Kaluga board config files

Bug fixes

  • esp32: Sync ESP32 aggregating target state with active sub-target
  • esp32: Fix gcov collection from APP CPU
  • xtensa: Check that target was inited before deinit
  • esp32: Fix polling and resuming stalled core
  • esp/apptrace: Fix 'sysview_mcore stop' waiting for timeout expiration
  • esp/apptrace: Make use of timer callback API for fast polling