Merge branch 'change/ble_update_lib_20260113_v5.5' into 'release/v5.5'

change(ble): [AUTO_MR] 20260113 - Update ESP BLE Controller Lib (v5.5)

See merge request espressif/esp-idf!45193
This commit is contained in:
Rahul Tank
2026-01-22 08:25:11 +05:30
14 changed files with 167 additions and 13 deletions
+24 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -27,6 +27,11 @@ void extAdv_stack_deinitEnv(void);
int extAdv_stack_enable(void);
void extAdv_stack_disable(void);
int scan_stack_initEnv(void);
void scan_stack_deinitEnv(void);
int scan_stack_enable(void);
void scan_stack_disable(void);
int sync_stack_initEnv(void);
void sync_stack_deinitEnv(void);
int sync_stack_enable(void);
@@ -84,6 +89,12 @@ void winWiden_stack_enableSetConstPeerScaVsCmd(bool en);
void adv_stack_enableScanReqRxdVsEvent(bool en);
void conn_stack_enableChanMapUpdCompVsEvent(bool en);
void sleep_stack_enableWakeupVsEvent(bool en);
#if DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER
void scan_stack_enableSetScanADIOnlyFilterVsCmd(bool en);
#endif // DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER
#if DEFAULT_BT_ADV_SEND_CONSTANT_DID
void extAdv_stack_setExtAdvConstantDidVsCmd(bool en);
#endif // DEFAULT_BT_ADV_SEND_CONSTANT_DID
#endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED)
#if CONFIG_BT_LE_RXBUF_OPT_ENABLED
extern void mmgmt_enableRxbufOptFeature(void);
@@ -136,6 +147,11 @@ int ble_stack_initEnv(void)
return rc;
}
rc = scan_stack_initEnv();
if (rc) {
return rc;
}
rc = sync_stack_initEnv();
if (rc) {
return rc;
@@ -210,6 +226,7 @@ void ble_stack_deinitEnv(void)
#endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_deinitEnv();
scan_stack_deinitEnv();
extAdv_stack_deinitEnv();
adv_stack_deinitEnv();
base_stack_deinitEnv();
@@ -234,6 +251,11 @@ int ble_stack_enable(void)
return rc;
}
rc = scan_stack_enable();
if (rc) {
return rc;
}
rc = sync_stack_enable();
if (rc) {
return rc;
@@ -302,6 +324,7 @@ void ble_stack_disable(void)
dtm_stack_disable();
#endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_disable();
scan_stack_disable();
extAdv_stack_disable();
adv_stack_disable();
base_stack_disable();
+13 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -50,6 +50,16 @@ extern "C" {
#else
#define DEFAULT_BT_LE_PAWR_SUPPORTED (0)
#endif // CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES
#if CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (1)
#else
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0)
#endif // CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID
#if CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (1)
#else
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif // CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
#else
#if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY
@@ -155,6 +165,8 @@ extern "C" {
#define DEFAULT_BT_LE_HCI_UART_CTS_PIN (-1)
#define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1)
#endif
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0)
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
+35 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -27,6 +27,16 @@ void extAdv_stack_deinitEnv(void);
int extAdv_stack_enable(void);
void extAdv_stack_disable(void);
int scan_stack_initEnv(void);
void scan_stack_deinitEnv(void);
int scan_stack_enable(void);
void scan_stack_disable(void);
int scan_stack_initEnv(void);
void scan_stack_deinitEnv(void);
int scan_stack_enable(void);
void scan_stack_disable(void);
int sync_stack_initEnv(void);
void sync_stack_deinitEnv(void);
int sync_stack_enable(void);
@@ -84,6 +94,12 @@ void winWiden_stack_enableSetConstPeerScaVsCmd(bool en);
void adv_stack_enableScanReqRxdVsEvent(bool en);
void conn_stack_enableChanMapUpdCompVsEvent(bool en);
void sleep_stack_enableWakeupVsEvent(bool en);
#if DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER
void scan_stack_enableSetScanADIOnlyFilterVsCmd(bool en);
#endif // DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER
#if DEFAULT_BT_ADV_SEND_CONSTANT_DID
void extAdv_stack_setExtAdvConstantDidVsCmd(bool en);
#endif // DEFAULT_BT_ADV_SEND_CONSTANT_DID
#endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED)
#if CONFIG_BT_LE_RXBUF_OPT_ENABLED
extern void mmgmt_enableRxbufOptFeature(void);
@@ -104,6 +120,12 @@ void ble_stack_enableVsCmds(bool en)
log_stack_enableLogsRelatedVsCmd(en);
hci_stack_enableSetVsEvtMaskVsCmd(en);
winWiden_stack_enableSetConstPeerScaVsCmd(en);
#if DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER
scan_stack_enableSetScanADIOnlyFilterVsCmd(en);
#endif // DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER
#if DEFAULT_BT_ADV_SEND_CONSTANT_DID
extAdv_stack_setExtAdvConstantDidVsCmd(en);
#endif // DEFAULT_BT_ADV_SEND_CONSTANT_DID
}
void ble_stack_enableVsEvents(bool en)
@@ -136,6 +158,11 @@ int ble_stack_initEnv(void)
return rc;
}
rc = scan_stack_initEnv();
if (rc) {
return rc;
}
rc = sync_stack_initEnv();
if (rc) {
return rc;
@@ -210,6 +237,7 @@ void ble_stack_deinitEnv(void)
#endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_deinitEnv();
scan_stack_deinitEnv();
extAdv_stack_deinitEnv();
adv_stack_deinitEnv();
base_stack_deinitEnv();
@@ -234,6 +262,11 @@ int ble_stack_enable(void)
return rc;
}
rc = scan_stack_enable();
if (rc) {
return rc;
}
rc = sync_stack_enable();
if (rc) {
return rc;
@@ -302,6 +335,7 @@ void ble_stack_disable(void)
dtm_stack_disable();
#endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_disable();
scan_stack_disable();
extAdv_stack_disable();
adv_stack_disable();
base_stack_disable();
+13 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -51,6 +51,16 @@ extern "C" {
#else
#define DEFAULT_BT_LE_PAWR_SUPPORTED (0)
#endif // CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES
#if CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (1)
#else
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0)
#endif // CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID
#if CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (1)
#else
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif // CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
#else
#if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY
@@ -158,6 +168,8 @@ extern "C" {
#endif
#define DEFAULT_BT_LE_SUBRATE_ENABLED 0
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0)
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
+22 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -27,6 +27,11 @@ void extAdv_stack_deinitEnv(void);
int extAdv_stack_enable(void);
void extAdv_stack_disable(void);
int scan_stack_initEnv(void);
void scan_stack_deinitEnv(void);
int scan_stack_enable(void);
void scan_stack_disable(void);
int sync_stack_initEnv(void);
void sync_stack_deinitEnv(void);
int sync_stack_enable(void);
@@ -84,6 +89,10 @@ void winWiden_stack_enableSetConstPeerScaVsCmd(bool en);
void adv_stack_enableScanReqRxdVsEvent(bool en);
void conn_stack_enableChanMapUpdCompVsEvent(bool en);
void sleep_stack_enableWakeupVsEvent(bool en);
#if DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER
void scan_stack_enableSetScanADIOnlyFilterVsCmd(bool en);
#endif // DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER
void extAdv_stack_setExtAdvConstantDidVsCmd(bool en);
#endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED)
#if CONFIG_BT_LE_RXBUF_OPT_ENABLED
extern void mmgmt_enableRxbufOptFeature(void);
@@ -136,6 +145,11 @@ int ble_stack_initEnv(void)
return rc;
}
rc = scan_stack_initEnv();
if (rc) {
return rc;
}
rc = sync_stack_initEnv();
if (rc) {
return rc;
@@ -210,6 +224,7 @@ void ble_stack_deinitEnv(void)
#endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_deinitEnv();
scan_stack_deinitEnv();
extAdv_stack_deinitEnv();
adv_stack_deinitEnv();
base_stack_deinitEnv();
@@ -234,6 +249,11 @@ int ble_stack_enable(void)
return rc;
}
rc = scan_stack_enable();
if (rc) {
return rc;
}
rc = sync_stack_enable();
if (rc) {
return rc;
@@ -302,6 +322,7 @@ void ble_stack_disable(void)
dtm_stack_disable();
#endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_disable();
scan_stack_disable();
extAdv_stack_disable();
adv_stack_disable();
base_stack_disable();
+13 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -50,6 +50,16 @@ extern "C" {
#else
#define DEFAULT_BT_LE_PAWR_SUPPORTED (0)
#endif // CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES
#if CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (1)
#else
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0)
#endif // CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID
#if CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (1)
#else
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif // CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
#else
#if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY
@@ -155,6 +165,8 @@ extern "C" {
#define DEFAULT_BT_LE_HCI_UART_CTS_PIN (-1)
#define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1)
#endif
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0)
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
+18
View File
@@ -1619,6 +1619,24 @@ menu "Vendor / Optimization"
depends on BT_NIMBLE_ENABLED
help
This enable BLE high duty advertising interval feature
config BT_NIMBLE_ADV_SEND_CONSTANT_DID
bool "Enable BLE Ext Adv to Send with Specific DID"
depends on SOC_ESP_NIMBLE_CONTROLLER && BT_NIMBLE_50_FEATURE_SUPPORT && !(IDF_TARGET_ESP32C2)
select BT_NIMBLE_VS_SUPPORT
help
This enable vendor-specific APIs to send specific DID for different advertising data in extended
advertising.
config BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
bool "Enable BLE Ext Scan to Receive Packet with Specific ADI"
depends on SOC_ESP_NIMBLE_CONTROLLER && BT_NIMBLE_50_FEATURE_SUPPORT && !(IDF_TARGET_ESP32C2)
select BT_NIMBLE_VS_SUPPORT
help
This enables vendor-specific APIs to only receive specific groups of ADIs, and implements DIDs
duplicate filtering for extended scanning. Enabling this can reduce the unnecessary reception of
secondary channel PDUs carrying non-targeted ADIs.
endmenu #Vendor
menu "Helper Utils"
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -2356,4 +2356,20 @@
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ADV_SEND_CONSTANT_DID
#ifdef CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID
#define MYNEWT_VAL_BLE_ADV_SEND_CONSTANT_DID (CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID)
#else
#define MYNEWT_VAL_BLE_ADV_SEND_CONSTANT_DID (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_SCAN_ALLOW_ENH_ADI_FILTER
#ifdef CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
#define MYNEWT_VAL_BLE_SCAN_ALLOW_ENH_ADI_FILTER (CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER)
#else
#define MYNEWT_VAL_BLE_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif
#endif
#endif
@@ -159,7 +159,7 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type
*/
esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
#define CONFIG_VERSION 0x20251125
#define CONFIG_VERSION 0x20251211
#define CONFIG_MAGIC 0x5A5AA5A5
/**
@@ -237,6 +237,7 @@ typedef struct {
uint8_t priority_level_cfg; /*!< The option for priority level configuration */
uint8_t slv_fst_rx_lat_en; /*!< The option for enabling slave fast PDU reception during latency. */
uint8_t dl_itvl_phy_sync_en; /*!< The option for automatically initiate the data length update when phy update or connect interval update. */
uint8_t scan_allow_adi_filter; /*!< The option for ext scan to allow PDU with specific adi. */
uint32_t config_magic; /*!< Magic number for configuration validation */
} esp_bt_controller_config_t;
@@ -301,6 +302,7 @@ typedef struct {
.priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \
.slv_fst_rx_lat_en = DEFAULT_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN, \
.dl_itvl_phy_sync_en = DEFAULT_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN, \
.scan_allow_adi_filter = DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER, \
.config_magic = CONFIG_MAGIC, \
}
@@ -156,7 +156,7 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type
*/
esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
#define CONFIG_VERSION 0x20251125
#define CONFIG_VERSION 0x20251211
#define CONFIG_MAGIC 0x5A5AA5A5
/**
@@ -237,6 +237,7 @@ typedef struct {
uint8_t priority_level_cfg; /*!< The option for priority level configuration */
uint8_t slv_fst_rx_lat_en; /*!< The option for enabling slave fast PDU reception during latency. */
uint8_t dl_itvl_phy_sync_en; /*!< The option for automatically initiate the data length update when phy update or connect interval update. */
uint8_t scan_allow_adi_filter; /*!< The option for ext scan to allow PDU with specific adi. */
uint32_t config_magic; /*!< Magic number for configuration validation */
} esp_bt_controller_config_t;
@@ -304,6 +305,7 @@ typedef struct {
.priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \
.slv_fst_rx_lat_en = DEFAULT_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN, \
.dl_itvl_phy_sync_en = DEFAULT_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN, \
.scan_allow_adi_filter = DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER, \
.config_magic = CONFIG_MAGIC, \
}
#elif CONFIG_IDF_TARGET_ESP32C61
@@ -161,7 +161,7 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type
*/
esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
#define CONFIG_VERSION 0x20251125
#define CONFIG_VERSION 0x20251211
#define CONFIG_MAGIC 0x5A5AA5A5
/**
@@ -239,6 +239,7 @@ typedef struct {
uint8_t priority_level_cfg; /*!< The option for priority level configuration */
uint8_t slv_fst_rx_lat_en; /*!< The option for enabling slave fast PDU reception during latency. */
uint8_t dl_itvl_phy_sync_en; /*!< The option for automatically initiate the data length update when phy update or connect interval update. */
uint8_t scan_allow_adi_filter; /*!< The option for ext scan to allow PDU with specific adi. */
uint32_t config_magic; /*!< Configuration magic value */
} esp_bt_controller_config_t;
@@ -304,6 +305,7 @@ typedef struct {
.priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \
.slv_fst_rx_lat_en = DEFAULT_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN, \
.dl_itvl_phy_sync_en = DEFAULT_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN, \
.scan_allow_adi_filter = DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER, \
.config_magic = CONFIG_MAGIC, \
}