Skip to content

Commit e00ba3c

Browse files
committed
fix(ble/bluedroid): Support SPI log output options for HCI
1 parent 1bfc6ed commit e00ba3c

File tree

6 files changed

+49
-3
lines changed

6 files changed

+49
-3
lines changed

components/bt/common/Kconfig.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ config BT_BLE_LOG_SPI_OUT_ENABLED
1111
help
1212
Output ble logs to SPI bus
1313

14+
config BT_BLE_LOG_SPI_OUT_HCI_ENABLED
15+
bool "Enable HCI log output to SPI"
16+
depends on BT_BLE_LOG_SPI_OUT_ENABLED
17+
default n
18+
help
19+
Enable logging of HCI packets to the SPI bus when BLE SPI log output is enabled.
20+
1421
config BT_BLE_LOG_SPI_OUT_QUEUE_SIZE
1522
int "Number of ble log async SPI output queues"
1623
depends on BT_BLE_LOG_SPI_OUT_ENABLED

components/bt/common/include/bt_common.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -84,6 +84,13 @@
8484
#define BT_HCI_LOG_INCLUDED FALSE
8585
#endif
8686

87+
// HCI LOG TO SPI
88+
#if UC_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
89+
#define BT_BLE_LOG_SPI_OUT_HCI_ENABLED UC_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
90+
#else
91+
#define BT_BLE_LOG_SPI_OUT_HCI_ENABLED FALSE
92+
#endif
93+
8794
#if UC_BT_HCI_LOG_DATA_BUFFER_SIZE
8895
#define HCI_LOG_DATA_BUFFER_SIZE UC_BT_HCI_LOG_DATA_BUFFER_SIZE
8996
#else

components/bt/common/include/bt_user_config.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,13 @@
126126
#define UC_BT_HCI_LOG_DEBUG_EN FALSE
127127
#endif
128128

129+
//HCI LOG TO SPI
130+
#ifdef CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
131+
#define UC_BT_BLE_LOG_SPI_OUT_HCI_ENABLED TRUE
132+
#else
133+
#define UC_BT_BLE_LOG_SPI_OUT_HCI_ENABLED FALSE
134+
#endif
135+
129136
#ifdef CONFIG_BT_HCI_LOG_DATA_BUFFER_SIZE
130137
#define UC_BT_HCI_LOG_DATA_BUFFER_SIZE CONFIG_BT_HCI_LOG_DATA_BUFFER_SIZE
131138
#else

components/bt/host/bluedroid/api/esp_bluedroid_hci.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -16,6 +16,10 @@
1616

1717
#define LOG_TAG "HCI_API"
1818

19+
#if CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
20+
#include "ble_log/ble_log_spi_out.h"
21+
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
22+
1923
static esp_bluedroid_hci_driver_operations_t s_hci_driver_ops = { 0 };
2024

2125
esp_err_t esp_bluedroid_attach_hci_driver(const esp_bluedroid_hci_driver_operations_t *p_ops)
@@ -63,6 +67,9 @@ void hci_host_send_packet(uint8_t *data, uint16_t len)
6367
#if (BT_HCI_LOG_INCLUDED == TRUE)
6468
bt_hci_log_record_hci_data(data[0], &data[1], len - 1);
6569
#endif
70+
#if (BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER)
71+
ble_log_spi_out_write_with_ts(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len);
72+
#endif // (BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER)
6673
#if (BT_CONTROLLER_INCLUDED == TRUE)
6774
esp_vhci_host_send_packet(data, len);
6875
#else /* BT_CONTROLLER_INCLUDED == TRUE */

components/bt/host/bluedroid/hci/hci_hal_h4.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
#include "stack/hcimsgs.h"
4242
#include "hci_log/bt_hci_log.h"
4343

44+
#if CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
45+
#include "ble_log/ble_log_spi_out.h"
46+
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
47+
4448
#define HCI_BLE_EVENT 0x3e
4549
#define PACKET_TYPE_TO_INBOUND_INDEX(type) ((type) - 2)
4650
#define PACKET_TYPE_TO_INDEX(type) ((type) - 1)
@@ -567,6 +571,9 @@ void bt_record_hci_data(uint8_t *data, uint16_t len)
567571

568572
static int host_recv_pkt_cb(uint8_t *data, uint16_t len)
569573
{
574+
#if (BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER)
575+
ble_log_spi_out_write_with_ts(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len);
576+
#endif // (BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER)
570577
//Target has packet to host, malloc new buffer for packet
571578
BT_HDR *pkt = NULL;
572579
#if (BLE_42_SCAN_EN == TRUE)

components/bt/host/nimble/esp-hci/src/esp_nimble_hci.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -24,6 +24,10 @@
2424
#include "bt_common.h"
2525
#include "hci_log/bt_hci_log.h"
2626

27+
#if CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
28+
#include "ble_log/ble_log_spi_out.h"
29+
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
30+
2731
#define NIMBLE_VHCI_TIMEOUT_MS 2000
2832
#define BLE_HCI_EVENT_HDR_LEN (2)
2933
#define BLE_HCI_CMD_HDR_LEN (3)
@@ -68,6 +72,9 @@ void esp_vhci_host_send_packet_wrapper(uint8_t *data, uint16_t len)
6872
#if (BT_HCI_LOG_INCLUDED == TRUE)
6973
bt_hci_log_record_hci_data(data[0], &data[1], len - 1);
7074
#endif
75+
#if (CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER)
76+
ble_log_spi_out_write_with_ts(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len);
77+
#endif // (CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER)
7178
esp_vhci_host_send_packet(data, len);
7279
}
7380

@@ -219,6 +226,10 @@ static int dummy_host_rcv_pkt(uint8_t *data, uint16_t len)
219226
*/
220227
static int host_rcv_pkt(uint8_t *data, uint16_t len)
221228
{
229+
#if (CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER)
230+
ble_log_spi_out_write_with_ts(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len);
231+
#endif // (CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER)
232+
222233
bt_record_hci_data(data, len);
223234

224235
if(!ble_hs_enabled_state) {

0 commit comments

Comments
 (0)