diff --git a/components/bt/controller/esp32c5/Kconfig.in b/components/bt/controller/esp32c5/Kconfig.in index 2e6db9fdf6..2982b6da8e 100644 --- a/components/bt/controller/esp32c5/Kconfig.in +++ b/components/bt/controller/esp32c5/Kconfig.in @@ -812,3 +812,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/esp32c5/esp_bt_cfg.h b/components/bt/controller/esp32c5/esp_bt_cfg.h index 48a845a3fa..01f9dc6182 100644 --- a/components/bt/controller/esp32c5/esp_bt_cfg.h +++ b/components/bt/controller/esp32c5/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/esp32c5/include/esp_bt.h b/components/bt/include/esp32c5/include/esp_bt.h index 91b1da306a..ce490db77a 100644 --- a/components/bt/include/esp32c5/include/esp_bt.h +++ b/components/bt/include/esp32c5/include/esp_bt.h @@ -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 0x20250526 +#define CONFIG_VERSION 0x20250606 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -232,6 +232,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, \ }