Skip to content

Commit 4cfea9e

Browse files
committed
Merge branch 'feat/put_bt_interface_code_to_rom_v5.3' into 'release/v5.3'
Feat/put bt interface code to rom (v5.3) See merge request espressif/esp-idf!31549
2 parents e7b6fb7 + f7baa7f commit 4cfea9e

File tree

28 files changed

+215
-777
lines changed

28 files changed

+215
-777
lines changed

components/bt/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ if(CONFIG_BT_ENABLED)
575575
if(CONFIG_BT_LE_CONTROLLER_NPL_OS_PORTING_SUPPORT)
576576
list(APPEND srcs
577577
"porting/npl/freertos/src/npl_os_freertos.c"
578-
"porting/nimble/src/os_msys_init.c"
578+
"porting/mem/os_msys_init.c"
579579
)
580580

581581
if(CONFIG_BT_CONTROLLER_DISABLED)
@@ -585,7 +585,6 @@ if(CONFIG_BT_ENABLED)
585585
endif()
586586
list(APPEND include_dirs
587587
porting/include
588-
porting/nimble/include
589588
porting/npl/freertos/include
590589
porting/transport/include
591590
)
@@ -727,7 +726,6 @@ if(CONFIG_BT_ENABLED)
727726
"host/nimble/port/src/nvs_port.c"
728727
)
729728
list(APPEND include_dirs
730-
porting/include
731729
host/nimble/nimble/porting/nimble/include
732730
host/nimble/port/include
733731
host/nimble/nimble/nimble/transport/include
@@ -756,9 +754,8 @@ if(CONFIG_BT_ENABLED)
756754
endif()
757755

758756
list(APPEND include_dirs
757+
porting/include
759758
host/nimble/nimble/porting/npl/freertos/include
760-
host/nimble/nimble/porting/nimble/include
761-
host/nimble/nimble/nimble/include
762759
)
763760
endif()
764761

components/bt/controller/esp32c2/bt.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616

1717
#include "sdkconfig.h"
1818

19+
#if CONFIG_BT_NIMBLE_ENABLED
1920
#include "nimble/nimble_port.h"
21+
#endif // CONFIG_BT_NIMBLE_ENABLED
22+
2023
#include "nimble/nimble_port_freertos.h"
2124

2225
#ifdef ESP_PLATFORM
@@ -28,7 +31,7 @@
2831
#endif
2932

3033
#include "nimble/nimble_npl_os.h"
31-
#include "nimble/ble_hci_trans.h"
34+
#include "ble_hci_trans.h"
3235
#include "os/endian.h"
3336

3437
#include "esp_bt.h"

components/bt/controller/esp32c5/bt.c

Lines changed: 46 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515

1616
#include "sdkconfig.h"
1717

18+
#if CONFIG_BT_NIMBLE_ENABLED
1819
#include "nimble/nimble_port.h"
20+
#endif // CONFIG_BT_NIMBLE_ENABLED
1921
#include "nimble/nimble_port_freertos.h"
2022
#include "esp_private/esp_modem_clock.h"
2123

@@ -28,7 +30,7 @@
2830
#endif // CONFIG_SW_COEXIST_ENABLE
2931

3032
#include "nimble/nimble_npl_os.h"
31-
#include "nimble/ble_hci_trans.h"
33+
#include "ble_hci_trans.h"
3234
#include "os/endian.h"
3335

3436
#include "esp_bt.h"
@@ -121,20 +123,20 @@ typedef void (*interface_func_t) (uint32_t len, const uint8_t*addr, bool end);
121123
************************************************************************
122124
*/
123125
extern int ble_osi_coex_funcs_register(struct osi_coex_funcs_t *coex_funcs);
124-
extern int ble_controller_init(esp_bt_controller_config_t *cfg);
126+
extern int r_ble_controller_init(esp_bt_controller_config_t *cfg);
125127
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
126128
extern int r_ble_log_init_async(interface_func_t bt_controller_log_interface, bool task_create, uint8_t buffers, uint32_t *bufs_size);
127129
extern int r_ble_log_deinit_async(void);
128130
extern void r_ble_log_async_select_dump_buffers(uint8_t buffers);
129131
extern void r_ble_log_async_output_dump_all(bool output);
130132
extern void esp_panic_handler_reconfigure_wdts(uint32_t timeout_ms);
131133
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
132-
extern int ble_controller_deinit(void);
133-
extern int ble_controller_enable(uint8_t mode);
134-
extern int ble_controller_disable(void);
134+
extern int r_ble_controller_deinit(void);
135+
extern int r_ble_controller_enable(uint8_t mode);
136+
extern int r_ble_controller_disable(void);
135137
extern int esp_register_ext_funcs (struct ext_funcs_t *);
136138
extern void esp_unregister_ext_funcs (void);
137-
extern int esp_ble_ll_set_public_addr(const uint8_t *addr);
139+
extern int r_esp_ble_ll_set_public_addr(const uint8_t *addr);
138140
extern int esp_register_npl_funcs (struct npl_funcs_t *p_npl_func);
139141
extern void esp_unregister_npl_funcs (void);
140142
extern void npl_freertos_mempool_deinit(void);
@@ -149,15 +151,17 @@ extern void os_msys_deinit(void);
149151
extern const sleep_retention_entries_config_t *esp_ble_mac_retention_link_get(uint8_t *size, uint8_t extra);
150152
extern void esp_ble_set_wakeup_overhead(uint32_t overhead);
151153
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
152-
extern void esp_ble_change_rtc_freq(uint32_t freq);
154+
extern void r_esp_ble_change_rtc_freq(uint32_t freq);
153155
extern int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x,
154156
const uint8_t *peer_pub_key_y,
155157
const uint8_t *our_priv_key, uint8_t *out_dhkey);
156158
extern int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv);
157-
extern int ble_txpwr_set(esp_ble_enhanced_power_type_t power_type, uint16_t handle, int power_level);
158-
extern int ble_txpwr_get(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
159-
extern int ble_get_npl_element_info(esp_bt_controller_config_t *cfg, ble_npl_count_info_t * npl_info);
159+
extern int r_ble_txpwr_set(esp_ble_enhanced_power_type_t power_type, uint16_t handle, int power_level);
160+
extern int r_ble_txpwr_get(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
161+
extern int r_ble_get_npl_element_info(esp_bt_controller_config_t *cfg, ble_npl_count_info_t * npl_info);
160162
extern char *ble_controller_get_compile_version(void);
163+
extern int esp_ble_register_bb_funcs(void);
164+
extern void esp_ble_unregister_bb_funcs(void);
161165
extern uint32_t _bt_bss_start;
162166
extern uint32_t _bt_bss_end;
163167
extern uint32_t _bt_controller_bss_start;
@@ -723,7 +727,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
723727
goto free_mem;
724728
}
725729

726-
ble_get_npl_element_info(cfg, &npl_info);
730+
r_ble_get_npl_element_info(cfg, &npl_info);
727731
npl_freertos_set_controller_npl_info(&npl_info);
728732
if (npl_freertos_mempool_init() != 0) {
729733
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "npl mempool init failed");
@@ -780,13 +784,6 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
780784
coex_init();
781785
#endif // CONFIG_SW_COEXIST_ENABLE
782786

783-
ret = ble_controller_init(cfg);
784-
if (ret != ESP_OK) {
785-
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_init failed %d", ret);
786-
goto modem_deint;
787-
}
788-
789-
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "ble controller commit:[%s]", ble_controller_get_compile_version());
790787
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
791788
interface_func_t bt_controller_log_interface;
792789
bt_controller_log_interface = esp_bt_controller_log_interface;
@@ -804,11 +801,23 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
804801
#endif // CONFIG_BT_CONTROLLER_LOG_DUMP
805802
if (ret != ESP_OK) {
806803
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_log_init failed %d", ret);
807-
goto controller_init_err;
804+
goto modem_deint;
808805
}
809806
#endif // CONFIG_BT_CONTROLLER_LOG_ENABLED
807+
ret = esp_ble_register_bb_funcs();
808+
if (ret != ESP_OK) {
809+
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "esp_ble_register_bb_funcs failed %d", ret);
810+
goto modem_deint;
811+
}
812+
813+
ret = r_ble_controller_init(cfg);
814+
if (ret != ESP_OK) {
815+
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "r_ble_controller_init failed %d", ret);
816+
goto modem_deint;
817+
}
810818

811-
esp_ble_change_rtc_freq(slow_clk_freq);
819+
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "ble controller commit:[%s]", ble_controller_get_compile_version());
820+
r_esp_ble_change_rtc_freq(slow_clk_freq);
812821

813822
ble_controller_scan_duplicate_config();
814823

@@ -825,7 +834,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
825834
}
826835
ESP_ERROR_CHECK(esp_read_mac((uint8_t *)mac, ESP_MAC_BT));
827836
swap_in_place(mac, 6);
828-
esp_ble_ll_set_public_addr(mac);
837+
r_esp_ble_ll_set_public_addr(mac);
829838

830839
ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
831840

@@ -835,13 +844,13 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
835844

836845
free_controller:
837846
controller_sleep_deinit();
847+
os_msys_deinit();
848+
r_ble_controller_deinit();
849+
modem_deint:
850+
esp_ble_unregister_bb_funcs();
838851
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
839-
controller_init_err:
840852
r_ble_log_deinit_async();
841853
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
842-
os_msys_deinit();
843-
ble_controller_deinit();
844-
modem_deint:
845854
esp_phy_modem_deinit();
846855
// modem_clock_deselect_lp_clock_source(PERIPH_BT_MODULE);
847856
modem_clock_module_disable(PERIPH_BT_MODULE);
@@ -872,10 +881,11 @@ esp_err_t esp_bt_controller_deinit(void)
872881
// modem_clock_deselect_lp_clock_source(PERIPH_BT_MODULE);
873882
modem_clock_module_disable(PERIPH_BT_MODULE);
874883

884+
r_ble_controller_deinit();
885+
esp_ble_unregister_bb_funcs();
875886
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
876887
r_ble_log_deinit_async();
877888
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
878-
ble_controller_deinit();
879889

880890
#if CONFIG_BT_NIMBLE_ENABLED
881891
/* De-initialize default event queue */
@@ -920,7 +930,7 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
920930
coex_enable();
921931
#endif // CONFIG_SW_COEXIST_ENABLE
922932

923-
if (ble_controller_enable(mode) != 0) {
933+
if (r_ble_controller_enable(mode) != 0) {
924934
ret = ESP_FAIL;
925935
goto error;
926936
}
@@ -948,7 +958,7 @@ esp_err_t esp_bt_controller_disable(void)
948958
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state");
949959
return ESP_FAIL;
950960
}
951-
if (ble_controller_disable() != 0) {
961+
if (r_ble_controller_disable() != 0) {
952962
return ESP_FAIL;
953963
}
954964
#if CONFIG_SW_COEXIST_ENABLE
@@ -1082,7 +1092,7 @@ esp_err_t esp_ble_tx_power_set(esp_ble_power_type_t power_type, esp_power_level_
10821092
case ESP_BLE_PWR_TYPE_DEFAULT:
10831093
case ESP_BLE_PWR_TYPE_ADV:
10841094
case ESP_BLE_PWR_TYPE_SCAN:
1085-
if (ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0, power_level) == 0) {
1095+
if (r_ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0, power_level) == 0) {
10861096
stat = ESP_OK;
10871097
}
10881098
break;
@@ -1095,7 +1105,7 @@ esp_err_t esp_ble_tx_power_set(esp_ble_power_type_t power_type, esp_power_level_
10951105
case ESP_BLE_PWR_TYPE_CONN_HDL6:
10961106
case ESP_BLE_PWR_TYPE_CONN_HDL7:
10971107
case ESP_BLE_PWR_TYPE_CONN_HDL8:
1098-
if (ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_CONN, power_type, power_level) == 0) {
1108+
if (r_ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_CONN, power_type, power_level) == 0) {
10991109
stat = ESP_OK;
11001110
}
11011111
break;
@@ -1115,13 +1125,13 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type
11151125
case ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT:
11161126
case ESP_BLE_ENHANCED_PWR_TYPE_SCAN:
11171127
case ESP_BLE_ENHANCED_PWR_TYPE_INIT:
1118-
if (ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0, power_level) == 0) {
1128+
if (r_ble_txpwr_set(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0, power_level) == 0) {
11191129
stat = ESP_OK;
11201130
}
11211131
break;
11221132
case ESP_BLE_ENHANCED_PWR_TYPE_ADV:
11231133
case ESP_BLE_ENHANCED_PWR_TYPE_CONN:
1124-
if (ble_txpwr_set(power_type, handle, power_level) == 0) {
1134+
if (r_ble_txpwr_set(power_type, handle, power_level) == 0) {
11251135
stat = ESP_OK;
11261136
}
11271137
break;
@@ -1141,7 +1151,7 @@ esp_power_level_t esp_ble_tx_power_get(esp_ble_power_type_t power_type)
11411151
case ESP_BLE_PWR_TYPE_ADV:
11421152
case ESP_BLE_PWR_TYPE_SCAN:
11431153
case ESP_BLE_PWR_TYPE_DEFAULT:
1144-
tx_level = ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0);
1154+
tx_level = r_ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0);
11451155
break;
11461156
case ESP_BLE_PWR_TYPE_CONN_HDL0:
11471157
case ESP_BLE_PWR_TYPE_CONN_HDL1:
@@ -1152,7 +1162,7 @@ esp_power_level_t esp_ble_tx_power_get(esp_ble_power_type_t power_type)
11521162
case ESP_BLE_PWR_TYPE_CONN_HDL6:
11531163
case ESP_BLE_PWR_TYPE_CONN_HDL7:
11541164
case ESP_BLE_PWR_TYPE_CONN_HDL8:
1155-
tx_level = ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_CONN, power_type);
1165+
tx_level = r_ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_CONN, power_type);
11561166
break;
11571167
default:
11581168
return ESP_PWR_LVL_INVALID;
@@ -1174,11 +1184,11 @@ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t po
11741184
case ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT:
11751185
case ESP_BLE_ENHANCED_PWR_TYPE_SCAN:
11761186
case ESP_BLE_ENHANCED_PWR_TYPE_INIT:
1177-
tx_level = ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0);
1187+
tx_level = r_ble_txpwr_get(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0);
11781188
break;
11791189
case ESP_BLE_ENHANCED_PWR_TYPE_ADV:
11801190
case ESP_BLE_ENHANCED_PWR_TYPE_CONN:
1181-
tx_level = ble_txpwr_get(power_type, handle);
1191+
tx_level = r_ble_txpwr_get(power_type, handle);
11821192
break;
11831193
default:
11841194
return ESP_PWR_LVL_INVALID;

0 commit comments

Comments
 (0)