From 839007f0d9b9ca0d5a3ea603873c1359590292e7 Mon Sep 17 00:00:00 2001 From: Jin Chen Date: Thu, 21 Nov 2024 11:03:46 +0800 Subject: [PATCH 1/2] fix(ble): fix ble light sleep error on esp32c2 (cherry picked from commit 23f7e33a97ad70ff1e73407650f7b8edbd91fc9a) Co-authored-by: cjin --- components/bt/controller/esp32c2/bt.c | 3 +++ components/bt/controller/lib_esp32c2/esp32c2-bt-lib | 2 +- .../esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld | 13 +++++++------ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/components/bt/controller/esp32c2/bt.c b/components/bt/controller/esp32c2/bt.c index 9757d0a1d3..a57530d2e3 100644 --- a/components/bt/controller/esp32c2/bt.c +++ b/components/bt/controller/esp32c2/bt.c @@ -199,6 +199,9 @@ static void esp_bt_ctrl_log_partition_get_and_erase_first_block(void); /* Local variable definition *************************************************************************** */ +#if CONFIG_ESP32C2_REV_MIN_FULL < 200 +void *g_ble_lll_rfmgmt_env_p; +#endif /* Static variable declare */ static DRAM_ATTR esp_bt_controller_status_t ble_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE; #if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED diff --git a/components/bt/controller/lib_esp32c2/esp32c2-bt-lib b/components/bt/controller/lib_esp32c2/esp32c2-bt-lib index 99ea7d1483..d246fa8764 160000 --- a/components/bt/controller/lib_esp32c2/esp32c2-bt-lib +++ b/components/bt/controller/lib_esp32c2/esp32c2-bt-lib @@ -1 +1 @@ -Subproject commit 99ea7d1483a9e5329d0801293d8c051d0fddefd7 +Subproject commit d246fa876402bcd9b16602dd0615c287ebc936bc diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld index 822fae15c8..86158ac394 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld @@ -766,9 +766,9 @@ r_ble_lll_per_adv_coex_dpc_update_on_start = 0x40001640; r_ble_lll_reset = 0x40001644; r_ble_lll_rfmgmt_controller_sleep_en = 0x40001648; r_ble_lll_rfmgmt_deinit = 0x4000164c; -r_ble_lll_rfmgmt_disable = 0x40001650; -r_ble_lll_rfmgmt_enable = 0x40001654; -r_ble_lll_rfmgmt_enable_now = 0x40001658; +//r_ble_lll_rfmgmt_disable = 0x40001650; +//r_ble_lll_rfmgmt_enable = 0x40001654; +//r_ble_lll_rfmgmt_enable_now = 0x40001658; r_ble_lll_rfmgmt_init = 0x4000165c; r_ble_lll_rfmgmt_is_enabled = 0x40001660; r_ble_lll_rfmgmt_release = 0x40001664; @@ -778,8 +778,8 @@ r_ble_lll_rfmgmt_scan_changed = 0x40001670; r_ble_lll_rfmgmt_sched_changed = 0x40001674; r_ble_lll_rfmgmt_set_sleep_cb = 0x40001678; r_ble_lll_rfmgmt_ticks_to_enabled = 0x4000167c; -r_ble_lll_rfmgmt_timer_exp = 0x40001680; -r_ble_lll_rfmgmt_timer_reschedule = 0x40001684; +//r_ble_lll_rfmgmt_timer_exp = 0x40001680; +//r_ble_lll_rfmgmt_timer_reschedule = 0x40001684; r_ble_lll_rx_pdu_in = 0x40001688; r_ble_lll_rx_pkt_in = 0x4000168c; r_ble_lll_rx_pkt_isr = 0x40001690; @@ -1146,7 +1146,7 @@ r_ble_phy_get_txdbm_by_level = 0x40002edc; r_hal_timer_disable_intr = 0x40002ee0; r_hal_timer_enable_intr = 0x40002ee4; r_hal_timer_task_stop = 0x40002ee8; -r_ble_lll_rfmgmt_env_init = 0x40002eec; +//r_ble_lll_rfmgmt_env_init = 0x40002eec; r_ble_ll_scan_set_aux_ll_flag = 0x40002ef0; r_ble_ll_rf_temp_calibration = 0x40002ef4; r_ble_ll_adv_env_deinit = 0x40002ef8; @@ -1225,5 +1225,6 @@ r_ble_lll_adv_ext_event_rmvd_from_sched = 0x40003018; r_ble_lll_conn_process_rx_data_after_halt = 0x4000301c; r_ble_phy_global_rxbuf_get = 0x40003020; /* Data (.data, .bss, .rodata) */ +g_ble_lll_rfmgmt_env_p = 0x3fcdf3cc; priv_config_additional_opts_ptr = 0x3fcdfa70; g_ble_ll_ctrl_pkt_lengths_eco4_ro = 0x3ff4fbac; From cb9e8a3b3195fb0a0c7f4df069629693714d9eb5 Mon Sep 17 00:00:00 2001 From: Jin Chen Date: Thu, 21 Nov 2024 11:03:48 +0800 Subject: [PATCH 2/2] fix(ble): change ld for ble scan coex issue (cherry picked from commit dd499d7b2e199dab1e56297136ce5af479d01cd9) Co-authored-by: cjin --- components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld | 2 +- components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld index 86158ac394..5c59d8678e 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld @@ -787,7 +787,7 @@ r_ble_lll_scan_abort_aux_sched = 0x40001694; r_ble_lll_scan_aux_data_free = 0x40001698; r_ble_lll_scan_chk_resume = 0x4000169c; r_ble_lll_scan_clean_cur_aux_data = 0x400016a0; -r_ble_lll_scan_coex_event_cb = 0x400016a4; +//r_ble_lll_scan_coex_event_cb = 0x400016a4; r_ble_lll_scan_common_init = 0x400016a8; r_ble_lll_scan_deinit = 0x400016ac; r_ble_lll_scan_duration_period_timers_restart = 0x400016b0; diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld index afd6b9cdee..959cff0d7c 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld @@ -622,7 +622,7 @@ r_ble_lll_rx_pkt_isr = 0x40001690; r_ble_lll_scan_abort_aux_sched = 0x40001694; r_ble_lll_scan_chk_resume = 0x4000169c; r_ble_lll_scan_clean_cur_aux_data = 0x400016a0; -r_ble_lll_scan_coex_event_cb = 0x400016a4; +//r_ble_lll_scan_coex_event_cb = 0x400016a4; r_ble_lll_scan_common_init = 0x400016a8; r_ble_lll_scan_deinit = 0x400016ac; r_ble_lll_scan_duration_period_timers_restart = 0x400016b0;