# ChangeLog ## v0.6.0 - 2026-10-28 - Add ESP32-P4 support for chip revision >= 3 on IDF v5.5.5 and newer. P4 does not use `linker.lf` (that region overlaps `iram_loader_seg`). IDF 5.5.x copies `bootloader.rev3.ld` into the build directory and injects the same `.iram_loader.text` rules. `CONFIG_ESP32P4_SELECTS_REV_LESS_V3` is a configure error. - On targets where IRAM and DRAM share an address range, keep the bootloader XZ bump allocator below `bootloader_iram_seg_start` so the dictionary cannot overwrite `.iram_loader.text`. - When flash encryption is disabled, read the compressed image and RMW destination through the ROM SPI path instead of the shared cache-mapped MMU window, avoiding stale reads during decompress-on-P4. - Keep decoder state and I/O buffers on the cacheable bootloader heap. On ESP32-P4 the LZMA dictionary itself is remapped to the non-cacheable alias. - On ESP32-P4, write back the L1 data cache before bootloader flash reads and writes. ROM flash helpers disable L2, and a dirty L1 line written back into a disabled L2 is lost. - On ESP32-P4 only, align the bump heap to the 64-byte L1 line and take the LZMA dictionary from the top of that heap (with a gap below loader IRAM). Other chips keep an upward bump so a top-down dictionary cannot overwrite the DRAM alias of `iram_loader_seg`. - Depend on `xz` `>=1.1.2,<2.0.0`. The ESP32-P4 bootloader dictionary fix is in that release. - Add ESP32-S31 support on IDF v6.1 and newer. S31 uses the IDF 6.x `.iram_loader.text` injection and the unified DIRAM heap ceiling. It does not use the ESP32-P4 non-cacheable dictionary path. On IDF 6.1, S31 is a preview target (`idf.py --preview set-target esp32s31`); CI builds it with an explicit `-t esp32s31` job because `-t all` omits preview targets. ## v0.5.0 - 2026-10-23 ### Fix: - On IDF v6.0 and newer, inject plus/XZ archive rules into `.iram_loader.text` of the generated bootloader linker script (`bootloader.ld` on 6.0/6.0.1, `bootloader.rev3.ld` for ESP32-P4 rev >= 3, `bootloader.sections.ld` from 6.0.2) so the decompressor is placed in `iram_loader_seg` regardless of `-T` order. Other chips on IDF versions before v6.0 still use `linker.lf`. ## v0.4.2 - 2026-08-24 ### Fix: - Replace deprecated `esp_flash_encryption_enabled()` with `esp_efuse_is_flash_encryption_enabled()` on IDF v6.0.1 and newer. IDF v6.0.0 still provides only `esp_flash_encryption_enabled()`. ## v0.4.1 - 2026-06-10 ### Fix: - Support the new CMake build system (cmakev2) by removing the unsupported BUILD_COMPONENTS build property usage. - Add esp_hal_wdt dependency for IDF v6.0 and newer, where the watchdog HAL was moved out of the hal component. ## v0.4.0 - 2025-09-08 ### Improve: - Add ESP32-C61 and ESP32-S3 support. ## v0.3.9 - 2025-06-17 ### Improve: - Add ESP32-C5 support. ## v0.3.8 - 2025-04-02 ### Fix: - Fix symbols that cannot be displayed properly in readme. ## v0.3.7 - 2025-02-28 ### Improve: - Update the version of dependent cmake_utilities to * ## v0.2.7 - 2025-2-26 ### Fix: * Fix the issue of a `-Wincompatible-pointer-types` compilation error. ## v0.2.6 - 2024-07-01 ### Feature: * Add support to boot into a standard firmware (non-compressed) by checking the image header even if it is at last ota partition (eg. ota_1). ## v0.2.5 - 2024-4-30 ### Fix: * Fix undeclared wdt error when compiling esp32h2. ## v0.2.4 - 2024-4-11 ### Fix: * Fix flash encryption could not be enabled in the bootloader. ## v0.2.3 - 2023-12-14 ### Fix: * Feed watchdog when erase OTA slot. ## v0.2.2 - 2023-12-12 ### Fix: * Change wrap to be triggered only when the CONFIG_BOOTLOADER_COMPRESSED_ENABLED is enabled. ## v0.2.1 - 2023-04-23 ### Fix: * Change CONFIG_BOOTLOADER_COMPRESSED_ENABLED to disable by default. ## v0.2.0 - 2023-04-20 ### Feature: * Add support for compressed OTA v2 which is supported in the deprecated esp-bootloader-plus. However, it is recommended to use bootloader_support_plus as much as possible. ## v0.1.2 - 2023-04-17 ### Feature: * Support ESP32-H2 compressed OTA on esp-idf/v5.1. ## v0.1.2 - 2023-04-17 ### Feature: * Support ESP32-C6 and ESP32 compressed OTA on esp-idf/v5.1. ## v0.1.1 - 2023-04-06 ### Feature: * Support ESP32 compressed OTA on esp-idf/v5.0. ## v0.1.0 - 2023-03-02 ### Feature: * Initial version * Support to update the firmware in the bootloader stage by decompressing the compressed OTA firmware