Commit Graph

7470 Commits

Author SHA1 Message Date
Roland Dobai
29dcff2cdc fix(tools): seed IDF_VERSION before idf.py parses dependencies.lock
Any idf.py invocation could hang indefinitely with no output while
spawning an unbounded chain of "idf.py --version" subprocesses,
eventually exhausting system memory.

During init_cli(), idf.py parses the project's dependencies.lock to
vet trusted component-provided idf_ext.py extensions. If the lock
contains a component whose manifest has an "if: idf_version" clause,
evaluating it calls idf-component-manager's _get_idf_version(). Outside
a CMake build the IDF_VERSION environment variable is not set, so that
function falls back to running "idf.py --version" as a subprocess,
which re-enters init_cli() and recurses without bound.

During a normal CMake build the component manager runs as a subprocess
that already has IDF_VERSION in its environment (see build/config.env),
so the fallback is never reached. The recursion happens only because
idf.py runs component-manager code in-process during its own CLI
startup, outside that context.

Seed IDF_VERSION into os.environ early in init_cli(), before any
dependencies.lock parsing, using the subprocess-free
idf_version_from_cmake() helper. This gives in-process component-manager
code the same IDF_VERSION a CMake build would provide.
2026-05-15 16:30:46 +02:00
Jiang Jiang Jian
91b378565a Merge branch 'feat/test_lp_core_debugging_v6.0' into 'release/v6.0'
feat(ulp): add pytest for debugging example (v6.0)

See merge request espressif/esp-idf!48255
2026-05-15 14:08:07 +08:00
Jiang Jiang Jian
8f7209c611 Merge branch 'feature/update-gdb-to-17.1_20260402_v6.0' into 'release/v6.0'
feat(tools): update gdb version to 17.1_20260402 (v6.0)

See merge request espressif/esp-idf!47481
2026-05-15 13:54:50 +08:00
Mahavir Jain
36f3329a23 Merge branch 'feature/recovery_bootloader_support_v6.0' into 'release/v6.0'
feat(bootloader): Support recovery bootloader for ESP32P4 (v6.0)

See merge request espressif/esp-idf!48468
2026-05-15 09:52:49 +05:30
Alexey Lapshin
f9aafe76f3 feat(tools): update gdb version to 17.1_20260402 2026-05-15 10:01:30 +08:00
Jiang Jiang Jian
1a89b339a1 Merge branch 'feat/support_change_multiple_phy_init_bin_path_v6.0' into 'release/v6.0'
feat/support change multiple phy init bin path v6.0

See merge request espressif/esp-idf!48354
2026-05-14 10:54:01 +08:00
Jiang Jiang Jian
9a5f750747 Merge branch 'fix/fix_register_rw_half_word_check_v6.0' into 'release/v6.0'
fix(ci): fix register rw half word check (v6.0)

See merge request espressif/esp-idf!47696
2026-05-13 20:20:17 +08:00
Konstantin Kondrashov
2fcf83e2f3 fix(test_apps): Increase CONFIG_PARTITION_TABLE_OFFSET to 0x9000
Fix some test apps that have a partition table offset of 0x8000,
which left no room for the bootloader for some chips.
2026-05-13 10:18:40 +03:00
yinqingzhao
1dd3147edf fix(test_apps): fix bugs in phy tsens test apps 2026-05-13 10:03:00 +08:00
Samuel Obuch
5d8dabc15f change(cmake): use lpcore openocd configs with CONFIG_ULP_COPROC_TYPE_LP_CORE 2026-05-12 13:09:56 +02:00
Aditya Patwardhan
58ae4daa56 Merge branch 'fix/pmp_drom_mask_read_only_v6.0' into 'release/v6.0'
fix(cpu_region_protect): set DROM mask PMP entry to read-only (v6.0)

See merge request espressif/esp-idf!47575
2026-05-12 16:15:49 +05:30
Jiang Jiang Jian
16f83b2c2a Merge branch 'ci/update_integration_pipeline_v6.0' into 'release/v6.0'
ci: backport integration test and build docker (v6.0)

See merge request espressif/esp-idf!48376
2026-05-12 18:11:38 +08:00
Jiang Jiang Jian
1d922e9c48 Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20260424_v6.0' into 'release/v6.0'
feat(tools): update openocd version to v0.12.0-esp32-20260424 (v6.0)

See merge request espressif/esp-idf!48230
2026-05-12 18:06:19 +08:00
Chen Jichang
41914a1ebe fix(ci): fix register rw half word check 2026-05-12 18:01:08 +08:00
Zhi Wei Jian
1b93addbd0 feat(bt): add shared ble_uart component and update ble_uart_service/docs
(cherry picked from commit 272793f7d5)

Co-authored-by: zhiweijian <zhiweijian@espressif.com>
2026-05-11 21:23:35 +08:00
Erhan Kurubas
346d0419cc feat(tools): update openocd version to v0.12.0-esp32-20260424 2026-05-11 12:17:00 +02:00
Chen Yudong
8a845d3ba8 ci: optimize layer cache for docker build test
use different image tag for different concurrent job
2026-05-11 16:05:46 +08:00
nilesh.kale
2a0e25ab74 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-11 10:15:39 +05:30
Mahavir Jain
38db686872 Merge branch 'feat/update_mbedtls_4_1_1_v6.0' into 'release/v6.0'
feat(mbedtls): update to version 4.1.0 (v6.0)

See merge request espressif/esp-idf!48175
2026-05-11 09:50:25 +05:30
Ashish Sharma
04ec0ab538 feat(bootloader_support): remove P192 curve support 2026-05-10 19:16:12 +08:00
Zhou Xiao
0ba268133d docs(ble): update bridge docs and troubleshooting 2026-05-09 19:44:15 +08:00
Zhou Xiao
c6f0d4f1fd fix(ble): handle notification setup failures 2026-05-09 19:44:10 +08:00
Zhou Xiao
64034cbcb9 fix(ble): remove BLE service UUID scan filter 2026-05-09 19:44:06 +08:00
Zhou Xiao
ed9832b196 fix(ble): handle permission reply fallbacks
(cherry picked from commit ad7189e7dd)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-05-09 10:52:11 +08:00
Zhou Xiao
c3af0670da fix(ble): fixed edge case issues from ai reviewer
(cherry picked from commit fa8ca07e58)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-05-09 10:52:10 +08:00
Zhou Xiao
6484f83ff3 feat(tools): improve ble uart reconnect ux
(cherry picked from commit 956299d988)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-05-09 10:52:10 +08:00
Zhou Xiao
f043ef20e7 feat(tools): add opencode ble uart bridge demo
(cherry picked from commit 0b07f41e5a)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-05-09 10:52:10 +08:00
Zhou Xiao
14a82b0872 feat(ble): add BLE UART bridge core 2026-05-08 11:40:14 +08:00
Jiang Jiang Jian
3d2c10aaf3 Merge branch 'feat/coredump_rtc_noinit_v6.0' into 'release/v6.0'
Add a new attribute COREDUMP_NOINIT_ATTR (v6.0)

See merge request espressif/esp-idf!45054
2026-05-06 10:19:37 +08:00
sonika.rathi
9dc6ec1eb3 fix(fatfsgen): stabilize host read-flash after UART close in pytest 2026-04-30 14:36:21 +02:00
Roland Dobai
11bc5423c9 Merge branch 'feat/cmakev2_bootloader_v6.0' into 'release/v6.0'
feat(cmakev2): build bootloader using the cmakev2 build system (v6.0)

See merge request espressif/esp-idf!47903
2026-04-28 08:53:53 +02:00
Island
791b3de2ed Merge branch 'feat/support_ble_uart_service_v6.0' into 'release/v6.0'
Feat/support ble uart service (6.0)

See merge request espressif/esp-idf!48000
2026-04-28 13:26:39 +08:00
Island
6cf5b5f67f Merge branch 'dev/ble-log-202603_v6.0' into 'release/v6.0'
dev: BLE Log 202603 (6.0)

See merge request espressif/esp-idf!47277
2026-04-28 13:25:12 +08:00
Zhou Xiao
ad62778bc0 fix(ble): fixed ci failures for backport 2026-04-28 12:57:14 +08:00
Zhou Xiao
5a9bb3c7ca feat(ble): add BLE UART daemon notify API 2026-04-28 11:12:10 +08:00
Zhou Xiao
a1708452ec docs(ble): document BLE UART bridge usage 2026-04-28 11:12:10 +08:00
Zhou Xiao
c6de8e7dff feat(ble): wire BLE UART bridge CLI 2026-04-28 11:12:10 +08:00
Zhou Xiao
be95b3fc73 feat(ble): add BLE UART daemon RPC API 2026-04-28 11:12:10 +08:00
Zhou Xiao
29dc646b21 feat(ble): add BLE UART bridge console 2026-04-28 11:12:10 +08:00
Marius Vikhammer
dcb68bf51a Merge branch 'ci/panic_tests_p4_s31_v6.0' into 'release/v6.0'
test(system): enable panic tests for P4 and S31 (v6.0)

See merge request espressif/esp-idf!47461
2026-04-28 09:02:20 +08:00
Roland Dobai
75f99323b5 Merge branch 'feat/extenral_components_from_valid_sources_v6.0' into 'release/v6.0'
feat(tools): Restrict loading extension components to trusted sources (v6.0)

See merge request espressif/esp-idf!47668
2026-04-27 17:45:33 +02:00
Frantisek Hrbata
c6db3d1d07 fix(cmakev2/project): guard compiler optimization flags with build property
The __init_project_configuration() function in cmakev2's project.cmake
unconditionally applied app-level compiler optimization flags based on
CONFIG_COMPILER_OPTIMIZATION_* Kconfig options. When the bootloader
subproject was built with cmakev2, these app-level flags leaked into the
bootloader compile command alongside the correct bootloader-specific
flags from CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_*.

For example, with the default configuration (app: DEBUG, bootloader:
SIZE), the bootloader received both "-Og -fno-shrink-wrap" (from app
config) and "-Os -freorder-blocks" (from bootloader config). While GCC
uses the last -O flag (-Os wins), the stray -fno-shrink-wrap persisted.

Introduce a SET_COMPILER_OPTIMIZATION build property that defaults to
YES when unset. Subprojects that manage their own optimization flags
(like the bootloader) can set this to NO before calling
idf_project_init() to prevent the default optimization flags from being
applied. This keeps project.cmake generic without requiring it to know
about specific subproject types.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata
32eacbf0e3 fix(cmakev2/project): initialize idf_path for macro prefix map
The idf_path variable was used in -fmacro-prefix-map and
-fdebug-prefix-map flags but never read from the IDF_PATH build
property, resulting in an empty substitution. This caused full
filesystem paths to leak into .rodata instead of being mapped to /IDF.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata
cfc60dba16 fix(cmakev2/utilities): resolve embed file path in idf_component_include
Commit f62f45cf5c changed target_add_binary_data to resolve the
embedded file path relative to the component directory by using
idf_component_get_property to obtain the COMPONENT_DIR. This fixed the
path resolution when target_add_binary_data is called from
idf_component_include, which runs outside the component's directory
context.

However, target_add_binary_data can also be called directly from a
project's CMakeLists.txt with a non-component target, e.g.
target_add_binary_data(app.elf ...) as done in
examples/security/security_features_app. In this case,
idf_component_get_property fails because the target is not a component.

Fix this by moving the path resolution to idf_component_include, where
the embed file paths from EMBED_FILES and EMBED_TXTFILES component
properties are resolved to absolute paths relative to COMPONENT_DIR
before being passed to target_add_binary_data. This way,
target_add_binary_data receives already absolute paths from
idf_component_include and can use plain get_filename_component(ABSOLUTE)
for direct calls, which correctly resolves relative to
CMAKE_CURRENT_SOURCE_DIR.

Fixes: f62f45cf5c ("fix(cmakev2/utilities): add a dependency target for the embedded file")

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata
792f0975dd feat(cmakev2/kconfig): add GENERATE_SDKCONFIG build property
Add a GENERATE_SDKCONFIG build property that controls whether kconfgen
writes the sdkconfig file (--output config) during the configuration
step. It defaults to 1 (enabled).

When building the bootloader as a subproject, the set of components
(and their Kconfig files) differs from the main project. Running
kconfgen with --output config in this context rewrites the main
project's sdkconfig. Even when the content is identical, the timestamp
update causes ninja to detect sdkconfig as newer than build.ninja
outputs (e.g. cmake_install.cmake), triggering an infinite CMake
re-run loop.

Setting GENERATE_SDKCONFIG to 0 in a subproject prevents this,
matching the behaviour of cmakev1's __OUTPUT_SDKCONFIG property.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata
1c6414f21d feat(cmakev2/idf): add PROJECT_COMPONENTS_SOURCE build property
Add the PROJECT_COMPONENTS_SOURCE build property to control how project
components are categorised during component discovery.  By default it is
set to "project_components" (priority 3 - highest), preserving the
existing behaviour.

Setting it to "idf_components" (priority 0) before calling
idf_project_init() makes the project's built-in components overridable
by user-supplied components through EXTRA_COMPONENT_DIRS (priority 2).

This is needed for sub-projects like the bootloader, whose built-in
components (e.g. main) are provided by ESP-IDF and should be overridable
by user-supplied components placed in bootloader_components/.  The
cmakev1 build system allowed this override because it used a
last-one-wins strategy, but cmakev2 uses strict priority-based component
resolution where project_components always win.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata
d8fcec199e feat(cmakev2/build): add ALL option to idf_build_binary and idf_sign_binary
Add an optional ALL parameter to idf_build_binary and idf_sign_binary
functions. When specified, the created custom target is included in the
default build target. Without ALL, custom targets created by these
functions are excluded from the default build (add_custom_target
behavior), meaning they won't be built unless explicitly requested or
depended upon by another target in ALL.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata
a0b0ee562a feat(cmakev2/utilities): add idf_target_post_build_msg helper
Add a helper function for printing multi-line post-build messages on a
target. The message lines are joined with newlines, written to a file at
configure time, and printed at build time using a single cmake -E cat
command, replacing the need for repeated cmake -E echo invocations.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata
de156c9e5a feat(cmakev2/build): add idf_check_bootloader_size helper
Add a public API function to check that the bootloader binary does not
overlap the partition table, mirroring the existing idf_check_binary_size
pattern for application binaries.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata
394b881708 fix(cmakev2/build): fix typo in idf_sign_binary keyfile variable
The KEYFILE argument value was stored in a misspelled variable
"keyfle" instead of "keyfile", causing custom keyfile paths to
be silently ignored.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00