From e6f97003f82946a3b0e3989cf6f6b3a3fb94917a Mon Sep 17 00:00:00 2001 From: Zhou Xiao Date: Fri, 13 Jun 2025 20:13:49 +0800 Subject: [PATCH 1/7] change(ble): [AUTO_MR] Update lib_esp32h2 to b8770ab2 --- components/bt/controller/lib_esp32h2/esp32h2-bt-lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/bt/controller/lib_esp32h2/esp32h2-bt-lib b/components/bt/controller/lib_esp32h2/esp32h2-bt-lib index 82cbc1dd93..7ac752b47c 160000 --- a/components/bt/controller/lib_esp32h2/esp32h2-bt-lib +++ b/components/bt/controller/lib_esp32h2/esp32h2-bt-lib @@ -1 +1 @@ -Subproject commit 82cbc1dd9345010e7e6d78f8a7b022a7ae669e87 +Subproject commit 7ac752b47c70f43cf08751fec85654a68ae4fc83 From a4482c6fcf0a52512cf6c409789deec2d6273ec1 Mon Sep 17 00:00:00 2001 From: Zhou Xiao Date: Fri, 13 Jun 2025 20:13:49 +0800 Subject: [PATCH 2/7] change(ble): [AUTO_MR] Update lib_esp32c2 to e865b4f9 --- components/bt/controller/lib_esp32c2/esp32c2-bt-lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/bt/controller/lib_esp32c2/esp32c2-bt-lib b/components/bt/controller/lib_esp32c2/esp32c2-bt-lib index 3ad0070589..64ba4e23f3 160000 --- a/components/bt/controller/lib_esp32c2/esp32c2-bt-lib +++ b/components/bt/controller/lib_esp32c2/esp32c2-bt-lib @@ -1 +1 @@ -Subproject commit 3ad007058995a523c2cd212bcef4c6937533871e +Subproject commit 64ba4e23f3bb2e8ecf26f7901b0657a950682d3d From 16a59f72604b2d99d813de449f25b7e6f5fda266 Mon Sep 17 00:00:00 2001 From: Zhou Xiao Date: Fri, 13 Jun 2025 20:13:49 +0800 Subject: [PATCH 3/7] change(ble): [AUTO_MR] Update lib_esp32c6 to b8770ab2 --- components/bt/controller/lib_esp32c6/esp32c6-bt-lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/bt/controller/lib_esp32c6/esp32c6-bt-lib b/components/bt/controller/lib_esp32c6/esp32c6-bt-lib index 250e75199e..47fde85c47 160000 --- a/components/bt/controller/lib_esp32c6/esp32c6-bt-lib +++ b/components/bt/controller/lib_esp32c6/esp32c6-bt-lib @@ -1 +1 @@ -Subproject commit 250e75199e8772a9ce44c53e7747063107d36155 +Subproject commit 47fde85c4789cc5e7487d5e1244f9012c3fadf2a From 906b2738d6b728b1b3f7300c82c70f2f7c872525 Mon Sep 17 00:00:00 2001 From: cjin Date: Tue, 24 Jun 2025 12:31:23 +0800 Subject: [PATCH 4/7] change(ble): update lib_esp32h2 to ea6c58c7 --- components/bt/controller/lib_esp32h2/esp32h2-bt-lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/bt/controller/lib_esp32h2/esp32h2-bt-lib b/components/bt/controller/lib_esp32h2/esp32h2-bt-lib index 7ac752b47c..e90088b356 160000 --- a/components/bt/controller/lib_esp32h2/esp32h2-bt-lib +++ b/components/bt/controller/lib_esp32h2/esp32h2-bt-lib @@ -1 +1 @@ -Subproject commit 7ac752b47c70f43cf08751fec85654a68ae4fc83 +Subproject commit e90088b35639ee9b41ab67fcd5b8dab5395cfacb From 2dda051dedfe123854f3902a72878f0c80d300fa Mon Sep 17 00:00:00 2001 From: cjin Date: Tue, 24 Jun 2025 12:31:47 +0800 Subject: [PATCH 5/7] change(ble): update lib_esp32c6 to ea6c58c7 --- components/bt/controller/lib_esp32c6/esp32c6-bt-lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/bt/controller/lib_esp32c6/esp32c6-bt-lib b/components/bt/controller/lib_esp32c6/esp32c6-bt-lib index 47fde85c47..fa4b7f913d 160000 --- a/components/bt/controller/lib_esp32c6/esp32c6-bt-lib +++ b/components/bt/controller/lib_esp32c6/esp32c6-bt-lib @@ -1 +1 @@ -Subproject commit 47fde85c4789cc5e7487d5e1244f9012c3fadf2a +Subproject commit fa4b7f913d6b65ea30b8d06eb1e62dc1b86b7843 From a5e5f636ac66112767d377cc1019d51f51ceb4cb Mon Sep 17 00:00:00 2001 From: cjin Date: Mon, 16 Jun 2025 10:38:39 +0800 Subject: [PATCH 6/7] feat(ble): add sm count reserve cnt setting on ESP32-C6 --- components/bt/controller/esp32c6/Kconfig.in | 31 +++++++++++++++++++ components/bt/controller/esp32c6/esp_bt_cfg.h | 3 ++ .../bt/include/esp32c6/include/esp_bt.h | 8 ++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/components/bt/controller/esp32c6/Kconfig.in b/components/bt/controller/esp32c6/Kconfig.in index 949349aaaf..8f3c33630b 100644 --- a/components/bt/controller/esp32c6/Kconfig.in +++ b/components/bt/controller/esp32c6/Kconfig.in @@ -846,3 +846,34 @@ config BT_LE_CTRL_FAST_CONN_DATA_TX_EN help If this option is enabled, The Controller will continue to Send an empty PDU after sending valid connection data within an interval. + +menu "Reserved Memory Config" + config BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT + int "The value of reserved EXT ADV memory count at initialization" + range 0 4 + default 2 + help + This value sets the number the Controller will allocate for extended advertisement + instances at initialization process. If more extended advertisement instances are + enabled, those memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at advertising start process and possible advertising start failure + due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum + extended advertisement instances and the BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT. + + + config BT_LE_CONN_RESERVED_MEMORY_COUNT + int "The value of reserved CONN memory count at initialization" + range 0 70 + default 2 + help + This value sets the number the Controller will allocate for connection instances + at the initialization process. If more connection instances are enabled, those + memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at connection establishment process and possible connection + establishment failure due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum + connection instances and the BT_LE_CONN_RESERVED_MEMORY_COUNT. +endmenu diff --git a/components/bt/controller/esp32c6/esp_bt_cfg.h b/components/bt/controller/esp32c6/esp_bt_cfg.h index f22c4c75be..6def839e56 100644 --- a/components/bt/controller/esp32c6/esp_bt_cfg.h +++ b/components/bt/controller/esp32c6/esp_bt_cfg.h @@ -283,6 +283,9 @@ extern "C" { #define BLE_LL_TX_PWR_DBM_N (CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF) +#define BLE_LL_ADV_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES, CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT) +#define BLE_LL_CONN_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_CONNECTIONS, CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT) + #define RUN_BQB_TEST (0) #define RUN_QA_TEST (0) #define NIMBLE_DISABLE_SCAN_BACKOFF (0) diff --git a/components/bt/include/esp32c6/include/esp_bt.h b/components/bt/include/esp32c6/include/esp_bt.h index 9947d755cd..960defc144 100644 --- a/components/bt/include/esp32c6/include/esp_bt.h +++ b/components/bt/include/esp32c6/include/esp_bt.h @@ -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 0x20250526 +#define CONFIG_VERSION 0x20250606 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -230,6 +230,8 @@ typedef struct { - 0 - Disable - 1 - Enable (default) */ int8_t ch39_txpwr; /*!< BLE transmit power (in dBm) used for BLE advertising on channel 39. */ + uint8_t adv_rsv_cnt; /*!< BLE adv state machine reserve count number */ + uint8_t conn_rsv_cnt; /*!< BLE conn state machine reserve count number */ uint32_t config_magic; /*!< Magic number for configuration validation */ } esp_bt_controller_config_t; @@ -291,6 +293,8 @@ typedef struct { .skip_unnecessary_checks_en = 0, \ .fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \ .ch39_txpwr = BLE_LL_TX_PWR_DBM_N, \ + .adv_rsv_cnt = BLE_LL_ADV_SM_RESERVE_CNT_N, \ + .conn_rsv_cnt = BLE_LL_CONN_SM_RESERVE_CNT_N, \ .config_magic = CONFIG_MAGIC, \ } #elif CONFIG_IDF_TARGET_ESP32C61 @@ -350,6 +354,8 @@ typedef struct { .skip_unnecessary_checks_en = 0, \ .fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \ .ch39_txpwr = BLE_LL_TX_PWR_DBM_N, \ + .adv_rsv_cnt = BLE_LL_ADV_SM_RESERVE_CNT_N, \ + .conn_rsv_cnt = BLE_LL_CONN_SM_RESERVE_CNT_N, \ .config_magic = CONFIG_MAGIC, \ } #endif From 8e50f15db3ac2db853d6d47b1a1db82bec0a2feb Mon Sep 17 00:00:00 2001 From: cjin Date: Mon, 16 Jun 2025 10:38:55 +0800 Subject: [PATCH 7/7] feat(ble): add sm count reserve cnt setting on ESP32-H2 --- components/bt/controller/esp32h2/Kconfig.in | 31 +++++++++++++++++++ components/bt/controller/esp32h2/esp_bt_cfg.h | 3 ++ .../bt/include/esp32h2/include/esp_bt.h | 6 +++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/components/bt/controller/esp32h2/Kconfig.in b/components/bt/controller/esp32h2/Kconfig.in index 14330540e0..2f914a1075 100644 --- a/components/bt/controller/esp32h2/Kconfig.in +++ b/components/bt/controller/esp32h2/Kconfig.in @@ -850,3 +850,34 @@ config BT_LE_CTRL_FAST_CONN_DATA_TX_EN help If this option is enabled, The Controller will continue to Send an empty PDU after sending valid connection data within an interval. + +menu "Reserved Memory Config" + config BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT + int "The value of reserved EXT ADV memory count at initialization" + range 0 4 + default 2 + help + This value sets the number the Controller will allocate for extended advertisement + instances at initialization process. If more extended advertisement instances are + enabled, those memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at advertising start process and possible advertising start failure + due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum + extended advertisement instances and the BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT. + + + config BT_LE_CONN_RESERVED_MEMORY_COUNT + int "The value of reserved CONN memory count at initialization" + range 0 70 + default 2 + help + This value sets the number the Controller will allocate for connection instances + at the initialization process. If more connection instances are enabled, those + memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at connection establishment process and possible connection + establishment failure due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum connection instances and + the BT_LE_CONN_RESERVED_MEMORY_COUNT. +endmenu diff --git a/components/bt/controller/esp32h2/esp_bt_cfg.h b/components/bt/controller/esp32h2/esp_bt_cfg.h index 48a845a3fa..01f9dc6182 100644 --- a/components/bt/controller/esp32h2/esp_bt_cfg.h +++ b/components/bt/controller/esp32h2/esp_bt_cfg.h @@ -280,6 +280,9 @@ extern "C" { #define BLE_LL_TX_PWR_DBM_N (CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF) +#define BLE_LL_ADV_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES, CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT) +#define BLE_LL_CONN_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_CONNECTIONS, CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT) + #define RUN_BQB_TEST (0) #define RUN_QA_TEST (0) #define NIMBLE_DISABLE_SCAN_BACKOFF (0) diff --git a/components/bt/include/esp32h2/include/esp_bt.h b/components/bt/include/esp32h2/include/esp_bt.h index 0aafa744bd..b33f8b7359 100644 --- a/components/bt/include/esp32h2/include/esp_bt.h +++ b/components/bt/include/esp32h2/include/esp_bt.h @@ -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 0x20250526 +#define CONFIG_VERSION 0x20250606 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -234,6 +234,8 @@ typedef struct { - 0 - Disable - 1 - Enable (default) */ int8_t ch39_txpwr; /*!< BLE transmit power (in dBm) used for BLE advertising on channel 39. */ + uint8_t adv_rsv_cnt; /*!< BLE adv state machine reserve count number */ + uint8_t conn_rsv_cnt; /*!< BLE conn state machine reserve count number */ uint32_t config_magic; /*!< Configuration magic value */ } esp_bt_controller_config_t; @@ -294,6 +296,8 @@ typedef struct { .skip_unnecessary_checks_en = 0, \ .fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \ .ch39_txpwr = BLE_LL_TX_PWR_DBM_N, \ + .adv_rsv_cnt = BLE_LL_ADV_SM_RESERVE_CNT_N, \ + .conn_rsv_cnt = BLE_LL_CONN_SM_RESERVE_CNT_N, \ .config_magic = CONFIG_MAGIC, \ }