Merge branch 'feat/add_lmp_dbg_vendor_v6.1' into 'release/v6.1'

feat(bt/controller): Added LMP debug vendor HCI and fixed some bugs ts on ESP32-S31 [backport v6.1]

See merge request espressif/esp-idf!50704
This commit is contained in:
Jiang Jiang Jian
2026-07-16 18:56:58 +08:00
7 changed files with 107 additions and 8 deletions

View File

@@ -367,11 +367,6 @@ struct bt_hci_vs_legacy_rem_auth_evt {
*/
#define ESP_BT_VS_CLK_UPDATE_OCF (0x0183)
/**
* @note The init function is `bt_stack_enableClkCtrlVsCmd(true)`
*/
#define ESP_BT_VS_PCA_OCF (0x0190)
/**
* @note The init function is `bt_stack_enableAfhVsCmd(true)`
*/
@@ -412,6 +407,31 @@ struct bt_hci_vs_legacy_rem_auth_evt {
*/
#define ESP_BT_VS_DTM_RX_TEST_END_OCF (0x018f)
/**
* @note The init function is `bt_stack_enableInternalDbgVsCmd(true)`
*/
#define ESP_BT_VS_PCA_OCF (0x0190)
/**
* @note The init function is `bt_stack_enableInternalDbgVsCmd(true)`
*/
#define ESP_BT_VS_DISCARD_PING_OCF (0x0191)
/**
* @note The init function is `bt_stack_enableInternalDbgVsCmd(true)`
*/
#define ESP_BT_VS_LMP_DBG_ENABLE_OCF (0x019a)
/**
* @note The init function is `bt_stack_enableInternalDbgVsCmd(true)`
*/
#define ESP_BT_VS_SEND_LMP_OCF (0x019b)
/**
* @note The init function is `bt_stack_enableInternalDbgVsCmd(true)`
*/
#define ESP_BT_VS_LMP_DBG_SAVE_OCF (0x019c)
//
// @brief HCI VS Events for Espressif's Internal-Use Debugging
//
@@ -437,6 +457,21 @@ struct bt_hci_vs_legacy_rem_auth_evt {
*/
#define ESP_BT_VS_CH_CLASSIFICATION_REPORTING_MODE_EVT_SUBCODE (0x07)
/**
* @note The init function is `bt_stack_enableInternalDbgVsCmd(true)`
*/
#define ESP_BT_VS_LMP_RECEIVED_EVT_SUBCODE (0x0a)
/**
* @note The init function is `bt_stack_enableInternalDbgVsCmd(true)`
*/
#define ESP_BT_VS_LMP_TX_CFM_EVT_SUBCODE (0x0b)
/**
* @note The init function is `bt_stack_enableInternalDbgVsCmd(true)`
*/
#define ESP_BT_VS_LMP_DBG_ENTERED_EVT_SUBCODE (0x0c)
#ifdef __cplusplus
}
#endif

View File

@@ -185,6 +185,26 @@ config BT_CTRL_BR_EDR_DTM_EN
help
Enable BR/EDR controller direct test mode
config BT_CTRL_BR_EDR_SAM_EN
bool "Enable BR/EDR controller Slot Availability Mask (READ DOCS FIRST) (EXPERIMENTAL)"
depends on IDF_EXPERIMENTAL_FEATURES
default n
help
Enable BR/EDR controller Slot Availability Mask(SAM).
Note: SAM functionality is partially implemented by software and only works on ACL air time scheduling.
config BT_CTRL_BR_EDR_MWS_EN
bool "Enable BR/EDR controller Mobile Wireless Standards coexistence (READ DOCS FIRST) (EXPERIMENTAL)"
depends on BT_CTRL_BR_EDR_SAM_EN
default n
help
Enable BR/EDR controller Mobile Wireless Standards(MWS) coexistence.
Note: MWS coexistence functionality is only partially implemented. Supported HCI Commands:
- HCI_Set_External_Frame_Configuration
- HCI_Set_MWS_PATTERN_Configuration
config BT_CTRL_BR_EDR_TX_CCA_ENABLED
bool "Enable BR/EDR TX CCA feature"
default n

View File

@@ -77,6 +77,18 @@ extern "C" {
#define UC_BR_EDR_DTM_EN 0
#endif
#if defined(CONFIG_BT_CTRL_BR_EDR_SAM_EN) && CONFIG_BT_CTRL_BR_EDR_SAM_EN
#define UC_BR_EDR_SAM_EN 1
#else
#define UC_BR_EDR_SAM_EN 0
#endif
#if defined(CONFIG_BT_CTRL_BR_EDR_MWS_EN) && CONFIG_BT_CTRL_BR_EDR_MWS_EN
#define UC_BR_EDR_MWS_EN 1
#else
#define UC_BR_EDR_MWS_EN 0
#endif
#if defined(CONFIG_BT_CTRL_BR_EDR_TX_CCA_ENABLED)
#define UC_BR_EDR_TX_CCA_EN (CONFIG_BT_CTRL_BR_EDR_TX_CCA_ENABLED)
#else

View File

@@ -123,6 +123,8 @@ extern int bredr_ctrl_feat_dtm_en(void);
extern int bredr_ctrl_feat_test_en(void);
extern int bredr_ctrl_feat_lk_store_en(void);
extern int bredr_ctrl_feat_coex_en(void);
extern int bredr_ctrl_feat_sam_en(void);
extern int bredr_ctrl_feat_mws_en(void);
extern const char *co_orca_get_git_version_str(void);
extern void r_orca_log_set_printf(bredr_log_printf_fn printf_fn);
@@ -682,6 +684,22 @@ static int bredr_ctrl_setup_callback(void)
}
#endif /* UC_BR_EDR_DTM_EN */
#if UC_BR_EDR_SAM_EN
ret = bredr_ctrl_feat_sam_en();
if (ret != 0) {
ESP_LOGE(BREDR_LOG_TAG, "bredr_ctrl_feat_sam_en failed, ret:%d", ret);
break;
}
#endif /* UC_BR_EDR_SAM_EN */
#if UC_BR_EDR_MWS_EN
ret = bredr_ctrl_feat_mws_en();
if (ret != 0) {
ESP_LOGE(BREDR_LOG_TAG, "bredr_ctrl_feat_mws_en failed, ret:%d", ret);
break;
}
#endif /* UC_BR_EDR_MWS_EN */
#if CONFIG_SW_COEXIST_ENABLE
ret = bredr_ctrl_feat_coex_en();
if (ret != 0) {

View File

@@ -346,7 +346,6 @@ The following HCI VS debugging commands are implemented in Bluetooth Low Energy
.. doxygendefine:: ESP_BT_VS_WR_DM1_ENABLE_OCF
.. doxygendefine:: ESP_BT_VS_CLK_UPDATE_OCF
.. doxygendefine:: ESP_BT_VS_PCA_OCF
.. doxygendefine:: ESP_BT_VS_SET_AFH_OCF
.. doxygendefine:: ESP_BT_VS_SET_EVT_MASK_OCF
.. doxygendefine:: ESP_BT_VS_SET_AFH_REPORTING_MODE_OCF
@@ -355,6 +354,11 @@ The following HCI VS debugging commands are implemented in Bluetooth Low Energy
.. doxygendefine:: ESP_BT_VS_DTM_RX_TEST_START_OCF
.. doxygendefine:: ESP_BT_VS_DTM_TX_TEST_END_OCF
.. doxygendefine:: ESP_BT_VS_DTM_RX_TEST_END_OCF
.. doxygendefine:: ESP_BT_VS_PCA_OCF
.. doxygendefine:: ESP_BT_VS_DISCARD_PING_OCF
.. doxygendefine:: ESP_BT_VS_LMP_DBG_ENABLE_OCF
.. doxygendefine:: ESP_BT_VS_SEND_LMP_OCF
.. doxygendefine:: ESP_BT_VS_LMP_DBG_SAVE_OCF
HCI VS Events for Espressif's Internal-Use Debugging
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -378,3 +382,6 @@ The following HCI VS debugging commands are implemented in Bluetooth Low Energy
.. doxygendefine:: ESP_BT_VS_AFH_CHG_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_CH_CLASSIFICATION_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_CH_CLASSIFICATION_REPORTING_MODE_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_LMP_RECEIVED_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_LMP_TX_CFM_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_LMP_DBG_ENTERED_EVT_SUBCODE

View File

@@ -346,7 +346,6 @@
.. doxygendefine:: ESP_BT_VS_WR_DM1_ENABLE_OCF
.. doxygendefine:: ESP_BT_VS_CLK_UPDATE_OCF
.. doxygendefine:: ESP_BT_VS_PCA_OCF
.. doxygendefine:: ESP_BT_VS_SET_AFH_OCF
.. doxygendefine:: ESP_BT_VS_SET_EVT_MASK_OCF
.. doxygendefine:: ESP_BT_VS_SET_AFH_REPORTING_MODE_OCF
@@ -355,6 +354,11 @@
.. doxygendefine:: ESP_BT_VS_DTM_RX_TEST_START_OCF
.. doxygendefine:: ESP_BT_VS_DTM_TX_TEST_END_OCF
.. doxygendefine:: ESP_BT_VS_DTM_RX_TEST_END_OCF
.. doxygendefine:: ESP_BT_VS_PCA_OCF
.. doxygendefine:: ESP_BT_VS_DISCARD_PING_OCF
.. doxygendefine:: ESP_BT_VS_LMP_DBG_ENABLE_OCF
.. doxygendefine:: ESP_BT_VS_SEND_LMP_OCF
.. doxygendefine:: ESP_BT_VS_LMP_DBG_SAVE_OCF
乐鑫内部调试 HCI 事件
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -378,3 +382,6 @@
.. doxygendefine:: ESP_BT_VS_AFH_CHG_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_CH_CLASSIFICATION_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_CH_CLASSIFICATION_REPORTING_MODE_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_LMP_RECEIVED_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_LMP_TX_CFM_EVT_SUBCODE
.. doxygendefine:: ESP_BT_VS_LMP_DBG_ENTERED_EVT_SUBCODE