Commit Graph

7512 Commits

Author SHA1 Message Date
Frantisek Hrbata fc5e7eb22d fix(cmakev2/compat): display empty components as excluded into menuconfig
Some components simply return when included in a build for the Linux
target. This is silently ignored in the `idf_component_include`, and the
component interface target is linked as requirement in
`idf_component_register`. This has the side
effect of such components being reported as included, with their
configuration displayed in the menuconfig for included components,
rather than in the submenu for excluded components. For example, the
`bt` component, if added as a dependency in `idf_component_register`,
will be displayed in menuconfig as an included component for Linux
target. The `idf_component_include` function sets the component's
`COMPONENT_REAL_TARGET` property to `NOTFOUND` in such situations. Use
this information when config.env is generated put such components into
excluded submenu. Note that we cannot avoid linking empty component interface
into library, because there might be recursive dependencies and at the
time when the component is included we might not now if it has a real
target or not.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-21 16:48:44 +01:00
Frantisek Hrbata 0a865c6e09 fix(cmakev2/project): generate binaries only if esptool_py component is present
Currently, the CONFIG_APP_BUILD_GENERATE_BINARIES option is used to
determine whether binary images will be generated in
idf_project_default. At present, this option is enabled even for the
Linux target, where the esptool_py component is not included, preventing
the generation of binary images. To address this issue, verify if the
target for esptool_py is present.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-21 16:48:44 +01:00
Frantisek Hrbata 029c4135ee fix(cmakev2/idf): fix IDF_TOOLCHAIN build property for linux target
The IDF_TOOLCHAIN build property is currently incorrectly set to the
default `gcc` value for the linux target, whereas it should be empty.
This misconfiguration causes confusion for components like `soc`, which
adjust toolchain options based on the
IDF_TOOLCHAIN(CONFIG_IDF_TOOLCHAIN_GCC) build property's setting.

When sdkconfig is generated, the IDF_TOOLCHAIN build property is passed
as an environmental variable to kconfgen, and the CONFIG_IDF_TOOLCHAIN
configuration option is set based on this variable. Additionally, the
CONFIG_IDF_TOOLCHAIN_GCC and CONFIG_IDF_TOOLCHAIN_CLANG configuration
options are set accordingly. Subsequently, CONFIG_IDF_TOOLCHAIN_GCC is
used in several places, such as `components/soc/project_include.cmake`,
to configure the toolchain (compiler flags) by invoking functions from
`tools/cmake/toolchain_flags.cmake`, which is included only for
non-linux targets. As a result the configuration fails, because
functions from `tools/cmake/toolchain_flags.cmake` are not available on
linux target.

Since the IDF_TOOLCHAIN cmake cache variable is actually set in the
`tools/cmake/toolchain.cmake` file, the IDF_TOOLCHAIN build property
should be set after the toolchain is initialized in cmakev2's project
initialization. Note that each toolchain file, except for linux,
includes `toolchain.cmake`, which in turn includes
`toolchain_flags.cmake`. This means the IDF_TOOLCHAIN cmake cache
variable is set for every target except linux, because the toolchain
file for linux is empty. As a result CONFIG_IDF_TOOLCHAIN is empty and
CONFIG_IDF_TOOLCHAIN_GCC not set as for cmakev1.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-21 16:48:44 +01:00
Frantisek Hrbata 26f2961696 fix(cmakev2/component): use component interface in dependency chain
The dependency chain currently tracks component names that are included
recursively with `idf_component_include`. However, these component names
can be ambiguous because a component may be referenced by different
names, such as with a namespace. Additionally, `idf_component_include`
can accept anything that `__get_component_interface` accepts, meaning
even the component interface target can be used to include the component
in the build. To uniquely identify each component, use component
interface targets instead of names in the dependency chain.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-21 16:48:44 +01:00
Erhan Kurubas 2c28cfe8a2 Merge branch 'gcov_over_uart' into 'master'
Gcov over uart

Closes IDF-15030 and OCD-1191

See merge request espressif/esp-idf!44615
2026-01-21 06:54:31 +01:00
Aditya Patwardhan eb4a871eca refactor(esp_hal_security): Updated esp_hal_security build and includes 2026-01-21 10:02:44 +05:30
Erhan Kurubas f1d43df4a1 feat(examples): dump coverage over uart 2026-01-20 11:30:03 +03:00
Fu Hanxi 0b71f5c42b ci: rename eco_default to rev_default 2026-01-20 08:58:10 +01:00
Erhan Kurubas caa0697240 test(panic): add retry logic to espcoredump subprocess call 2026-01-20 10:32:18 +03:00
Song Ruo Jing ce6e80c129 Merge branch 'refactor/esp_hal_clock' into 'master'
refactor(clk): split clock HAL into separate component

Closes IDF-14108

See merge request espressif/esp-idf!44768
2026-01-19 11:33:35 +08:00
Frantisek Hrbata e2548ce30c Merge branch 'fix/cmakev2_component_get_property_raw' into 'master'
feat(cmakev2): reduce reconfiguration time

See merge request espressif/esp-idf!45065
2026-01-17 09:54:39 +01:00
Ferdinand Bachmann d3afb79c98 fix(cmake): Fix "IMPORTED_LOCATION not set for imported target" errors
esp-idf uses imported targets as dummy targets that are never linked.
Previous CMake versions would ignore these and not error on unset
IMPORTED_LOCATION if they are never actually linked. CMake 4.2 and newer
errors during codemodel-v2 api queries when imported targets are missing
IMPORTED_LOCATION, so set a dummy location that would error when
actually linked, which fixes the error during api queries.

Closes https://github.com/espressif/esp-idf/pull/18103
2026-01-14 21:49:07 +08:00
morris 8e8d83a167 Merge branch 'feat/remove_sdm_set_duty_api' into 'master'
feat(sdm): remove `sdm_channel_set_duty` API

Closes IDF-15132

See merge request espressif/esp-idf!45057
2026-01-14 08:57:34 +08:00
Frantisek Hrbata 0f4ec41421 fix(cmakev2/component): use __idf_component_get_property_unchecked
In some instances, the COMPONENTS_DISCOVERED build property is used to
walk through the component list and obtain component properties, such as
during configuration preparation or the inclusion of project_include
files. Since we know the component interfaces from the
COMPONENT_INTERFACES build property, we can switch to the faster
`__idf_component_get_property_unchecked` method to obtain component properties
in these cases. This change reduces the reconfiguration time by 0.4
seconds on my computer.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-13 16:49:12 +01:00
Frantisek Hrbata 368b90245b fix(cmakev2/component_validation): accelerate component validation
The commit f951ae5b18 ("feat(cmakev2): Added component validation
checks for ...") introduced support for validating component sources and
include directories. It heavily relies on iterating through the
registered components to obtain their properties. For instance, it
examines all components for each component source file to ensure that
the source files do not originate from other components. However, it
turns out that `idf_component_get_property` is a bottleneck in this
process, causing reconfiguration to take 3-4 times longer than before
the introduction of this check. Since we know of all the component
interfaces, we can bypass the checks performed by
`idf_component_get_property` and instead use the raw version,
`__idf_component_get_property_unchecked`, which operates much faster.

Following are hello_world example reconfigure times before and after.

before:

-- Configuring done (11.1s)
-- Generating done (0.2s)

after:

-- Configuring done (3.9s)
-- Generating done (0.2s)

A new library property LIBRARY_COMPONENT_INTERFACES_LINKED is added that
keeps component interfaces linked to the library.

Fixes: f951ae5b18 ("feat(cmakev2): Added component validation checks for ..")
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-13 16:47:25 +01:00
Frantisek Hrbata d01979e3d8 feat(cmakev2): introduce __idf_component_get_property_unchecked helper
Retrieve the value of the specified component property quickly. The
existing `idf_component_get_property` function performs various checks
to identify the component interface target, which keeps the component
properties, and accepts a component name, target, target alias, or
interface. While `idf_component_get_property` uses a cache to identify
the component interface relatively quickly, it is still much slower
compared to the raw `get_property`. The
`__idf_component_get_property_unchecked` function provides a faster way how to
obtain component property if the component interface is already known.
It skips all the checks, so it must be used carefully.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-13 16:45:01 +01:00
Frantisek Hrbata 0f011477aa fix(cmake): disable MINIMAL_BUILD build property if COMPONENTS is defined
The MINIMAL_BUILD build property and the COMPONENTS variable are both
used to determine the initial component list for the build.

Currently, if the COMPONENTS variable is set, the MINIMAL_BUILD logic
is ignored during component selection, but the MINIMAL_BUILD build
property remains set. This leads to an inconsistent state where
menuconfig displays information indicating MINIMAL_BUILD is active,
even though it was ignored in favor of the COMPONENTS variable.

Fix this by setting the MINIMAL_BUILD property to OFF if the
COMPONENTS variable is used.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-13 21:58:55 +08:00
Chen Chen 60284a9c86 feat(sdm): remove sdm_channel_set_duty API 2026-01-13 16:26:57 +08:00
Song Ruo Jing 62511d61e9 refactor(clk): split clock HAL into separate component 2026-01-13 15:50:20 +08:00
Erhan Kurubas 392dfed30b Merge branch 'feat/coredump_rtc_noinit' into 'master'
Add a new attribute COREDUMP_NOINIT_ATTR

See merge request espressif/esp-idf!44843
2026-01-13 08:24:11 +01:00
He Binglin 7f98da97d3 Merge branch 'bugfix/esp_idf_c5_eco3_cpu_lockup' into 'master'
change: support top pd during sleep for esp32c5 eco3 and remove sleep mmu related flow

Closes IDF-13953

See merge request espressif/esp-idf!43587
2026-01-13 11:04:59 +08:00
hebinglin 4756d62584 change(esp_driver): set cases with toppd check only run in esp32c5eco3 rather than eco2 2026-01-12 14:30:57 +08:00
Erhan Kurubas 14c16bee61 feat(coredump): add coredump_noinit attribute 2026-01-11 18:57:37 +03:00
yinqingzhao 80ee62d104 test(system): add esp32c61 eco4 build test 2026-01-09 17:24:59 +08:00
Erhan Kurubas f8d0e9a79e Merge branch 'fix/coredump_test_tcb_corrupted' into 'master'
test(espcoredump): fix test for corrupted TCB handling in coredump

Closes IDFCI-5663

See merge request espressif/esp-idf!44619
2026-01-06 13:09:18 +01:00
Michael (XIAO Xufeng) c299c0b749 Merge branch 'refactor/remove_idf_test_component' into 'master'
refactor: Remove idf_test component

Closes IDF-12578

See merge request espressif/esp-idf!43733
2026-01-06 16:20:20 +08:00
Erhan Kurubas 82643a03c8 test(espcoredump): fix test for corrupted TCB handling in coredump 2026-01-05 22:16:43 +03:00
Erhan Kurubas 85e7ef753d test(panic): improve stack dump capture to return full hex content 2026-01-05 22:11:23 +03:00
harshal.patil e91d50ed1e fix(mbedtls): Support partial hardware AES-GCM and s/w fallback for non-AES ciphers
- Support software-fallback for unsupported hardware AES lengths
2026-01-03 12:17:50 +05:30
Xiao Xufeng 438e07b30e refactor: Remove idf_test component
Split the idf_performance.h and target ver, which hold the performance
thresholds, into the headers of each testing.

In the past pytest also parse the common header to get the thresholds.
Now the logic is also removed. Performance thresholds are supposed to be
in the pytest scripts.
2026-01-01 02:26:42 +08:00
Li Shuai 6e9885f7e6 Merge branch 'bugfix/idfgh-16634' into 'master'
remove the configurable constraint for sleep memory usage optimization option

Closes IDFGH-16634 and IDF-13780

See merge request espressif/esp-idf!42882
2025-12-31 12:57:50 +08:00
Wu Zheng Hui dcca718908 Merge branch 'refactor/independent_rtc_timer_hal' into 'master'
feat(hal): graduate rtc_cntl_timer/lp_timer hal/ll  into a new component: esp_hal_rtc_timer and unify naming

Closes IDF-15045

See merge request espressif/esp-idf!44573
2025-12-31 05:22:06 +08:00
Ashish Sharma 345844cd58 feat: migrates tools/test_apps to PSA APIs 2025-12-30 09:31:49 +05:30
Ashish Sharma cbd925837e feat: migrates mbedtls port layer to PSA APIs 2025-12-30 09:31:49 +05:30
wuzhenghui 0d93c29143 feat(esp_hal_rtc_timer): introduce new RTC timer component and refactor existing timer functions 2025-12-30 10:33:34 +08:00
Li Shuai c588eb5ca2 change(tools): disable place rtc clock and rtc time modules into iram for flash auto suspend test 2025-12-27 12:34:17 +08:00
armando 4777ce6e8c ci(intr_dump): added mspi intr 2025-12-26 01:04:45 +00:00
Song Ruo Jing b5aae9a1af Merge branch 'refactor/esp_hal_uart' into 'master'
refactor(uart): split UART HAL into separate component

Closes IDF-14090

See merge request espressif/esp-idf!44197
2025-12-25 18:36:49 +08:00
Song Ruo Jing 643b2508fa refactor(uart): remove soc/uart_channel.h 2025-12-25 14:42:43 +08:00
Song Ruo Jing 74aeb3f41f refactor(uart): split UART HAL into separate component 2025-12-25 14:41:28 +08:00
Wang Ning 88a87f55d4 docs: add back stable version link to index 2025-12-25 14:31:29 +08:00
Jiang Jiang Jian 663779133e Merge branch 'refactor/remove_redundant_var_related_to_bandwidth' into 'master'
refactor(wifi): remove enum values WIFI_BW_HT20 and WIFI_BW_HT40

See merge request espressif/esp-idf!43152
2025-12-25 12:01:37 +08:00
Alexey Lapshin 16fc242c23 Merge branch 'fix/picolibc_psram_issue' into 'master'
fix(picolibc): add psram fix for libc functions

Closes IDF-15015

See merge request espressif/esp-idf!44520
2025-12-25 07:12:59 +04:00
Sudeep Mohanty 96c9e203c6 Merge branch 'fix/buildv2_produces_larger_binaries' into 'master'
Fix the order of project initialization in cmakev2

See merge request espressif/esp-idf!44496
2025-12-25 02:36:07 +01:00
Alexey Lapshin 1684eeb60f fix(picolibc): add psram fix for libc functions 2025-12-24 13:28:44 +07:00
yinqingzhao a6b2eb6ad0 refactor(wifi): remove enum values WIFI_BW_HT20 and WIFI_BW_HT40 2025-12-24 14:11:52 +08:00
morris 95cdf17c13 Merge branch 'ci/pyparsing_update' into 'master'
ci: update api usage to avoid deprecation warnings

See merge request espressif/esp-idf!44476
2025-12-23 22:18:13 +08:00
Sudeep Mohanty ff2fac5581 fix(cmakev2): Remove redundant picolibc flags from project.cmake
This commit removes picolibc flags from project.cmake file since they
are added by the esp_libc component when project_include.cmake files are
evaluated.
2025-12-23 13:22:15 +01:00
Sudeep Mohanty 9855054929 fix(cmakev2): Fix the order of project initialization in cmakev2
This commit moves the project initialization by moving the
__init_project_configuration() after the sdkconfig is generated and
included. This is because __init_project_configuration() depends on
config options.
2025-12-23 13:20:24 +01:00
Chen Chen 0a73a23784 ci: update api usage to avoid deprecation warnings 2025-12-23 16:55:11 +08:00