Commit Graph
53802 Commits
Author SHA1 Message Date
Ashish Sharma 6a693e6fbb fix(esp-tls): correct return codes and harden TLS 1.3 ticket handling 2026-08-19 11:45:28 +08:00
Ashish Sharma b8db34d987 fix(ws): enforce RFC 6455 §4.2.1 handshake requirements 2026-08-19 11:43:00 +08:00
Ashish Sharma 78b878dbab test(http_server): add mock TCP client for black-box WS testing 2026-08-19 11:42:59 +08:00
Wei Yu Han 6d99bc8fd5 feat(docs): fix PAST and randomized adv channel indexing status
Gate PAST on SOC_ESP_NIMBLE_CONTROLLER, mark randomized advertising
channel indexing host columns as NA, and limit controller experimental
status to NimBLE controllers except ESP32-C2.


(cherry picked from commit 7891e0d65a)

Co-authored-by: Wei Yuhan <weiyuhan@espressif.com>
2026-08-19 09:49:15 +08:00
Wei Yu Han 56a603a07a feat(docs): update BLE feature support status for ISO and Core 6.1-6.3
Mark ISOAL/ISO features as experimental when SOC_BLE_ISO_SUPPORTED,
add unsupported Core Spec 6.1-6.3 features, and move NimBLE LL Extended
Feature Set target to 2026/12.


(cherry picked from commit bacdf4ba93)

Co-authored-by: Wei Yuhan <weiyuhan@espressif.com>
2026-08-19 09:49:15 +08:00
Wei Yu Han 4938818365 feat(docs): Updated BLE support features status
(cherry picked from commit cfd47ad13a)

Co-authored-by: Wei Yuhan <weiyuhan@espressif.com>
2026-08-19 09:49:15 +08:00
Ivan Grokhotkov f90cd7dd78 Merge branch 'update/version_6_1_0' into 'release/v6.1'
Update version to 6.1.0

See merge request espressif/esp-idf!51792
2026-08-18 17:20:45 +02:00
Ivan Grokhotkov 44f0c59f7c change(version): Update version to 6.1.0 v6.1-rc1 2026-08-14 13:26:52 +02:00
Ivan Grokhotkov f995fbdf77 Merge branch 'docs/idf_sbom_multi_format_v6.1' into 'release/v6.1'
docs: Update the SBOM guide for multiple output formats (v6.1)

See merge request espressif/esp-idf!51455
2026-08-14 13:24:16 +02:00
Ondrej Kosta 0c111210c9 ci(esp_eth): use fixed version of eth_test_app 2026-08-13 20:53:55 +08:00
Ondrej Kosta 7a2dbd629a feat(esp_eth): update test_apps to use Ethernet test component
Move test logic into the eth_test_app managed component and slim down
the test_apps main target and pytest suite accordingly.
2026-08-13 20:53:55 +08:00
Ondrej Kosta 5e4f3308e4 feat(ci): support downloading extra app artifacts in pytest
Add app_extra S3 artifact type, extend idf-ci download plumbing, and
expose a download_app_extra pytest fixture for managed_components deps.
2026-08-13 20:53:55 +08:00
morris 2440288f5b Merge branch 'fix/fix_mpll_init_flow_v6.1' into 'release/v6.1'
mpll: improved mpll init flow (v6.1)

See merge request espressif/esp-idf!51660
2026-08-13 20:44:49 +08:00
yangfeng 5ef217c63a fix(bluedroid): Fix the compilation issue of BCM_STRNCPY_S 2026-08-13 19:15:56 +08:00
morris 6236807af1 Merge branch 'fix/mspi_pre_commit_fix_v6.1' into 'release/v6.1'
fix(spi_flash): remove mspi_test xip_psram test with missing config to fix check_pre_commit job (v6.1)

See merge request espressif/esp-idf!51731
2026-08-13 16:07:46 +08:00
Sudeep Mohanty 7ef0e494b1 fix(spi_flash): remove mspi_test xip_psram test with missing config 2026-08-13 14:53:01 +08:00
Marius Vikhammer 064b1f8f6f fix(blink): fixed GPIO used for blink example on H4
Updated to match latest devkit layout
2026-08-13 08:40:44 +02:00
morris 867e4fc2d1 Merge branch 'fix/xmc_skip_vendor_0x46_v6.1' into 'release/v6.1'
fix(bootloader): skip XMC startup for vendor ID 0x46(backport v6.1)

See merge request espressif/esp-idf!51702
2026-08-13 10:43:29 +08:00
C.S.MandCursor 8d3e6ebe02 fix(bootloader): skip XMC startup for vendor ID 0x46
Chips with RDID vendor 0x46 are not XMC and should not enter the XMC
startup flow via the RDID fast path.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 17:22:38 +08:00
Armando (Dou Yiwen) 569c22ea2b fix(mpll): fix mpll calibration fail bug 2026-08-12 13:22:22 +08:00
Chen Jichang 5e58f3602f fix(rmt): fix loop tx can trigger done event 2026-08-10 19:13:50 +08:00
Frantisek Hrbata 86c4c63780 fix: harden build against empty toolchain output
On some Windows systems, antivirus, endpoint-security or DLP/encryption
software intercepts short-lived toolchain processes and strips their
stdout when the build captures it through a pipe, while the same command
prints its output normally when run by hand. The tool exits successfully
but returns nothing, and each build step that reads toolchain output then
failed with a different, cryptic error far from the real cause:

- CMake configuration aborted with "Unknown arguments specified" in
  components/xtensa/project_include.cmake, or "check_expected_tool_version
  invoked with incorrect arguments" in components/esp_common.
- ldgen turned the empty objdump output into an opaque pyparsing
  "Expected 'In archive'" traceback.
- idf_tools.py silently reported the compiler/debugger version as
  "unknown", sending users into a fruitless reinstall loop.

Detect the empty result at each consumer and fail (or warn) with an
actionable message that names the likely cause and the remedy:

- tools/cmake/compiler_query.cmake: new __compiler_query() helper runs a
  compiler query and fails with a clear error on empty or failed output.
  It is a standalone module included by both the cmakev1 and cmakev2
  utilities, since the esp_common and xtensa project_include.cmake that
  call it are shared by both build systems. The xtensa if() arguments are
  now quoted so an empty result no longer collapses into a parse error.
- tools/ldgen/ldgen.py: _run_objdump() rejects empty objdump output, and
  non-empty-but-unparsable section info is caught and re-raised as a clear
  LdGenFailure instead of a raw pyparsing traceback.
- tools/idf_tools.py: empty version output now warns with the cause and
  returns UNKNOWN_VERSION instead of silently reporting "unknown".

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-08-10 09:05:01 +02:00
Frantisek Hrbata da926220bd fix(ldgen): add the linker template to the generation fingerprint
ldgen skips regeneration when a fingerprint over the section names, the
linker fragment files, sdkconfig and Kconfig is unchanged. The linker
script template was not part of that fingerprint, even though everything
outside its mapping placeholders is copied into the generated script
verbatim.

The build system regenerates the preprocessed template whenever any of
its inputs changes, not only when a linker fragment changes. When such a
change reaches ldgen but leaves the section names alone, the fingerprint
still matches, generation is skipped, and the image is linked against the
previously generated script. The skip path updates the mtime of the
output, so nothing in the build output shows that the change was dropped.

Add the template to the fingerprint so that regenerating it always
regenerates the linker script.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-08-10 08:30:31 +02:00
Song Ruo Jing 5e0c2349d4 fix(ci): re-enable some LEDC/UART tests for H4, S31 2026-08-07 16:19:19 +08:00
Frantisek Hrbata 94c4fe3d94 fix(cxx): avoid self-referential generator expression in libgcc_cxx
The cxx component re-injects its own archive late on the link line so its
stack-unwind wrappers take precedence over libgcc's (when C++ exceptions
are disabled). It does this through an INTERFACE helper, libgcc_cxx, that
carries `$<TARGET_FILE:${cxx}>`. That helper was linked back into the cxx
target with PUBLIC, which places it in the cxx archive's own
LINK_LIBRARIES, so the cxx target ends up transitively referencing its
own output file.

When CMake computes the cxx target's sources it walks the target's own
link implementation, encounters `$<TARGET_FILE:${cxx}>`, and to resolve the
file it needs the target's link language, which in turn needs its
sources. This loop makes generation fail with:

    The SOURCES of "..." use a generator expression that depends on the
    SOURCES themselves.

CMake only hits this when it reaches the cxx target standalone before the
target has been pulled into a link by a consumer, and whether that
happens depends on the project layout and target evaluation order. That
is why it surfaces only in some projects, while the examples build fine.

Link libgcc_cxx as INTERFACE instead of PUBLIC. A static archive is not
linked, so its private LINK_LIBRARIES are inert; consumers still receive
libgcc_cxx through INTERFACE_LINK_LIBRARIES, so the intended link order is
preserved. Removing the self-reference makes generation independent of
evaluation order.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-08-06 15:31:37 +02:00
Marek FialaandCursor 6d8d63da51 fix(tools): support mcp Python SDK 2.0 for mcp-server
FastMCP was renamed to MCPServer in mcp 2.0, which made idf.py mcp-server
report a false "MCP dependencies not available" error. Prefer MCPServer
and keep a FastMCP fallback for mcp 1.x.

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

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 15:35:49 +02:00
Jin Cheng a3fe81f7ba change(bt/bluedroid): optimized the HFP example workflow to improve audio quality
Disabled inquiry scan and page scan after SCO connection establishment
to reduce over-the-air bandwidth usage and improve audio quality by
prevent scan activities from interrupting SCO traffic.
2026-08-05 17:44:35 +08:00
hejiaxin 0515e0da6b feat(bluedroid): Add config to place btu and hci task stack in psram
- Also adjust the osi_thread_stop implementation.
2026-08-04 14:55:27 +08:00
Laukik Hase 548f85cb53 fix(esp_tee): Validate REE-supplied memory bounds (esp_tee_app_config) before use 2026-08-04 12:10:53 +05:30
Laukik Hase 773761abb8 fix(esp_tee): Validate the stack pointer at the privilege switch boundary 2026-08-04 12:10:52 +05:30
Frantisek Hrbata bb7d25e625 docs: Update the SBOM guide for multiple output formats
Document the create --format option (SPDX 2.2 tag/value and JSON, SPDX 3.0.1
JSON-LD, and CycloneDX 1.6) and the new --file option on idf.py sbom-create and
sbom-check, and generalize the previously SPDX-only wording. Note the NVDAPIKEY
variable for faster online scans, document that sbom-check exits with a non-zero
status when vulnerabilities are found, drop an unused link target, and update the
SBOM reference link. Fix the section heading levels to follow the esp-docs
conventions.
2026-08-03 13:27:43 +02:00
Alexey Lapshin c2283ca1ca feat(soc): enable zb* extensions for esp32s31 2026-08-03 14:12:30 +08:00
Alexey Lapshin a494009a0c feat(build): add RISC-V ZCMP post-link workaround check
Validate linked RISC-V executables when
CONFIG_COMPILER_ENABLE_RISCV_ZCMP is enabled on affected chips.
Disassemble each function and reject mstatus.MIE clears that lack an
earlier mintthresh write of 0xff.

Handle csrrci, csrrw, and register-mask csrrc patterns while ignoring
csrrs. Add build-only coverage for valid and invalid sequences with
CMake v1 and v2.

Stop the hardware stack guard before switching stacks during restart,
and keep ZCMP disabled for TEE test apps that still require the
workaround.
2026-08-03 14:10:00 +08:00
Chen Jichang 2b0e2da860 feat(parlio_tx): apply the gdma link switch event to parlio_tx 2026-08-03 11:44:09 +08:00
Jiang Jiang Jian 6a9c44fe7e Merge branch 'fix/ble_log_compression_add_local_header_file_v6.1' into 'release/v6.1'
feat(ble_log): mirror local compression headers (6.1)

See merge request espressif/esp-idf!50953
2026-08-03 10:48:09 +08:00
morris c269e6d35e fix(bitscrambler): reject malformed program headers
Validate BitScrambler program headers against the supported format and
hardware limits before using header-derived instruction and LUT sizes.
Also add regression coverage for malformed headers and document that the
program blob must come from a trusted assembler output.
2026-08-03 10:18:29 +08:00
morris c284036a36 fix(bitscrambler): validate and safely load LUT data
Reject LUT loads that exceed the hardware address space and assemble
each 32-bit LUT word via memcpy so unaligned and partial inputs do not
read past the caller buffer. Add regression tests for oversized and
partial unaligned LUT loads.
2026-08-03 10:18:29 +08:00
morris a68dbf4033 fix(bitscrambler): clean up loopback create failures
Clear the returned handle on loopback creation failure and route
initialized objects through bitscrambler_free so channel ownership and
extra cleanup state cannot leak after partial setup errors. Add a
regression test for the failed create path.
2026-08-03 10:18:29 +08:00
Jiang Jiang Jian 7105b85101 Merge branch 'fix/backport_wifi_issues_v6.1' into 'release/v6.1'
Backport a few wifi fixes (Backport v6.1)

See merge request espressif/esp-idf!51224
2026-08-01 07:28:52 +08:00
Jiang Jiang Jian 2da2c60798 Merge branch 'bugfix/ftm_calibration_v6.1' into 'release/v6.1'
fix(ftm): Update FTM calibraton values for esp32c5, esp32c3, esp32c6, esp32c61

See merge request espressif/esp-idf!51407
2026-08-01 00:16:47 +08:00
Akshat Agrawal 85a59c8405 fix(nan): Fix bug bounty reported and discovered vulnerabilities in NAN Rx 2026-07-31 19:42:27 +08:00
zhangyanjiao 0290f8fc2d fix(wifi): fixed the assignment error in esptouch v2 2026-07-31 19:42:27 +08:00
zhangyanjiao 9e1e33a151 fix(wifi): fixed the buffer overflow issues
1. Added validation for password and reserved data length in ESPTouch v2
2. Added bound check for data index in ESPTouch v1 HT40
3. prevent buffer overflow when parsing MBSSID beacon
2026-07-31 19:42:27 +08:00
Jiang Jiang Jian d52ecaa3ea Merge branch 'bugfix/low_spp_throughput_v6.1' into 'release/v6.1'
change(bt/bluedroid): increased port low watermark of RFCOMM (v6.1)

See merge request espressif/esp-idf!51083
2026-07-31 19:35:19 +08:00
Jiang Jiang Jian 6e61fd94a0 Merge branch 'fix/bind_lp_periph_pd_with_tsens_power_v6.1' into 'release/v6.1'
fix(esp_driver_tsens): bind lp_periph domain sleep pd with tsens power (v6.1)

See merge request espressif/esp-idf!51177
2026-07-31 19:34:23 +08:00
Jiang Jiang Jian 7661fce5f2 Merge branch 'fix/set_errno_if_usj_not_connect_in_vfs_v6.1' into 'release/v6.1'
fix(esp_driver_usb): set errno if usj not connect in vfs read/write (v6.1)

See merge request espressif/esp-idf!51198
2026-07-31 19:33:56 +08:00
Jiang Jiang Jian 14784e6054 Merge branch 'fix/fix_esp32s31_secureboot_fastwake_v6.1' into 'release/v6.1'
fix(esp_system): support rom secure boot fast wake feature for esp32s31 (v6.1)

See merge request espressif/esp-idf!51266
2026-07-31 18:00:06 +08:00
Akshat Agrawal bacf5e11d2 fix(ftm): Update FTM calibraton values for esp32c5, esp32c3, esp32c6, esp32c61 2026-07-31 15:26:09 +05:30
Jiang Jiang Jian 9bdecbe2ea Merge branch 'bugfix/bredr_acl_uflow_deadlock_v6.1' into 'release/v6.1'
fix(bt): Fixed blocking during LMP packet_type negotiation on ESP32-S31 (v6.1)

See merge request espressif/esp-idf!51095
2026-07-31 16:48:53 +08:00
Wang Mengyang 481b244fe8 fix(bt): Fixed blocking during LMP packet type negotiation on ESP32-S31
In the Bluetooth connections with some smartphones, communication can possibly be blocked
during packet type negotation, when ESP32-S31 attempts to finalize the ACL-U transmission
and waits for the last Tx ACL-U packet to be transmitted, but peer device rejects the
packet with FLOW=STOP in its packet, thus causing a deadlock.

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

This MR also provide with some optimizations and fixes
2026-07-31 14:06:02 +08:00