mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 19:24:33 +02:00
Merge branch 'change/ble_update_lib_20250516_v5.3' into 'release/v5.3'
change(ble): [AUTO_MR] 20250516 - Update ESP BLE Controller Lib (v5.3) See merge request espressif/esp-idf!39236
This commit is contained in:
@@ -119,6 +119,11 @@ struct ext_funcs_t {
|
|||||||
|
|
||||||
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
||||||
typedef void (*interface_func_t) (uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
|
typedef void (*interface_func_t) (uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
BLE_LOG_INTERFACE_FLAG_CONTINUE = 0,
|
||||||
|
BLE_LOG_INTERFACE_FLAG_END,
|
||||||
|
};
|
||||||
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
||||||
|
|
||||||
/* External functions or variables
|
/* External functions or variables
|
||||||
@@ -411,20 +416,22 @@ void esp_bt_read_ctrl_log_from_flash(bool output)
|
|||||||
#if !CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
|
#if !CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
|
||||||
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
|
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
|
||||||
{
|
{
|
||||||
bool end = flag ? true : false;
|
bool end = (flag & BIT(BLE_LOG_INTERFACE_FLAG_END));
|
||||||
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
esp_bt_controller_log_storage(len, addr, end);
|
esp_bt_controller_log_storage(len, addr, end);
|
||||||
#else // !CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#else // !CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
|
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
|
||||||
portENTER_CRITICAL_SAFE(&spinlock);
|
portENTER_CRITICAL_SAFE(&spinlock);
|
||||||
esp_panic_handler_feed_wdts();
|
esp_panic_handler_feed_wdts();
|
||||||
for (int i = 0; i < len; i++) {
|
|
||||||
esp_rom_printf("%02x ", addr[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (end) {
|
if (len && addr) {
|
||||||
esp_rom_printf("\n");
|
for (int i = 0; i < len; i++) { esp_rom_printf("%02x ", addr[i]); }
|
||||||
}
|
}
|
||||||
|
if (len_append && addr_append) {
|
||||||
|
for (int i = 0; i < len_append; i++) { esp_rom_printf("%02x ", addr_append[i]); }
|
||||||
|
}
|
||||||
|
if (end) { esp_rom_printf("\n"); }
|
||||||
|
|
||||||
portEXIT_CRITICAL_SAFE(&spinlock);
|
portEXIT_CRITICAL_SAFE(&spinlock);
|
||||||
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
}
|
}
|
||||||
|
@@ -106,6 +106,11 @@ struct ext_funcs_t {
|
|||||||
|
|
||||||
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
||||||
typedef void (*interface_func_t) (uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
|
typedef void (*interface_func_t) (uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
BLE_LOG_INTERFACE_FLAG_CONTINUE = 0,
|
||||||
|
BLE_LOG_INTERFACE_FLAG_END,
|
||||||
|
};
|
||||||
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
||||||
|
|
||||||
/* External functions or variables
|
/* External functions or variables
|
||||||
@@ -1306,20 +1311,22 @@ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t po
|
|||||||
#if !CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
|
#if !CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
|
||||||
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
|
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
|
||||||
{
|
{
|
||||||
bool end = flag ? true : false;
|
bool end = (flag & BIT(BLE_LOG_INTERFACE_FLAG_END));
|
||||||
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
esp_bt_controller_log_storage(len, addr, end);
|
esp_bt_controller_log_storage(len, addr, end);
|
||||||
#else // !CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#else // !CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
|
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
|
||||||
portENTER_CRITICAL_SAFE(&spinlock);
|
portENTER_CRITICAL_SAFE(&spinlock);
|
||||||
esp_panic_handler_feed_wdts();
|
esp_panic_handler_feed_wdts();
|
||||||
for (int i = 0; i < len; i++) {
|
|
||||||
esp_rom_printf("%02x ", addr[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (end) {
|
if (len && addr) {
|
||||||
esp_rom_printf("\n");
|
for (int i = 0; i < len; i++) { esp_rom_printf("%02x ", addr[i]); }
|
||||||
}
|
}
|
||||||
|
if (len_append && addr_append) {
|
||||||
|
for (int i = 0; i < len_append; i++) { esp_rom_printf("%02x ", addr_append[i]); }
|
||||||
|
}
|
||||||
|
if (end) { esp_rom_printf("\n"); }
|
||||||
|
|
||||||
portEXIT_CRITICAL_SAFE(&spinlock);
|
portEXIT_CRITICAL_SAFE(&spinlock);
|
||||||
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
}
|
}
|
||||||
|
@@ -839,3 +839,10 @@ config BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX
|
|||||||
config BT_LE_RXBUF_OPT_ENABLED
|
config BT_LE_RXBUF_OPT_ENABLED
|
||||||
bool "Enable rxbuf optimization feature"
|
bool "Enable rxbuf optimization feature"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config BT_LE_CTRL_FAST_CONN_DATA_TX_EN
|
||||||
|
bool "Enable fast sending of connection data"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
If this option is enabled, The Controller will continue to
|
||||||
|
Send an empty PDU after sending valid connection data within an interval.
|
||||||
|
@@ -61,6 +61,7 @@
|
|||||||
|
|
||||||
#include "hal/efuse_hal.h"
|
#include "hal/efuse_hal.h"
|
||||||
#include "soc/rtc.h"
|
#include "soc/rtc.h"
|
||||||
|
#include "modem/modem_syscon_struct.h"
|
||||||
|
|
||||||
#if CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED
|
#if CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED
|
||||||
#include "ble_log/ble_log_spi_out.h"
|
#include "ble_log/ble_log_spi_out.h"
|
||||||
@@ -73,7 +74,7 @@
|
|||||||
#define OSI_COEX_VERSION 0x00010006
|
#define OSI_COEX_VERSION 0x00010006
|
||||||
#define OSI_COEX_MAGIC_VALUE 0xFADEBEAD
|
#define OSI_COEX_MAGIC_VALUE 0xFADEBEAD
|
||||||
|
|
||||||
#define EXT_FUNC_VERSION 0x20240422
|
#define EXT_FUNC_VERSION 0x20250415
|
||||||
#define EXT_FUNC_MAGIC_VALUE 0xA5A5A5A5
|
#define EXT_FUNC_MAGIC_VALUE 0xA5A5A5A5
|
||||||
|
|
||||||
#define BT_ASSERT_PRINT ets_printf
|
#define BT_ASSERT_PRINT ets_printf
|
||||||
@@ -104,17 +105,29 @@ struct ext_funcs_t {
|
|||||||
int (* _ecc_gen_key_pair)(uint8_t *public, uint8_t *priv);
|
int (* _ecc_gen_key_pair)(uint8_t *public, uint8_t *priv);
|
||||||
int (* _ecc_gen_dh_key)(const uint8_t *remote_pub_key_x, const uint8_t *remote_pub_key_y,
|
int (* _ecc_gen_dh_key)(const uint8_t *remote_pub_key_x, const uint8_t *remote_pub_key_y,
|
||||||
const uint8_t *local_priv_key, uint8_t *dhkey);
|
const uint8_t *local_priv_key, uint8_t *dhkey);
|
||||||
void (* _esp_reset_rpa_moudle)(void);
|
#if CONFIG_IDF_TARGET_ESP32C6
|
||||||
|
void (* _esp_reset_modem)(uint8_t mdl_opts, uint8_t start);
|
||||||
|
#endif // CONFIG_IDF_TARGET_ESP32C6
|
||||||
uint32_t magic;
|
uint32_t magic;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
||||||
typedef void (*interface_func_t) (uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
|
typedef void (*interface_func_t) (uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
BLE_LOG_INTERFACE_FLAG_CONTINUE = 0,
|
||||||
|
BLE_LOG_INTERFACE_FLAG_END,
|
||||||
|
};
|
||||||
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
||||||
|
|
||||||
/* External functions or variables
|
/* External functions or variables
|
||||||
************************************************************************
|
************************************************************************
|
||||||
*/
|
*/
|
||||||
|
#if CONFIG_SW_COEXIST_ENABLE || CONFIG_EXTERNAL_COEX_ENABLE
|
||||||
|
extern void coex_hw_timer_set(uint8_t idx,uint8_t src, uint8_t pti,uint32_t latency, uint32_t perioidc);
|
||||||
|
extern void coex_hw_timer_enable(uint8_t idx);
|
||||||
|
extern void coex_hw_timer_disable(uint8_t idx);
|
||||||
|
#endif // CONFIG_SW_COEXIST_ENABLE || CONFIG_EXTERNAL_COEX_ENABLE
|
||||||
extern int ble_osi_coex_funcs_register(struct osi_coex_funcs_t *coex_funcs);
|
extern int ble_osi_coex_funcs_register(struct osi_coex_funcs_t *coex_funcs);
|
||||||
extern int r_ble_controller_init(esp_bt_controller_config_t *cfg);
|
extern int r_ble_controller_init(esp_bt_controller_config_t *cfg);
|
||||||
extern void esp_ble_controller_info_capture(uint32_t cycle_times);
|
extern void esp_ble_controller_info_capture(uint32_t cycle_times);
|
||||||
@@ -188,7 +201,9 @@ static int esp_intr_alloc_wrapper(int source, int flags, intr_handler_t handler,
|
|||||||
static int esp_intr_free_wrapper(void **ret_handle);
|
static int esp_intr_free_wrapper(void **ret_handle);
|
||||||
static void osi_assert_wrapper(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2);
|
static void osi_assert_wrapper(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2);
|
||||||
static uint32_t osi_random_wrapper(void);
|
static uint32_t osi_random_wrapper(void);
|
||||||
static void esp_reset_rpa_moudle(void);
|
#if CONFIG_IDF_TARGET_ESP32C6
|
||||||
|
static void esp_reset_modem(uint8_t mdl_opts,uint8_t start);
|
||||||
|
#endif // CONFIG_IDF_TARGET_ESP32C6
|
||||||
static int esp_ecc_gen_key_pair(uint8_t *pub, uint8_t *priv);
|
static int esp_ecc_gen_key_pair(uint8_t *pub, uint8_t *priv);
|
||||||
static int esp_ecc_gen_dh_key(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
|
static int esp_ecc_gen_dh_key(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
|
||||||
const uint8_t *our_priv_key, uint8_t *out_dhkey);
|
const uint8_t *our_priv_key, uint8_t *out_dhkey);
|
||||||
@@ -466,15 +481,34 @@ struct ext_funcs_t ext_funcs_ro = {
|
|||||||
._os_random = osi_random_wrapper,
|
._os_random = osi_random_wrapper,
|
||||||
._ecc_gen_key_pair = esp_ecc_gen_key_pair,
|
._ecc_gen_key_pair = esp_ecc_gen_key_pair,
|
||||||
._ecc_gen_dh_key = esp_ecc_gen_dh_key,
|
._ecc_gen_dh_key = esp_ecc_gen_dh_key,
|
||||||
._esp_reset_rpa_moudle = esp_reset_rpa_moudle,
|
#if CONFIG_IDF_TARGET_ESP32C6
|
||||||
|
._esp_reset_modem = esp_reset_modem,
|
||||||
|
#endif // CONFIG_IDF_TARGET_ESP32C6
|
||||||
.magic = EXT_FUNC_MAGIC_VALUE,
|
.magic = EXT_FUNC_MAGIC_VALUE,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void IRAM_ATTR esp_reset_rpa_moudle(void)
|
#if CONFIG_IDF_TARGET_ESP32C6
|
||||||
|
static void IRAM_ATTR esp_reset_modem(uint8_t mdl_opts,uint8_t start)
|
||||||
{
|
{
|
||||||
|
if (mdl_opts == 0x05) {
|
||||||
|
if (start) {
|
||||||
|
#if CONFIG_SW_COEXIST_ENABLE || CONFIG_EXTERNAL_COEX_ENABLE
|
||||||
|
coex_hw_timer_set(0x04, 0x02, 15, 0, 5000);
|
||||||
|
coex_hw_timer_enable(0x04);
|
||||||
|
#endif // CONFIG_SW_COEXIST_ENABLE || CONFIG_EXTERNAL_COEX_ENABLE
|
||||||
|
MODEM_SYSCON.modem_rst_conf.val |= (BIT(16) | BIT(18));
|
||||||
|
MODEM_SYSCON.modem_rst_conf.val &= ~(BIT(16) | BIT(18));
|
||||||
|
} else {
|
||||||
|
#if CONFIG_SW_COEXIST_ENABLE || CONFIG_EXTERNAL_COEX_ENABLE
|
||||||
|
coex_hw_timer_disable(0x04);
|
||||||
|
#endif // CONFIG_SW_COEXIST_ENABLE || CONFIG_EXTERNAL_COEX_ENABLE
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // CONFIG_IDF_TARGET_ESP32C6
|
||||||
|
|
||||||
static void IRAM_ATTR osi_assert_wrapper(const uint32_t ln, const char *fn,
|
static void IRAM_ATTR osi_assert_wrapper(const uint32_t ln, const char *fn,
|
||||||
uint32_t param1, uint32_t param2)
|
uint32_t param1, uint32_t param2)
|
||||||
{
|
{
|
||||||
@@ -1451,20 +1485,22 @@ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t po
|
|||||||
#if !CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
|
#if !CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
|
||||||
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
|
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
|
||||||
{
|
{
|
||||||
bool end = flag ? true : false;
|
bool end = (flag & BIT(BLE_LOG_INTERFACE_FLAG_END));
|
||||||
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
esp_bt_controller_log_storage(len, addr, end);
|
esp_bt_controller_log_storage(len, addr, end);
|
||||||
#else // !CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#else // !CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
|
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
|
||||||
portENTER_CRITICAL_SAFE(&spinlock);
|
portENTER_CRITICAL_SAFE(&spinlock);
|
||||||
esp_panic_handler_feed_wdts();
|
esp_panic_handler_feed_wdts();
|
||||||
for (int i = 0; i < len; i++) {
|
|
||||||
esp_rom_printf("%02x ", addr[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (end) {
|
if (len && addr) {
|
||||||
esp_rom_printf("\n");
|
for (int i = 0; i < len; i++) { esp_rom_printf("%02x ", addr[i]); }
|
||||||
}
|
}
|
||||||
|
if (len_append && addr_append) {
|
||||||
|
for (int i = 0; i < len_append; i++) { esp_rom_printf("%02x ", addr_append[i]); }
|
||||||
|
}
|
||||||
|
if (end) { esp_rom_printf("\n"); }
|
||||||
|
|
||||||
portEXIT_CRITICAL_SAFE(&spinlock);
|
portEXIT_CRITICAL_SAFE(&spinlock);
|
||||||
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
}
|
}
|
||||||
|
@@ -195,6 +195,12 @@ extern "C" {
|
|||||||
#define DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX (0)
|
#define DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN)
|
||||||
|
#define DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN (CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN)
|
||||||
|
#else
|
||||||
|
#define DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_LE_HCI_INTERFACE_USE_UART
|
#ifdef CONFIG_BT_LE_HCI_INTERFACE_USE_UART
|
||||||
#define HCI_UART_EN CONFIG_BT_LE_HCI_INTERFACE_USE_UART
|
#define HCI_UART_EN CONFIG_BT_LE_HCI_INTERFACE_USE_UART
|
||||||
#else
|
#else
|
||||||
|
@@ -843,3 +843,10 @@ config BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX
|
|||||||
config BT_LE_RXBUF_OPT_ENABLED
|
config BT_LE_RXBUF_OPT_ENABLED
|
||||||
bool "Enable rxbuf optimization feature"
|
bool "Enable rxbuf optimization feature"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config BT_LE_CTRL_FAST_CONN_DATA_TX_EN
|
||||||
|
bool "Enable fast sending of connection data"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
If this option is enabled, The Controller will continue to
|
||||||
|
Send an empty PDU after sending valid connection data within an interval.
|
||||||
|
@@ -66,7 +66,7 @@
|
|||||||
#define OSI_COEX_VERSION 0x00010006
|
#define OSI_COEX_VERSION 0x00010006
|
||||||
#define OSI_COEX_MAGIC_VALUE 0xFADEBEAD
|
#define OSI_COEX_MAGIC_VALUE 0xFADEBEAD
|
||||||
|
|
||||||
#define EXT_FUNC_VERSION 0x20240422
|
#define EXT_FUNC_VERSION 0x20250415
|
||||||
#define EXT_FUNC_MAGIC_VALUE 0xA5A5A5A5
|
#define EXT_FUNC_MAGIC_VALUE 0xA5A5A5A5
|
||||||
|
|
||||||
#define BT_ASSERT_PRINT ets_printf
|
#define BT_ASSERT_PRINT ets_printf
|
||||||
@@ -97,12 +97,16 @@ struct ext_funcs_t {
|
|||||||
int (* _ecc_gen_key_pair)(uint8_t *public, uint8_t *priv);
|
int (* _ecc_gen_key_pair)(uint8_t *public, uint8_t *priv);
|
||||||
int (* _ecc_gen_dh_key)(const uint8_t *remote_pub_key_x, const uint8_t *remote_pub_key_y,
|
int (* _ecc_gen_dh_key)(const uint8_t *remote_pub_key_x, const uint8_t *remote_pub_key_y,
|
||||||
const uint8_t *local_priv_key, uint8_t *dhkey);
|
const uint8_t *local_priv_key, uint8_t *dhkey);
|
||||||
void (* _esp_reset_rpa_moudle)(void);
|
|
||||||
uint32_t magic;
|
uint32_t magic;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
||||||
typedef void (*interface_func_t) (uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
|
typedef void (*interface_func_t) (uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
BLE_LOG_INTERFACE_FLAG_CONTINUE = 0,
|
||||||
|
BLE_LOG_INTERFACE_FLAG_END,
|
||||||
|
};
|
||||||
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
|
||||||
/* External functions or variables
|
/* External functions or variables
|
||||||
************************************************************************
|
************************************************************************
|
||||||
@@ -183,7 +187,6 @@ static int esp_intr_alloc_wrapper(int source, int flags, intr_handler_t handler,
|
|||||||
static int esp_intr_free_wrapper(void **ret_handle);
|
static int esp_intr_free_wrapper(void **ret_handle);
|
||||||
static void osi_assert_wrapper(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2);
|
static void osi_assert_wrapper(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2);
|
||||||
static uint32_t osi_random_wrapper(void);
|
static uint32_t osi_random_wrapper(void);
|
||||||
static void esp_reset_rpa_moudle(void);
|
|
||||||
static int esp_ecc_gen_key_pair(uint8_t *pub, uint8_t *priv);
|
static int esp_ecc_gen_key_pair(uint8_t *pub, uint8_t *priv);
|
||||||
static int esp_ecc_gen_dh_key(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
|
static int esp_ecc_gen_dh_key(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
|
||||||
const uint8_t *our_priv_key, uint8_t *out_dhkey);
|
const uint8_t *our_priv_key, uint8_t *out_dhkey);
|
||||||
@@ -460,15 +463,9 @@ struct ext_funcs_t ext_funcs_ro = {
|
|||||||
._os_random = osi_random_wrapper,
|
._os_random = osi_random_wrapper,
|
||||||
._ecc_gen_key_pair = esp_ecc_gen_key_pair,
|
._ecc_gen_key_pair = esp_ecc_gen_key_pair,
|
||||||
._ecc_gen_dh_key = esp_ecc_gen_dh_key,
|
._ecc_gen_dh_key = esp_ecc_gen_dh_key,
|
||||||
._esp_reset_rpa_moudle = esp_reset_rpa_moudle,
|
|
||||||
.magic = EXT_FUNC_MAGIC_VALUE,
|
.magic = EXT_FUNC_MAGIC_VALUE,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void IRAM_ATTR esp_reset_rpa_moudle(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void IRAM_ATTR osi_assert_wrapper(const uint32_t ln, const char *fn,
|
static void IRAM_ATTR osi_assert_wrapper(const uint32_t ln, const char *fn,
|
||||||
uint32_t param1, uint32_t param2)
|
uint32_t param1, uint32_t param2)
|
||||||
{
|
{
|
||||||
@@ -1412,20 +1409,22 @@ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t po
|
|||||||
#if !CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
|
#if !CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
|
||||||
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
|
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
|
||||||
{
|
{
|
||||||
bool end = flag ? true : false;
|
bool end = (flag & BIT(BLE_LOG_INTERFACE_FLAG_END));
|
||||||
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
esp_bt_controller_log_storage(len, addr, end);
|
esp_bt_controller_log_storage(len, addr, end);
|
||||||
#else // !CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#else // !CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
|
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
|
||||||
portENTER_CRITICAL_SAFE(&spinlock);
|
portENTER_CRITICAL_SAFE(&spinlock);
|
||||||
esp_panic_handler_feed_wdts();
|
esp_panic_handler_feed_wdts();
|
||||||
for (int i = 0; i < len; i++) {
|
|
||||||
esp_rom_printf("%02x ", addr[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (end) {
|
if (len && addr) {
|
||||||
esp_rom_printf("\n");
|
for (int i = 0; i < len; i++) { esp_rom_printf("%02x ", addr[i]); }
|
||||||
}
|
}
|
||||||
|
if (len_append && addr_append) {
|
||||||
|
for (int i = 0; i < len_append; i++) { esp_rom_printf("%02x ", addr_append[i]); }
|
||||||
|
}
|
||||||
|
if (end) { esp_rom_printf("\n"); }
|
||||||
|
|
||||||
portEXIT_CRITICAL_SAFE(&spinlock);
|
portEXIT_CRITICAL_SAFE(&spinlock);
|
||||||
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
|
||||||
}
|
}
|
||||||
|
@@ -192,6 +192,12 @@ extern "C" {
|
|||||||
#define DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX (0)
|
#define DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN)
|
||||||
|
#define DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN (CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN)
|
||||||
|
#else
|
||||||
|
#define DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_LE_HCI_INTERFACE_USE_UART
|
#ifdef CONFIG_BT_LE_HCI_INTERFACE_USE_UART
|
||||||
#define HCI_UART_EN CONFIG_BT_LE_HCI_INTERFACE_USE_UART
|
#define HCI_UART_EN CONFIG_BT_LE_HCI_INTERFACE_USE_UART
|
||||||
#else
|
#else
|
||||||
|
Submodule components/bt/controller/lib_esp32c2/esp32c2-bt-lib updated: d6c94459f3...06c5ef1481
Submodule components/bt/controller/lib_esp32c6/esp32c6-bt-lib updated: 233738dc87...841466ff3c
Submodule components/bt/controller/lib_esp32h2/esp32h2-bt-lib updated: efd8a69553...bd09406c74
@@ -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);
|
esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
|
||||||
|
|
||||||
#define CONFIG_VERSION 0x20250310
|
#define CONFIG_VERSION 0x20250513
|
||||||
#define CONFIG_MAGIC 0x5A5AA5A5
|
#define CONFIG_MAGIC 0x5A5AA5A5
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -224,9 +224,15 @@ typedef struct {
|
|||||||
- 1 - Enable */
|
- 1 - Enable */
|
||||||
uint8_t vhci_enabled; /*!< VHCI mode is enabled */
|
uint8_t vhci_enabled; /*!< VHCI mode is enabled */
|
||||||
uint8_t ptr_check_enabled; /*!< Enable boundary check for internal memory. */
|
uint8_t ptr_check_enabled; /*!< Enable boundary check for internal memory. */
|
||||||
|
uint8_t ble_adv_tx_options; /*!< The options for Extended advertising sending. */
|
||||||
|
uint8_t skip_unnecessary_checks_en; /*!< The option to skip non-fatal state checks and perform extra handling for fatal checks. */
|
||||||
|
uint8_t fast_conn_data_tx_en; /*!< The option for fast transmission of connection data
|
||||||
|
- 0 - Disable
|
||||||
|
- 1 - Enable (default) */
|
||||||
uint32_t config_magic; /*!< Magic number for configuration validation */
|
uint32_t config_magic; /*!< Magic number for configuration validation */
|
||||||
} esp_bt_controller_config_t;
|
} esp_bt_controller_config_t;
|
||||||
|
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32C6
|
||||||
#define BT_CONTROLLER_INIT_CONFIG_DEFAULT() { \
|
#define BT_CONTROLLER_INIT_CONFIG_DEFAULT() { \
|
||||||
.config_version = CONFIG_VERSION, \
|
.config_version = CONFIG_VERSION, \
|
||||||
.ble_ll_resolv_list_size = CONFIG_BT_LE_LL_RESOLV_LIST_SIZE, \
|
.ble_ll_resolv_list_size = CONFIG_BT_LE_LL_RESOLV_LIST_SIZE, \
|
||||||
@@ -280,8 +286,70 @@ typedef struct {
|
|||||||
.ble_data_lenth_zero_aux = DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX, \
|
.ble_data_lenth_zero_aux = DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX, \
|
||||||
.vhci_enabled = DEFAULT_BT_LE_VHCI_ENABLED, \
|
.vhci_enabled = DEFAULT_BT_LE_VHCI_ENABLED, \
|
||||||
.ptr_check_enabled = DEFAULT_BT_LE_PTR_CHECK_ENABLED, \
|
.ptr_check_enabled = DEFAULT_BT_LE_PTR_CHECK_ENABLED, \
|
||||||
|
.ble_adv_tx_options = 0, \
|
||||||
|
.skip_unnecessary_checks_en = 0, \
|
||||||
|
.fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \
|
||||||
.config_magic = CONFIG_MAGIC, \
|
.config_magic = CONFIG_MAGIC, \
|
||||||
}
|
}
|
||||||
|
#elif CONFIG_IDF_TARGET_ESP32C61
|
||||||
|
#define BT_CONTROLLER_INIT_CONFIG_DEFAULT() { \
|
||||||
|
.config_version = CONFIG_VERSION, \
|
||||||
|
.ble_ll_resolv_list_size = CONFIG_BT_LE_LL_RESOLV_LIST_SIZE, \
|
||||||
|
.ble_hci_evt_hi_buf_count = DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT, \
|
||||||
|
.ble_hci_evt_lo_buf_count = DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT, \
|
||||||
|
.ble_ll_sync_list_cnt = DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST, \
|
||||||
|
.ble_ll_sync_cnt = DEFAULT_BT_LE_MAX_PERIODIC_SYNCS, \
|
||||||
|
.ble_ll_rsp_dup_list_count = CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT, \
|
||||||
|
.ble_ll_adv_dup_list_count = CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT, \
|
||||||
|
.ble_ll_tx_pwr_dbm = BLE_LL_TX_PWR_DBM_N, \
|
||||||
|
.rtc_freq = RTC_FREQ_N, \
|
||||||
|
.ble_ll_sca = CONFIG_BT_LE_LL_SCA, \
|
||||||
|
.ble_ll_scan_phy_number = BLE_LL_SCAN_PHY_NUMBER_N, \
|
||||||
|
.ble_ll_conn_def_auth_pyld_tmo = BLE_LL_CONN_DEF_AUTH_PYLD_TMO_N, \
|
||||||
|
.ble_ll_jitter_usecs = BLE_LL_JITTER_USECS_N, \
|
||||||
|
.ble_ll_sched_max_adv_pdu_usecs = BLE_LL_SCHED_MAX_ADV_PDU_USECS_N, \
|
||||||
|
.ble_ll_sched_direct_adv_max_usecs = BLE_LL_SCHED_DIRECT_ADV_MAX_USECS_N, \
|
||||||
|
.ble_ll_sched_adv_max_usecs = BLE_LL_SCHED_ADV_MAX_USECS_N, \
|
||||||
|
.ble_scan_rsp_data_max_len = DEFAULT_BT_LE_SCAN_RSP_DATA_MAX_LEN_N, \
|
||||||
|
.ble_ll_cfg_num_hci_cmd_pkts = BLE_LL_CFG_NUM_HCI_CMD_PKTS_N, \
|
||||||
|
.ble_ll_ctrl_proc_timeout_ms = BLE_LL_CTRL_PROC_TIMEOUT_MS_N, \
|
||||||
|
.nimble_max_connections = DEFAULT_BT_LE_MAX_CONNECTIONS, \
|
||||||
|
.ble_whitelist_size = DEFAULT_BT_NIMBLE_WHITELIST_SIZE, \
|
||||||
|
.ble_acl_buf_size = DEFAULT_BT_LE_ACL_BUF_SIZE, \
|
||||||
|
.ble_acl_buf_count = DEFAULT_BT_LE_ACL_BUF_COUNT, \
|
||||||
|
.ble_hci_evt_buf_size = DEFAULT_BT_LE_HCI_EVT_BUF_SIZE, \
|
||||||
|
.ble_multi_adv_instances = DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES, \
|
||||||
|
.ble_ext_adv_max_size = DEFAULT_BT_LE_EXT_ADV_MAX_SIZE, \
|
||||||
|
.controller_task_stack_size = NIMBLE_LL_STACK_SIZE, \
|
||||||
|
.controller_task_prio = ESP_TASK_BT_CONTROLLER_PRIO, \
|
||||||
|
.controller_run_cpu = 0, \
|
||||||
|
.enable_qa_test = RUN_QA_TEST, \
|
||||||
|
.enable_bqb_test = RUN_BQB_TEST, \
|
||||||
|
.enable_tx_cca = DEFAULT_BT_LE_TX_CCA_ENABLED, \
|
||||||
|
.cca_rssi_thresh = 256 - DEFAULT_BT_LE_CCA_RSSI_THRESH, \
|
||||||
|
.sleep_en = NIMBLE_SLEEP_ENABLE, \
|
||||||
|
.coex_phy_coded_tx_rx_time_limit = DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF, \
|
||||||
|
.dis_scan_backoff = NIMBLE_DISABLE_SCAN_BACKOFF, \
|
||||||
|
.ble_scan_classify_filter_enable = 1, \
|
||||||
|
.main_xtal_freq = CONFIG_XTAL_FREQ, \
|
||||||
|
.cpu_freq_mhz = CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ, \
|
||||||
|
.ignore_wl_for_direct_adv = 0, \
|
||||||
|
.enable_pcl = DEFAULT_BT_LE_POWER_CONTROL_ENABLED, \
|
||||||
|
.csa2_select = DEFAULT_BT_LE_50_FEATURE_SUPPORT, \
|
||||||
|
.enable_csr = 0, \
|
||||||
|
.ble_aa_check = DEFAULT_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS, \
|
||||||
|
.ble_llcp_disc_flag = BT_LE_CTRL_LLCP_DISC_FLAG, \
|
||||||
|
.scan_backoff_upperlimitmax = BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX, \
|
||||||
|
.ble_chan_ass_en = DEFAULT_BT_LE_CTRL_CHAN_ASS_EN, \
|
||||||
|
.ble_data_lenth_zero_aux = DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX, \
|
||||||
|
.vhci_enabled = DEFAULT_BT_LE_VHCI_ENABLED, \
|
||||||
|
.ptr_check_enabled = DEFAULT_BT_LE_PTR_CHECK_ENABLED, \
|
||||||
|
.ble_adv_tx_options = 0, \
|
||||||
|
.skip_unnecessary_checks_en = 0, \
|
||||||
|
.fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \
|
||||||
|
.config_magic = CONFIG_MAGIC, \
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize BT controller to allocate task and other resource.
|
* @brief Initialize BT controller to allocate task and other resource.
|
||||||
|
@@ -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);
|
esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
|
||||||
|
|
||||||
#define CONFIG_VERSION 0x20250310
|
#define CONFIG_VERSION 0x20250513
|
||||||
#define CONFIG_MAGIC 0x5A5AA5A5
|
#define CONFIG_MAGIC 0x5A5AA5A5
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -226,8 +226,13 @@ typedef struct {
|
|||||||
uint8_t ble_data_lenth_zero_aux; /*!< Enable / disable auxiliary packets when the extended ADV data length is zero. Configurable in menuconfig.
|
uint8_t ble_data_lenth_zero_aux; /*!< Enable / disable auxiliary packets when the extended ADV data length is zero. Configurable in menuconfig.
|
||||||
- 0 - Disable (default)
|
- 0 - Disable (default)
|
||||||
- 1 - Enable */
|
- 1 - Enable */
|
||||||
uint8_t vhci_enabled; /*!< VHCI is enabled */
|
uint8_t vhci_enabled; /*!< VHCI is enabled */
|
||||||
uint8_t ptr_check_enabled; /*!< Enable boundary check for internal memory. */
|
uint8_t ptr_check_enabled; /*!< Enable boundary check for internal memory. */
|
||||||
|
uint8_t ble_adv_tx_options; /*!< The options for Extended advertising sending. */
|
||||||
|
uint8_t skip_unnecessary_checks_en; /*!< The option to skip non-fatal state checks and perform extra handling for fatal checks. */
|
||||||
|
uint8_t fast_conn_data_tx_en; /*!< The option for fast transmission of connection data
|
||||||
|
- 0 - Disable
|
||||||
|
- 1 - Enable (default) */
|
||||||
uint32_t config_magic; /*!< Configuration magic value */
|
uint32_t config_magic; /*!< Configuration magic value */
|
||||||
} esp_bt_controller_config_t;
|
} esp_bt_controller_config_t;
|
||||||
|
|
||||||
@@ -284,6 +289,9 @@ typedef struct {
|
|||||||
.ble_data_lenth_zero_aux = DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX, \
|
.ble_data_lenth_zero_aux = DEFAULT_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX, \
|
||||||
.vhci_enabled = DEFAULT_BT_LE_VHCI_ENABLED, \
|
.vhci_enabled = DEFAULT_BT_LE_VHCI_ENABLED, \
|
||||||
.ptr_check_enabled = DEFAULT_BT_LE_PTR_CHECK_ENABLED, \
|
.ptr_check_enabled = DEFAULT_BT_LE_PTR_CHECK_ENABLED, \
|
||||||
|
.ble_adv_tx_options = 0, \
|
||||||
|
.skip_unnecessary_checks_en = 0, \
|
||||||
|
.fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \
|
||||||
.config_magic = CONFIG_MAGIC, \
|
.config_magic = CONFIG_MAGIC, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user