Commit Graph
100 Commits
Author SHA1 Message Date
Zhou Xiao c83fdad6dd fix(ble_log): use BIT64 over BIT to support 64-bit IO setup
(cherry picked from commit a2876d304e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-07-03 12:04:59 +08:00
Zhou Xiao c4743f1d70 change(ble): [AUTO_MR] Update lib_esp32c6 to a6519790
(cherry picked from commit 226a0483b1)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-07-01 10:35:34 +08:00
Zhou Xiao db5d0803d9 change(ble): [AUTO_MR] Update lib_esp32c5 to a6519790
(cherry picked from commit a43358587c)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-07-01 10:35:34 +08:00
Zhou Xiao 5c11f97421 change(ble): [AUTO_MR] Update lib_esp32h2 to a6519790
(cherry picked from commit 8a744e8e93)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-07-01 10:35:33 +08:00
Zhou Xiao d3409dbac6 docs(ble): add BLE UART tutorial and opencode bridge demo
- Add BLE UART service example with OpenCode companion docs
- Add BLE UART bridge demo for opencode integration
- Add BLE UART common library improvements
2026-06-22 10:20:47 +08:00
Zhou Xiao 638cd4c1bd change(ble): [AUTO_MR] Update lib_esp32c2 to 750d4902
(cherry picked from commit 897f3b2af1)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-06-12 12:14:38 +08:00
Zhou Xiao 48d6feb6ea change(ble_log): move spi tx callback to flash when spi isr in iram disabled
(cherry picked from commit 725e9ee162)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-06-03 15:38:32 +08:00
Zhou Xiao 0ba268133d docs(ble): update bridge docs and troubleshooting 2026-05-09 19:44:15 +08:00
Zhou Xiao c6f0d4f1fd fix(ble): handle notification setup failures 2026-05-09 19:44:10 +08:00
Zhou Xiao 64034cbcb9 fix(ble): remove BLE service UUID scan filter 2026-05-09 19:44:06 +08:00
Zhou Xiao ed9832b196 fix(ble): handle permission reply fallbacks
(cherry picked from commit ad7189e7dd)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-05-09 10:52:11 +08:00
Zhou Xiao c3af0670da fix(ble): fixed edge case issues from ai reviewer
(cherry picked from commit fa8ca07e58)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-05-09 10:52:10 +08:00
Zhou Xiao 6484f83ff3 feat(tools): improve ble uart reconnect ux
(cherry picked from commit 956299d988)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-05-09 10:52:10 +08:00
Zhou Xiao f043ef20e7 feat(tools): add opencode ble uart bridge demo
(cherry picked from commit 0b07f41e5a)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-05-09 10:52:10 +08:00
Zhou Xiao 14a82b0872 feat(ble): add BLE UART bridge core 2026-05-08 11:40:14 +08:00
Zhou Xiao 70505621bf change(ble_log): update ble log version to 5 for esp ble controller log encoding indication 2026-04-29 12:11:58 +08:00
Zhou Xiao 30fa84b0b0 fix(ble_log): ensure BLE Log IRAM functions are placed in IRAM on ESP32C2
On ESP32C2 with BT_CTRL_RUN_IN_FLASH_ONLY, the bt_default linker scheme
routes .iram1 sections to flash_text, causing BLE_LOG_IRAM_ATTR functions
to end up in flash instead of IRAM. Define a dedicated .ble_log_iram1
section for ESP32C2 and route it to iram0_bt_text unconditionally.
2026-04-28 13:29:15 +08:00
Zhou Xiao b3dccba3ac fix(ble_log): improve robustness with atomics, macro hygiene, and IRAM
- Use __atomic_fetch_add for stat_mgr counters to prevent lost updates
  under concurrent ISR/task access (H1)
- Use __atomic_load_n with ACQUIRE ordering for ref_count spin-loops (L1)
- Remove unnecessary BLE_LOG_IRAM_ATTR from ble_log_rt_task since it
  calls flash-resident functions and cannot run during flash ops (L3)
- Add parentheses to BLE_LOG_TRANS_FREE_SPACE and BLE_LOG_MAKE_FRAME_META
  macro parameters to prevent operator precedence bugs (M6)
2026-04-28 13:29:15 +08:00
Zhou Xiao 217d9b23f6 fix(ble_log): fix deinit race and concurrent flush deadlock
- Reorder deinit: stop RT task before destroying peripheral driver to
  prevent sending transports to a NULL dev_handle on dual-core (H2)
- Drain remaining queue items in rt_deinit to clean up transport state
- Add atomic flush_in_progress guard to prevent two concurrent
  ble_log_flush() callers from deadlocking on ref_count spin-wait (H5)
2026-04-28 13:29:15 +08:00
Zhou Xiao 9c8090a5d4 fix(ble_log): fix crash and resource issues in peripheral drivers
- Handle scheduler-suspended and ISR context in UART redirect path
  to prevent xSemaphoreTake crash during light sleep (C1)
- Check uart_driver_install return value before setting inited flag (M1)
- Always clean up SPI device handle in deinit even if acquire_bus fails (M4)
2026-04-28 13:29:15 +08:00
Zhou Xiao ed097f942f fix(ble_log): handle scheduler-suspended state in ble_log_rt_queue_trans
During light sleep transitions, the FreeRTOS scheduler is suspended but
xPortInIsrContext() returns false, causing xQueueSend with portMAX_DELAY
to hit a configASSERT. Add a check for taskSCHEDULER_SUSPENDED and use
a non-blocking send with rollback on queue-full to avoid resource leaks.
2026-04-28 13:29:15 +08:00
Zhou Xiao ad62778bc0 fix(ble): fixed ci failures for backport 2026-04-28 12:57:14 +08:00
Zhou Xiao 5a9bb3c7ca feat(ble): add BLE UART daemon notify API 2026-04-28 11:12:10 +08:00
Zhou Xiao a1708452ec docs(ble): document BLE UART bridge usage 2026-04-28 11:12:10 +08:00
Zhou Xiao c6de8e7dff feat(ble): wire BLE UART bridge CLI 2026-04-28 11:12:10 +08:00
Zhou Xiao be95b3fc73 feat(ble): add BLE UART daemon RPC API 2026-04-28 11:12:10 +08:00
Zhou Xiao 29dc646b21 feat(ble): add BLE UART bridge console 2026-04-28 11:12:10 +08:00
Zhou Xiao 03a54ef8f9 fix(ble_log_console): exclude from idf-ci pytest collection to fix CI
idf-ci discovers pyproject.toml pytest config and runs a separate
collection pass with --target all, which finds 0 target tests and
raises RuntimeError. Add to .idf_ci.toml exclude_dirs instead of
deleting tests. Restore all 227 unit tests with lint/mypy fixes.


(cherry picked from commit 205bc49fd6)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:15:00 +08:00
Zhou Xiao 9a30fc326d docs(ble_log): update README for multi-buffer transport and removed modules
Reflect changes from dev/ble-log-202603: ping-pong to multi-buffer
transport (4 buffers/LBM), renamed Kconfig options (LBM_TRANS_SIZE →
LBM_TRANS_BUF_SIZE with new defaults), always-enabled checksum and
enhanced statistics, UART redirection support, UHCI Out removal,
SPI Out deprecation, and updated memory estimation.


(cherry picked from commit aec896b6b9)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:15:00 +08:00
Zhou Xiao 23d64937f3 feat(bt): add BT_LOG_CRITICAL_ONLY bandwidth-optimized log mode
Add Kconfig options for bandwidth-optimized logging via the BLE Log
Async Output system. When enabled, controller log levels default to 2
and host/mesh log encoding is auto-selected.

- BT_LOG_CRITICAL_ONLY parent: selects BLE_LOG_ENABLED + compression
- BT_LOG_CRITICAL_ONLY_CTRL: supports both NimBLE and non-NimBLE (C3)
  controllers with default level override
- BT_LOG_CRITICAL_ONLY_HOST: host-agnostic, selects compressed log
  for Bluedroid conditionally
- BT_LOG_CRITICAL_ONLY_MESH: placeholder for mesh log encoding
- Guards against BT_STACK_NO_LOG conflict


(cherry picked from commit c223a3f835)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:59 +08:00
Zhou Xiao 424262d916 docs(ble_log_console): update user guides for new features and run/build scripts
- Recommend run.sh/run.bat as primary launch method with Launch Screen description
- Add build.sh/build.bat section for standalone executable packaging
- Document buffer utilization screen (m key) and two-table stats layout (d key)
- Update menuconfig path, status panel format, and Kconfig option names
- Remove obsolete textual ModuleNotFoundError troubleshooting
- Simplify manual configuration to single toggle (defaults cover most cases)
- Fix ESP32 -> ESP chip in introduction


(cherry picked from commit 391f7b7d8a)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:54 +08:00
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 4033fceed5 feat(ble_log_console): add buffer utilization tracker and display
Add BufUtilTracker to record per-LBM inflight peak data, wire it
through StatsAccumulator and StatsUpdated message for thread-safe
delivery to the UI. Buffer utilization is displayed in a dedicated
BufUtilScreen accessible via the 'm' keybinding, separate from
the frame stats screen ('d').

Also reject false INIT_DONE frames with version==0 caused by
misaligned data during parser sync, preventing spurious stats resets.


(cherry picked from commit ca920a8e8f)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:53 +08:00
Zhou Xiao e3dc63eff0 feat(ble_log_console): add BUF_UTIL internal frame decoding
Add BUF_UTIL=5 to InternalSource, BufUtilPool enum, BufUtilResult
TypedDict, BufUtilEntry dataclass, and name resolution helpers.
Add decode branch in internal_decoder with pool/index extraction
from the packed lbm_id field. Tests cover valid decode, pool/index
extraction, and truncated payload handling.


(cherry picked from commit d9a4d15203)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:47 +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 9a78222735 feat(ble_log_console): add CLI entry point, build scripts, and docs
- Click-based CLI entry point (console.py) with --port, --baudrate,
  --log-dir options and interactive Launch Screen when --port omitted
- Deprecation warning for --output CLI flag
- 'ls' subcommand to list saved capture files
- PyInstaller build scripts (build.sh, build.bat, build_exe.py)
- Convenience run scripts (run.sh, run.bat)
- README rewrite with installation, usage, architecture docs, and
  troubleshooting guide
- User guides in English and Chinese
- Remove old single-file ble_log_console.py
- Register new scripts in executable-list.txt


(cherry picked from commit a51d879d1b)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:46 +08:00
Zhou Xiao 641cc41fbe feat(ble_log_console): add Textual frontend and app wiring
TUI frontend built on Textual with thread-safe backend integration:

- Launch screen with port/baud/log-dir selection and auto-refresh
- Log view with scrollable RichLog and color-coded write methods;
  Rich markup escaped to prevent crash on bracket characters
- Stats screen split into two tables by time base:
  - Firmware Counters (since chip init): Written and Buffer Loss
  - Console Measurements (since console start): Average Throughput
    and Peak Write — each with separate frames and bytes sub-columns
  - Column widths constrained with min_width/max_width for stable layout
  - Division-by-zero guard when peak window is zero
- Shortcut screen overlay
- Status panel with sync state, checksum mode, and transport metrics;
  speed display uses named UART_BITS_PER_BYTE constant
- Main app wiring: UART reader thread with threading.Lock for serial
  access, frame parser pipeline, stats emission via StatsUpdated
  messages (including funnel snapshots via public accessor for
  thread-safe delivery), BackendStopped message for disconnect
- BackendStopped posted on open_serial failure (prevents stuck status)
- Select.BLANK guard for baud rate in launch screen
- Explicit None guards replace asserts in backend worker
- Wall-clock burst tracking for REDIR frames (no chip-side timestamp)
- SN gap alerts (FrameLossDetected) and traffic spike notifications


(cherry picked from commit 02f1960e56)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:46 +08:00
Zhou Xiao 613ad16948 feat(ble_log_console): add backend with frame parser, stats, and data models
Modular backend for the BLE log console rewrite:

- Frame parser with sync state machine and checksum auto-detection
  (4 modes: XOR/Sum x Full/Header-only); handles incomplete frames
  during re-sync search when previously synced
- Internal frame decoder (INIT_DONE, ENH_STAT, FLUSH, INFO)
- Data models: SourceCode, FrameByteCount, FunnelSnapshot, LossType
- Stats package with composition-root StatsAccumulator orchestrating:
  - TransportMetrics (RX bytes, lifetime-average throughput)
  - FirmwareLossTracker / FirmwareWrittenTracker (ENH_STAT deltas
    with first-report absolute value initialization)
  - SNGapTracker (sliding window reorder-tolerant SN gap detection)
  - PeakBurstTracker (per-source sliding window burst density)
  - TrafficSpikeDetector (wire utilization spike detection)
  - Wall-clock burst tracker for non-timestamped sources (REDIR)
- Torn-read guard on ENH_STAT reports (baudrate-based plausibility)
  with prev-state update on discard to prevent cascading drops
- Console-local metrics (TransportMetrics, PeakBurstTracker) preserved
  across INIT_DONE resets; only ENH_STAT-coupled components reset
- UART transport with port validation and exclusive serial access
- Comprehensive test suite (17 test files, 223 tests)


(cherry picked from commit 9046c77e52)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-04-03 21:14:45 +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
Zhou Xiao 29fa2be49f feat(ble_log): encode HCI direction in ble_log pipeline
Add ble_log_write_hci macro that encodes upstream/downstream direction
in MSB of HCI type byte. Update all 4 callsites (NimBLE + Bluedroid)
to use the new macro. Parser reads MSB to determine direction;
backward compatible (old firmware MSB=0 defaults to "sent").


(cherry picked from commit 8fd5dbb730)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-03-05 13:13:28 +08:00
Zhou Xiaoandcjin b1259913d7 feat(ble): support sid filter feature on ESP32H2
(cherry picked from commit e4e42f0166)

Co-authored-by: cjin <jinchen@espressif.com>
2026-01-28 18:32:04 +05:30
Zhou Xiaoandcjin c7b2f0f0d2 feat(ble): support sid filter feature on ESP32C6
(cherry picked from commit 6b4b497901)

Co-authored-by: cjin <jinchen@espressif.com>
2026-01-28 18:32:04 +05:30
Zhou Xiaoandcjin 1e6cf91532 feat(ble): support sid filter feature on ESP32C5
(cherry picked from commit debd743a0b)

Co-authored-by: cjin <jinchen@espressif.com>
2026-01-28 18:32:04 +05:30
Zhou Xiao 414582610f change(ble): [AUTO_MR] Update lib_esp32c6 to 17fdc66e
(cherry picked from commit 54e5f358bf)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-28 18:32:04 +05:30
Zhou Xiao bd02a02073 change(ble): [AUTO_MR] Update lib_esp32c5 to 17fdc66e
(cherry picked from commit 7631a6f158)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-28 18:32:04 +05:30
Zhou Xiao 8851cba104 change(ble): [AUTO_MR] Update lib_esp32h2 to 17fdc66e
(cherry picked from commit 57b4819474)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-28 18:32:04 +05:30
Zhou Xiao cdc2c22174 fix(ble): fixed use-after-free in bluedroid attp
(cherry picked from commit 78594e0f6e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-28 17:14:28 +08:00
Zhou Xiao b57a6cebfe feat(ble): added sdkconfig to control ble host side hci log
(cherry picked from commit 52c2bd2dd6)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-28 17:14:00 +08:00
Zhou Xiao 3c26746223 feat(ble): support ll log payload length limit for ble log v2
(cherry picked from commit 82ee820cf8)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-28 17:14:00 +08:00
Zhou Xiao fa25b45147 change(ble): optimized os_mbuf_copydata thread safety protection
(cherry picked from commit 52754b1aa4)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-28 17:14:00 +08:00
Zhou Xiao 4b16833290 change(ble): [AUTO_MR] Update lib_esp32c6 to acf48208
(cherry picked from commit 69522eaedb)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-08 21:13:46 +08:00
Zhou Xiao e978924c09 change(ble): [AUTO_MR] Update lib_esp32c5 to acf48208
(cherry picked from commit d61e0bf975)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-08 21:13:46 +08:00
Zhou Xiao 236cfade77 change(ble): [AUTO_MR] Update lib_esp32h2 to acf48208
(cherry picked from commit 32b41c88e0)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2026-01-08 21:13:45 +08:00
Zhou Xiao a18f531aa3 fix(ble): fixed cache error risk in ble log module 2026-01-05 14:23:26 +08:00
Zhou Xiao 8013603aeb feat(ble): provide isr dispatch method option for ble log ts 2026-01-05 14:23:18 +08:00
Zhou Xiao 3afb834188 fix(ble): add esp timer trigger back for timestamp synchronization 2026-01-05 14:23:13 +08:00
Zhou Xiao 65cd502b0e change(ble): [AUTO_MR] Update lib_esp32c2 to 9f051857
(cherry picked from commit 7ebf1c8d15)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-12-30 13:13:25 +08:00
Zhou Xiao a0cad007a1 feat(ble): supported ble log v2 hci log for Bluedroid host 2025-12-24 17:49:13 +08:00
Zhou Xiao f0d8014c9c feat(ble): supported ble log v2 hci log for NimBLE host 2025-12-24 17:49:08 +08:00
Zhou Xiao f35dd91fcd fix(ble): added null pointer check in ble log ts submodule
(cherry picked from commit 2b9c7471d0)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-12-24 17:05:06 +08:00
Zhou Xiao a1cc86f421 fix(ble): added missed ts sync reset
(cherry picked from commit d1d07eb60a)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-12-24 17:05:06 +08:00
Zhou Xiao ded5fa0d55 feat(ble): added xor checksum for integrity check performance optimization
(cherry picked from commit c604afa272)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-12-24 17:05:05 +08:00
Zhou Xiao 8009cb07fb fix(ble): added missed spin lock initialization
(cherry picked from commit 069262e513)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-12-18 17:13:39 +08:00
Zhou Xiao 2c8da21b69 feat(ble): enabled lc get time for ceva controller
(cherry picked from commit 6924b8b372)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-12-01 11:10:38 +08:00
Zhou Xiao afefd97193 fix(ble): put ble_log_write_hex in iram to avoid cache error
(cherry picked from commit dc4e41fab8)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-12-01 11:10:37 +08:00
Zhou Xiao d85f59182f change(ble): [AUTO_MR] Update lib_esp32c5 to b6027aeb 2025-11-19 19:32:34 +08:00
Zhou Xiao 0bfc55b91a change(ble): [AUTO_MR] Update lib_esp32c6 to b6027aeb 2025-11-19 19:32:34 +08:00
Zhou Xiao 32b8a23c02 change(ble): [AUTO_MR] Update lib_esp32h2 to b6027aeb 2025-11-19 19:32:34 +08:00
Zhou Xiao 4cc67be869 change(ble): [AUTO_MR] updated rom linker script for ESP32-C2 2025-11-19 19:32:34 +08:00
Zhou Xiao 180348b20f change(ble): [AUTO_MR] Update lib_esp32c2 to 27b6e1dc 2025-11-19 19:32:34 +08:00
Zhou Xiao 3dda8cbe07 feat(phy): ESP32-C5 ECO2/ECO3 coex and ESP32-C6 track reset
* C5 phy_version: 1 107, 8c534c84, Nov 17 2025
* C6 phy_version: 343, b513b46, Nov 14 2025
2025-11-17 15:37:32 +08:00
Zhou Xiao 6c55efc2e0 fix(ble): increase default ble log stack size for xtensa chips 2025-11-13 17:03:28 +08:00
Zhou Xiao 4c16370097 fix(ble): fixed hci event log when link layer logging is disabled
(cherry picked from commit 777f21783b)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-10-30 21:13:17 +08:00
Zhou Xiao 557b7bae2e change(ble): [AUTO_MR] updated rom linker script for ESP32-C2 2025-10-22 17:48:43 +08:00
Zhou Xiao ee2c7247fb change(ble): [AUTO_MR] Update lib_esp32c2 to 283861b8 2025-10-22 17:48:41 +08:00
Zhou Xiao f4d881ff59 change(ble): [AUTO_MR] Update lib_esp32c6 to a76948d4 2025-10-22 17:48:41 +08:00
Zhou Xiao f4ebf33964 change(ble): [AUTO_MR] Update lib_esp32c5 to a76948d4 2025-10-22 17:48:41 +08:00
Zhou Xiao ab5c1b0e3b change(ble): [AUTO_MR] Update lib_esp32h2 to a76948d4 2025-10-22 17:48:41 +08:00
Zhou Xiao 322eb33f0d fix(ble): copy acl data by omdata buffer copy 2025-10-11 14:14:40 +08:00
Zhou Xiao 64ef451586 feat(ble): added safe unity component 2025-09-26 10:25:25 +08:00
Zhou Xiao 09a3b29d01 change(ble): [AUTO_MR] updated rom linker script for ESP32-C2 2025-09-19 11:22:47 +08:00
Zhou Xiao a56e7df710 change(ble): [AUTO_MR] Update lib_esp32c2 to 58398575 2025-09-19 11:22:44 +08:00
Zhou Xiao 26dcd59599 change(ble): [AUTO_MR] Update lib_esp32c6 to 390a8efd 2025-09-19 11:22:44 +08:00
Zhou Xiao b75f862797 change(ble): [AUTO_MR] Update lib_esp32c5 to 390a8efd 2025-09-19 11:22:44 +08:00
Zhou Xiao a7b87fe832 change(ble): [AUTO_MR] Update lib_esp32h2 to 390a8efd 2025-09-19 11:22:44 +08:00
Zhou Xiao 4247876b36 fix(ble): fixed ble log config for ESP32-C3/ESP32-S3 2025-09-16 20:18:22 +08:00
Zhou Xiao 10649fddc5 feat(ble): supported ble log v2 for ESP32 2025-09-16 14:43:07 +08:00
Zhou Xiao 1edaf8ebc1 feat(ble): supported ble log v2 for ESP32-C3/ESP32-S3 2025-09-16 14:43:03 +08:00
Zhou Xiao 66504599ba feat(ble): supported ble log v2 for ESP32-C5 2025-09-16 14:31:36 +08:00
Zhou Xiao 4a408af219 feat(ble): supported ble log v2 for ESP32-C2 2025-09-16 14:31:36 +08:00