Commit Graph
6816 Commits
Author SHA1 Message Date
Jiang Jiang Jian ef92d00a91 Merge branch 'feat/optimize_bootloader_size_v5.5' into 'release/v5.5'
change(bootloader): optimize bootloader size (v5.5)

See merge request espressif/esp-idf!51598
2026-08-25 10:54:54 +08:00
Jiang Jiang Jian 60115cf982 Merge branch 'fix/crt-bundle-unaligned-reads_v5.5' into 'release/v5.5'
fix(mbedtls): read crt bundle byte-wise to avoid misaligned flash access (v5.5)

See merge request espressif/esp-idf!51725
2026-08-25 10:52:21 +08:00
Marius Vikhammer b0386e4144 change(bootloader): optimize bootloader size
Trim bootloader size by moving some logs to DEBUG. Allows
compiling bootloader on P4 with CONFIG_ESPTOOLPY_FLASHMODE_QIO
without changing partition table offset
2026-08-21 10:13:45 +08:00
Mahavir Jain 723fa10953 fix(build): word-align the length symbol of embedded data files
The generated assembly emitted <name>_length immediately after the raw
payload bytes, so the 32-bit word landed misaligned whenever the data
size was not a multiple of 4. Consumers declare it as a 32-bit object
(e.g. `extern const size_t <name>_length` in the ULP firmware loaders),
so the compiler emits an alignment-assuming word load, which is a
misaligned flash read prone to spurious load faults on chips with
SOC_CPU_MISALIGNED_ACCESS_ON_PMP_MISMATCH_ISSUE (ESP32-C6/H2/H21).
2026-08-19 13:43:21 +05:30
Frantisek Hrbata 3c9d844cbe style(ci): satisfy ruff on check_type_comments.py
The previous commit touches tools/ci/check_type_comments.py, which brings the
file into ruff's scope for the first time in a while and surfaces two
pre-existing findings:

    A004 Import `exit` is shadowing a Python builtin
    F401 `typing.List` imported but unused

Import sys and call sys.exit() rather than shadowing the builtin, which is
also how master writes this file. List is used, but only inside `# type:`
comments that ruff cannot see, so mark the import instead of dropping it:
check_type_comments.py is not on tools/ci/mypy_ignore_list.txt, so mypy checks
it under disallow_untyped_defs and the name has to resolve.

No behaviour change. Verified with the pinned ruff 0.9.7 (check and
format --check) and with mypy 1.19.1, and both exit paths of the script still
behave as before.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-08-17 16:56:14 +02:00
Frantisek Hrbata 2a92260bc1 ci: pass a mypy target that the toolchain still accepts
check_type_comments.py runs ignore-listed files through a relaxed mypy pass
with --python-version 3.8, which overrides the python_version = 3.9 that
.mypy.ini already sets. mypy dropped 3.8 as a modelling target in 1.17.0 and
now rejects the flag while parsing arguments, before it reads any source:

    mypy: error: argument --python-version: Python 3.8 is not supported
                 (must be 3.9 or higher)
    mypy check failed for:
         tools/ldgen/ldgen.py

The hook declares mypy without a version, so which mypy is used is decided
when the ci/images pre-commit-idf-v5.5 image is built. That image is based on
Python 3.9, where Requires-Python caps mypy at 1.19.1, and the image
currently in use carries exactly that. Any MR touching a file listed in
tools/ci/mypy_ignore_list.txt therefore fails check_pre_commit
deterministically, whatever the file contains.

Pass 3.9 instead, matching .mypy.ini and the OLDEST_PYTHON_SUPPORTED = (3, 9)
that tools/python_version_checker.py enforces on this branch. This restores
the pairing master and release/v6.0 already have, where the flag mirrors
.mypy.ini at 3.10.

release/v5.4 and release/v5.3 need no equivalent change: their pre-commit
images are based on Python 3.8, where mypy caps at 1.14.1 and the flag is
still accepted.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-08-17 16:49:27 +02:00
Frantisek Hrbata 8bd2ddf1bf style(ldgen): reformat with ruff-format
release/v5.5's tools/ldgen/ldgen.py predates the ruff-format layout that
pre-commit enforces, so running the hook over this file reports it as
needing reformatting because of code that no change here touches.

Apply ruff-format. That also resolves the E501 on the long
"with open(output_path, ...)" line, since the formatter wraps the call.
No behaviour change.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-08-17 19:04:43 +08:00
Frantisek Hrbata a78ee285c9 fix: harden build against empty toolchain output
On some Windows systems, antivirus, endpoint-security or DLP/encryption
software intercepts short-lived toolchain processes and strips their
stdout when the build captures it through a pipe, while the same command
prints its output normally when run by hand. The tool exits successfully
but returns nothing, and each build step that reads toolchain output then
failed with a different, cryptic error far from the real cause:

- CMake configuration aborted with "Unknown arguments specified" in
  components/xtensa/project_include.cmake, or "check_expected_tool_version
  invoked with incorrect arguments" in components/esp_common.
- ldgen turned the empty objdump output into an opaque pyparsing
  "Expected 'In archive'" traceback.
- idf_tools.py silently reported the compiler/debugger version as
  "unknown", sending users into a fruitless reinstall loop.

Detect the empty result at each consumer and fail (or warn) with an
actionable message that names the likely cause and the remedy:

- tools/cmake/compiler_query.cmake: new __compiler_query() helper runs a
  compiler query and fails with a clear error on empty or failed output.
  It is a standalone module included by the build system utilities, so
  that it is available to the esp_common and xtensa project_include.cmake
  files that call it. The xtensa if() arguments are now quoted so an
  empty result no longer collapses into a parse error.
- tools/ldgen/ldgen.py: _run_objdump() rejects empty objdump output, and
  non-empty-but-unparsable section info is caught and re-raised as a clear
  LdGenFailure instead of a raw pyparsing traceback.
- tools/idf_tools.py: empty version output now warns with the cause and
  returns UNKNOWN_VERSION instead of silently reporting "unknown".

Closes https://github.com/espressif/esp-idf/issues/18727

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-08-17 19:04:43 +08:00
Fu Hanxi fa54a2e223 ci: use main branch of ci/actions/common 2026-08-13 15:33:43 +02:00
Alexey Lapshin 8e3d4f29ec feat(tools): tools: update esp-rom-elf to version 20260528
Closes https://github.com/espressif/esp-idf/issues/18755
2026-07-30 16:34:38 +08:00
morris 5c451bf762 feat(build): support aligned embedded binary data
Allow callers to align embedded binary start symbols for DMA-capable
assets.
2026-07-28 14:37:45 +08:00
Daniel Paul ce5c4068a1 chore: Remove old root managed components tests 2026-07-27 13:34:03 +02:00
Fu Hanxi a2a05e4429 ci(windows): fix fetch submodule path issue 2026-07-27 13:34:03 +02:00
Fu Hanxi d61d931d33 ci: apply common-scripts CI refactor 2026-07-27 13:34:02 +02:00
Fu Hanxi bbf1a2e013 ci: remove pip-cache and other unused jobs 2026-07-27 10:53:19 +02:00
Fu Hanxi d359f42f6d ci: apply idf-ci 1.x
(cherry picked from commit 21d772a24da646bfb672418cf056199cad9b17e4)
2026-07-27 10:52:35 +02:00
Euripedes Rocha 6a46ffa617 Merge branch 'feat/eth_test_component_v5.5' into 'release/v5.5'
feat(esp_eth): updated test_apps to use Ethernet test component (v5.5)

See merge request espressif/esp-idf!49660
2026-07-27 10:35:47 +02:00
Marek FialaandCursor e56672a42a test(tools): Added minimal supported cmake versions build system tests
Backport of efa75a9b60 to release/v5.5.

Adapted from the master version because of structural differences on
release/v5.5:

- The new jobs are added to .gitlab/ci/host-test.yml (where build-system
  pytest jobs live on v5.5) instead of .gitlab/ci/build.yml.
- The minimum supported cmake version is 3.16.3 on v5.5
  (cmake_minimum_required(VERSION 3.16) in tools/cmake/project.cmake),
  so the new jobs test cmake@3.16.3 instead of 3.22.1.
- The macOS template extraction from the original commit is omitted:
  v5.5 already uses .brew-macos-settings for the macOS variables, so
  the refactor would be redundant.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 15:27:24 +02:00
Alexey Gerenkov 231193854a Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20260703_v5.5' into 'release/v5.5'
feat(tools): update openocd version to v0.12.0-esp32-20260703 (v5.5)

See merge request espressif/esp-idf!50504
2026-07-20 17:35:16 +08:00
Island 7465b764c4 Merge branch 'ble-log-console-migration-notice_v5.5' into 'release/v5.5'
Ble log console repository migration (5.5)

See merge request espressif/esp-idf!50606
2026-07-20 11:04:22 +08:00
morris 26654f5a76 Merge branch 'bugfix/uart_sw_flow_ctrl_xoff_char_v5.5' into 'release/v5.5'
fix(uart): fix uart sw flow ctrl XOFF char write to wrong reg on ESP32C6 (v5.5)

See merge request espressif/esp-idf!50525
2026-07-18 15:54:51 +08:00
morris b774170ff4 change(version): Update version to 5.5.5 2026-07-16 17:47:07 +08:00
guozifan 315dbff3d6 remove(ble): migrate BLE Log Console out of ESP-IDF 2026-07-10 15:43:46 +08:00
Song Ruo Jing b4b2d2d4d4 fix(stdio): add console input ability when selects ESP_CONSOLE_UART_CUSTOM_NUM_1 2026-07-09 20:32:24 +08:00
Samuel Obuch f0794c1c08 feat(tools): update openocd version to v0.12.0-esp32-20260703 2026-07-08 12:12:34 +02:00
harshal.patil a847bb8439 fix(panic): handle absent IROM/DROM alignment gap in spiram-xip memprot tests
The spiram-xip IROM/DROM alignment tests assumed the XIP region always
leaves an alignment gap before the next MMU page: they executed into the
gap and expected an instruction access fault followed by a register dump.
When the section ends exactly on an MMU page boundary there is no gap - the
device prints "<IROM/DROM> alignment gap not added into heap" and returns,
the framework restarts cleanly (esp_restart_noos, no panic), and the test
timed out waiting for a register dump.
2026-07-01 11:00:16 +05:30
Ondrej Kosta c1a37b419d feat(ci): support downloading extra app artifacts in pytest
Add app_extra S3 artifact type, extend idf-ci download plumbing, and
expose a download_app_extra pytest fixture for managed_components deps.
2026-06-26 14:09:45 +02:00
Ivan Grokhotkov fbc1bb6503 feat(tools): update qemu version to esp_develop_9.2.2_20260417 2026-06-17 19:42:36 +08:00
Island 867315fb2e Merge branch 'feat/format_bt_hci_to_btsnoop_v5.5' into 'release/v5.5'
refactor(bt): migrate bt_hci_to_btsnoop to esp-pylib (5.5)

See merge request espressif/esp-idf!49709
2026-06-17 14:43:57 +08:00
Jiang Jiang Jian 87c540da31 Merge branch 'fix/disable_secure_boot_v2_ecdsa_v5.5' into 'release/v5.5'
Fix/disable secure boot v2 ecdsa (v5.5)

See merge request espressif/esp-idf!49472
2026-06-17 12:00:48 +08:00
Jiang Jiang Jian 0a1b7e13c3 Merge branch 'docs/ble-uart-tutorial_v5.5' into 'release/v5.5'
docs(ble): added ESP-BLE-UART OpenCode Companion Guide (5.5)

See merge request espressif/esp-idf!49383
2026-06-17 11:59:46 +08:00
Zhang Hai Peng 48f1392518 refactor(bt): migrate bt_hci_to_btsnoop to esp-pylib
Replace argparse with rich-click and use esp_pylib.logger for
standardized console output and fatal error handling.


(cherry picked from commit 3a7896f2c5)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2026-06-16 15:34:06 +08:00
Alexey Lapshin 1e0fcf4e6e fix(tools): make script compatible with cmake v3.16 2026-06-10 13:09:39 +08:00
Aditya Patwardhan 66156479d2 change(secure_boot): mark ECDSA based Secure Boot V2 as insecure on affected SoCs
ECDSA based Secure Boot V2 is not functional for certain input vectors on
ESP32-C5/C61/H2/P4 and on the preview targets ESP32-H4/H21. RSA based Secure
Boot V2 is the recommended scheme where the SoC supports it. This issue will be
fixed in a future hardware ECO revision; more details will be shared through the
hardware errata document.

A new hidden Kconfig option SECURE_BOOT_V2_ECDSA_INSECURE marks the affected
mass-production SoCs (ESP32-C5/C61/H2/P4). On these SoCs, when hardware Secure
Boot V2 is enabled, the ECDSA (V2) signing scheme is no longer offered by
default; it must be turned on explicitly via SECURE_BOOT_V2_FORCE_ENABLE_ECDSA
under "Allow potentially insecure options" (CONFIG_SECURE_BOOT_INSECURE). App
signing without hardware Secure Boot is not affected. Note that ESP32-C61 has no
RSA based Secure Boot V2, so it has no Secure Boot scheme enabled by default.

The preview targets ESP32-H4 and ESP32-H21 mark ECDSA Secure Boot V2 as not
supported in their SoC capabilities instead of using the option above. As
ESP32-H4 has no other Secure Boot V2 scheme, Secure Boot is disabled entirely on
it; ESP32-H21 retains RSA based Secure Boot V2.

The security documentation keeps the ECDSA Secure Boot V2 content visible and
adds a warning describing the limitation (including that ECDSA Secure Boot V2 on
ESP32-C61 is not recommended for production). CI apps that exercise ECDSA Secure
Boot V2 on the affected SoCs set CONFIG_SECURE_BOOT_V2_FORCE_ENABLE_ECDSA
accordingly.
2026-06-10 08:08:07 +05:30
Zhou Xiao b214034f6e docs(ble): add ESP-BLE-UART companion guide
Move the OpenCode companion guide into the ble_uart_service example.

Add English and Chinese Markdown guides with image assets.

Keep ESP-BLE-UART naming consistent across the example and bridge tooling.


(cherry picked from commit 926111e721)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-06-08 14:14:45 +08:00
Alexey Gerenkov 8c59da477b Merge branch 'feat/test_lp_core_debugging_v5.5' into 'release/v5.5'
feat(ulp): add pytest for debugging example (v5.5)

See merge request espressif/esp-idf!48256
2026-06-01 20:55:10 +08:00
Aditya Patwardhan 6f79e8ed4a Merge branch 'feat/esp_tee_backports_v5.5' into 'release/v5.5'
feat(esp_tee): Feature/fixes backports to `release/v5.5`

See merge request espressif/esp-idf!48496
2026-05-28 11:00:10 +05:30
Aditya Patwardhan 36d2235696 Merge branch 'fix/fix_sec2_client_possible_pub_length_truncation' into 'release/v5.5'
fix(esp_prov): fixes security2 client possible public length truncation

See merge request espressif/esp-idf!48728
2026-05-28 10:41:41 +05:30
morris a4ff8642d5 Merge branch 'feat/lcd_i2c_use_configurable_timeout_v5.5' into 'release/v5.5'
feat(lcd): add configurable timeout for lcd i2c panel (v5.5)

See merge request espressif/esp-idf!48664
2026-05-28 11:35:14 +08:00
Laukik Hase 2c38c285cf feat(esp_tee): Clear out all sensitive buffers explicitly after TEE crypto operations 2026-05-26 11:44:47 +05:30
Chen Chen 08ca9fcab3 feat(lcd): add configurable timeout for lcd i2c panel
Closes https://github.com/espressif/esp-idf/issues/18542
Closes https://github.com/espressif/esp-idf/pull/18543
2026-05-25 09:51:46 +08:00
Roland Dobai f75f044d62 Merge branch 'contrib/github_pr_18556_v5.5' into 'release/v5.5'
fix(tools): idf_tools.py uninstall: initialize archive_version before use (GitHub PR) (v5.5)

See merge request espressif/esp-idf!48826
2026-05-22 15:36:21 +02:00
Jiang Jiang Jian 50d7885fc6 Merge branch 'fix/pmp_drom_mask_read_only_v5.5' into 'release/v5.5'
fix(cpu_region_protect): set DROM mask PMP entry to read-only (v5.5)

See merge request espressif/esp-idf!47577
2026-05-22 16:29:53 +08:00
bakamake d13f0f45c5 fix(tools): idf_tools.py uninstall: initialize archive_version before use
Closes https://github.com/espressif/esp-idf/pull/18556
2026-05-22 10:00:55 +02:00
nilesh.kale e3a8feedcc fix(cpu_region_protect): set DROM mask PMP entry to read-only
PMP entry 3 (SOC_DROM_MASK_HIGH, TOR mode) in the memprot path
was incorrectly granted RW permission on esp32h21 and esp32c61.
The mask ROM data region is inherently read-only; remove the W bit.

Also added necessary tests to check voilations and re-enabled
tests for ESP32P4
2026-05-21 11:33:09 +05:30
Ashish Sharma 26de0e2137 fix(esp_prov): fixes sec2 client possible public length truncation 2026-05-20 11:54:44 +08:00
Fu Hanxi 6717c915d9 feat(build): support env var IDF_PY_BUILD_JOBS for ninja jobs 2026-05-20 09:43:34 +08:00
Fu Hanxi 8a4dbaac6a ci: log per-job ccache stats 2026-05-20 09:43:32 +08:00
Jiang Jiang Jian 091c972a02 Merge branch 'backport/backport_some_wifi_changes_v5.5_260518' into 'release/v5.5'
backport/backport some wifi changes v5.5 260518(backport v5.5)

See merge request espressif/esp-idf!48614
2026-05-19 16:51:29 +08:00
Mahavir Jain 6a32889849 Merge branch 'feature/recovery_bootloader_support_v5.5' into 'release/v5.5'
feat(bootloader): Support recovery bootloader for ESP32P4 (v5.5)

See merge request espressif/esp-idf!48474
2026-05-19 12:35:57 +05:30