Commit Graph

7495 Commits

Author SHA1 Message Date
Erhan Kurubas
c718482e9a test(panic): add retry logic to espcoredump subprocess call 2026-01-21 00:17:39 +03:00
Frantisek Hrbata
fb61fa2209 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-19 18:34:11 +08:00
Frantisek Hrbata
6278ca37f9 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-17 09:56:47 +01:00
Frantisek Hrbata
638444f0fd 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-17 09:56:47 +01:00
Frantisek Hrbata
82193cdbb2 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-17 09:56:47 +01:00
Ferdinand Bachmann
832498d25d 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-16 12:11:06 +01:00
Frantisek Hrbata
7d81ee3b0f fix(ldgen): correct formatting issues reported by ruff
Resolve ruff's UP031 errors related to the use of percent formatting for
strings and lines longer than 120 characters.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-15 11:36:10 +01:00
Frantisek Hrbata
0d6ba577da fix(ldgen): correctly place symbols generated by compiler during IPA
As part of inter-procedural optimizations (IPA), the compiler may
perform tasks such as constant propagation for functions. This involves
generating a specialized version of a given function with a new symbol
name that includes a suffix. For example, during constant propagation,
the compiler might create a specialized version named
`spiflash_start_core.constprop.0` for the `spiflash_start_core`
function. Additionally, the compiler may generate multiple clones of a
single function. Currently, when ldgen performs symbol placement, it
does not account for these compiler-generated functions, leading to
their incorrect or unexpected placement in memory (markers).

Consider a linker fragment with:

```
[mapping:spi_flash]
archive: libspi_flash.a
entries:
    esp_flash_api: spiflash_start_core (noflash)
```

The `spiflash_start_core` function should be placed in IRAM. However,
the compiler might generate an optimized version of this function with a
`.constprop.0` suffix, resulting in a
`.text.spiflash_start_core.constprop.0` input section. Currently, ldgen
does not handle this situation, leading to misplaced symbols.

Since `.` is not allowed in C identifiers, it should be safe to consider
all input sections for a symbol with any `.` suffix as representing that
symbol. This means considering the symbol suffixes should not cause any
ambiguity.

This change automatically places all input sections, including those
with possible suffixes for a given symbol, into the specified memory. In
other words, specifying a function name like `spiflash_start_core` in a
linker fragment automatically includes input section names matching
`spiflash_start_core(\..*)?$`.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-14 13:21:57 +01:00
Chen Chen
ea6d1ec54e feat(sdm): remove sdm_channel_set_duty API 2026-01-14 09:44:09 +08:00
Jiang Jiang Jian
c7d81c24e6 Merge branch 'feat/add_esp32c5_eco3_wifi_support_v6.0' into 'release/v6.0'
Feat(wifi): add full support for esp32c5 v1.2 and esp32c61 v1.1

See merge request espressif/esp-idf!44991
2026-01-12 20:46:24 +08:00
wuzhenghui
de5e57d296 feat(esp_hal_pmu): graduate pmu/rtc_cntl hal driver into a new component: esp_hal_pmu 2026-01-12 14:48:49 +08:00
Mahavir Jain
d7d7c06b81 Merge branch 'fix/partial-hardware-aes-gcm-and-software-non-aes-ciphers_v6.0' into 'release/v6.0'
Fix partial hardware AES-GCM, software-fallback for non-AES ciphers (v6.0)

See merge request espressif/esp-idf!44752
2026-01-12 09:10:49 +05:30
yinqingzhao
7089093fde test(system): add esp32c61 eco4 build test 2026-01-10 13:23:59 +08:00
wanglei
b946312646 test(system): add esp32c5 eco3 build test 2026-01-10 13:22:20 +08:00
Roland Dobai
0c592432ef change(cmake): add temporary hotfix to skip warnings for specific components
Temporary workaround for avoiding to produce warnings for esp_wifi (
https://github.com/espressif/esp-idf/issues/18036,
https://github.com/espressif/esp-idf/issues/17840).
2026-01-10 00:39:39 +08:00
harshal.patil
3c4dadff0b 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-09 13:55:51 +05:30
Jiang Jiang Jian
d98ae48da3 Merge branch 'feat/drop_esp_idf_size_2_0_restriction_v6.0' into 'release/v6.0'
feat(tools): Clean up esp-idf-size new generation (v6.0)

See merge request espressif/esp-idf!44437
2026-01-09 10:16:26 +08:00
Jiang Jiang Jian
71928b2ec7 Merge branch 'fix/buildv2_produces_larger_binaries_v6.0' into 'release/v6.0'
Fix the order of project initialization in cmakev2 (v6.0)

See merge request espressif/esp-idf!44796
2026-01-08 20:38:43 +08:00
Jiang Jiang Jian
1c7ec05187 Merge branch 'fix/picolibc_psram_issue_v6.0' into 'release/v6.0'
fix(picolibc): add psram fix for libc functions (v6.0)

See merge request espressif/esp-idf!44560
2026-01-08 20:14:08 +08:00
Jiang Jiang Jian
8d0fc97530 Merge branch 'bugfix/idfgh-16634_v6.0' into 'release/v6.0'
backport v6.0: remove the configurable constraint for sleep memory usage optimization option

See merge request espressif/esp-idf!44754
2026-01-08 13:49:39 +08:00
yinqingzhao
28800ed85b refactor(wifi): remove enum values WIFI_BW_HT20 and WIFI_BW_HT40 2026-01-08 11:28:17 +08:00
Erhan Kurubas
10cffdfbd5 test(espcoredump): fix test for corrupted TCB handling in coredump 2026-01-06 15:17:51 +03:00
Erhan Kurubas
ffe245e917 test(panic): improve stack dump capture to return full hex content 2026-01-06 15:13:20 +03:00
Marek Fiala
20faecf847 feat(tools): Clean up esp-idf-size new generation 2026-01-06 00:01:17 +08:00
Sudeep Mohanty
9680db6bae 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.
2026-01-05 10:38:41 +01:00
Sudeep Mohanty
a69cbb5384 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.
2026-01-05 10:38:41 +01:00
Song Ruo Jing
a0c91ea082 refactor(uart): remove soc/uart_channel.h 2026-01-04 16:02:57 +08:00
Song Ruo Jing
ce475d901d refactor(uart): split UART HAL into separate component 2026-01-04 16:02:57 +08:00
Li Shuai
3518d1a16c change(tools): disable place rtc clock and rtc time modules into iram for flash auto suspend test 2026-01-04 10:42:53 +08:00
Alexey Lapshin
bbe311569c fix(picolibc): add psram fix for libc functions 2025-12-25 10:41:25 +07:00
Mahavir Jain
7da79a653c Merge branch 'feature/mbedtls_psa_migration_v6.0' into 'release/v6.0'
feat(mbedtls): PSA Migration to release v6.0

See merge request espressif/esp-idf!43323
2025-12-21 13:52:48 +05:30
Jiang Jiang Jian
d28cc92535 Merge branch 'fix/cmakev2_component_srcs_and_validation_v6.0' into 'release/v6.0'
Correctly set SRCS property for cmakev2 components and add component validation checks (v6.0)

See merge request espressif/esp-idf!44428
2025-12-21 15:38:55 +08:00
Jiang Jiang Jian
8c379b517f Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20251215_v6.0' into 'release/v6.0'
feat(tools): update openocd version to v0.12.0-esp32-20251215 (v6.0)

See merge request espressif/esp-idf!44310
2025-12-21 15:27:47 +08:00
Ashish Sharma
b02538834c fix: resolves MR comments 2025-12-20 23:02:25 +08:00
Sudeep Mohanty
5a91508507 test(cmakev2): Enabled component validation tests for cmakev2 2025-12-19 15:33:19 +01:00
Sudeep Mohanty
242eb47ef7 feat(cmakev2): Added component validation checks for cmakev2
This commit adds component validation checks for cmakev2. The file
component_validation.cmake is ported to cmakev2 and updated to work in
the buildv2 environment.
2025-12-19 15:33:19 +01:00
Sudeep Mohanty
4e72f30234 fix(cmakev2): Correctly set SRCS property for cmakev2 components
The function __set_component_cmakev1_properties() sets cmakev1
properties for cmakev2 components to maintain backword copatibility.
However, the function was setting SOURCES property instead of SRCS
property as was intended.
2025-12-19 15:33:19 +01:00
Ashish Sharma
76287081ea feat: code cleanup 2025-12-19 07:29:43 +08:00
Ashish Sharma
98afd06c8f fix(pytest): patch to test panic test failures 2025-12-19 07:29:08 +08:00
Ashish Sharma
f306dbea84 feat(mbedtls): migrates ESP-TEE with PSA APIs 2025-12-19 07:28:33 +08:00
Ashish Sharma
7d17e8a024 feat(mbedtls): adds AES drivers with PSA 2025-12-19 07:28:28 +08:00
Ashish Sharma
a088d2ccdc feat(mbedtls): fix build errors with PSA migration 2025-12-18 21:18:58 +08:00
Ashish Sharma
b4fea9cccc feat(lwip): migrate to to PSA API interface 2025-12-18 21:18:58 +08:00
Aditya Patwardhan
574a60289d feat(protocomm): Migrate to PSA api interface 2025-12-18 21:18:58 +08:00
Martin Vychodil
4b919caa17 Merge branch 'feat/vfs_remove_old_api_v6.0' into 'release/v6.0'
feat(storage/vfs): v6 API breaking changes (v6.0)

See merge request espressif/esp-idf!44315
2025-12-18 05:02:41 +08:00
Erhan Kurubas
754122a2a9 feat(tools): update openocd version to v0.12.0-esp32-20251215 2025-12-17 17:15:15 +01:00
Tomáš Rohlínek
1bf8b030e3 feat(storage/vfs): Remove old API usage 2025-12-17 14:00:22 +01:00
Roland Dobai
f38faa9bc4 Merge branch 'feat/cmakev2_depgraph_v6.0' into 'release/v6.0'
feat(cmakev2/build): add idf_build_generate_depgraph function (v6.0)

See merge request espressif/esp-idf!44194
2025-12-17 09:11:05 +01:00
morris
311bec8f82 Merge branch 'fix/spi_edma_and_hal_component_6.0' into 'release/v6.0'
feat(driver_spi): split esp_hal_gpspi and support master driver edma (v6.0)

See merge request espressif/esp-idf!44222
2025-12-17 14:54:05 +08:00
wanckl
d12f941787 feat(driver_spi): split spi hal component 2025-12-16 20:38:09 +08:00