Commit Graph

6822 Commits

Author SHA1 Message Date
Jiang Jiang Jian
f402ab1c18 Merge branch 'fix/fix_issues_when_support_multiple_phy_init_data_v5.5' into 'release/v5.5'
Fix/fix issues when support multiple phy init data v5.5(backport v5.5)

See merge request espressif/esp-idf!52586
2026-09-10 11:26:09 +08:00
Jiang Jiang Jian
2fe571159c Merge branch 'fix/mmap_cache_flash_wr_v5.5' into 'release/v5.5'
fix(mmap): fixed mmap read data wrong when flash being erased/written and cache not disabled (v5.5)

See merge request espressif/esp-idf!50144
2026-09-10 10:39:35 +08:00
yinqingzhao
2fb26b0083 feat(test_app): add test app for multiple phy init data 2026-09-09 17:20:26 +08:00
Samuel Obuch
e75b7a1f35 feat(tools): update openocd version to v0.12.0-esp32-20260831 2026-09-03 13:06:49 +02:00
Xiao Xufeng
3d76ced5bb fix(mmap): fixed some API read wrong data via mmap when flash being erased/written while XIP on PSRAM
Before:

The cache won't be disabled when XIP on psram. But during flash
erasing/programming, read data will be courrupt.

When XIP in psram is enabled, the image is not mapped to the cache so
usually there will be no flash access. The only way to read from flash
is via the driver or use mmap. The driver has protection during erasing,
while th mmap region not.

Now:

Mmap APIs provide a flag to make mmap->unmap region mutually exclusive
to flash erase/programming when XIP from psram. SPI Flash write APIs
will benefit from this. When the flag is used, no concurrent access to
mapped region will happen while writing; otherwise the cache will be
disable to avoid data corruption.

Most ESP-IDF APIs calls mmap with this flag. As for users calling
mmap-like APIs directly, they can choose whether to enable this by a
flag.

Closes https://github.com/espressif/esp-idf/issues/14897
2026-08-31 01:37:44 +08:00
Konstantin Kondrashov
b116ab3a21 fix(bootloader): increase partition table offset for ESP32-P4 in affected test configs 2026-08-28 17:15:49 +03:00
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 Fiala
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