Commit Graph

7329 Commits

Author SHA1 Message Date
Fu Hanxi
beaaa115f3 Merge branch 'ci/missing_config_pre_commit_hook_v6.0' into 'release/v6.0'
ci: add pre-commit hook to detect missing configs (v6.0)

See merge request espressif/esp-idf!46205
2026-03-20 01:10:09 +01:00
Roland Dobai
96ad888b93 Merge branch 'feat/add_ar_binaries_v6.0' into 'release/v6.0'
feat(tools): Added cmake and ninja arm binaries (v6.0)

See merge request espressif/esp-idf!46559
2026-03-19 14:59:41 +01:00
Roland Dobai
ff81008b68 Merge branch 'feat/add-report-to-cmakev2_v6.0' into 'release/v6.0'
feat(cmakev2): add config-report target (v6.0)

See merge request espressif/esp-idf!45951
2026-03-19 14:55:42 +01:00
Roland Dobai
bf9b086a5b Merge branch 'feat/split_hints_v6.0' into 'release/v6.0'
feat(tools): Extended `hints.yml` loading from components (v6.0)

See merge request espressif/esp-idf!45950
2026-03-19 14:54:17 +01:00
Roland Dobai
97c2f3345b Merge branch 'python_cert_macos_v6.0' into 'release/v6.0'
fix: Update idf_tools.py to print correct path to Install Certificates.command on macOS (v6.0)

See merge request espressif/esp-idf!46554
2026-03-19 14:53:45 +01:00
Michael (XIAO Xufeng)
21c239c70a Merge branch 'test/parlio_flash_enc_test_v6.0' into 'release/v6.0'
test(parlio,rmt,lcd): add virtual flash encryption test (v6.0)

See merge request espressif/esp-idf!45852
2026-03-19 21:42:29 +08:00
Marek Fiala
b4fd738389 feat(tools): Added cmake and ninja arm binaries
Closes https://github.com/espressif/esp-idf/issues/18272
2026-03-19 19:11:22 +08:00
Peter Dragun
9e1bde98cf fix(idf_tools.py): Print correct path to Install Certificates.command on macOS
Related to: https://github.com/espressif/esp-idf/issues/17787
2026-03-13 16:07:24 +01:00
Evgeny Torbin
0070b687b5 ci: remove unused test cases 2026-03-12 12:34:23 +01:00
Marek Fiala
72a8d690de feat(tools): mcp_ext.py commands adjustments 2026-03-11 09:36:00 +01:00
Fu Hanxi
6ff6d7ad6c ci: backport master changes to 6.0 2026-03-10 10:37:23 +08:00
Chen Jichang
04df934c05 refactor(flash_enc): move esp_flash_encryption_enabled() to efuse component 2026-03-06 18:14:22 +08:00
Chen Jichang
fea2c08655 test(parlio,rmt,lcd): add virtual flash encryption test 2026-03-06 18:14:22 +08:00
Jan Beran
5ba56fb9b3 feat(cmakev2): add config-report target 2026-02-18 15:15:52 +01:00
Sudeep Mohanty
ef533fb495 fix(cmakev2): Fixed test_hint_components_loading for buildv2
The test_hint_components_loading fails for buildv2 because the build
system only links the main component but not the components with the
hints.yml. Updated the test to explicitly include the new components in
the build.
2026-02-18 13:56:01 +01:00
Marek Fiala
dfabcbb822 change: Moved esp-tls hint to component specific hints.yml file 2026-02-18 13:54:59 +01:00
Marek Fiala
16c766097c test(tools): Added test for coponent hints loading 2026-02-18 13:54:58 +01:00
Marek Fiala
dc7ae3352a feat(tools): Extended hints.yml loading from components 2026-02-18 13:54:58 +01:00
harshal.patil
4d2e7fb4d3 fix(mbedtls): Enable h/w accel for CMAC and HMAC operations
- Refactor ESP-MAC drivers
2026-02-02 10:51:30 +05:30
Jiang Jiang Jian
31056d5db9 Merge branch 'refactor/spi_flash_private_v6.0' into 'release/v6.0'
refactor(spi_flash): reorganize header files, improve encapsulation and simplify ROM implementation (v6.0)

See merge request espressif/esp-idf!45488
2026-02-02 10:57:34 +08:00
hebinglin
21a6537e08 change(esp_driver): set cases with toppd check only run in esp32c5eco3 rather than eco2 2026-02-01 11:59:16 +08:00
Song Ruo Jing
89da3742b8 refactor(clk): split clock HAL into separate component 2026-01-31 22:32:37 +08:00
wuzhenghui
12b9fb6549 feat(esp_hal_rtc_timer): introduce new RTC timer component and refactor existing timer functions 2026-01-31 22:29:20 +08:00
Aditya Patwardhan
4d3cfefc2e refactor(esp_hal_security): Updated esp_hal_security build and includes 2026-01-30 17:12:54 +05:30
Jiang Jiang Jian
770f393855 Merge branch 'coredump_read_flash_retry_v6.0' into 'release/v6.0'
Add retry logic to espcoredump subprocess call (v6.0)

See merge request espressif/esp-idf!45317
2026-01-30 14:31:27 +08:00
morris
db750dc1a0 feat(dma): graduate the dma driver from esp_hw_support to esp_driver_dma 2026-01-29 14:41:14 +08:00
Jiang Jiang Jian
281165608c Merge branch 'fix/ldgen_ipa_constprop_v6.0' into 'release/v6.0'
fix(ldgen): correctly place symbols generated by compiler during IPA (v6.0)

See merge request espressif/esp-idf!45110
2026-01-29 14:04:17 +08:00
Jiang Jiang Jian
d6cadbacd2 Merge branch 'fix/minimal_build_property_v6.0' into 'release/v6.0'
fix(cmake): disable MINIMAL_BUILD build property if COMPONENTS is defined (v6.0)

See merge request espressif/esp-idf!45116
2026-01-29 14:04:05 +08:00
Jiang Jiang Jian
4806ca8174 Merge branch 'contrib/github_pr_18103_v6.0' into 'release/v6.0'
Fix "IMPORTED_LOCATION not set for imported target" CMake errors during codemodel-v2 api queries with CMake 4.2 (GitHub PR) (v6.0)

See merge request espressif/esp-idf!45199
2026-01-29 14:03:49 +08:00
Jiang Jiang Jian
7eb5016510 Merge branch 'fix/cmakev2_component_get_property_raw_v6.0' into 'release/v6.0'
feat(cmakev2): reduce reconfiguration time (v6.0)

See merge request espressif/esp-idf!45216
2026-01-29 14:02:43 +08:00
Xiao Xufeng
3411286544 refactor(spi_flash): reorganize header files and improve API encapsulation
This commit reorganizes SPI flash header files to better reflect their
visibility and intended usage:

1. Rename `esp_flash_port/` to `esp_flash_chips/`:
   - Better reflects that these headers are for chip driver implementations
   - All chip driver headers moved to `esp_flash_chips/` directory
   - Added README.md explaining semi-public nature of these headers

2. Move internal headers to `esp_private/`:
   - `esp_flash_internal.h` -> `esp_private/esp_flash_internal.h`
   - `memspi_host_driver.h` -> `esp_private/memspi_host_driver.h`

3. Move chip driver related headers to `esp_flash_chips/`:
   - `esp_private/esp_flash_types.h` -> `esp_flash_chips/esp_flash_types.h`
   - `spi_flash/spi_flash_defs.h` -> `esp_flash_chips/spi_flash_defs.h`
   - `spi_flash_override.h` -> `esp_flash_chips/spi_flash_override.h`
   - All `spi_flash_chip_*.h` headers moved to `esp_flash_chips/`

4. Code improvements:
   - Remove unused includes (e.g., `spi_flash_override.h` from `cache_utils.c`)
   - Use public API `esp_flash_get_size()` instead of direct member access
   - Add `esp_flash_is_quad_mode` to linker.lf for IRAM placement

5. Documentation updates:
   - Add README.md in `esp_flash_chips/` explaining semi-public headers
   - Update programming guide with warnings about internal headers
   - Update both English and Chinese documentation

6. Update all references across the codebase:
   - Update includes in `spi_flash` component
   - Update `bootloader_support`, `app_update`, `esp_tee`, `espcoredump`
   - Update example projects

Breaking changes:
- Headers moved to new locations require include path updates
- `custom_flash_driver` example temporarily disabled until external
  components are updated
2026-01-29 03:28:30 +08:00
Xiao Xufeng
170061e971 refactor(spi_flash): move internal types to private headers and refactor initialization
This commit refactors the SPI flash component to improve encapsulation and
modularity by moving internal types and functions to private headers, and
reorganizing initialization code.

Key changes:

1. Move PSRAM frequency constraint macro from soc_caps.h to mspi_ll.h
   - Rename SOC_SPI_MEM_PSRAM_FREQ_AXI_CONSTRAINED to
     MSPI_TIMING_LL_PSRAM_FREQ_AXI_CONSTRAINED
   - Move macro definition to chip-specific mspi_ll.h files (C5, C61, H4, P4, S31)
   - Update usage in clk_utils.c and esp_flash_spi_init.c
   - Remove old macro from all soc_caps.h files

2. Move internal types to private headers
   - Move esp_flash_t structure to esp_private/esp_flash_types.h
   - Move esp_flash_os_functions_t to esp_private/spi_flash_os.h
   - Update all internal files to include private headers
   - Keep forward declarations in public esp_flash.h

3. Move chip driver header to internal directory
   - Move spi_flash_chip_driver.h to esp_flash_port/spi_flash_chip_driver.h
   - Update all references to use new path
   - Add esp_private/esp_flash_types.h include to the moved header

4. Refactor initialization functions
   - Move init_flash from esp_system/startup_funcs.c to
     spi_flash/esp_flash_spi_init.c
   - Create new init_pm_flash_freq_limit function in startup_funcs.c
     to call esp_pm_flash_freq_limit_init() conditionally
   - Update system_init_fn.txt with new function locations

5. Improve API encapsulation
   - Replace direct access to esp_flash_t->size in
     esp_partition_register_external() with esp_flash_get_size() API
   - Move esp_flash_is_quad_mode from inline function to regular function
     in esp_flash_api.c

6. Update component dependencies
   - Add esp_driver_gpio to spi_flash component PRIV_REQUIRES
   - Remove unused includes and clean up header dependencies

These changes improve code organization by clearly separating public APIs
from internal implementation details, making the codebase more maintainable
and reducing the risk of breaking changes to internal structures.
2026-01-29 03:28:30 +08:00
Michael (XIAO Xufeng)
5d4d12f28b Merge branch 'feat/remove_sdm_set_duty_api_v6.0' into 'release/v6.0'
feat(sdm): remove `sdm_channel_set_duty` API (v6.0)

See merge request espressif/esp-idf!45071
2026-01-28 22:30:35 +08:00
Michael (XIAO Xufeng)
ad10e60b25 Merge branch 'ci/exclude-tools-cmakev2-test-ci-linter_v6.0' into 'release/v6.0'
ci: exclude tools/cmakev2/test while running test script linter (v6.0)

See merge request espressif/esp-idf!45484
2026-01-28 22:24:39 +08:00
Jiang Jiang Jian
2359d58fbf Merge branch 'refactor/independent_esp_hal_pmu_v6.0' into 'release/v6.0'
feat(hal): graduate pmu/rtc_cntl hal driver into a new component: esp_hal_pmu (v6.0)

See merge request espressif/esp-idf!44954
2026-01-28 19:02:36 +08:00
Fu Hanxi
b29535d19c ci: exclude tools/cmakev2/test while running test script linter 2026-01-28 10:32:41 +01:00
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