Commit Graph
34505 Commits
Author SHA1 Message Date
Jin Cheng 24ef4bbd57 fix(bt/bluedroid): fixed possible use of uninitialized stack variables in bt_hf_client_at.c 2026-03-20 20:04:59 +08:00
Jin Cheng 8746e5f7e7 fix(bt/bluedroid): fixed possible OOB read in avrc_pars_vendor_cmd 2026-03-20 20:01:19 +08:00
muhaidong 0c94cb576c fix(coex): fix coex sync filter and delay issue 2026-03-20 19:37:01 +08:00
Song Ruo Jing 163a95614c feat(dma2d,ppa): Support flash encryption for DMA2D and PPA 2026-03-20 16:53:29 +08:00
Konstantin Kondrashov 144c74a1fe revert(ulp): drop riscv timeout helper from backports 2026-03-20 16:44:14 +08:00
Konstantin Kondrashov bc2081ca1e revert(ulp): drop lp timeout helper from backports 2026-03-20 16:44:14 +08:00
Konstantin Kondrashov 6fe2cf575f feat(ulp): Improved ULP delay API accuracy and removed floating point operations
Closes https://github.com/espressif/esp-idf/issues/17494
Closes https://github.com/espressif/esp-idf/issues/16891
2026-03-20 16:44:14 +08:00
Konstantin Kondrashov d834791967 fix(esp32): Fix access to MALLOC_CAP_IRAM_8BIT byte array in loop
The Xtensa load/store handler did not properly handle 8/16-bit
memory access to IRAM regions configured with MALLOC_CAP_IRAM_8BIT
(and CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY=y) from a loop
(LBEG/LEND/LCOUNT) context. This caused the loop to exit after
the first access, instead of continuing to iterate as intended.

Closes https://github.com/espressif/esp-idf/issues/14127
2026-03-20 16:43:58 +08:00
tarun.kumar 52936c5edb fix(roam) : Set and unset roam scan ongoing flag properly 2026-03-20 16:42:40 +08:00
Jiang Jiang Jian 329ed7ddce Merge branch 'fix/ble_mesh_bug_report_v6.0' into 'release/v6.0'
Fix/ble mesh bug report (v6.0)

See merge request espressif/esp-idf!46101
2026-03-20 16:42:08 +08:00
Angus Gratton 2a1481e8e1 fix(esp_system): Allow esp_task_wdt_reconfigure() if timer is stopped
If Task WDT is initialised but not start, the call to esp_timer_stop() in
the reconfigure path returns ESP_ERR_INVALID_STATE and reconfiguring the
Task WDT fails. This isn't the case when the Timer Group is used for Task
WDT.

(This failure cascades into the failure due to disabled interrupts, fixed
in the parent commit.)

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-03-20 16:40:24 +08:00
Angus Gratton 5a60192dae fix(esp_system): Handle failures correctly in esp_task_wdt_reconfigure()
- Failures were being masked as function always returned ESP_OK
- In the failure path the spinlock was not unlocked, so interrupts
  became permanently disabled.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-03-20 16:40:24 +08:00
Jiang Jiang Jian 50cae2f7b1 Merge branch 'bugfix/wps_disable_stop_scan_v6.0' into 'release/v6.0'
fix(wifi): Stop scan when wps is disabled (v6.0)

See merge request espressif/esp-idf!46319
2026-03-20 16:39:30 +08:00
Jiang Jiang Jian 2aaad17dc7 Merge branch 'fix/f_getfree_crash_issue_v6.0' into 'release/v6.0'
fix(fatfs): fix f_getfree crash when volume not mounted or mount failed (v6.0)

See merge request espressif/esp-idf!46716
2026-03-20 16:38:21 +08:00
igor.udot e2a8bbe639 ci: update build-test-rules to use common_components 2026-03-20 15:53:26 +08:00
Sumeet Singh 4e84a3df57 fix(nimble): modify logic to print mbuf in ble_hs_log_mbuf (v6.0) 2026-03-20 12:58:38 +05:30
C.S.M 52d5b1a173 fix(spi_flash): Fix esp32p4 120m flash suspend failed 2026-03-20 15:21:22 +08:00
Frantisek Hrbata e14d50b79b fix(ulp): add sdkconfig directory to ULP target include directories
The ULP sources include sdkconfig.h for compile-time configuration
values. The sdkconfig directory was previously available to the ULP
target indirectly through the COMPONENT_INCLUDES variable, which is
populated from the parent component's INTERFACE_INCLUDE_DIRECTORIES.
In cmake v1, idf_component_register() adds the config_dir as PUBLIC
include directory to every component (component.cmake:498), so it
ends up in INTERFACE_INCLUDE_DIRECTORIES and gets passed to the ULP
subproject via COMPONENT_INCLUDES.

In cmakev2, the config_dir is added as a build-level property and
applied to components as PRIVATE (component.cmake:1053), so it no
longer appears in INTERFACE_INCLUDE_DIRECTORIES. As a result, the
sdkconfig directory is missing from the ULP target's include paths.

Add the sdkconfig directory explicitly to the ULP target's include
directories. Note that SDKCONFIG_HEADER is already passed to the ULP
subproject and its directory is already extracted into sdkconfig_dir
for linker script preprocessing (IDFULPProject.cmake:40).

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-20 08:16:52 +01:00
Marius Vikhammer ea84e9118d fix(esp_coex): move coex init from esp_system to esp_coex component
CMakev2's DEFERRED mode for idf_component_optional_requires only links
optional components already present in the dependency graph. This caused
esp_coex headers to be unavailable when building minimal examples on
targets with both WiFi and IEEE802154 (e.g. esp32c5, esp32c6).

Moving init_coexist to esp_coex removes the cross-component dependency
and ensures the init function is only compiled when esp_coex itself is
part of the build. A linker hook is added to guarantee the object file
is not silently discarded by the linker.

Made-with: Cursor
2026-03-20 08:16:46 +01:00
Sudeep Mohanty bb54da7a10 fix(esp_wifi): Update esp_wifi dependencies on non-WiFi targets for cmakev2
This commit updates the dependencies list for the esp_wifi component
when compiled for non-WiFi targets. The reason for this change is
because cmakev2 explicitly includes the esp_wifi component even on
non-WiFi targets leading to compilation errors due to missing
dependencies.
2026-03-20 08:13:27 +01:00
Frantisek Hrbata a06f85a79f fix(esp_phy/cmake): initialize embed_files variable
In cmakev2, a component can be evaluated within the context of another
component, so it's important to properly initialize each variable used
by the component.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-20 08:13:26 +01:00
Sudeep Mohanty 512dacab6a fix(partition_table): Fixed linux build for Build System v2
Build System v2 does not have the internal __idf_build_target, so use
ALL target instead for unconditional partition table generation on linux.
2026-03-20 08:13:26 +01:00
Sudeep Mohanty 55205d22c8 fix(tcp_transport): Fixed linux build for Build System v2
For Build System v2 on linux target, esp_timer dependency must be
conditional on CONFIG_LWIP_IPV4 rather than checking BUILD_COMPONENTS.
v2 uses configuration-driven dependencies.
2026-03-20 08:13:26 +01:00
Sudeep Mohanty f91c08b183 fix(esp-tls): Fixed linux build for Build System v2
For Build System v2 on linux target, lwip dependency and ESP_TLS_WITH_LWIP
definition must be conditional on CONFIG_LWIP_ENABLE rather than checking
BUILD_COMPONENTS. v2 uses configuration-driven dependencies.
2026-03-20 08:13:26 +01:00
Sudeep Mohanty 801ae3c205 fix(bootloader_support): Require micro-ecc only for BOOTLOADER_BUILD
When CONFIG_APP_BUILD_TYPE_RAM is set (loadable ELF app build),
bootloader_support was adding micro-ecc to priv_requires. The micro-ecc
component lives in the bootloader subproject and is not available in
normal app builds with cmakev2, causing component resolution to fail
when built for a build system v2 project.

micro-ecc is only needed for secure boot sources built under
BOOTLOADER_BUILD (secure_boot_signatures_bootloader.c). For app builds
with CONFIG_APP_BUILD_TYPE_RAM we do not build those sources, so
only add micro-ecc to priv_requires when BOOTLOADER_BUILD is set.
2026-03-20 08:13:26 +01:00
Frantisek Hrbata 33680597c7 fix(freertos): set app_main as undefined even for linux target
In cmakev1, the initial order of components linked to the executable is
determined by the `__build_expand_requirements` function and stored as a
list in the `BUILD_COMPONENT_ALIASES` build property. Later, the
components from `BUILD_COMPONENT_ALIASES` are linked to the executable
using `target_link_libraries`. The issue is that
`BUILD_COMPONENT_ALIASES` contains components in a "reversed" order
compared to how they would typically appear on the link command line. In
other words, components (archives) deeper in the dependency chain are
placed first. As a result, cmake has to repeat the archives in the link
command more times than is actually necessary. This has the beneficial
side effect of placing libfreertos.a before libmain.a, allowing the
`app_main` symbol to be resolved.

In cmakev2, there is no predefined order because it does not perform
early evaluation. Instead, the entire link command is created based on
actual component dependencies using `target_link_libraries`.
Consequently, freertos must set the `app_main` symbols as undefined.
This is already done for non-Linux targets, but it must also be done for
the Linux target.

Another issue arises with macOS, which mangles C symbols by prepending
an underscore. We cannot use the same method as in
`components/linux/assert_func.c` for `__assert_func`, so for macOS,
`_app_main` is used. In the future, if more undefined symbols need to be
added for the Linux target, we should consider introducing a helper.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-20 08:13:26 +01:00
Frantisek Hrbata f90f706e6e fix(bt/config): use osource for target controller configuration
In cmakev2, the configuration for all components is included because the
complete configuration is generated very early, before any component is
actually evaluated. This poses a problem for the Linux target, which
does not have a controller Kconfig.in file, causing kconfgen to fail due
to the missing include. To address this, let's use the osource command,
which does not include the referenced Kconfig file if it does not exist.

Closes https://github.com/espressif/esp-idf/issues/18142

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-20 08:13:26 +01:00
Frantisek Hrbata 15f885bbf0 fix(soc/cmake): fix the usage of the uninitialized variable
The `srcs` list variable is used without initialization when building
for linux target. Initialize it explicitly.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-20 08:13:26 +01:00
Frantisek Hrbata f83ec13a2f fix(linux/cmake): fix the usage of the uninitialized variable
The `srcs` list variable is used without initialization when building
for linux target. Initialize it explicitly.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-20 08:13:26 +01:00
Peter Backeris b830f81296 fix(esp_http_server): Dispatch PONG frames to WebSocket handler
PONG frames (opcode 0xA) were never dispatched to the user's WebSocket
handler despite an existing comment stating they should be. The dispatch
condition `ra->ws_type < HTTPD_WS_TYPE_CLOSE` excluded PONG (0xA)
since CLOSE is 0x8.

This caused a critical secondary bug: when the server sends PING frames
and the client responds with PONG, httpd_ws_recv_frame() is never
called for the PONG, leaving the remaining frame bytes (second_byte
plus 4-byte mask_key) unconsumed in the TCP buffer. On the next
WebSocket read, these orphaned bytes are misinterpreted as a new frame
header, causing either "WS frame is not properly masked" errors or
EAGAIN timeouts with garbage length values, effectively destroying
the connection.

Add `ra->ws_type == HTTPD_WS_TYPE_PONG` to the dispatch condition so
PONG frames reach the user handler, which calls httpd_ws_recv_frame()
to properly consume the frame bytes from the socket.

Closes https://github.com/espressif/esp-idf/issues/18227
2026-03-20 15:10:52 +08:00
C.S.M 39ea6efc7c refactor(bod): Move bod hal to pmu hal component 2026-03-20 15:09:38 +08:00
Li Shuai 55cf1f9206 fix(esp_hw_support): fix invalid phy link pointer during sleep modem state deinit 2026-03-20 15:09:19 +08:00
Li Shuai 1f524131b0 fix(esp_hw_support): fix analog i2c master race cause by phy retention link 2026-03-20 15:09:19 +08:00
Ashish Sharma 8c6845bb96 feat(secure_boot): adds api to verify data partition integrity
Closes https://github.com/espressif/esp-idf/issues/17482
2026-03-20 15:08:54 +08:00
Laukik Hase 4143547196 fix(esp_hw_support): Add PMP entry for the LP peripherals region 2026-03-20 15:06:17 +08:00
Chen Yudong 23aed3ef28 ci: add 'depends_components' to wifi test apps 2026-03-20 15:05:14 +08:00
Sarvesh Bodakhe 4c64558b9b fix(wpa_supplicant): fix memory leak on SAE commit queue post failure
In auth_sae_queue(), when wpa3_hostap_post_evt() fails, the queued
entry was left on the list and never freed. This leaks memory under
SAE commit floods or when the event queue is full.

Free the entry and remove it from the list on post failure.
2026-03-20 15:03:14 +08:00
yanzihan@espressif.com 8c3f983a47 feat(pvt): add pvt enable flag & change pvt limit & sleep adapt time 2026-03-20 14:54:27 +08:00
Jiang Jiang Jian cdcb4cbce8 Merge branch 'ci/esp_tee_fixes_v6.0' into 'release/v6.0'
feat(esp_tee): Miscellaneous fixes and improvements (v6.0)

See merge request espressif/esp-idf!46800
2026-03-20 14:47:23 +08:00
yangfeng 728f29289d feat(bt): Add APIs to control transmit power level
- API to read ACL real RSSI
- APIs to read/write tx power of inq/iscan/page/pscan/ACL
2026-03-20 14:26:10 +08:00
Meet Patel 1d7d6eaf30 fix(spinlock): Added fence instruction in spinlock acquire and release
The existing spinlock mechanism possibly has an overlap of memory
operations during multi core execution, as visible in CI testing. When
running the example inter_cpu_critical_section, shared count increment
stops at 299999 instead of reaching 300000, but this only happens
randomly 1 out of 10 times. It is suspected that a memory operation
happens simultaneously from both core, even though spinlock protection
is in place.

To handle this problem, a memory barrier (fence instruction) is added
at critical places during spinlock acquire and release, to ensure that
all memory operations upto that point are completed and synchronised
before proceeding further.
2026-03-20 11:46:28 +05:30
armando 976292acb0 change(isp): improve sampling point 2026-03-20 06:15:15 +00:00
Alexey Lapshin 95eee6a145 fix(protocomm): fix error handling for esp_srp_exchange_proofs() 2026-03-20 13:14:48 +07:00
Alexey Lapshin 366c8599c2 fix(esp_driver_spi): fix static analyzer checks 2026-03-20 13:14:48 +07:00
cjin a2a04f8bfd fix(ble): fix conn timeout after phy update on ESP32-C2 2026-03-20 14:13:55 +08:00
Chen Jichang 52edb01c1c feat(dsi): support to config clock lane mode
Made-with: Cursor
2026-03-20 14:01:45 +08:00
Liu Linyan bb7035f838 fix(ble_mesh): Miscellaneous bugfixes according to our internal bug report 2026-03-20 13:59:28 +08:00
luoxu b738036ee5 feat(ble_mesh): fixed configuration of core nums 2026-03-20 13:59:28 +08:00
morris 23e199d646 Merge branch 'feature/esp32c61_flash_psram_timing_tuning_v6.0' into 'release/v6.0'
feat(mspi): support 120MHz flash and psram for esp32c61 (v6.0)

See merge request espressif/esp-idf!45886
2026-03-20 13:55:06 +08:00
morris 308feafe23 Merge branch 'docs/fixed_bitscrambler_typo_v6.0' into 'release/v6.0'
docs(pms): fixed bitscrambler typo in pmu module (v6.0)

See merge request espressif/esp-idf!46792
2026-03-20 13:43:25 +08:00