fix(bt): Update bt lib for ESP32(a2a7457)

- Fixed assert in ke_mem.c at line 409 when controller reset
- Added config for BLE instant passed workaround
- Fixed connection can't be established when initiating and advertising coexist


(cherry picked from commit 2b28133ace)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
This commit is contained in:
Chen Jian Hua
2024-10-31 15:33:34 +08:00
committed by chenjianhua
parent f7154edfd8
commit f36d81a62c
3 changed files with 36 additions and 2 deletions

View File

@@ -440,6 +440,23 @@ config BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD
If you set `BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it If you set `BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
may cause adv packets lost more. may cause adv packets lost more.
menu "BLE disconnect when instant passed"
config BTDM_BLE_LLCP_CONN_UPDATE
bool "BLE ACL connection update procedure"
depends on (BTDM_CTRL_MODE_BLE_ONLY || BTDM_CTRL_MODE_BTDM)
default n
help
If this option is enabled, Controller will terminate the connection
when instant passed during connection update procedure.
config BTDM_BLE_LLCP_CHAN_MAP_UPDATE
bool "BLE ACL channel map update procedure"
depends on (BTDM_CTRL_MODE_BLE_ONLY || BTDM_CTRL_MODE_BTDM)
default n
help
If this option is enabled, Controller will terminate the connection
when instant passed in channel map update procedure.
endmenu
config BTDM_RESERVE_DRAM config BTDM_RESERVE_DRAM
hex hex

View File

@@ -55,7 +55,7 @@ extern "C" {
* *
* @note Please do not modify this value. * @note Please do not modify this value.
*/ */
#define ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL 0x20240722 #define ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL 0x20240926
/** /**
* @brief Bluetooth Controller mode * @brief Bluetooth Controller mode
@@ -178,6 +178,21 @@ the adv packet will be discarded until the memory is restored. */
#else #else
#define BTDM_CTRL_SCAN_BACKOFF_UPPERLIMITMAX 0 #define BTDM_CTRL_SCAN_BACKOFF_UPPERLIMITMAX 0
#endif #endif
#ifdef CONFIG_BTDM_BLE_LLCP_CONN_UPDATE
#define BTDM_BLE_LLCP_CONN_UPDATE (1<<0)
#else
#define BTDM_BLE_LLCP_CONN_UPDATE (0<<0)
#endif
#ifdef CONFIG_BTDM_BLE_LLCP_CHAN_MAP_UPDATE
#define BTDM_BLE_LLCP_CHAN_MAP_UPDATE (1<<1)
#else
#define BTDM_BLE_LLCP_CHAN_MAP_UPDATE (0<<1)
#endif
#define BTDM_BLE_LLCP_DISC_FLAG (BTDM_BLE_LLCP_CONN_UPDATE | BTDM_BLE_LLCP_CHAN_MAP_UPDATE)
/** /**
* @brief Default Bluetooth Controller configuration * @brief Default Bluetooth Controller configuration
*/ */
@@ -206,6 +221,7 @@ the adv packet will be discarded until the memory is restored. */
.hli = BTDM_CTRL_HLI, \ .hli = BTDM_CTRL_HLI, \
.dup_list_refresh_period = SCAN_DUPL_CACHE_REFRESH_PERIOD, \ .dup_list_refresh_period = SCAN_DUPL_CACHE_REFRESH_PERIOD, \
.ble_scan_backoff = BTDM_CTRL_SCAN_BACKOFF_UPPERLIMITMAX, \ .ble_scan_backoff = BTDM_CTRL_SCAN_BACKOFF_UPPERLIMITMAX, \
.ble_llcp_disc_flag = BTDM_BLE_LLCP_DISC_FLAG, \
.magic = ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL, \ .magic = ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL, \
} }
@@ -258,6 +274,7 @@ typedef struct {
bool hli; /*!< True if using high level interrupt; false otherwise. Configurable in menuconfig */ bool hli; /*!< True if using high level interrupt; false otherwise. Configurable in menuconfig */
uint16_t dup_list_refresh_period; /*!< Scan duplicate filtering list refresh period in seconds. Configurable in menuconfig */ uint16_t dup_list_refresh_period; /*!< Scan duplicate filtering list refresh period in seconds. Configurable in menuconfig */
bool ble_scan_backoff; /*!< True if BLE scan backoff is enabled; false otherwise. Configurable in menuconfig */ bool ble_scan_backoff; /*!< True if BLE scan backoff is enabled; false otherwise. Configurable in menuconfig */
uint8_t ble_llcp_disc_flag; /*!< BLE disconnect flag when instant passed. Configurable in menuconfig */
uint32_t magic; /*!< Magic number */ uint32_t magic; /*!< Magic number */
} esp_bt_controller_config_t; } esp_bt_controller_config_t;