Commit Graph
38410 Commits
Author SHA1 Message Date
Liu Linyan 8e59eb4850 feat(ble_mesh): Enable IV Index recovery by default 2026-08-22 17:53:25 +08:00
Michael.B 4f35071d50 fix(psram): suspend external cache during CPU freq switch on esp32p4
Suspend the external-memory cache around the boot CPU frequency switch so
PSRAM-XIP / write-back cache state cannot be corrupted mid-switch.
2026-08-21 23:03:18 +08:00
Michael.B de01d01a6c test(spi_flash): add flash_encryption xip_psram repro coverage
Add an IDF-15875 regression config that places .ext_ram.bss in PSRAM under
XIP, and align flash_encryption disable_test rules with available runners.
2026-08-21 23:03:18 +08:00
Zhou Xiao 5d989c4ce8 test(ble_log): add on-target test app for the version info frame
New ble_log_test app captures the runtime hook output through the test
peripheral and validates the version info frame: source code, BLE Log
version, a hex-valid idf commit that must be non-zero, per-lib commit
fields non-zero exactly when the matching lib is linked, and chip
model/revision matching esp_chip_info(). The README carries the
generated empty Supported Targets table to match the build-test
manifest.

The test drives transports via sustained writes instead of
ble_log_flush(): the flush window disables the module, so hook frames
written during a flush would be dropped.

Also move .build-test-rules.yml from ble_log_perf_test/ to the
test_apps/ root (one manifest entry per app, as elsewhere in ESP-IDF).
Both apps stay disabled until BLE Log test runners are available.

Verified: full esp32c6 build of the app; the build-test checker's own
parsing logic confirms the README table matches the manifest.
2026-08-21 22:35:46 +08:00
Zhou Xiao 4dfb8568e7 feat(ble_log): report build, lib and chip versions in a version info frame
Replace the 2-byte BLE Log info record with a 58-byte version info
frame (BLE_LOG_VERSION 5 -> 6; the abandoned branch that claimed the
version-6 slot frees it, so the overall bump stays 5 -> 6):

- idf build commit (12 bytes), injected at build time by
  register_ble_log_idf_commit() next to the other register_* helpers;
  the git probe is only trusted when the IDF tree itself is a
  repo/worktree, since rev-parse walks up parent directories
- controller, btdm_common, BLE Mesh and BLE Audio lib commits (10
  bytes each, zero-padded), every getter guarded by the exact
  condition that links its lib, so configs without the lib leave the
  field zero (no link errors)
- chip model and revision from esp_chip_info() at runtime

Lib strings are copied NUL-safely instead of assuming a fixed hash
length; the mesh commit is the substring after the last space of
bt_mesh_v11_commit_str. Frame layout is pinned by a static assert.

Verified on target: esp32, esp32c3, esp32c5 and esp32h4 boards (the
h4 run covers controller + btdm_common + mesh in one build); the
audio-enabled build is blocked by pre-existing esp_ble_audio compile
errors on this base (audio symbol verified with nm instead).
2026-08-21 22:35:46 +08:00
Mahavir Jain a9de6a4f30 Merge branch 'fix/hmac-ds-reset-corrupts-concurrent-mpi' into 'master'
fix(esp_security): don't reset DS peripheral in esp_hmac_calculate

Closes FCS-1918

See merge request espressif/esp-idf!51913
2026-08-21 17:26:16 +05:30
wanckl 4cf27f5e88 fix(driver_spi): ci enable h4 generic test 2026-08-21 19:39:57 +08:00
zhiweijian 88ea45be73 feat(ble/bluedroid): reject LE re-pairing that weakens an existing bond
Add smp_repairing_is_allowed() behind BT_BLE_SMP_HARDENED_REPAIRING so a
peer cannot replace an existing bond with one that has less MITM
protection, no Secure Connections, or a shorter key. Compare a preceding
Security Request against the pairing command AuthReq, not the
association-model result, and always allow first pairing.

A refusal keeps the stored bond. Pairing-failure erase is split by link
role: default is erase as Central and keep as Peripheral.

Closes BLERP (NDSS 2026) V3, V4 and V6.
2026-08-21 19:17:48 +08:00
zhiweijian f864615d7d fix(ble/bluedroid): harden LE bond handling across encryption
Keep the existing bond until the new pairing is encrypted, and on encryption
failure drop the link instead of clearing keys. Recovering from a peer that
really deleted the bond is opt-in through BT_BLE_SMP_UNBOND_ON_KEY_MISSING.

Closes BLERP (NDSS 2026) V5, and stops an unauthenticated Pairing Request
from dropping the stored keys (V2 exploitation).
2026-08-21 19:17:48 +08:00
Martin Vychodil 9aee704812 Merge branch 'bugfix/fatfs-f-rename-uninit-djo' into 'master'
fix(fatfs): initialize djo in f_rename for Coverity UNINIT

Closes IDF-14311

See merge request espressif/esp-idf!51504
2026-08-21 19:12:24 +08:00
Hu Rui 18e0614798 refactor(dac): move DMA interrupt handling behind dac_priv_dma callbacks 2026-08-21 18:53:09 +08:00
Martin Vychodil fac7e73de7 Merge branch 'bugfix/nvs-debugdump-check-readentry' into 'master'
fix(nvs_flash): check readEntry return in debugDump

Closes IDF-11759

See merge request espressif/esp-idf!51527
2026-08-21 18:46:57 +08:00
Martin Vychodil bbfcd30637 Merge branch 'bugfix/parttool-require-output-input' into 'master'
fix(partition_table): require parttool --output/--input args

Closes IDF-13920

See merge request espressif/esp-idf!51678
2026-08-21 17:52:56 +08:00
Island 7e5a5f1099 Merge branch 'idf/ble_audio_misc_fixes' into 'master'
fix(ble_audio): Miscellaneous fixes for running coordinated set

See merge request espressif/esp-idf!51932
2026-08-21 16:36:02 +08:00
Martin Vychodil 848c68f1ee Merge branch 'bugfix/esp-partition-erase-size-zero-check' into 'master'
fix(esp_partition): guard linux erase_range against zero erase_size

Closes IDF-6143

See merge request espressif/esp-idf!51681
2026-08-21 15:26:51 +08:00
Island b033a9fedd Merge branch 'chore/ble-log-unused-code' into 'master'
chore: BLE Log Unused Code Cleanup

See merge request espressif/esp-idf!51910
2026-08-21 14:55:08 +08:00
yinqingzhao b1ebe0287a feat(wifi): support fixed ampdu rate 2026-08-21 14:26:49 +08:00
Mahavir Jain 059f4ad22e Merge branch 'test/fix_inplace_ctr_psram_test_sw_aes' into 'master'
test(mbedtls): fix in-place AES-CTR PSRAM test on targets without AES hardware

See merge request espressif/esp-idf!51921
2026-08-21 10:07:32 +05:30
morris 1c13ed9bf3 Merge branch 'fix/esp_idf_h4_pmu_icg_mapping' into 'master'
fix(esp_hw_support): pmu_icg_mapping define mistake

See merge request espressif/esp-idf!51905
2026-08-21 11:49:03 +08:00
Liu Linyan d637115d38 fix(ble_audio): Miscellaneous fixes for running coordinated set 2026-08-21 11:09:14 +08:00
hejiaxin dfc939ff02 fix(bt_obex): fix some bugs in bluedroid obex
- fix goepc wait state switch
- fix psm unbind's mismatch
- fix some resources leak
- fix goep connection's incorrect ternimation when congesting
- Add some NULL ptr check
2026-08-21 10:50:35 +08:00
Marius Vikhammer b95b1bbf1f Merge branch 'bugfix/cmakev2-coredump-default-component' into 'master'
fix(cmakev2): include config-selected default components

See merge request espressif/esp-idf!49614
2026-08-21 10:16:27 +08:00
harshal.patil b85c05d556 test(mbedtls): fix in-place AES-CTR PSRAM test on targets without AES hardware
With MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS enabled, an in-place
psa_cipher_update() reaches the selected cipher implementation without
defensive buffer copies. The ESP AES PSA driver accepts an in-place
update of any length for CTR (PSA classifies CTR as a stream cipher, so
the driver's block_length is 1), but on targets without the AES
peripheral (e.g. ESP32-C61) the operation falls back to the mbedtls
builtin cipher layer, which rejects in-place updates whose length is
not a multiple of the block size (MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA,
surfacing as PSA_ERROR_INVALID_ARGUMENT).

Round the in-place test length down to a block multiple when
CONFIG_MBEDTLS_HARDWARE_AES is not set; partial-block PSRAM coverage is
retained through the separate-buffer alignment tests.
2026-08-20 18:46:09 +05:30
Jiang Jiang Jian 0276131402 Merge branch 'feat/support_adaptive_bandwidth_negotiation' into 'master'
feat(wifi): support adaptive bandwidth negotiation

Closes FCS-1858

See merge request espressif/esp-idf!46129
2026-08-20 21:13:38 +08:00
Jiang Jiang Jian 9ad859a1e4 Merge branch 'fix/esp32s31_cpu_clk_src_dependency' into 'master'
fix(esp_hw_support): fix esp32s31 cpu clk src dependency

Closes BT-4455

See merge request espressif/esp-idf!51572
2026-08-20 20:53:03 +08:00
Sudeep Mohanty 0a252a985d fix(esp_hw_support): Exclude MSPI alignment helper from bootloader
esp_mspi_align.c resolves PSRAM encryption state through esp_psram, a
dependency esp_hw_support declares only outside the no-OS builds. Nothing
in the bootloader calls the helper, so drop the source there rather than
keep one whose dependency cannot be satisfied. ESP-TEE still builds it,
as its mbedtls port calls into it.
2026-08-20 14:01:19 +02:00
Jiang Jiang Jian 535fa4c3b2 Merge branch 'bugfix/bta_disable_not_run' into 'master'
fix(bt/bluedroid): fix BTA event dispatch race during moduel disable

See merge request espressif/esp-idf!51809
2026-08-20 19:35:35 +08:00
Jiang Jiang Jian 643070c243 Merge branch 'bugfix/hci_cmd_proc' into 'master'
fix(bt/bluedroid): fixed the function prototype of the command handler of READ LOCAL SUPPORTED CODECS.

Closes BTQABR2023-888

See merge request espressif/esp-idf!51832
2026-08-20 19:35:24 +08:00
Ashish Sharma 34799be7b9 fix(esp_security): don't reset DS peripheral in esp_hmac_calculate
esp_hmac_calculate() enabled and reset the Digital Signature (DS)
peripheral, but HMAC has no dependency on DS (the dependency runs the
other way: a DS operation uses HMAC/SHA).

The DS peripheral drives the RSA (MPI) accelerator internally, so pulsing
the DS reset also resets the RSA datapath. This coupling exists on every
target that has the DS peripheral: the MPI reset routine itself clears the
DS reset "otherwise RSA is held in reset".

esp_hmac_calculate() holds only the HMAC and SHA/AES locks, not the MPI
lock, so it can corrupt a concurrent RSA/MPI operation. On multi-core
targets (e.g. ESP32-P4, ESP32-S31, ESP32-S3) an HMAC on one core resets an
RSA op running on another core; on single-core targets (e.g. ESP32-C5) the
same corruption happens when an HMAC preempts an in-flight RSA op. The
result is a wrong RSA result or a crash in the computation.

Remove the DS peripheral enable/reset from the HMAC path. SHA, which HMAC
depends on, is enabled independently, so the HMAC output is unchanged.
This also drops a few redundant register writes.
2026-08-20 18:52:58 +08:00
Martin Vychodil 9d8b1812fd Merge branch 'fix/generic_bdl_helper_functions_change_api' into 'master'
fix(storage): Add support for large generic partition BDLs

See merge request espressif/esp-idf!51687
2026-08-20 18:36:42 +08:00
Martin Vychodil 1563fdf69d Merge branch 'fix/fatfs-vfs-fcntl-setfl' into 'master'
fix(fatfs): preserve access mode in VFS F_SETFL

See merge request espressif/esp-idf!51880
2026-08-20 18:03:07 +08:00
morris d8df109e32 Merge branch 'feat/spi_master_ddr_mode' into 'master'
feat(driver_spi): master driver support DDR(DTR) clock mode

Closes IDFGH-12948

See merge request espressif/esp-idf!49810
2026-08-20 17:40:32 +08:00
morris 9d7270493b Merge branch 'feat/twai_add_usb_adapter_example' into 'master'
feat(driver_twai): twai add usb adapter example

See merge request espressif/esp-idf!50556
2026-08-20 17:39:48 +08:00
hebinglin 27fe024e30 fix(esp_hw_support): pmu_icg_mapping define mistake 2026-08-20 17:23:26 +08:00
Zhou Xiao afc12706a0 refactor(ble_log): simplify timestamp sync scheduling 2026-08-20 16:41:29 +08:00
Fu Hanxi f15c6b7fef Merge branch 'ci/replace-cli-independent-xfail' into 'master'
tests: replace CLI-dependent xfail/skipif conditions

See merge request espressif/esp-idf!51842
2026-08-20 10:39:58 +02:00
Island 3c2884103f Merge branch 'idf/ble_audio_example_update' into 'master'
feat(ble_audio): Miscellaneous update for ISO & Audio examples

See merge request espressif/esp-idf!51812
2026-08-20 16:29:37 +08:00
wuzhenghui a3b62bc3c4 fix(esp_hw_support): fix ESP32-S31 CPU/DFS clk_tree refcount and keep clock source during DFS 2026-08-20 16:00:52 +08:00
Martin Vychodil 2ed759adcd Merge branch 'contrib/github_pr_18960' into 'master'
Fix default value type of FATFS_PRINT_LLI and FATFS_PRINT_FLOAT (GitHub PR)

Closes IDFGH-18122

See merge request espressif/esp-idf!51692
2026-08-20 15:42:50 +08:00
Zhou Xiao 33cddfae15 refactor(ble_log): remove obsolete unit test hooks 2026-08-20 15:33:02 +08:00
Fu Hanxi 289a17b3a2 tests: replace CLI-dependent xfail/skipif conditions 2026-08-20 09:14:41 +02:00
Marius Vikhammer 844a03718a Merge branch 'feat/c5_eco4_newlib_support' into 'master'
change(esp_libc): use C5 ECO4 ROM newlib functions

See merge request espressif/esp-idf!50280
2026-08-20 15:10:47 +08:00
Island 9e9a1b3ffc Merge branch 'refactor/ble-log-lifecycle' into 'master'
BLE Log Transaction Submit Decoupling & Potential SMP Lifecycle Race Fix

See merge request espressif/esp-idf!51889
2026-08-20 15:04:51 +08:00
Mahavir Jain 6bf9b20dd9 Merge branch 'fix/tee_disallow_reentrant_sec_svc' into 'master'
fix(esp_tee): Reject re-entrant secure service calls from the REE

See merge request espressif/esp-idf!51330
2026-08-20 11:56:51 +05:30
Mahavir Jain dc73db9f18 Merge branch 'update/update_certs_bundle' into 'master'
Update esp_crt_bundle certificates

See merge request espressif/esp-idf!51768
2026-08-20 11:56:38 +05:30
Martin Vychodil ec48a1f244 Merge branch 'fix/idf-16024-nvs-api-docs' into 'master'
docs(nvs_flash): correct public API docs for error codes and space use

Closes IDF-16024

See merge request espressif/esp-idf!51590
2026-08-20 14:20:04 +08:00
zhanghaipeng 011138ffd9 fix(ble/bluedroid): allow osi_event re-post during POSTING window
Do not reject osi_thread_post_event() when only POSTING is set.
QUEUED already prevents double-queueing; rejecting POSTING caused
HCI downstream lost wakeup. Add generic osi_event and hci downstream
diagnostics for post failures.
2026-08-20 13:32:14 +08:00
morris fe465ae1fe Merge branch 'fix/psram-ecc-mspi-dma-align' into 'master'
fix(mspi): handle PSRAM ECC DMA alignment across MSPI users

Closes IDF-15850, IDF-15910, and IDF-15700

See merge request espressif/esp-idf!49987
2026-08-20 11:51:46 +08:00
morris fb8873278d Merge branch 'fix/lcd_test_build_error' into 'master'
fix(rgb_lcd): pass output color format in tests

See merge request espressif/esp-idf!51894
2026-08-20 11:34:25 +08:00
Liu Linyan d2fee5862a feat(ble_audio): Miscellaneous update for ISO & Audio examples 2026-08-20 11:24:32 +08:00