Commit Graph
54595 Commits
Author SHA1 Message Date
Wu Zheng Hui 234c68ba93 Merge branch 'feat/support_esp32s31_xtal_fosc_force_pu' into 'master'
feat: update XTAL sleep FPU parameters to save power

Closes PM-824 and IDF-15576

See merge request espressif/esp-idf!51100
2026-08-10 15:37:00 +08:00
Frantisek Hrbata e9cf6abc31 Merge branch 'fix/harden_empty_toolchain_output' into 'master'
fix: harden build against empty toolchain output

Closes IDFGH-17820

See merge request espressif/esp-idf!50136
2026-08-10 09:31:40 +02:00
Frantisek Hrbata a9de9dc172 Merge branch 'fix/ldgen_template_fingerprint' into 'master'
fix(ldgen): add the linker template to the generation fingerprint

See merge request espressif/esp-idf!51620
2026-08-10 08:31:03 +02:00
Jiang Jiang Jian 67b6ef3c1c Merge branch 'fix/owe_prevent_double_free' into 'master'
fix(wifi): Prevent double free in owe failure path

Closes SEC-261

See merge request espressif/esp-idf!51401
2026-08-10 14:18:26 +08:00
Jiang Jiang Jian a1ca70eb43 Merge branch 'fix/nan_avail_time_bitmap' into 'master'
fix(nan): fix Wi-Fi Aware NDP handshake interop with iOS 17 series

See merge request espressif/esp-idf!51544
2026-08-10 12:29:48 +08:00
Erhan Kurubas 57ccd12f17 Merge branch 'esp32c5_trace_encoder' into 'master'
feat(esp_riscv_trace): add ESP32-C5 support

See merge request espressif/esp-idf!51384
2026-08-07 13:45:10 +02:00
Sudeep Mohanty b89de9bbaf Merge branch 'feat/improve_freertos_crit_section_perf' into 'master'
feat(freertos): Speed up multi-core critical section entry and exit

Closes IDFGH-18060

See merge request espressif/esp-idf!51531
2026-08-07 13:17:28 +02:00
Song Ruo Jing 4ecd3e2287 Merge branch 'bugfix/uart_extra_current_consumption_in_sleep' into 'master'
fix(uart): reduce current consumption in sleep mode

See merge request espressif/esp-idf!50416
2026-08-07 19:07:26 +08:00
Renz Christian Bagaporo 1c183dc089 Merge branch 'fix/ldgen_stale_output' into 'master'
fix(cmake): track transitive includes in linker script preprocessing

Closes IDF-16033

See merge request espressif/esp-idf!51580
2026-08-07 16:44:17 +08:00
Frantisek Hrbata 5d4e96aeb8 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-07 10:39:10 +02:00
Rahul Tank 1690e355cb Merge branch 'bugfix/fix_pawr_prph_conn' into 'master'
fix(nimble): deliver PAwR peripheral connection events

See merge request espressif/esp-idf!51410
2026-08-07 09:20:34 +05:30
Gao Xu c7a146ea24 Merge branch 'fix/update_trng_workflow_for_esp32s31' into 'master'
fix(rng): update TRNG bringup for esp32s31 runtime use

See merge request espressif/esp-idf!48579
2026-08-07 11:32:46 +08:00
Erhan Kurubas 1a59c3e769 feat(esp_riscv_trace): add ESP32-C5 support 2026-08-06 17:13:04 +02:00
Marius Vikhammer 81f6360e4d Merge branch 'feat/optimize_bootloader_size' into 'master'
change(bootloader): optimize bootloader size

See merge request espressif/esp-idf!51573
2026-08-06 22:06:38 +08:00
Frantisek Hrbata 0e68539658 Merge branch 'fix/cxx_libgcc_cxx_self_reference' into 'master'
fix(cxx): avoid self-referential generator expression in libgcc_cxx

See merge request espressif/esp-idf!48945
2026-08-06 15:33:03 +02:00
Rahul Tank 70f451fab7 fix(nimble): deliver PAwR peripheral connection events
Route legacy PAwR peripheral completion events through the active periodic
    sync callback and accept the controller-established link without normal
    advertising state.
2026-08-06 18:53:18 +05:30
Rahul Tank faa9d09760 Merge branch 'bugfix/fix_iso_double_free' into 'master'
fix(nimble): Remove extra free to avoid double free

See merge request espressif/esp-idf!51446
2026-08-06 18:49:57 +05:30
Sarvesh Bodakhe 42651e1ee1 fix(wifi): fix NAN availability time bitmap parsing issue
Accept spec-legal NAN availability time bitmaps (period > 512 TU,
bitmap length > 4, full 9-bit start offset) so iPhone secured NDP
setup is no longer rejected with NDL_UNACCEPTABLE.

Fixes NAN NDP interop with the iPhone 17 series.
2026-08-06 17:25:48 +05:30
Sarvesh Bodakhe 94988c5aa4 fix(wpa_supplicant): accept NIK follow-up key descriptor with Key Type=0
iPhone (and hostap) set Key Type=0 in the pairing NIK follow-up Shared-Key
Descriptor (key_info=0x1340) since the NIK is not a pairwise key. We required
the pairwise bit and rejected the frame before decryption, so the NIK
exchange timed out and pairing was torn down. Require only the Encrypted
Key Data bit.
2026-08-06 17:25:35 +05:30
Sudeep Mohanty 9ab3da0da8 feat(freertos): speed up SMP critical section enter and exit
The critical section port already disables interrupts and reads the core id for
the whole section, but spinlock_acquire()/spinlock_release() then disabled
interrupts again to the same level and re-read the core id register.

Add spinlock_acquire_impl()/spinlock_release_impl(), which take a caller-supplied
owner id and skip interrupt management, and reuse them from
spinlock_acquire()/spinlock_release() to avoid duplicated code. The Xtensa and
RISC-V ports now read the core id once and call the impl variants, removing one
core id read and one interrupt mask/restore per critical section enter and exit.

Closes https://github.com/espressif/esp-idf/issues/18908
2026-08-06 12:43:28 +02:00
Mahavir Jain 846b17f1bd Merge branch 'fix/fix_esp_mbedtls_read_return_code' into 'master'
fix(esp-tls): correct return codes and harden TLS 1.3 ticket handling

Closes SEC-237, SEC-359, and SEC-360

See merge request espressif/esp-idf!48720
2026-08-06 16:10:05 +05:30
Erhan Kurubas cc6cc219f8 Merge branch 'esp32s31_trace_encoder' into 'master'
feat(esp_riscv_trace): add ESP32-S31 support

See merge request espressif/esp-idf!51350
2026-08-06 12:38:03 +02:00
Alexey Lapshin 366ce3ebed Merge branch 'fix/kasan_heap_alignment' into 'master'
fix(heap): preserve aligned allocation with KASAN

See merge request espressif/esp-idf!51186
2026-08-06 14:06:58 +04:00
Rahul Tank fd7dacb9bc fix(nimble): Remove extra free to avoid double free 2026-08-06 15:16:02 +05:30
Ondrej Kosta 4d9524b308 Merge branch 'fix/ethernet_init_ver' into 'master'
ci(esp_eth): use fixed version of eth_test_app

See merge request espressif/esp-idf!51555
2026-08-06 16:51:05 +08:00
Jiang Jiang Jian 8a928b98f2 Merge branch 'bugfix/fix_softap_return_home_channel_failed' into 'master'
fix(scan): prioritize if1_conn check for home channel return logic

Closes WIFI-7471 and WIFI-7428

See merge request espressif/esp-idf!50373
2026-08-06 16:32:24 +08:00
Marius Vikhammer 47262f8e6b change(bootloader): optimize bootloader size
Trim bootloader size by moving some logs to DEBUG. Allows
compiling bootloader on P4 with CONFIG_ESPTOOLPY_FLASHMODE_QIO
without changing partition table offset
2026-08-06 10:01:36 +02:00
sibeibei 2b528716be fix(scan): prioritize if1_conn check for home channel return logic 2026-08-06 15:39:06 +08:00
Song Ruo Jing 1f2ea33cd8 Merge branch 'fix/h4_s31_enable_multi_board_test' into 'master'
fix(ci): re-enable some LEDC/UART tests for H4, S31

Closes IDF-15610 and IDF-15619

See merge request espressif/esp-idf!51529
2026-08-06 15:27:38 +08:00
Ondrej Kosta fb07be93ba ci(esp_eth): use fixed version of eth_test_app 2026-08-06 15:03:08 +08:00
Mahavir Jain 2495e37a48 Merge branch 'feat/pma_pmp_lock_policy' into 'master'
Stop locking PMP in the bootloader and freeze the entry layout

See merge request espressif/esp-idf!50326
2026-08-06 11:31:39 +05:30
Ashish Sharma 06f2672046 fix(esp-tls): correct return codes and harden TLS 1.3 ticket handling 2026-08-06 13:52:21 +08:00
Erhan Kurubas 3dfd8f0154 feat(esp_riscv_trace): add ESP32-S31 support
ESP32-S31 uses the same trace encoder IP as ESP32-P4. Of the E-Trace v2.0
parameters the two targets report, only privilege_width_p differs (1 on P4,
2 on S31), and it affects both the sync packet layout and the filter's
privilege selector.

- Add the SOC_RISCV_TRACE_* caps for ESP32-S31 along with the esp32s31 LL, and
  declare TRACE0/TRACE1 in the target's trace_struct.h.
- Carry privilege_width_p as SOC_RISCV_TRACE_PRIV_WIDTH so the sync packet
  decoder can locate the address field, which starts one bit later on targets
  that implement supervisor mode.
- Use the RISC-V architectural privilege encoding (0 user, 1 supervisor,
  3 machine) in the public filter enum so the values do not change per target,
  and let each LL narrow them to its own register field.
- Add riscv_trace_ll_priv_is_supported() per target, so a privilege level the
  selector cannot represent is rejected with ESP_ERR_NOT_SUPPORTED rather than
  being silently narrowed to a different level. It lives next to the narrowing
  code so the two cannot drift apart.
- Fix trace buffer allocation on targets whose internal RAM is not reached
  through a cache. esp_cache_get_alignment() reports 0 there, which underflowed
  the size check and failed every allocation. Align base and size to the larger
  of the reported cache line and the encoder's 4-byte write granularity.
2026-08-06 13:08:26 +08:00
Jiang Jiang Jian a063a8440f Merge branch 'fix/fix_scan_and_connect_issue' into 'master'
fix(wifi): fix wifi scan and wps connect issue

Closes WIFIBUG-2051

See merge request espressif/esp-idf!51528
2026-08-06 10:56:41 +08:00
Fu Hanxi e762c3cea2 Merge branch 'ci/fix-build_clang_test' into 'master'
ci: fix double quotes with MR_MODIFIED_FILES

See merge request espressif/esp-idf!51567
2026-08-06 03:41:03 +02:00
Renz Bagaporo a3b304f380 fix(cmake): track linker script preprocessor includes 2026-08-06 09:18:13 +09:00
Renz Bagaporo dfc3f54445 test(cmake): verify included linker scripts trigger preprocessing 2026-08-06 09:18:13 +09:00
Fu Hanxi ecdf3bfb3c ci: fix test_patch_buildv2_child_pipeline 2026-08-05 23:34:14 +02:00
Fu Hanxi c560de5566 ci: fix double quotes with MR_MODIFIED_FILES 2026-08-05 21:16:12 +02:00
Marek Fiala ee6b0ed9ae Merge branch 'fix/mcp_support_major_2' into 'master'
fix(tools): mcp-server supports python package mcp > 2

Closes IDFGH-18056

See merge request espressif/esp-idf!51517
2026-08-05 21:18:31 +08:00
Sudeep Mohanty 514f69c1f3 Merge branch 'fix/buildv2_fake_pass_pipeline' into 'master'
ci(buildv2): skip patching the fake_pass build child pipeline

Closes ITOPS-314 and IDF-16025

See merge request espressif/esp-idf!51259
2026-08-05 15:16:40 +02:00
Frantisek Hrbata 841faa3614 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-05 20:59:11 +08:00
Frantisek Hrbata 5c5d15cfc7 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-05 20:58:36 +08:00
Mahavir Jain 6498d81eb4 Merge branch 'docs/vulnerabilities_guide_new_advisories' into 'master'
docs(security): update vulnerabilities guide with recently published advisories

See merge request espressif/esp-idf!51456
2026-08-05 18:27:43 +05:30
Sudeep Mohanty 9b35fd4405 Merge branch 'fix/ulp_full_build_test_fix' into 'master'
fix(cxx): skip flag setup for custom-toolchain subprojects

Closes IDFCI-13457

See merge request espressif/esp-idf!51545
2026-08-05 12:25:37 +02:00
Wang Meng Yang c9b1e5fe5c Merge branch 'opt/hfp_audio_quality' into 'master'
change(bt/bluedroid): optimized the HFP example workflow to improve audio quality

See merge request espressif/esp-idf!51346
2026-08-05 17:54:34 +08:00
Sudeep Mohanty 39f757ebce fix(cxx): skip flag setup for custom-toolchain subprojects
Skip processing cxx/project_include.cmake when building subprojects such
as ULP as they use custom toolchain and IDF toolchain helpers are not
available.
2026-08-05 11:14:05 +02:00
Michael (XIAO Xufeng) b12870c43d Merge branch 'sdio-example-4bit-bringup' into 'master'
example(sdio_slave): add docs and examples for SI testing

See merge request espressif/esp-idf!49371
2026-08-05 16:48:38 +08:00
Sudeep Mohanty cbc4dff964 Merge branch 'feat/ulp_custom_linker_support' into 'master'
ULP: Support custom LP Core linker layouts via the LINKER option

Closes IDF-12902

See merge request espressif/esp-idf!49991
2026-08-05 10:10:32 +02:00
Evgeny Torbin 06cda3498f Merge branch 'ci/generate_app_size_report' into 'master'
ci: generate app size report

Closes CII-224 and CII-149

See merge request espressif/esp-idf!51237
2026-08-05 16:09:29 +08:00