Commit Graph

34554 Commits

Author SHA1 Message Date
Zhou Xiao
fa9c6d53bb change(bt): consolidate BLE log Kconfig into common/Kconfig.in
Move per-chip BLE log Kconfig options (esp32c2/c5/c6/h2) into
components/bt/common/Kconfig.in for single-source-of-truth configuration.

Restructure menu as "BT Logs" with "Log Sources" sub-menu containing
controller log config options. Controller log output mode choice defaults
to BLE Log v2 when BLE_LOG_ENABLED, with legacy mode as deprecated
fallback. Migrate wrap_panic_handler and task_wdt_user_handler configs
as well since they depend on BT_LE_CONTROLLER_LOG_ENABLED.


(cherry picked from commit b5b886fd1e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:54 +08:00
Zhou Xiao
b8db0aac93 change(ble_log): update ble log module description
(cherry picked from commit 99212e7fc4)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:53 +08:00
Zhou Xiao
fb5deba45b feat(bt/ble_log): add cross-pool buffer fallback in LBM acquire
Replace the two-step acquire() + get_trans() flow with a unified
acquire_trans() that iterates all candidate pools. When a pool's
buffers are exhausted, the lock is released and the next pool is
tried, enabling load balancing across pools instead of only
resolving lock contention.


(cherry picked from commit 1cc66e3888)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:53 +08:00
Zhou Xiao
062b2378a4 fix(bt/ble_log): use atomic_load for inflight_peak in buf_util report
Replace __atomic_exchange_n with __atomic_load_n in
ble_log_emit_buf_util() so inflight_peak reports the all-time peak
since init rather than resetting to zero after each report.


(cherry picked from commit 257c4db455)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:47 +08:00
Zhou Xiao
614ce961e3 feat(ble_log): migrate from ping-pong to multi-buffer transport
Migrate all LBM, RT, and peripheral backend code from 2-buffer
ping-pong to 4-buffer transport with bitmask index arithmetic.

LBM changes:
- Init sets owner on each transport buffer
- get_trans/flush/dump use (idx+1) & (cnt-1) instead of !idx
- get_trans/flush use __atomic_load_n(ACQUIRE) for prph_owned
- New ble_log_write_buf_util() emits BUF_UTIL telemetry frames,
  exchange peak with 0 to avoid stale baseline after bursts

RT changes:
- Queue depth uses unified BLE_LOG_TRANS_TOTAL_CNT
- rt_queue_trans uses __atomic_store_n for prph_owned, tracks
  per-LBM inflight count and peak via lock-free CAS
- ISR path captures pxHigherPriorityTaskWoken and yields

Peripheral changes:
- All tx_done callbacks: decrement inflight before releasing
  prph_owned with __atomic_store_n(RELEASE)
- SPI/UART send_trans error paths: decrement inflight and
  release prph_owned to allow retry on next get_trans pass
- Dummy send_trans: recycle buffer immediately (pos=0, decrement
  inflight, release prph_owned) since no DMA hardware to wait for
- Redir LBM upgraded to 4-buffer with owner and reset support
- All peripherals implement ble_log_prph_reset_util_counters()


(cherry picked from commit 75eef04a2c)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:47 +08:00
Zhou Xiao
cac9cdb4c8 feat(ble_log): define multi-buffer transport types and Kconfig
Replace ping-pong (2-buffer) transport constants with configurable
multi-buffer (4-buffer) types. Add buffer utilization reporting types,
unified queue depth derivation macros, and compile-time guards.

Rename Kconfig options to total-per-LBM semantics:
- BLE_LOG_LBM_TRANS_SIZE (512) -> BLE_LOG_LBM_TRANS_BUF_SIZE (2048)
- BLE_LOG_LBM_LL_TRANS_SIZE (1024) -> BLE_LOG_LBM_LL_TRANS_BUF_SIZE (2048)

Key type changes:
- ble_log_prph_trans_t: volatile bool -> plain bool (atomic ops used),
  add void *owner back-reference
- ble_log_lbm_t: trans array sized to BLE_LOG_TRANS_BUF_CNT (4),
  add trans_inflight and trans_inflight_peak counters
- BLE_LOG_TRANS_BUF_CNT replaces BLE_LOG_TRANS_PING_PONG_BUF_CNT
- New ble_log_buf_util_t for buffer utilization telemetry
- _Static_assert guards for divisibility, power-of-2, index limits


(cherry picked from commit fdd282da91)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:46 +08:00
Zhou Xiao
5b1823c3ff feat(ble_log): consume frame_sn on loss path and bump BLE_LOG_VERSION
Add BLE_LOG_GET_FRAME_SN() on the buffer-full loss path so the SN
counter advances even when frames are dropped. This allows the console
to detect firmware-side buffer loss via SN gaps. Bump BLE_LOG_VERSION
to reflect the semantic change.


(cherry picked from commit 42f2aeedb7)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:45 +08:00
Zhou Xiao
e4f952d8cd feat(bt/ble_log): implement UART redirection stream write
Introduce stream write API with deferred frame encapsulation for UART
redirection on port 0. Redirected data is now properly framed (header +
payload + checksum) instead of being sent as raw ASCII, preventing frame
parser sync oscillation on the receiver.

- Add stream_seal/stream_write/stream_flush in ble_log_lbm.c
- Add BLE_LOG_SRC_REDIR source and BLE_LOG_UART_REDIR_ENABLED gate
- Simplify redir_uart_tx_chars and timer callback to use stream API
- Flush pending stream data in ble_log_prph_deinit
- Make get_trans static (no external callers after refactor)
- Move UART wrap linker flags outside CONFIG_BT_ENABLED guard
- Default UART DMA peripheral when SOC_UHCI_SUPPORTED
- Default baud rate 921600 -> 3000000


(cherry picked from commit a181fc156d)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:40 +08:00
Zhou Xiao
3c622ec40e fix(bt/ble_log): fix flush timer callback in UART redirect module
Fix incorrect esp_timer callback signature, replace blocking mutex
with non-blocking trylock, add prph_inited guard, correct timer
period from 100us to 1s, and remove fragile idle-based flush logic.


(cherry picked from commit 45a475a627)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:39 +08:00
Zhou Xiao
428f8f4f08 fix(bt/ble_log): use aligned counters in ble_log_stat_mgr_t
Replace embedded ble_log_enh_stat_t (packed wire struct) inside
ble_log_stat_mgr_t with flat uint32_t counters. Natural 4-byte
alignment ensures each load/store compiles to a single l32i/s32i
on Xtensa/RISC-V, making individual field access atomic without
locks.

Build the packed wire format on the stack inside a critical section
in ble_log_write_enh_stat() so the full snapshot is consistent.


(cherry picked from commit 4d193873f1)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:39 +08:00
Zhou Xiao
5c4b179f62 change(bt/ble_log): make checksum and enhanced statistics always enabled
Remove CONFIG_BLE_LOG_PAYLOAD_CHECKSUM_ENABLED conditional compilation
-- payload checksum is always computed over the full frame.

Remove CONFIG_BLE_LOG_XOR_CHECKSUM_ENABLED conditional -- XOR checksum
is always used; delete the sum checksum dead code path.

Remove CONFIG_BLE_LOG_ENH_STAT_ENABLED conditional -- enhanced
statistics (frame/byte counters per source) are always active.

Remove incorrect select on choice symbol
BT_LE_CONTROLLER_LOG_MODE_BLE_LOG_V2 from BLE_LOG_IS_ESP_CONTROLLER.


(cherry picked from commit 3eb2f57605)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:39 +08:00
Zhou Xiao
88482e2852 change(bt/ble_log): deprecate legacy SPI log output module
Move ble_log_spi_out.c and ble_log_spi_out.h into a deprecated/
subdirectory under components/bt/common/ble_log/. Extract all
BT_BLE_LOG_SPI_OUT_* Kconfig options into deprecated/Kconfig.in
with an if-block to reduce depends-on repetition, sourced from
ble_log/Kconfig.in inside a "Legacy SPI Log Output (Deprecated)"
menu. Add mutual exclusion with BLE_LOG_ENABLED so that the legacy
SPI Out and the new BLE Log Module cannot be enabled simultaneously.
Update CMakeLists.txt source path and add deprecated/include to
include dirs so existing callers are unaffected. The BLE Log
Module's SPI Master DMA peripheral transport is the replacement.


(cherry picked from commit e2d38955de)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:38 +08:00
Zhou Xiao
94761261f2 change(bt/ble_log): remove BLE Log UHCI Out module
Delete ble_log_uhci_out.c and its header. Remove the UHCI Out source
from CMakeLists.txt and all BT_BLE_LOG_UHCI_OUT_* Kconfig options.
Remove per-chip BT_LE_CONTROLLER_LOG_UHCI_OUT_ENABLED Kconfig and
all UHCI Out caller references in esp32c5/c6/h2 controller bt.c.
Update ble_log_console README to reference the new BLE Log Module
UART DMA config. The functionality is superseded by the BLE Log
Module's UART DMA peripheral transport.


(cherry picked from commit d51892380b)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:38 +08:00
Mahavir Jain
6bf6897d0d Merge branch 'bugfix/external_mem_enc_docs_v6.0' into 'release/v6.0'
docs: update PSRAM and flash encryption docs with per-page and separate key capabilities (v6.0)

See merge request espressif/esp-idf!46955
2026-04-02 19:05:36 +05:30
Jiang Jiang Jian
621d47f602 Merge branch 'fix/remove_rwdt_workaround_for_p4_rev3.2_v6.0' into 'release/v6.0'
change(esp_rom): remove wdt_hal_config_stage API workaround for P4 ECO7 (v6.0)

See merge request espressif/esp-idf!47169
2026-04-02 15:56:19 +08:00
Mahavir Jain
64c744abb7 docs: update PSRAM and flash encryption docs with per-page and separate key capabilities 2026-04-02 12:20:24 +05:30
Mahavir Jain
6efad80468 Merge branch 'fix/ds_ctx_efuse_key_id_type_v6.0' into 'release/v6.0'
Preserve flash compatibility by reverting the modified `esp_ds_data_ctx_t` size (v6.0)

See merge request espressif/esp-idf!47032
2026-04-02 11:32:09 +05:30
Mahavir Jain
49231ec638 Merge branch 'bugfix/docs_anti_rollback_v6.0' into 'release/v6.0'
docs: clarify anti-rollback secure version bits for c2/c5 (v6.0)

See merge request espressif/esp-idf!47123
2026-04-02 11:29:30 +05:30
Jiang Jiang Jian
b563fe2766 Merge branch 'fix/esp32c61_rom_stack_addr_v6.0' into 'release/v6.0'
fix(soc): Correct the ESP32-C61 ROM stack start address (v6.0)

See merge request espressif/esp-idf!47150
2026-04-02 13:57:15 +08:00
yinqingzhao
bff4bb0faa fix(ci): fix ci issue related to bss max idle test 2026-04-01 10:34:48 +08:00
wuzhenghui
909cc41d9a change(esp_rom): wdt_hal_config_stage fixed in rom_version: esp32p4-eco7-20260109 2026-03-31 16:00:01 +08:00
Laukik Hase
2f0e634586 fix(soc): Correct the ESP32-C61 ROM stack start address 2026-03-30 18:30:22 +05:30
Mahavir Jain
830e39ca68 docs: clarify anti-rollback secure version bits for c2/c5 2026-03-30 10:33:55 +05:30
harshal.patil
ca3b9ca7d3 fix(mbedtls/rsa_ds): Preserve compatibility by reverting the modified esp_ds_data_ctx_t size 2026-03-26 14:06:07 +05:30
Jiang Jiang Jian
5c2e7bbc29 Merge branch 'bugfix/fix_some_bt_coex_bugs_v6.0' into 'release/v6.0'
fix(coex): fix some esp32 coexistence bugs (Backport v6.0)

See merge request espressif/esp-idf!46970
2026-03-25 18:03:26 +08:00
Jiang Jiang Jian
14a0b9aa24 Merge branch 'fix/efuse_regs_store_operations_v6.0' into 'release/v6.0'
feat(hal): Adds half-word read/write checks for efuse (v6.0)

See merge request espressif/esp-idf!45341
2026-03-25 17:22:40 +08:00
Marius Vikhammer
d0f1ae4be5 Merge branch 'fix/freertos_riscv_px_end_of_stack_alignment_v6.0' into 'release/v6.0'
fix(freertos): fix riscv pxEndOfStack offset alignment (v6.0)

See merge request espressif/esp-idf!46535
2026-03-25 16:13:15 +08:00
Jiang Jiang Jian
9d3893303c Merge branch 'fix/enable_key_mgr_clk_for_efuse_key_ops_v6.0' into 'release/v6.0'
Enable Key Manager clock even for efuses-based key operations (v6.0)

See merge request espressif/esp-idf!46754
2026-03-25 16:02:08 +08:00
Ashish Sharma
6e08270b4a Merge branch 'fix/fix_esp32p4_key_mgr_efuse_key_rev_le_3_v6.0' into 'release/v6.0'
fix(esp_hal_security): fixes failing hmac_hal_configure with efuse_key for p4 rev < 3 (v6.0)

See merge request espressif/esp-idf!46892
2026-03-25 10:38:30 +08:00
Konstantin Kondrashov
e34be7afd5 feat(hal): Adds half-word read/write checks for efuse 2026-03-25 10:31:10 +08:00
morris
3bd7ec9fe9 Merge branch 'fix/tsens_float_isr_v6.0' into 'release/v6.0'
fix(temperature_sensor): Fix the float calculation in temperature sensor isr (backport v6.0)

See merge request espressif/esp-idf!46946
2026-03-25 10:26:22 +08:00
Martin Vychodil
f560502e5e Merge branch 'feat/unify_vfs_api_v6.0' into 'release/v6.0'
feat(storage/vfs): Unify VFS API by removing context-less APIs (v6.0)

See merge request espressif/esp-idf!46747
2026-03-24 22:49:06 +08:00
linruihao
8bc55358c2 fix(coex): fix some esp32 coexistence bugs
- fix ble scan may restart twice in coex scenarios
- fix bredr page/pscan coex request/release not match
- fix bredr incorrect inquiry length calculation
- update bredr page/inquiry pti
- add coex pti protection for entire page/inquiry event
2026-03-24 20:47:10 +08:00
Jiang Jiang Jian
5793218f98 Merge branch 'bugfix/ap_5g_phy_bw_v6.0' into 'release/v6.0'
fix(wifi): Update channel bandwidth when ap adjust from 2g to 5g (v6.0)

See merge request espressif/esp-idf!46957
2026-03-24 20:43:30 +08:00
morris
51f3ed05c7 Merge branch 'fix/fix_parlio_tx_sample_edge_v6.0' into 'release/v6.0'
change(parlio_tx): use shift edge instead sample edge (v6.0)

See merge request espressif/esp-idf!46935
2026-03-24 19:14:33 +08:00
Martin Vychodil
dddc72dae2 Merge branch 'contrib/github_pr_17642_v6.0' into 'release/v6.0'
feat(sdmmc): support multi-block read/writes (GitHub PR) (v6.0)

See merge request espressif/esp-idf!46776
2026-03-24 19:10:58 +08:00
Jiang Jiang Jian
bec053b825 Merge branch 'bugfix/idfci-8990_v6.0' into 'release/v6.0'
fix(bt): Fix crash due to functions not placed in IRAM(v6.0)

See merge request espressif/esp-idf!46939
2026-03-24 19:08:55 +08:00
harshal.patil
1db26df63d fix(esp_security): Fixes incorrect key manager configuration for ESP32-P4 rev < 3 2026-03-24 16:33:25 +05:30
Ashish Sharma
0cac091538 fix(esp_hal_security): fixes failing hmac_hal_configure with efuse_key for p4 rev < 3
Closes https://github.com/espressif/esp-idf/issues/18370
2026-03-24 16:33:25 +05:30
harshal.patil
2339834e4a fix(esp_security): Enable Key Manager clocks even for efuse key operations
The Key Manager holds a key usage register, thus, the Key Manager peripheral
clock must be enabled even for efuses-based key operations to route the
crypto operations to correctly to the efuses (default is Key Manager)
2026-03-24 16:23:16 +05:30
Martin Vychodil
b1e68e756e Merge branch 'feature/nvs_flash_erase_verify_v6.0' into 'release/v6.0'
feat(nvs_flash): Added verification of flash erase operation (v6.0)

See merge request espressif/esp-idf!46948
2026-03-24 17:45:29 +08:00
Martin Vychodil
4796f1dbaa Merge branch 'feature/wl_bdl_support_2_v6.0' into 'release/v6.0'
feat(wear_levelling): Added BDL support (v6.0)

See merge request espressif/esp-idf!46950
2026-03-24 16:42:10 +08:00
Konstantin Kondrashov
b789f667e0 fix(freertos): fix riscv pxEndOfStack offset alignment
Closes https://github.com/espressif/esp-idf/issues/18256
2026-03-24 09:40:28 +02:00
Sajia
6246dc6331 fix(wifi): Update channel bandwidth when ap adjust from 2g to 5g 2026-03-24 12:49:00 +05:30
Rahul Tank
da23c23995 Merge branch 'bugfix/send_conn_cancel_simul_v6.0' into 'release/v6.0'
fix(nimble): Issue connect cancel in case of outstanding master connection (v6.0)

See merge request espressif/esp-idf!46690
2026-03-24 12:34:13 +05:30
Martin Vychodil
2ea61a5cee feat(wear_levelling): Added BDL support 2026-03-24 07:28:16 +01:00
radek.tandler
407f74a67f feat(nvs_flash): Added option enabling verification of flash erase operation 2026-03-24 07:23:12 +01:00
Jiang Jiang Jian
82cded2700 Merge branch 'fix/components_for_static_analyzer_v6.0' into 'release/v6.0'
fix(ci): check all components using static analyzer (v6.0)

See merge request espressif/esp-idf!45939
2026-03-24 14:11:08 +08:00
C.S.M
545c249e41 fix(temperature_sensor): Fix the float calculation in temperature sensor isr 2026-03-24 14:05:28 +08:00
Martin Vychodil
9c14a34ca4 Merge branch 'feat/bdl_generic_partition_v6.0' into 'release/v6.0'
feat(storage/blockdev): Add generic partition and memory mapping blockdev drivers (v6.0)

See merge request espressif/esp-idf!46772
2026-03-24 13:39:08 +08:00