update radio blobs (#4113)

* update radio blobs

use esp-wifi-sys 0.8.2

* CHANGELOG.md

* fmt

* Address review

* Address review comments

* Address review comments
This commit is contained in:
Björn Quentin 2025-09-17 08:59:00 +02:00 committed by GitHub
parent 54d0da12af
commit 89b81a2f8e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
58 changed files with 3103 additions and 2225 deletions

View File

@ -41,6 +41,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `WifiState` split into `WifiStaState` and `WifiApState` (#4046)
- `Mixed` has been renamed to `ApSta` in `Config` and `Capability` (#4040)
- The memory allocation functions expected by `esp_radio` have been renamed and extended (#3890, #4043)
- Updated radio related drivers to ESP-IDF 5.5.1 (#4113)
- Event handlers are now passed the event by reference (#4113)
### Fixed

View File

@ -33,7 +33,7 @@ esp-alloc = { version = "0.8.0", path = "../esp-alloc", optional = true }
esp-config = { version = "0.5.0", path = "../esp-config" }
esp-metadata-generated = { version = "0.1.0", path = "../esp-metadata-generated" }
esp-sync = { version = "0.0.0", path = "../esp-sync" }
esp-wifi-sys = "0.7.1"
esp-wifi-sys = { version = "0.8.1" }
num-derive = "0.4.2"
num-traits = { version = "0.2.19", default-features = false }
portable_atomic_enum = { version = "0.3.1", features = ["portable-atomic"] }

View File

@ -1,3 +1,6 @@
/* force inclusion from libs */
EXTERN( g_espnow_user_oui );
EXTERN( __esp_radio_strdup );
EXTERN( __ESP_RADIO_G_WIFI_OSI_FUNCS );
EXTERN( __ESP_RADIO_G_WIFI_FEATURE_CAPS );
@ -23,6 +26,11 @@ EXTERN( __esp_radio_usleep );
EXTERN( __esp_radio_phy_enter_critical );
EXTERN( __esp_radio_phy_exit_critical );
EXTERN( __esp_radio_esp_timer_get_time );
EXTERN( __esp_radio_esp_event_post );
EXTERN( __esp_radio_vTaskDelay );
EXTERN( __esp_radio_puts );
EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
PROVIDE( strdup = __esp_radio_strdup );
PROVIDE( g_wifi_osi_funcs = __ESP_RADIO_G_WIFI_OSI_FUNCS );
@ -49,3 +57,8 @@ PROVIDE( usleep = __esp_radio_usleep );
PROVIDE( phy_enter_critical = __esp_radio_phy_enter_critical );
PROVIDE( phy_exit_critical = __esp_radio_phy_exit_critical );
PROVIDE( esp_timer_get_time = __esp_radio_esp_timer_get_time );
PROVIDE( esp_event_post = __esp_radio_esp_event_post );
PROVIDE( vTaskDelay = __esp_radio_vTaskDelay );
PROVIDE( puts = __esp_radio_puts );
PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );

View File

@ -14,6 +14,11 @@ EXTERN( __esp_radio_fopen );
EXTERN( __esp_radio_fgets );
EXTERN( __esp_radio_fclose );
EXTERN( __esp_radio_esp_timer_get_time );
EXTERN( __esp_radio_esp_event_post );
EXTERN( __esp_radio_vTaskDelay );
EXTERN( __esp_radio_puts );
EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
PROVIDE( strdup = __esp_radio_strdup );
PROVIDE( g_wifi_osi_funcs = __ESP_RADIO_G_WIFI_OSI_FUNCS );
@ -31,6 +36,11 @@ PROVIDE( fopen = __esp_radio_fopen );
PROVIDE( fgets = __esp_radio_fgets );
PROVIDE( fclose = __esp_radio_fclose );
PROVIDE( esp_timer_get_time = __esp_radio_esp_timer_get_time );
PROVIDE( esp_event_post = __esp_radio_esp_event_post );
PROVIDE( vTaskDelay = __esp_radio_vTaskDelay );
PROVIDE( puts = __esp_radio_puts );
PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );
#IF wifi
EXTERN( __esp_radio_misc_nvs_deinit );

View File

@ -14,6 +14,11 @@ EXTERN( __esp_radio_fopen );
EXTERN( __esp_radio_fgets );
EXTERN( __esp_radio_fclose );
EXTERN( __esp_radio_esp_timer_get_time );
EXTERN( __esp_radio_esp_event_post );
EXTERN( __esp_radio_vTaskDelay );
EXTERN( __esp_radio_puts );
EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
PROVIDE( strdup = __esp_radio_strdup );
PROVIDE( g_wifi_osi_funcs = __ESP_RADIO_G_WIFI_OSI_FUNCS );
@ -31,6 +36,11 @@ PROVIDE( fopen = __esp_radio_fopen );
PROVIDE( fgets = __esp_radio_fgets );
PROVIDE( fclose = __esp_radio_fclose );
PROVIDE( esp_timer_get_time = __esp_radio_esp_timer_get_time );
PROVIDE( esp_event_post = __esp_radio_esp_event_post );
PROVIDE( vTaskDelay = __esp_radio_vTaskDelay );
PROVIDE( puts = __esp_radio_puts );
PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );
#IF wifi
EXTERN( __esp_radio_misc_nvs_deinit );

View File

@ -14,6 +14,11 @@ EXTERN( __esp_radio_fopen );
EXTERN( __esp_radio_fgets );
EXTERN( __esp_radio_fclose );
EXTERN( __esp_radio_esp_timer_get_time );
EXTERN( __esp_radio_esp_event_post );
EXTERN( __esp_radio_vTaskDelay );
EXTERN( __esp_radio_puts );
EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
PROVIDE( strdup = __esp_radio_strdup );
PROVIDE( g_wifi_osi_funcs = __ESP_RADIO_G_WIFI_OSI_FUNCS );
@ -31,6 +36,11 @@ PROVIDE( fopen = __esp_radio_fopen );
PROVIDE( fgets = __esp_radio_fgets );
PROVIDE( fclose = __esp_radio_fclose );
PROVIDE( esp_timer_get_time = __esp_radio_esp_timer_get_time );
PROVIDE( esp_event_post = __esp_radio_esp_event_post );
PROVIDE( vTaskDelay = __esp_radio_vTaskDelay );
PROVIDE( puts = __esp_radio_puts );
PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );
#IF wifi
EXTERN( __esp_radio_misc_nvs_deinit );

View File

@ -17,6 +17,9 @@ EXTERN( __esp_radio_fopen );
EXTERN( __esp_radio_fgets );
EXTERN( __esp_radio_fclose );
EXTERN( __esp_radio_esp_timer_get_time );
EXTERN( __esp_radio_puts );
EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
PROVIDE( strdup = __esp_radio_strdup );
PROVIDE( g_wifi_osi_funcs = __ESP_RADIO_G_WIFI_OSI_FUNCS );
@ -37,3 +40,6 @@ PROVIDE( fopen = __esp_radio_fopen );
PROVIDE( fgets = __esp_radio_fgets );
PROVIDE( fclose = __esp_radio_fclose );
PROVIDE( esp_timer_get_time = __esp_radio_esp_timer_get_time );
PROVIDE( puts = __esp_radio_puts );
PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );

View File

@ -1,3 +1,6 @@
/* force inclusion from libs */
EXTERN( g_espnow_user_oui );
EXTERN( __esp_radio_strdup );
EXTERN( __esp_radio_esp_timer_get_time );
EXTERN( __ESP_RADIO_G_WIFI_OSI_FUNCS );
@ -23,6 +26,11 @@ EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
EXTERN( __esp_radio_phy_enter_critical );
EXTERN( __esp_radio_phy_exit_critical );
EXTERN( __esp_radio_esp_event_post );
EXTERN( __esp_radio_vTaskDelay );
EXTERN( __esp_radio_puts );
EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
PROVIDE( strdup = __esp_radio_strdup );
PROVIDE( esp_timer_get_time = __esp_radio_esp_timer_get_time );
@ -49,3 +57,8 @@ PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );
PROVIDE( phy_enter_critical = __esp_radio_phy_enter_critical );
PROVIDE( phy_exit_critical = __esp_radio_phy_exit_critical );
PROVIDE( esp_event_post = __esp_radio_esp_event_post );
PROVIDE( vTaskDelay = __esp_radio_vTaskDelay );
PROVIDE( puts = __esp_radio_puts );
PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );

View File

@ -1,3 +1,6 @@
/* force inclusion from libs */
EXTERN( g_espnow_user_oui );
EXTERN( __esp_radio_strdup );
EXTERN( __ESP_RADIO_G_WIFI_OSI_FUNCS );
EXTERN( __ESP_RADIO_G_WIFI_FEATURE_CAPS );
@ -21,6 +24,11 @@ EXTERN( __esp_radio_fclose );
EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
EXTERN( __esp_radio_esp_timer_get_time );
EXTERN( __esp_radio_esp_event_post );
EXTERN( __esp_radio_vTaskDelay );
EXTERN( __esp_radio_puts );
EXTERN( __esp_radio_sleep );
EXTERN( __esp_radio_usleep );
PROVIDE( strdup = __esp_radio_strdup );
PROVIDE( g_wifi_osi_funcs = __ESP_RADIO_G_WIFI_OSI_FUNCS );
@ -45,3 +53,8 @@ PROVIDE( fclose = __esp_radio_fclose );
PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );
PROVIDE( esp_timer_get_time = __esp_radio_esp_timer_get_time );
PROVIDE( esp_event_post = __esp_radio_esp_event_post );
PROVIDE( vTaskDelay = __esp_radio_vTaskDelay );
PROVIDE( puts = __esp_radio_puts );
PROVIDE( sleep = __esp_radio_sleep );
PROVIDE( usleep = __esp_radio_usleep );

View File

@ -312,7 +312,7 @@ pub(crate) fn ble_init() {
#[allow(static_mut_refs)]
#[cfg(feature = "sys-logs")]
{
extern "C" {
unsafe extern "C" {
static mut g_bt_plf_log_level: u32;
}
@ -326,16 +326,12 @@ pub(crate) fn ble_init() {
let mut cfg = ble_os_adapter_chip_specific::create_ble_config();
let res = btdm_osi_funcs_register(addr_of!(G_OSI_FUNCS));
if res != 0 {
panic!("btdm_osi_funcs_register returned {}", res);
}
assert!(res == 0, "btdm_osi_funcs_register returned {}", res);
#[cfg(coex)]
{
let res = crate::wifi::coex_init();
if res != 0 {
panic!("got error");
}
assert!(res == 0, "coex_init failed");
}
let version = btdm_controller_get_compile_version();
@ -355,9 +351,7 @@ pub(crate) fn ble_init() {
&mut cfg as *mut esp_bt_controller_config_t,
); // see btdm_config_mask_load for mask
if res != 0 {
panic!("btdm_controller_init returned {}", res);
}
assert!(res == 0, "btdm_controller_init returned {}", res);
debug!("The btdm_controller_init was initialized");

View File

@ -318,6 +318,7 @@ pub(crate) struct ExtFuncsT {
os_random: Option<unsafe extern "C" fn() -> u32>,
ecc_gen_key_pair: Option<unsafe extern "C" fn(*const u8, *const u8) -> i32>,
ecc_gen_dh_key: Option<unsafe extern "C" fn(*const u8, *const u8, *const u8, *const u8) -> i32>,
#[cfg(not(esp32h2))]
esp_reset_rpa_moudle: Option<unsafe extern "C" fn()>,
#[cfg(esp32c2)]
esp_bt_track_pll_cap: Option<unsafe extern "C" fn()>,
@ -326,7 +327,7 @@ pub(crate) struct ExtFuncsT {
static G_OSI_FUNCS: ExtFuncsT = ExtFuncsT {
#[cfg(not(esp32c2))]
ext_version: 0x20240422,
ext_version: 0x20250415,
#[cfg(esp32c2)]
ext_version: 0x20221122,
@ -352,6 +353,7 @@ static G_OSI_FUNCS: ExtFuncsT = ExtFuncsT {
os_random: Some(os_random),
ecc_gen_key_pair: Some(ecc_gen_key_pair),
ecc_gen_dh_key: Some(ecc_gen_dh_key),
#[cfg(not(esp32h2))]
esp_reset_rpa_moudle: Some(self::ble_os_adapter_chip_specific::esp_reset_rpa_moudle),
#[cfg(esp32c2)]
esp_bt_track_pll_cap: None,
@ -690,8 +692,18 @@ unsafe extern "C" fn ble_npl_callout_get_ticks(_callout: *const ble_npl_callout)
todo!()
}
unsafe extern "C" fn ble_npl_callout_is_active(_callout: *const ble_npl_callout) -> bool {
todo!()
unsafe extern "C" fn ble_npl_callout_is_active(callout: *const ble_npl_callout) -> bool {
debug!(
"Missing real implementation: ble_npl_callout_is_active {:?}",
callout
);
assert!(unsafe { (*callout).dummy != 0 });
unsafe {
let co = (*callout).dummy as *mut Callout;
compat::timer_compat::compat_timer_is_active(&raw mut (*co).timer_handle)
}
}
unsafe extern "C" fn ble_npl_callout_mem_reset(callout: *const ble_npl_callout) {
@ -1078,9 +1090,7 @@ pub(crate) fn ble_init() {
}
let res = esp_register_ext_funcs(&G_OSI_FUNCS as *const ExtFuncsT);
if res != 0 {
panic!("esp_register_ext_funcs returned {}", res);
}
assert!(res == 0, "esp_register_ext_funcs returned {}", res);
#[cfg(esp32c2)]
{
@ -1089,17 +1099,13 @@ pub(crate) fn ble_init() {
fn esp_ble_rom_func_ptr_init_all() -> i32;
}
let res = esp_ble_rom_func_ptr_init_all();
if res != 0 {
panic!("esp_ble_rom_func_ptr_init_all returned {}", res);
}
assert!(res == 0, "esp_ble_rom_func_ptr_init_all returned {}", res);
}
#[cfg(coex)]
{
let res = crate::wifi::coex_init();
if res != 0 {
panic!("got error");
}
assert!(res == 0, "coex_init failed");
}
ble_os_adapter_chip_specific::bt_periph_module_enable();
@ -1107,9 +1113,7 @@ pub(crate) fn ble_init() {
ble_os_adapter_chip_specific::disable_sleep_mode();
let res = esp_register_npl_funcs(core::ptr::addr_of!(G_NPL_FUNCS));
if res != 0 {
panic!("esp_register_npl_funcs returned {}", res);
}
assert!(res == 0, "esp_register_npl_funcs returned {}", res);
let npl_info = BleNplCountInfoT {
evt_count: 0,
@ -1128,18 +1132,15 @@ pub(crate) fn ble_init() {
&cfg as *const esp_bt_controller_config_t,
&npl_info as *const BleNplCountInfoT,
);
if res != 0 {
panic!("ble_get_npl_element_info returned {}", res);
}
assert!(res == 0, "ble_get_npl_element_info returned {}", res);
// not really using npl_info here ... remove it?
#[cfg(esp32c2)]
{
// Initialize the global memory pool
let ret = os_msys_buf_alloc();
if !ret {
panic!("os_msys_buf_alloc failed");
}
assert!(ret, "os_msys_buf_alloc failed");
os_msys_init();
}
@ -1152,9 +1153,7 @@ pub(crate) fn ble_init() {
#[cfg(coex)]
{
let rc = ble_osi_coex_funcs_register(&G_COEX_FUNCS as *const OsiCoexFuncsT);
if rc != 0 {
panic!("ble_osi_coex_funcs_register returned {}", rc);
}
assert!(rc == 0, "ble_osi_coex_funcs_register returned {}", rc);
}
#[cfg(not(esp32c2))]
@ -1163,9 +1162,7 @@ pub(crate) fn ble_init() {
fn esp_ble_register_bb_funcs() -> i32;
}
let res = esp_ble_register_bb_funcs();
if res != 0 {
panic!("esp_ble_register_bb_funcs returned {}", res);
}
assert!(res == 0, "esp_ble_register_bb_funcs returned {}", res);
}
#[cfg(esp32c2)]
@ -1173,9 +1170,8 @@ pub(crate) fn ble_init() {
#[cfg(not(esp32c2))]
let res = r_ble_controller_init(&cfg as *const esp_bt_controller_config_t);
if res != 0 {
panic!("ble_controller_init returned {}", res);
}
assert!(res == 0, "ble_controller_init returned {}", res);
#[cfg(not(esp32c2))]
{
unsafe extern "C" {
@ -1186,12 +1182,33 @@ pub(crate) fn ble_init() {
msys_cnt2: u16,
from_heap: u8,
) -> i32;
fn base_stack_initEnv() -> i32;
fn conn_stack_initEnv() -> i32;
fn adv_stack_initEnv() -> i32;
fn extAdv_stack_initEnv() -> i32;
fn sync_stack_initEnv() -> i32;
}
let res = r_esp_ble_msys_init(256, 320, 12, 24, 1);
let res = base_stack_initEnv();
assert!(res == 0, "base_stack_initEnv returned {}", res);
let res = conn_stack_initEnv();
assert!(res == 0, "conn_stack_initEnv returned {}", res);
let res = adv_stack_initEnv();
assert!(res == 0, "adv_stack_initEnv returned {}", res);
let res = extAdv_stack_initEnv();
if res != 0 {
panic!("esp_ble_msys_init returned {}", res);
panic!("extAdv_stack_initEnv returned {}", res);
}
let res = sync_stack_initEnv();
assert!(res == 0, "sync_stack_initEnv returned {}", res);
let res = r_esp_ble_msys_init(256, 320, 12, 24, 1);
assert!(res == 0, "esp_ble_msys_init returned {}", res);
}
#[cfg(coex)]
@ -1222,9 +1239,7 @@ pub(crate) fn ble_init() {
let res = ble_controller_enable(1); // 1 = BLE
#[cfg(not(esp32c2))]
let res = r_ble_controller_enable(1); // 1 = BLE
if res != 0 {
panic!("ble_controller_enable returned {}", res);
}
assert!(res == 0, "ble_controller_enable returned {}", res);
// this is to avoid (ASSERT r_ble_hci_ram_hs_cmd_tx:34 0 0)
// we wait a bit to make sure the ble task initialized everything
@ -1242,6 +1257,15 @@ pub(crate) fn ble_deinit() {
esp_hal::Internal::conjure()
});
#[cfg(not(esp32c2))]
unsafe extern "C" {
fn base_stack_deinitEnv() -> i32;
fn conn_stack_deinitEnv() -> i32;
fn adv_stack_deinitEnv() -> i32;
fn extAdv_stack_deinitEnv() -> i32;
fn sync_stack_deinitEnv() -> i32;
}
unsafe {
// Prevent ASSERT r_ble_ll_reset:1069 ... ...
// TODO: the cause of the issue is that the BLE controller can be dropped while the driver
@ -1253,6 +1277,15 @@ pub(crate) fn ble_deinit() {
#[cfg(not(esp32c2))]
npl::r_ble_controller_disable();
#[cfg(not(esp32c2))]
{
conn_stack_deinitEnv();
sync_stack_deinitEnv();
extAdv_stack_deinitEnv();
adv_stack_deinitEnv();
base_stack_deinitEnv();
}
#[cfg(not(esp32c2))]
let res = npl::r_ble_controller_deinit();

View File

@ -302,7 +302,12 @@ pub(crate) fn create_ble_config() -> esp_bt_controller_config_t {
dup_list_refresh_period: 0,
ble_scan_backoff: false,
pcm_fsyncshp: 0,
magic: 0x20240722,
enc_key_sz_min: 7,
ble_llcp_disc_flag: 0,
ble_aa_check: false,
ble_chan_ass_en: 0,
ble_ping_en: 0,
magic: 0x20250318,
}
}

View File

@ -16,7 +16,7 @@ pub(crate) static mut ISR_INTERRUPT_7: (*mut c_void, *mut c_void) =
// keep them aligned with BT_CONTROLLER_INIT_CONFIG_DEFAULT in ESP-IDF
// ideally _some_ of these values should be configurable
pub(crate) static BLE_CONFIG: esp_bt_controller_config_t = esp_bt_controller_config_t {
config_version: 0x20231124,
config_version: 0x20250310,
ble_ll_resolv_list_size: 4,
ble_hci_evt_hi_buf_count: 30,
ble_hci_evt_lo_buf_count: 8,
@ -67,6 +67,11 @@ pub(crate) static BLE_CONFIG: esp_bt_controller_config_t = esp_bt_controller_con
version_num: 0, // chips revision: EFUSE.blk0_rdata5.rd_wafer_version_minor
ignore_wl_for_direct_adv: 0,
csa2_select: 0,
ble_aa_check: 0,
ble_llcp_disc_flag: 0, /* (BT_CTRL_BLE_LLCP_CONN_UPDATE | BT_CTRL_BLE_LLCP_CHAN_MAP_UPDATE |
* BT_CTRL_BLE_LLCP_PHY_UPDATE */
scan_backoff_upperlimitmax: 256,
vhci_enabled: 0,
config_magic: 0x5A5AA5A5,
};
@ -127,3 +132,10 @@ pub(super) unsafe extern "C" fn esp_reset_rpa_moudle() {
let mut bt = unsafe { BT::steal() };
bt.reset_rpa();
}
// Provide the symbol for < eco4 to make the linker happy
#[unsafe(no_mangle)]
unsafe fn g_ble_lll_rfmgmt_env_p() -> *mut esp_wifi_sys::c_types::c_void {
// prevent "undefined symbol: g_ble_lll_rfmgmt_env_p" for ESP32-C2 < eco4
unreachable!()
}

View File

@ -84,11 +84,13 @@ pub(super) struct osi_funcs_s {
btdm_rom_table_ready: Option<unsafe extern "C" fn()>,
coex_bt_wakeup_request: Option<unsafe extern "C" fn()>,
coex_bt_wakeup_request_end: Option<unsafe extern "C" fn()>,
get_time_us: Option<unsafe extern "C" fn() -> u64>,
assert: Option<unsafe extern "C" fn()>,
}
pub(super) static G_OSI_FUNCS: osi_funcs_s = osi_funcs_s {
magic: 0xfadebead,
version: 0x00010009,
version: 0x0001000A,
interrupt_alloc: Some(ble_os_adapter_chip_specific::interrupt_set),
interrupt_free: Some(ble_os_adapter_chip_specific::interrupt_clear),
interrupt_handler_set: Some(ble_os_adapter_chip_specific::interrupt_handler_set),
@ -149,8 +151,19 @@ pub(super) static G_OSI_FUNCS: osi_funcs_s = osi_funcs_s {
btdm_rom_table_ready: Some(btdm_rom_table_ready_wrapper),
coex_bt_wakeup_request: Some(coex_bt_wakeup_request),
coex_bt_wakeup_request_end: Some(coex_bt_wakeup_request_end),
get_time_us: Some(get_time_us_wrapper),
assert: Some(assert_wrapper),
};
extern "C" fn get_time_us_wrapper() -> u64 {
// Get time in microseconds since boot
crate::preempt::now()
}
extern "C" fn assert_wrapper() {
panic!("assert_wrapper called - inspect the logs");
}
extern "C" fn coex_schm_register_btdm_callback(_callback: *const ()) -> i32 {
trace!("coex_schm_register_btdm_callback");
@ -235,11 +248,32 @@ extern "C" fn ets_delay_us_wrapper(us: u32) {
}
extern "C" fn btdm_rom_table_ready_wrapper() {
trace!("btdm_rom_table_ready_wrapper not implemented");
trace!("btdm_rom_table_ready_wrapper");
// #if BT_BLE_CCA_MODE == 2
// btdm_cca_feature_enable();
// #endif
unsafe extern "C" {
// fn ble_cca_funcs_reset();
fn ble_dtm_funcs_reset();
fn ble_42_adv_funcs_reset();
fn ble_init_funcs_reset();
fn ble_con_funcs_reset();
fn ble_scan_funcs_reset();
fn ble_ext_adv_funcs_reset();
fn ble_ext_scan_funcs_reset();
fn ble_base_funcs_reset();
fn ble_enc_funcs_reset();
}
unsafe {
ble_base_funcs_reset();
ble_42_adv_funcs_reset();
ble_ext_adv_funcs_reset();
ble_dtm_funcs_reset();
ble_scan_funcs_reset();
ble_ext_scan_funcs_reset();
ble_enc_funcs_reset();
ble_init_funcs_reset();
ble_con_funcs_reset();
}
}
unsafe extern "C" {
@ -250,8 +284,7 @@ pub(crate) fn create_ble_config() -> esp_bt_controller_config_t {
// keep them aligned with BT_CONTROLLER_INIT_CONFIG_DEFAULT in ESP-IDF
// ideally _some_ of these values should be configurable
esp_bt_controller_config_t {
magic: 0x5a5aa5a5,
version: 0x02404010,
version: 0x02505080,
controller_task_stack_size: 8192,
controller_task_prio: 200,
controller_task_run_cpu: 0,
@ -284,10 +317,23 @@ pub(crate) fn create_ble_config() -> esp_bt_controller_config_t {
scan_backoff_upperlimitmax: 0,
ble_50_feat_supp: true, // BT_CTRL_50_FEATURE_SUPPORT
ble_cca_mode: 0,
ble_chan_ass_en: 0,
ble_data_lenth_zero_aux: 0,
ble_ping_en: 0,
ble_llcp_disc_flag: 0b111, /* (BT_CTRL_BLE_LLCP_CONN_UPDATE |
* BT_CTRL_BLE_LLCP_CHAN_MAP_UPDATE |
* BT_CTRL_BLE_LLCP_PHY_UPDATE) */
run_in_flash: false,
dtm_en: true,
enc_en: true,
qa_test: false,
connect_en: true,
scan_en: true,
ble_aa_check: true,
ble_log_mode_en: if cfg!(feature = "sys-logs") { 4095 } else { 0 },
ble_log_level: if cfg!(feature = "sys-logs") { 5 } else { 0 },
adv_en: true,
magic: 0x5a5aa5a5,
}
}

View File

@ -17,7 +17,7 @@ pub(crate) static mut ISR_INTERRUPT_7: (*mut c_void, *mut c_void) =
// keep them aligned with BT_CONTROLLER_INIT_CONFIG_DEFAULT in ESP-IDF
// ideally _some_ of these values should be configurable
pub(crate) static BLE_CONFIG: esp_bt_controller_config_t = esp_bt_controller_config_t {
config_version: 0x20240422,
config_version: 0x20250606,
ble_ll_resolv_list_size: 4,
ble_hci_evt_hi_buf_count: 30,
ble_hci_evt_lo_buf_count: 8,
@ -59,12 +59,25 @@ pub(crate) static BLE_CONFIG: esp_bt_controller_config_t = esp_bt_controller_con
cca_low_tx_pwr: 0, //???
main_xtal_freq: 40,
ignore_wl_for_direct_adv: 0,
config_magic: 0x5A5AA5A5,
cpu_freq_mhz: 160,
enable_pcl: 0, // CONFIG_BT_LE_POWER_CONTROL_ENABLED
version_num: 0,
csa2_select: 1,
enable_csr: 0,
ble_aa_check: 0,
ble_llcp_disc_flag: 0b111, /* (BT_CTRL_BLE_LLCP_CONN_UPDATE | BT_CTRL_BLE_LLCP_CHAN_MAP_UPDATE | BT_CTRL_BLE_LLCP_PHY_UPDATE) */
scan_backoff_upperlimitmax: 256,
ble_chan_ass_en: 0,
ble_data_lenth_zero_aux: 0,
vhci_enabled: 0,
ptr_check_enabled: 0,
ble_adv_tx_options: 0,
skip_unnecessary_checks_en: 0,
fast_conn_data_tx_en: 0,
ch39_txpwr: 9,
adv_rsv_cnt: 1,
conn_rsv_cnt: 2,
config_magic: 0x5A5AA5A5,
};
pub(crate) fn bt_periph_module_enable() {

View File

@ -17,7 +17,7 @@ pub(crate) static mut ISR_INTERRUPT_3: (*mut c_void, *mut c_void) =
// keep them aligned with BT_CONTROLLER_INIT_CONFIG_DEFAULT in ESP-IDF
// ideally _some_ of these values should be configurable
pub(crate) static BLE_CONFIG: esp_bt_controller_config_t = esp_bt_controller_config_t {
config_version: 0x20240422,
config_version: 0x20250606,
ble_ll_resolv_list_size: 4,
ble_hci_evt_hi_buf_count: 30,
ble_hci_evt_lo_buf_count: 8,
@ -59,12 +59,26 @@ pub(crate) static BLE_CONFIG: esp_bt_controller_config_t = esp_bt_controller_con
cca_low_tx_pwr: 0, //???
main_xtal_freq: 32,
ignore_wl_for_direct_adv: 0,
config_magic: 0x5A5AA5A5,
cpu_freq_mhz: 96,
enable_pcl: 0,
// version_num: 0,
csa2_select: 1,
enable_csr: 0,
ble_aa_check: 0,
ble_llcp_disc_flag: 0, /* (BT_CTRL_BLE_LLCP_CONN_UPDATE | BT_CTRL_BLE_LLCP_CHAN_MAP_UPDATE |
* BT_CTRL_BLE_LLCP_PHY_UPDATE) */
scan_backoff_upperlimitmax: 256,
ble_chan_ass_en: 0,
ble_data_lenth_zero_aux: 0,
vhci_enabled: 0,
ptr_check_enabled: 0,
ble_adv_tx_options: 0,
skip_unnecessary_checks_en: 0,
fast_conn_data_tx_en: 0,
ch39_txpwr: 9,
adv_rsv_cnt: 1,
conn_rsv_cnt: 2,
config_magic: 0x5A5AA5A5,
};
pub(crate) fn bt_periph_module_enable() {
@ -119,11 +133,3 @@ pub(super) fn ble_rtc_clk_init() {
let mut bt = unsafe { BT::steal() };
bt.ble_rtc_clk_init();
}
pub(super) unsafe extern "C" fn esp_reset_rpa_moudle() {
trace!("esp_reset_rpa_moudle");
// stealing BT is safe, since it is passed into the initialization function of the BLE
// controller.
let mut bt = unsafe { BT::steal() };
bt.reset_rpa();
}

View File

@ -85,11 +85,13 @@ pub(super) struct osi_funcs_s {
btdm_rom_table_ready: Option<unsafe extern "C" fn()>,
coex_bt_wakeup_request: Option<unsafe extern "C" fn()>,
coex_bt_wakeup_request_end: Option<unsafe extern "C" fn()>,
get_time_us: Option<unsafe extern "C" fn() -> u64>,
assert: Option<unsafe extern "C" fn()>,
}
pub(super) static G_OSI_FUNCS: osi_funcs_s = osi_funcs_s {
magic: 0xfadebead,
version: 0x00010009,
version: 0x0001000A,
interrupt_alloc: Some(ble_os_adapter_chip_specific::interrupt_set),
interrupt_free: Some(ble_os_adapter_chip_specific::interrupt_clear),
interrupt_handler_set: Some(ble_os_adapter_chip_specific::interrupt_handler_set),
@ -150,8 +152,19 @@ pub(super) static G_OSI_FUNCS: osi_funcs_s = osi_funcs_s {
btdm_rom_table_ready: Some(btdm_rom_table_ready_wrapper),
coex_bt_wakeup_request: Some(coex_bt_wakeup_request),
coex_bt_wakeup_request_end: Some(coex_bt_wakeup_request_end),
get_time_us: Some(get_time_us_wrapper),
assert: Some(assert_wrapper),
};
extern "C" fn get_time_us_wrapper() -> u64 {
// Get time in microseconds since boot
crate::preempt::now()
}
extern "C" fn assert_wrapper() {
panic!("assert_wrapper called - inspect the logs");
}
extern "C" fn coex_schm_register_btdm_callback(_callback: *const ()) -> i32 {
trace!("coex_schm_register_btdm_callback");
@ -236,11 +249,32 @@ extern "C" fn ets_delay_us_wrapper(us: u32) {
}
extern "C" fn btdm_rom_table_ready_wrapper() {
trace!("btdm_rom_table_ready_wrapper is NOT implemented");
trace!("btdm_rom_table_ready_wrapper");
// #if BT_BLE_CCA_MODE == 2
// btdm_cca_feature_enable();
// #endif
unsafe extern "C" {
// fn ble_cca_funcs_reset();
fn ble_dtm_funcs_reset();
fn ble_42_adv_funcs_reset();
fn ble_init_funcs_reset();
fn ble_con_funcs_reset();
fn ble_scan_funcs_reset();
fn ble_ext_adv_funcs_reset();
fn ble_ext_scan_funcs_reset();
fn ble_base_funcs_reset();
fn ble_enc_funcs_reset();
}
unsafe {
ble_base_funcs_reset();
ble_42_adv_funcs_reset();
ble_ext_adv_funcs_reset();
ble_dtm_funcs_reset();
ble_scan_funcs_reset();
ble_ext_scan_funcs_reset();
ble_enc_funcs_reset();
ble_init_funcs_reset();
ble_con_funcs_reset();
}
}
unsafe extern "C" {
@ -251,8 +285,7 @@ pub(crate) fn create_ble_config() -> esp_bt_controller_config_t {
// keep them aligned with BT_CONTROLLER_INIT_CONFIG_DEFAULT in ESP-IDF
// ideally _some_ of these values should be configurable
esp_bt_controller_config_t {
magic: 0x5a5aa5a5,
version: 0x02404010,
version: 0x02505080,
controller_task_stack_size: 8192,
controller_task_prio: 200,
controller_task_run_cpu: 0,
@ -285,10 +318,23 @@ pub(crate) fn create_ble_config() -> esp_bt_controller_config_t {
scan_backoff_upperlimitmax: 0,
ble_50_feat_supp: true, // BT_CTRL_50_FEATURE_SUPPORT
ble_cca_mode: 0,
ble_chan_ass_en: 0,
ble_data_lenth_zero_aux: 0,
ble_ping_en: 0,
ble_llcp_disc_flag: 0b111, /* (BT_CTRL_BLE_LLCP_CONN_UPDATE |
* BT_CTRL_BLE_LLCP_CHAN_MAP_UPDATE
* |BT_CTRL_BLE_LLCP_PHY_UPDATE) */
run_in_flash: false,
dtm_en: true,
enc_en: true,
qa_test: false,
connect_en: true,
scan_en: true,
ble_aa_check: true,
ble_log_mode_en: if cfg!(feature = "sys-logs") { 4095 } else { 0 },
ble_log_level: if cfg!(feature = "sys-logs") { 5 } else { 0 },
adv_en: true,
magic: 0x5a5aa5a5,
}
}

View File

@ -238,7 +238,7 @@ pub unsafe extern "C" fn read_mac(mac: *mut u8, type_: u32) -> c_int {
// other functions
#[unsafe(no_mangle)]
pub unsafe extern "C" fn puts(s: *const c_char) {
pub unsafe extern "C" fn __esp_radio_puts(s: *const c_char) {
unsafe {
let cstr = str_from_c(s);
info!("{}", cstr);
@ -446,15 +446,6 @@ pub fn set_phy_calibration_data(data: &[u8; core::mem::size_of::<esp_phy_calibra
///
/// *************************************************************************
pub unsafe extern "C" fn queue_create(queue_len: u32, item_size: u32) -> *mut c_void {
// TODO remove this once fixed in esp_supplicant AND we updated to the fixed
// version - JIRA: WIFI-6676
let (queue_len, item_size) = if queue_len != 3 && item_size != 4 {
(queue_len, item_size)
} else {
warn!("Fixing queue item_size");
(3, 8)
};
crate::compat::queue::queue_create(queue_len as i32, item_size as i32).cast()
}
@ -635,3 +626,34 @@ pub unsafe extern "C" fn queue_recv_from_isr(
pub unsafe extern "C" fn queue_msg_waiting(queue: *mut c_void) -> u32 {
crate::compat::queue::queue_messages_waiting(queue.cast())
}
#[allow(unused)]
#[unsafe(no_mangle)]
pub unsafe extern "C" fn __esp_radio_esp_event_post(
event_base: *const c_char,
event_id: i32,
event_data: *mut c_void,
event_data_size: usize,
ticks_to_wait: u32,
) -> i32 {
#[cfg(feature = "wifi")]
return unsafe {
crate::wifi::event_post(
event_base,
event_id,
event_data,
event_data_size,
ticks_to_wait,
)
};
#[cfg(not(feature = "wifi"))]
return -1;
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn __esp_radio_vTaskDelay(ticks: u32) {
unsafe {
crate::compat::common::__esp_radio_usleep(crate::time::blob_ticks_to_micros(ticks));
}
}

View File

@ -44,17 +44,22 @@ pub(crate) fn thread_sem_get() -> *mut c_void {
/// Implementation of sleep() from newlib in esp-idf.
/// components/newlib/time.c
#[unsafe(no_mangle)]
pub(crate) unsafe extern "C" fn sleep(seconds: c_uint) -> c_uint {
pub(crate) unsafe extern "C" fn __esp_radio_sleep(seconds: c_uint) -> c_uint {
trace!("sleep");
unsafe { usleep(seconds * 1_000_000) };
unsafe { __esp_radio_usleep(seconds * 1_000_000) };
0
}
/// Implementation of usleep() from newlib in esp-idf.
/// components/newlib/time.c
#[unsafe(no_mangle)]
unsafe extern "C" fn usleep(us: u32) -> c_int {
pub(crate) unsafe extern "C" fn __esp_radio_usleep(us: u32) -> c_int {
#[cfg(any(feature = "wifi", feature = "ble"))]
crate::preempt::usleep(us);
#[cfg(not(any(feature = "wifi", feature = "ble")))]
crate::hal::delay::Delay::new().delay_micros(us);
0
}

View File

@ -37,6 +37,19 @@ pub(crate) fn compat_timer_disarm(ets_timer: *mut ets_timer) {
}
}
pub(crate) fn compat_timer_is_active(ets_timer: *mut ets_timer) -> bool {
trace!("timer disarm");
let ets_timer = unwrap!(unsafe { ets_timer.as_mut() }, "ets_timer is null");
if let Some(timer) = TimerPtr::new(ets_timer.priv_.cast()) {
let timer = unsafe { TimerHandle::ref_from_ptr(&timer) };
timer.is_active()
} else {
false
}
}
fn delete_timer(ets_timer: &mut ets_timer) {
if let Some(timer) = TimerPtr::new(ets_timer.priv_.cast()) {
let timer = unsafe { TimerHandle::from_ptr(timer) };

View File

@ -845,7 +845,7 @@ impl<'d> EspNow<'d> {
}
}
unsafe extern "C" fn send_cb(_mac_addr: *const u8, status: esp_now_send_status_t) {
unsafe extern "C" fn send_cb(_tx_info: *const esp_now_send_info_t, status: esp_now_send_status_t) {
let is_success = status == esp_now_send_status_t_ESP_NOW_SEND_SUCCESS;
ESP_NOW_SEND_STATUS.store(is_success, Ordering::Relaxed);

View File

@ -87,6 +87,7 @@ macro_rules! impl_wifi_event {
/// See [`WifiEvent`].
#[derive(Copy, Clone)]
pub struct $newtype;
impl sealed::Event for $newtype {
unsafe fn from_raw_event_data(_: *mut crate::binary::c_types::c_void) -> Self {
Self
@ -103,13 +104,15 @@ macro_rules! impl_wifi_event {
use esp_wifi_sys::include::$data;
/// See [`WifiEvent`].
#[derive(Copy, Clone)]
pub struct $newtype($data);
impl sealed::Event for $newtype {
pub struct $newtype<'a>(&'a $data);
impl sealed::Event for $newtype<'_> {
unsafe fn from_raw_event_data(ptr: *mut crate::binary::c_types::c_void) -> Self {
Self(unsafe { *ptr.cast() })
Self(unsafe { &*ptr.cast() })
}
fn handler() -> &'static NonReentrantMutex<Option<Box<Handler<Self>>>> {
static HANDLE: NonReentrantMutex<Option<Box<Handler<$newtype>>>> =
static HANDLE: NonReentrantMutex<Option<Box<Handler<$newtype<'_>>>>> =
NonReentrantMutex::new(None);
&HANDLE
}
@ -145,25 +148,13 @@ impl_wifi_event!(ApWpsRgFailed, wifi_event_ap_wps_rg_fail_reason_t);
impl_wifi_event!(ApWpsRgTimeout);
impl_wifi_event!(ApWpsRgPin, wifi_event_ap_wps_rg_pin_t);
impl_wifi_event!(ApWpsRgPbcOverlap);
cfg_if::cfg_if! {
if #[cfg(wifi_has_wifi6)] {
impl_wifi_event!(ItwtSetup, wifi_event_sta_itwt_setup_t);
impl_wifi_event!(ItwtTeardown, wifi_event_sta_itwt_teardown_t);
impl_wifi_event!(ItwtProbe, wifi_event_sta_itwt_probe_t);
impl_wifi_event!(ItwtSuspend, wifi_event_sta_itwt_suspend_t);
impl_wifi_event!(TwtWakeup);
impl_wifi_event!(BtwtSetup, wifi_event_sta_btwt_setup_t);
impl_wifi_event!(BtwtTeardown, wifi_event_sta_btwt_teardown_t);
} else {
impl_wifi_event!(ItwtSetup);
impl_wifi_event!(ItwtTeardown);
impl_wifi_event!(ItwtProbe);
impl_wifi_event!(ItwtSuspend);
impl_wifi_event!(TwtWakeup);
impl_wifi_event!(BtwtSetup);
impl_wifi_event!(BtwtTeardown);
}
}
impl_wifi_event!(ItwtSetup);
impl_wifi_event!(ItwtTeardown);
impl_wifi_event!(ItwtProbe);
impl_wifi_event!(ItwtSuspend);
impl_wifi_event!(TwtWakeup);
impl_wifi_event!(BtwtSetup);
impl_wifi_event!(BtwtTeardown);
impl_wifi_event!(NanStarted);
impl_wifi_event!(NanStopped);
impl_wifi_event!(NanSvcMatch, wifi_event_nan_svc_match_t);
@ -175,7 +166,7 @@ impl_wifi_event!(NdpTerminated, wifi_event_ndp_terminated_t);
impl_wifi_event!(HomeChannelChange, wifi_event_home_channel_change_t);
impl_wifi_event!(StaNeighborRep, wifi_event_neighbor_report_t);
impl ApStaConnected {
impl ApStaConnected<'_> {
/// Get the MAC address of the connected station.
pub fn mac(&self) -> &[u8] {
&self.0.mac
@ -185,9 +176,14 @@ impl ApStaConnected {
pub fn aid(&self) -> u8 {
self.0.aid
}
/// Flag indicating whether the connected station is a mesh child.
pub fn is_mesh_child(&self) -> bool {
self.0.is_mesh_child
}
}
impl ApStaDisconnected {
impl ApStaDisconnected<'_> {
/// Get the MAC address of the disconnected station.
pub fn mac(&self) -> &[u8] {
&self.0.mac
@ -197,9 +193,19 @@ impl ApStaDisconnected {
pub fn reason(&self) -> u16 {
self.0.reason
}
/// AID that the Soft-AP assigned to the disconnected station.
pub fn aid(&self) -> u8 {
self.0.aid
}
/// Flag indicating whether the connected station is a mesh child.
pub fn is_mesh_child(&self) -> bool {
self.0.is_mesh_child
}
}
impl ScanDone {
impl ScanDone<'_> {
/// Get the status of the scan operation.
pub fn status(&self) -> u32 {
self.0.status
@ -216,7 +222,7 @@ impl ScanDone {
}
}
impl StaConnected {
impl StaConnected<'_> {
/// Get the SSID of the connected station.
pub fn ssid(&self) -> &[u8] {
&self.0.ssid
@ -248,7 +254,7 @@ impl StaConnected {
}
}
impl StaDisconnected {
impl StaDisconnected<'_> {
/// Get the SSID of the disconnected station.
pub fn ssid(&self) -> &[u8] {
&self.0.ssid
@ -275,7 +281,7 @@ impl StaDisconnected {
}
}
impl StaAuthmodeChange {
impl StaAuthmodeChange<'_> {
/// Get the old authentication mode.
pub fn old_mode(&self) -> u32 {
self.0.old_mode
@ -287,7 +293,7 @@ impl StaAuthmodeChange {
}
}
impl StaWpsErSuccess {
impl StaWpsErSuccess<'_> {
/// Get number of AP credentials received.
pub fn ap_cred_cnt(&self) -> u8 {
self.0.ap_cred_cnt
@ -299,14 +305,14 @@ impl StaWpsErSuccess {
}
}
impl StaWpsErPin {
impl StaWpsErPin<'_> {
/// Get the PIN code received from the WPS.
pub fn pin(&self) -> &[u8] {
&self.0.pin_code
}
}
impl FtmReport {
impl FtmReport<'_> {
/// Get the MAC address of the FTM peer.
pub fn peer_mac(&self) -> &[u8] {
&self.0.peer_mac
@ -343,7 +349,7 @@ impl FtmReport {
}
}
impl ApProbeReqReceived {
impl ApProbeReqReceived<'_> {
/// Get received probe request SSID.
pub fn rssi(&self) -> i32 {
self.0.rssi
@ -355,14 +361,14 @@ impl ApProbeReqReceived {
}
}
impl StaBssRssiLow {
impl StaBssRssiLow<'_> {
/// Get received probe request SSID of bss.
pub fn rssi(&self) -> i32 {
self.0.rssi
}
}
impl ActionTxStatus {
impl ActionTxStatus<'_> {
/// Get Wi-Fi interface to send request to.
pub fn ifx(&self) -> u32 {
self.0.ifx
@ -373,32 +379,37 @@ impl ActionTxStatus {
self.0.context
}
/// Get destination MAC address.
pub fn da(&self) -> &[u8] {
&self.0.da
/// ID of the corresponding operation that was provided during action tx request.
pub fn op_id(&self) -> u8 {
self.0.op_id
}
/// Channel provided in tx request.
pub fn channel(&self) -> u8 {
self.0.channel
}
/// Get the status of the operation.
pub fn status(&self) -> u8 {
pub fn status(&self) -> u32 {
self.0.status
}
}
impl RocDone {
impl RocDone<'_> {
/// Get context to identify the request.
pub fn context(&self) -> u32 {
self.0.context
}
}
impl ApWpsRgSuccess {
impl ApWpsRgSuccess<'_> {
/// Get enrollee mac address.
pub fn peer_mac(&self) -> &[u8] {
&self.0.peer_macaddr
}
}
impl ApWpsRgFailed {
impl ApWpsRgFailed<'_> {
/// Get WPS failure reason.
pub fn reason(&self) -> u32 {
self.0.reason
@ -410,148 +421,14 @@ impl ApWpsRgFailed {
}
}
impl ApWpsRgPin {
impl ApWpsRgPin<'_> {
/// Get the PIN code of station in enrollee mode.
pub fn pin_code(&self) -> &[u8] {
&self.0.pin_code
}
}
cfg_if::cfg_if! {
if #[cfg(wifi_has_wifi6)] {
use crate::wifi::include::wifi_twt_setup_config_t;
impl ItwtSetup {
/// Get the ITWT setup config, this value is determined by the AP.
pub fn config(&self) -> &wifi_twt_setup_config_t {
&self.0.config
}
/// Get the ITWT setup status, 1 indicates success, others indicate setup failure.
pub fn status(&self) -> i32 {
self.0.status
}
/// Get the ITWT setup frame tx fail reason.
pub fn reason(&self) -> u8 {
self.0.reason
}
/// Get TWT SP start time.
pub fn target_wake_time(&self) -> u64 {
self.0.target_wake_time
}
}
impl ItwtTeardown {
/// Get flow ID.
pub fn flow_id(&self) -> u8 {
self.0.flow_id
}
/// Get ITWT teardown status.
pub fn status(&self) -> u32 {
self.0.status
}
}
impl ItwtProbe {
/// Get probe status.
pub fn status(&self) -> u32 {
self.0.status
}
/// Get failure reason.
pub fn reason(&self) -> u8 {
self.0.reason
}
}
impl ItwtSuspend {
/// Get suspend status.
pub fn status(&self) -> i32 {
self.0.status
}
/// Get bitmap of the suspended flow ID.
pub fn flow_id_bitmap(&self) -> u8 {
self.0.flow_id_bitmap
}
/// Get the actual suspend time for each flow ID in milliseconds.
pub fn actual_suspend_time_ms(&self) -> &[u32] {
&self.0.actual_suspend_time_ms
}
}
impl BtwtSetup {
/// Get the BTWT setup status.
pub fn status(&self) -> u32 {
self.0.status
}
/// Get the type of TWT command.
pub fn cmd(&self) -> u32 {
self.0.setup_cmd
}
/// Get the TWT id.
pub fn btwt_id(&self) -> u8 {
self.0.btwt_id
}
/// Get the Nominal Minimum Wake Duration, indicates the minimum amount of time,
/// in units of 256 µs, that the TWT requesting STA expects that it needs to be awake.
pub fn min_wake_dura(&self) -> u8 {
self.0.min_wake_dura
}
/// Get the TWT Wake Interval Exponent.
pub fn wake_invl_expn(&self) -> u8 {
self.0.wake_invl_expn
}
/// Get the TWT Wake Interval Mantissa.
pub fn wake_invl_mant(&self) -> u16 {
self.0.wake_invl_mant
}
/// Get whether this is a trigger-enabled TWT (true) or a non-trigger-enabled TWT (false).
pub fn trigger(&self) -> bool {
self.0.trigger
}
/// Get the TWT flow type, an announced TWT (true) or an unannounced TWT (false).
pub fn flow_type(&self) -> u8 {
self.0.flow_type
}
/// Get the BTWT setup frame tx fail reason.
pub fn reason(&self) -> u8 {
self.0.reason
}
/// Get the TWT SP start time.
pub fn target_wake_time(&self) -> u64 {
self.0.target_wake_time
}
}
impl BtwtTeardown {
/// Get the TWT ID.
pub fn id(&self) -> u8 {
self.0.btwt_id
}
/// Get the btwt teardown status.
pub fn status(&self) -> u32 {
self.0.status
}
}
}
}
impl NanSvcMatch {
impl NanSvcMatch<'_> {
/// Get the Subscribe Service ID.
pub fn subscribe_id(&self) -> u8 {
self.0.subscribe_id
@ -573,7 +450,7 @@ impl NanSvcMatch {
}
}
impl NanReplied {
impl NanReplied<'_> {
/// Get the Subscribe Service ID.
pub fn subscribe_id(&self) -> u8 {
self.0.subscribe_id
@ -590,7 +467,7 @@ impl NanReplied {
}
}
impl NanReceive {
impl NanReceive<'_> {
/// Get Our Service Identifier.
pub fn inst_id(&self) -> u8 {
self.0.inst_id
@ -612,7 +489,7 @@ impl NanReceive {
}
}
impl NdpIndication {
impl NdpIndication<'_> {
/// Get Publish ID for NAN Service.
pub fn publish_id(&self) -> u8 {
self.0.publish_id
@ -639,7 +516,7 @@ impl NdpIndication {
}
}
impl NdpConfirm {
impl NdpConfirm<'_> {
/// Get NDP status code.
pub fn status(&self) -> u8 {
self.0.status
@ -671,7 +548,7 @@ impl NdpConfirm {
}
}
impl NdpTerminated {
impl NdpTerminated<'_> {
/// Get termination reason code.
pub fn reason(&self) -> u8 {
self.0.reason
@ -688,7 +565,7 @@ impl NdpTerminated {
}
}
impl HomeChannelChange {
impl HomeChannelChange<'_> {
/// Get the old home channel of the device.
pub fn old_chan(&self) -> u8 {
self.0.old_chan
@ -710,7 +587,7 @@ impl HomeChannelChange {
}
}
impl StaNeighborRep {
impl StaNeighborRep<'_> {
/// Get the Neighbor Report received from the AP.
pub fn report(&self) -> &[u8] {
&self.0.report[..self.0.report_len as usize]
@ -741,14 +618,8 @@ pub fn handle<Event: EventExt>(event_data: &Event) -> bool {
/// The pointer should be valid to cast to `Event`'s inner type (if it has one)
pub(crate) unsafe fn handle_raw<Event: EventExt>(
event_data: *mut crate::binary::c_types::c_void,
event_data_size: usize,
_event_data_size: usize,
) -> bool {
debug_assert_eq!(
event_data_size,
core::mem::size_of::<Event>(),
"wrong size event data"
);
let event = unsafe { Event::from_raw_event_data(event_data) };
handle::<Event>(&event)
}
@ -768,7 +639,7 @@ pub(crate) unsafe fn dispatch_event_handler(
handle_raw::<WifiReady>(event_data, event_data_size)
}
WifiEvent::ScanDone => {
handle_raw::<ScanDone>(event_data, event_data_size)
handle_raw::<ScanDone<'_>>(event_data, event_data_size)
}
WifiEvent::StaStart => {
handle_raw::<StaStart>(event_data, event_data_size)
@ -777,16 +648,16 @@ pub(crate) unsafe fn dispatch_event_handler(
handle_raw::<StaStop>(event_data, event_data_size)
}
WifiEvent::StaConnected => {
handle_raw::<StaConnected>(event_data, event_data_size)
handle_raw::<StaConnected<'_>>(event_data, event_data_size)
}
WifiEvent::StaDisconnected => {
handle_raw::<StaDisconnected>(event_data, event_data_size)
handle_raw::<StaDisconnected<'_>>(event_data, event_data_size)
}
WifiEvent::StaAuthmodeChange => {
handle_raw::<StaAuthmodeChange>(event_data, event_data_size)
handle_raw::<StaAuthmodeChange<'_>>(event_data, event_data_size)
}
WifiEvent::StaWpsErSuccess => {
handle_raw::<StaWpsErSuccess>(event_data, event_data_size)
handle_raw::<StaWpsErSuccess<'_>>(event_data, event_data_size)
}
WifiEvent::StaWpsErFailed => {
handle_raw::<StaWpsErFailed>(event_data, event_data_size)
@ -795,7 +666,7 @@ pub(crate) unsafe fn dispatch_event_handler(
handle_raw::<StaWpsErTimeout>(event_data, event_data_size)
}
WifiEvent::StaWpsErPin => {
handle_raw::<StaWpsErPin>(event_data, event_data_size)
handle_raw::<StaWpsErPin<'_>>(event_data, event_data_size)
}
WifiEvent::StaWpsErPbcOverlap => {
handle_raw::<StaWpsErPbcOverlap>(event_data, event_data_size)
@ -807,25 +678,25 @@ pub(crate) unsafe fn dispatch_event_handler(
handle_raw::<ApStop>(event_data, event_data_size)
}
WifiEvent::ApStaConnected => {
handle_raw::<ApStaConnected>(event_data, event_data_size)
handle_raw::<ApStaConnected<'_>>(event_data, event_data_size)
}
WifiEvent::ApStaDisconnected => {
handle_raw::<ApStaDisconnected>(event_data, event_data_size)
handle_raw::<ApStaDisconnected<'_>>(event_data, event_data_size)
}
WifiEvent::ApProbeReqReceived => {
handle_raw::<ApProbeReqReceived>(event_data, event_data_size)
handle_raw::<ApProbeReqReceived<'_>>(event_data, event_data_size)
}
WifiEvent::FtmReport => {
handle_raw::<FtmReport>(event_data, event_data_size)
handle_raw::<FtmReport<'_>>(event_data, event_data_size)
}
WifiEvent::StaBssRssiLow => {
handle_raw::<StaBssRssiLow>(event_data, event_data_size)
handle_raw::<StaBssRssiLow<'_>>(event_data, event_data_size)
}
WifiEvent::ActionTxStatus => {
handle_raw::<ActionTxStatus>(event_data, event_data_size)
handle_raw::<ActionTxStatus<'_>>(event_data, event_data_size)
}
WifiEvent::RocDone => {
handle_raw::<RocDone>(event_data, event_data_size)
handle_raw::<RocDone<'_>>(event_data, event_data_size)
}
WifiEvent::StaBeaconTimeout => {
handle_raw::<StaBeaconTimeout>(event_data, event_data_size)
@ -834,16 +705,16 @@ pub(crate) unsafe fn dispatch_event_handler(
handle_raw::<ConnectionlessModuleWakeIntervalStart>(event_data, event_data_size)
}
WifiEvent::ApWpsRgSuccess => {
handle_raw::<ApWpsRgSuccess>(event_data, event_data_size)
handle_raw::<ApWpsRgSuccess<'_>>(event_data, event_data_size)
}
WifiEvent::ApWpsRgFailed => {
handle_raw::<ApWpsRgFailed>(event_data, event_data_size)
handle_raw::<ApWpsRgFailed<'_>>(event_data, event_data_size)
}
WifiEvent::ApWpsRgTimeout => {
handle_raw::<ApWpsRgTimeout>(event_data, event_data_size)
}
WifiEvent::ApWpsRgPin => {
handle_raw::<ApWpsRgPin>(event_data, event_data_size)
handle_raw::<ApWpsRgPin<'_>>(event_data, event_data_size)
}
WifiEvent::ApWpsRgPbcOverlap => {
handle_raw::<ApWpsRgPbcOverlap>(event_data, event_data_size)
@ -876,28 +747,28 @@ pub(crate) unsafe fn dispatch_event_handler(
handle_raw::<NanStopped>(event_data, event_data_size)
}
WifiEvent::NanSvcMatch => {
handle_raw::<NanSvcMatch>(event_data, event_data_size)
handle_raw::<NanSvcMatch<'_>>(event_data, event_data_size)
}
WifiEvent::NanReplied => {
handle_raw::<NanReplied>(event_data, event_data_size)
handle_raw::<NanReplied<'_>>(event_data, event_data_size)
}
WifiEvent::NanReceive => {
handle_raw::<NanReceive>(event_data, event_data_size)
handle_raw::<NanReceive<'_>>(event_data, event_data_size)
}
WifiEvent::NdpIndication => {
handle_raw::<NdpIndication>(event_data, event_data_size)
handle_raw::<NdpIndication<'_>>(event_data, event_data_size)
}
WifiEvent::NdpConfirm => {
handle_raw::<NdpConfirm>(event_data, event_data_size)
handle_raw::<NdpConfirm<'_>>(event_data, event_data_size)
}
WifiEvent::NdpTerminated => {
handle_raw::<NdpTerminated>(event_data, event_data_size)
handle_raw::<NdpTerminated<'_>>(event_data, event_data_size)
}
WifiEvent::HomeChannelChange => {
handle_raw::<HomeChannelChange>(event_data, event_data_size)
handle_raw::<HomeChannelChange<'_>>(event_data, event_data_size)
}
WifiEvent::StaNeighborRep => {
handle_raw::<StaNeighborRep>(event_data, event_data_size)
handle_raw::<StaNeighborRep<'_>>(event_data, event_data_size)
}
}
}}

View File

@ -46,8 +46,30 @@ pub(super) static mut G_COEX_ADAPTER_FUNCS: crate::binary::include::coex_adapter
#[cfg(esp32c2)]
_slowclk_cal_get: Some(slowclk_cal_get),
_debug_matrix_init: Some(esp_coexist_debug_matrix_init_wrapper),
_xtal_freq_get: Some(xtal_freq_get_wrapper),
};
#[cfg(coex)]
#[ram]
unsafe extern "C" fn xtal_freq_get_wrapper() -> i32 {
use esp_hal::clock::Clock;
let xtal = crate::hal::clock::RtcClock::xtal_freq();
xtal.mhz() as i32
}
#[cfg(coex)]
unsafe extern "C" fn esp_coexist_debug_matrix_init_wrapper(
_evt: i32,
_sig: i32,
_rev: bool,
) -> i32 {
// CONFIG_ESP_COEX_GPIO_DEBUG not supported
esp_wifi_sys::include::ESP_ERR_NOT_SUPPORTED as i32
}
#[cfg(coex)]
#[ram]
unsafe extern "C" fn semphr_take_from_isr_wrapper(semphr: *mut c_void, hptw: *mut c_void) -> i32 {
@ -204,10 +226,11 @@ static __ESP_RADIO_G_WIFI_OSI_FUNCS: wifi_osi_funcs_t = wifi_osi_funcs_t {
_coex_schm_process_restart: Some(coex_schm_process_restart_wrapper),
_coex_schm_register_cb: Some(coex_schm_register_cb_wrapper),
_magic: ESP_WIFI_OS_ADAPTER_MAGIC as i32,
_coex_schm_flexible_period_set: Some(coex_schm_flexible_period_set),
_coex_schm_flexible_period_get: Some(coex_schm_flexible_period_get),
_coex_schm_get_phase_by_idx: Some(coex_schm_get_phase_by_idx),
_magic: ESP_WIFI_OS_ADAPTER_MAGIC as i32,
};
const WIFI_ENABLE_WPA3_SAE: u64 = 1 << 0;
@ -230,25 +253,8 @@ pub(super) static mut G_CONFIG: wifi_init_config_t = wifi_init_config_t {
wpa_crypto_funcs: wpa_crypto_funcs_t {
size: 0,
version: 1,
aes_wrap: None,
aes_unwrap: None,
hmac_sha256_vector: None,
sha256_prf: None,
hmac_md5: None,
hamc_md5_vector: None,
hmac_sha1: None,
hmac_sha1_vector: None,
sha1_prf: None,
sha1_vector: None,
pbkdf2_sha1: None,
rc4_skip: None,
md5_vector: None,
aes_encrypt: None,
aes_encrypt_init: None,
aes_encrypt_deinit: None,
aes_decrypt: None,
aes_decrypt_init: None,
aes_decrypt_deinit: None,
aes_128_encrypt: None,
aes_128_decrypt: None,
omac1_aes_128: None,
@ -256,7 +262,6 @@ pub(super) static mut G_CONFIG: wifi_init_config_t = wifi_init_config_t {
ccmp_encrypt: None,
aes_gmac: None,
sha256_vector: None,
crc32: None,
},
static_rx_buf_num: esp_config_int!(i32, "ESP_RADIO_CONFIG_RX_QUEUE_SIZE"),
dynamic_rx_buf_num: esp_config_int!(i32, "ESP_RADIO_CONFIG_DYNAMIC_RX_BUF_NUM"),
@ -279,8 +284,8 @@ pub(super) static mut G_CONFIG: wifi_init_config_t = wifi_init_config_t {
feature_caps: WIFI_FEATURE_CAPS,
sta_disconnected_pm: false,
espnow_max_encrypt_num: esp_wifi_sys::include::CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM as i32,
magic: WIFI_INIT_CONFIG_MAGIC as i32,
tx_hetb_queue_num: 3,
dump_hesigb_enable: false,
magic: WIFI_INIT_CONFIG_MAGIC as i32,
};

View File

@ -28,6 +28,8 @@ use esp_wifi_sys::include::{
WIFI_PROTOCOL_11G,
WIFI_PROTOCOL_11N,
WIFI_PROTOCOL_LR,
esp_wifi_connect_internal,
esp_wifi_disconnect_internal,
wifi_scan_channel_bitmap_t,
};
#[cfg(feature = "wifi-eap")]
@ -105,9 +107,7 @@ use crate::binary::{
esp_interface_t_ESP_IF_WIFI_STA,
esp_supplicant_deinit,
esp_supplicant_init,
esp_wifi_connect,
esp_wifi_deinit_internal,
esp_wifi_disconnect,
esp_wifi_get_mode,
esp_wifi_init_internal,
esp_wifi_internal_free_rx_buffer,
@ -1698,6 +1698,7 @@ pub(crate) fn wifi_start_scan(
ghz_2_channels: 0,
ghz_5_channels: 0,
},
coex_background_scan: false,
};
unsafe { esp_wifi_scan_start(&scan_config, block) }
@ -2331,6 +2332,13 @@ fn apply_ap_config(config: &AccessPointConfig) -> Result<(), WifiError> {
sae_pwe_h2e: 0,
csa_count: 3,
dtim_period: config.dtim_period,
transition_disable: 0,
sae_ext: 0,
bss_max_idle_cfg: include::wifi_bss_max_idle_config_t {
period: 0,
protected_keep_alive: false,
},
gtk_rekey_interval: 0,
},
};
@ -2361,6 +2369,7 @@ fn apply_sta_config(config: &ClientConfig) -> Result<(), WifiError> {
threshold: wifi_scan_threshold_t {
rssi: -99,
authmode: config.auth_method.to_raw(),
rssi_5g_adjustment: 0,
},
pmf_cfg: wifi_pmf_config_t {
capable: true,
@ -2404,6 +2413,7 @@ fn apply_sta_eap_config(config: &EapClientConfig) -> Result<(), WifiError> {
threshold: wifi_scan_threshold_t {
rssi: -99,
authmode: config.auth_method.to_raw(),
rssi_5g_adjustment: 0,
},
pmf_cfg: wifi_pmf_config_t {
capable: true,
@ -2639,7 +2649,8 @@ pub enum PowerSaveMode {
/// No power saving.
#[default]
None,
/// Minimum power save mode. In this mode, station wakes up to receive beacon every DTIM period.
/// Minimum power save mode. In this mode, station wakes up to receive beacon every DTIM
/// period.
Minimum,
/// Maximum power save mode. In this mode, interval to receive beacons is determined by the
/// `ESP_RADIO_CONFIG_LISTEN_INTERVAL` config option.
@ -3003,11 +3014,13 @@ impl WifiController<'_> {
}
fn connect_impl(&mut self) -> Result<(), WifiError> {
esp_wifi_result!(unsafe { esp_wifi_connect() })
// TODO: implement ROAMING
esp_wifi_result!(unsafe { esp_wifi_connect_internal() })
}
fn disconnect_impl(&mut self) -> Result<(), WifiError> {
esp_wifi_result!(unsafe { esp_wifi_disconnect() })
// TODO: implement ROAMING
esp_wifi_result!(unsafe { esp_wifi_disconnect_internal() })
}
/// Checks if the Wi-Fi controller has started. Returns true if STA and/or AP are started.

View File

@ -73,3 +73,16 @@ pub unsafe extern "C" fn set_isr(
));
}
}
// For ESP32-C2 < ECO4
#[unsafe(no_mangle)]
unsafe extern "C" fn esp32c2_eco4_rom_ptr_init() {
// Do not remove, stub to overwrite weak link in Wi-Fi Lib
//
// Otherwise you will see:
//
// undefined symbol: s_pm_beacon_offset_ptr
// undefined symbol: g_authmode_threshold_failure_ptr
// undefined symbol: len_dh_ie_ptr
// undefined symbol: s_tbttstart_ptr
}

View File

@ -662,6 +662,7 @@ pub unsafe extern "C" fn event_post(
trace!("EVENT: {:?}", event);
WIFI_EVENTS.with(|events| events.insert(event));
let handled =
unsafe { super::event::dispatch_event_handler(event, event_data, event_data_size) };
@ -1206,7 +1207,9 @@ pub unsafe extern "C" fn log_write(
format: *const c_char,
args: ...
) {
crate::binary::log::syslog(level, format as _, args);
unsafe {
crate::binary::log::syslog(level, format as _, args);
}
}
/// **************************************************************************
@ -1507,7 +1510,7 @@ pub unsafe extern "C" fn coex_status_get() -> u32 {
trace!("coex_status_get");
#[cfg(coex)]
return unsafe { crate::binary::include::coex_status_get() };
return unsafe { crate::binary::include::coex_status_get(0b1) }; // COEX_STATUS_GET_WIFI_BITMAP
#[cfg(not(coex))]
0
@ -1792,6 +1795,16 @@ pub unsafe extern "C" fn coex_register_start_cb(
0
}
pub unsafe extern "C" fn coex_schm_get_phase_by_idx(
_phase_idx: i32,
) -> *mut esp_wifi_sys::c_types::c_void {
#[cfg(coex)]
return unsafe { crate::binary::include::coex_schm_get_phase_by_idx(_phase_idx) };
#[cfg(not(coex))]
core::ptr::null_mut()
}
/// **************************************************************************
/// Name: esp_clk_slowclk_cal_get_wrapper
///

View File

@ -653,6 +653,7 @@ PROVIDE ( ld_acl_tx_packet_type_select = 0x4002fb40 );
PROVIDE ( ld_acl_sched = 0x40033268 );
PROVIDE ( ld_acl_sniff_sched = 0x4003340c );
PROVIDE ( ld_acl_sniff_exit = 0x400312b4 );
PROVIDE ( ld_sco_evt_canceled_cbk = 0x40031e18 );
PROVIDE ( ld_acl_rx = 0x4003274c );
PROVIDE ( ld_acl_tx = 0x4002ffdc );
PROVIDE ( ld_acl_rx_sync = 0x4002fbec );
@ -663,6 +664,9 @@ PROVIDE ( ld_acl_rsw_frm_cbk = 0x40033bb0 );
PROVIDE ( ld_sco_modify = 0x40031778 );
PROVIDE ( lm_cmd_cmp_send = 0x40051838 );
PROVIDE ( ld_sco_frm_cbk = 0x400349dc );
PROVIDE ( ld_sco_evt_start_cbk = 0x40031afc );
PROVIDE ( ld_sco_evt_stop_cbk = 0x40031d78 );
PROVIDE ( ld_acl_rsw_evt_start_cbk = 0x40031154 );
PROVIDE ( ld_acl_sco_rsvd_check = 0x4002fa94 );
PROVIDE ( ld_acl_sniff_frm_cbk = 0x4003482c );
PROVIDE ( ld_inq_end = 0x4003ab48 );
@ -745,6 +749,9 @@ PROVIDE ( r_ld_csb_tx_en = 0x4003a1c0 );
PROVIDE ( r_ld_csb_tx_init = 0x4003a0e8 );
PROVIDE ( r_ld_csb_tx_reset = 0x4003a0f8 );
PROVIDE ( r_ld_csb_tx_set_data = 0x4003a6c0 );
PROVIDE ( ld_csb_tx_sched = 0x40039c1c );
PROVIDE ( ld_csb_tx_evt_start_cbk = 0x40039d0c );
PROVIDE ( ld_csb_tx_evt_canceled_cbk = 0x40039ee4 );
PROVIDE ( r_ld_fm_clk_isr = 0x4003a7a8 );
PROVIDE ( r_ld_fm_frame_isr = 0x4003a82c );
PROVIDE ( r_ld_fm_init = 0x4003a760 );
@ -1368,6 +1375,7 @@ PROVIDE ( esp_rom_spiflash_config_clk = 0x40062bc8 );
PROVIDE ( g_rom_spiflash_chip = 0x3ffae270 );
PROVIDE ( SPI_write_enable = 0x40062320 );
PROVIDE ( hci_le_rd_rem_used_feats_cmd_handler = 0x400417b4 );
PROVIDE ( hci_per_inq_mode_cmd_handler = 0x400519b0 );
PROVIDE ( llcp_length_req_handler = 0x40043808 );
PROVIDE ( llcp_unknown_rsp_handler = 0x40043ba8 );
PROVIDE ( llcp_channel_map_req_handler = 0x4004291c );
@ -1608,8 +1616,10 @@ PROVIDE ( TASK_DESC_LLD = 0x3ff98b58 );
PROVIDE ( ld_acl_clk_isr = 0x40030cf8 );
PROVIDE ( ld_acl_evt_canceled_cbk = 0x40033944 );
PROVIDE ( ld_acl_rsw_evt_canceled_cbk = 0x40033364 );
PROVIDE ( ld_acl_evt_stop_cbk = 0x40033870 );
PROVIDE ( ld_acl_evt_start_cbk = 0x40030ab0 );
PROVIDE ( ld_acl_sniff_evt_start_cbk = 0x40031360 );
PROVIDE ( ld_acl_test_mode_update = 0x40032050 );
PROVIDE ( ld_acl_resched = 0x40033814 );
PROVIDE ( ld_acl_rx_isr = 0x40033aa8 );
@ -1624,6 +1634,12 @@ PROVIDE ( lc_pwr_decr_ind_handler = 0x4002859c );
PROVIDE ( lc_pwr_incr_ind_handler = 0x400284a8 );
PROVIDE ( lc_pwr_max_ind_handler = 0x40028690 );
PROVIDE ( lc_setup_sync_param_check = 0x4002354c );
PROVIDE ( lc_lmp_rsp_to_flow_spec_handler = 0x400297f0 );
PROVIDE ( lc_pca_sscan_clk_ind_handler = 0x4002a38c );
PROVIDE ( lc_op_loc_unsniff_req_handler = 0x40028be0 );
PROVIDE ( lc_op_loc_sniff_req_handler = 0x40028ccc );
PROVIDE ( lc_op_loc_switch_req_handler = 0x40028df4 );
PROVIDE ( lc_op_loc_sync_con_req_handler = 0x40028f6c );
PROVIDE ( lm_sync_conf = 0x3ffb8348 );
PROVIDE ( lm_nb_sync_active = 0x3ffb8346 );

View File

@ -21,3 +21,5 @@ EXTERN(__atoi);
PROVIDE ( strnlen = __strnlen );
PROVIDE ( atoi = __atoi );
PROVIDE ( mktime = __mktime );
PROVIDE( abs = 0x40000558 );

View File

@ -7,4 +7,23 @@ INCLUDE "rom/esp32c3.rom.ld"
INCLUDE "rom/esp32c3.rom.libgcc.ld"
INCLUDE "rom/esp32c3.rom.version.ld"
/*
TODO if BT_CTRL_RUN_IN_FLASH_ONLY
INCLUDE "rom/esp32c3.rom.ble_50.ld"
INCLUDE "rom/esp32c3.rom.ble_cca.ld"
INCLUDE "rom/esp32c3.rom.ble_dtm.ld"
INCLUDE "rom/esp32c3.rom.ble_master.ld"
INCLUDE "rom/esp32c3.rom.ble_scan.ld"
INCLUDE "rom/esp32c3.rom.ble_smp.ld"
INCLUDE "rom/esp32c3.rom.ble_test.ld"
*/
INCLUDE "rom/esp32c3.rom.bt_funcs.ld"
INCLUDE "rom/esp32c3.rom.eco3_bt_funcs.ld"
/*
TODO
INCLUDE "rom/esp32c3.rom.eco7_bt_funcs.ld"
*/
INCLUDE "rom/additional.ld"

View File

@ -0,0 +1,74 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32c3.rom.ld for esp32c3
*
*
* Generated from ./interface-esp32c3.yml md5sum 93b28a9e1fe42d212018eb4336849208
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* extend adv */
f_hci_le_set_ext_adv_param_cmd_handler = 0;
f_hci_le_set_adv_set_rand_addr_cmd_handler = 0;
f_hci_le_set_ext_adv_data_cmd_handler = 0;
f_hci_le_set_ext_scan_rsp_data_cmd_handler = 0;
f_hci_le_set_ext_adv_en_cmd_handler = 0;
f_hci_le_rd_max_adv_data_len_cmd_handler = 0;
f_hci_le_rd_nb_supp_adv_sets_cmd_handler = 0;
f_hci_le_rmv_adv_set_cmd_handler = 0;
f_hci_le_clear_adv_sets_cmd_handler = 0;
r_lld_adv_sync_info_set = 0;
r_lld_ext_adv_dynamic_pti_process = 0;
r_lld_adv_ext_chain_construct = 0;
r_lld_adv_aux_evt_canceled_cbk = 0;
r_lld_adv_aux_evt_start_cbk = 0;
r_lld_adv_aux_ch_idx_set = 0;
/* periodic adv */
f_hci_le_set_per_adv_param_cmd_handler = 0;
f_hci_le_set_per_adv_data_cmd_handler = 0;
f_hci_le_set_per_adv_en_cmd_handler = 0;
r_lld_per_adv_ch_map_update = 0;
r_lld_per_adv_init = 0;
/* PA list */
f_hci_le_add_dev_to_per_adv_list_cmd_handler = 0;
f_hci_le_rmv_dev_from_per_adv_list_cmd_handler = 0;
f_hci_le_clear_per_adv_list_cmd_handler = 0;
f_hci_le_rd_per_adv_list_size_cmd_handler = 0;
/* extend scan */
f_hci_le_set_ext_scan_param_cmd_handler = 0;
f_hci_le_set_ext_scan_en_cmd_handler = 0;
r_lld_scan_process_pkt_rx_ext_adv = 0;
r_lld_scan_trunc_ind = 0;
/* extend con */
f_hci_le_ext_create_con_cmd_handler = 0;
r_lld_init_process_pkt_rx_adv_ext_ind = 0;
r_lld_init_process_pkt_rx_aux_connect_rsp = 0;
/* PA sync */
f_hci_le_per_adv_create_sync_cmd_handler = 0;
f_hci_le_per_adv_create_sync_cancel_cmd_handler = 0;
f_hci_le_per_adv_term_sync_cmd_handler = 0;
f_lld_per_adv_rx_end_ind_handler_hack = 0;
f_lld_sync_start_req_handler = 0;
f_lld_per_adv_rep_ind_handler = 0;
r_lld_sync_init = 0;
/* phy update*/
f_llc_op_phy_upd_ind_handler = 0;
f_ll_phy_req_handler = 0;
f_ll_phy_rsp_handler = 0;
f_ll_phy_update_ind_handler = 0;
f_lld_phy_upd_cfm_handler = 0;
f_hci_le_set_phy_cmd_handler = 0;
llc_llcp_phy_update_ind_ack = 0;

View File

@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32c3.rom.ld for esp32c3
*
*
* Generated from ./interface-esp32c3.yml md5sum 93b28a9e1fe42d212018eb4336849208
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* SW CCA */
r_lld_cca_con_evt_start_handle = 0;
r_lld_hw_cca_end_isr = 0;
r_lld_hw_cca_isr_eco = 0;
r_lld_cca_bb_sync_found_handle = 0;
r_lld_cca_data_reset = 0;
r_lld_cca_sw_init = 0;
r_lld_cca_con_evt_end_handle = 0;
r_lld_cca_alloc = 0;
r_lld_cca_sw_alloc = 0;
r_lld_cca_sw_free = 0;
r_lld_cca_free = 0;
r_cca_init = 0;
r_lld_hw_cca_evt_handler = 0;
r_lld_sw_cca_evt_handler = 0;
r_ble_sw_cca_check_isr = 0;

View File

@ -0,0 +1,22 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32c3.rom.ld for esp32c3
*
*
* Generated from ./interface-esp32c3.yml md5sum 93b28a9e1fe42d212018eb4336849208
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* DTM */
f_hci_le_rx_test_cmd_handler = 0;
f_hci_le_tx_test_cmd_handler = 0;
f_hci_le_enh_rx_test_cmd_handler = 0;
f_hci_le_enh_tx_test_cmd_handler = 0;
f_hci_le_test_end_cmd_handler = 0;
r_lld_test_init = 0;

View File

@ -0,0 +1,20 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32c3.rom.ld for esp32c3
*
*
* Generated from ./interface-esp32c3.yml md5sum 93b28a9e1fe42d212018eb4336849208
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* master */
f_hci_le_create_con_cmd_handler = 0;
f_hci_le_create_con_cancel_cmd_handler = 0;
lld_init_end_ind_handler = 0;
r_lld_init_init = 0;

View File

@ -0,0 +1,36 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32c3.rom.ld for esp32c3
*
*
* Generated from ./interface-esp32c3.yml md5sum 93b28a9e1fe42d212018eb4336849208
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* BLE scan */
f_hci_le_set_scan_param_cmd_handler = 0;
f_hci_le_set_scan_en_cmd_handler = 0;
f_llm_scan_period_to_handler_hack = 0;
f_lld_adv_rep_ind_handler_hack = 0;
r_lld_scan_init = 0;
r_lld_scan_restart = 0;
f_lld_scan_end_ind_handler_hack = 0;
r_llm_env_adv_dup_filt_deinit_eco = 0;
llm_exception_list_init = 0;
llm_duplicate_list_init = 0;
f_hci_vendor_ble_update_duplicate_exceptional_list_cmd_handler = 0;
f_hci_vendor_ble_init_adv_flow_control_cmd_handler = 0;
f_hci_vendor_ble_update_adv_report_flow_control_cmd_handler = 0;
coex_schm_ble_scan_stop = 0;
f_hci_le_set_ext_scan_param_cmd_handler = 0;
f_hci_le_set_ext_scan_en_cmd_handler = 0;
r_lld_scan_process_pkt_rx_ext_adv = 0;
r_lld_scan_trunc_ind = 0;

View File

@ -0,0 +1,42 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32c3.rom.ld for esp32c3
*
*
* Generated from ./interface-esp32c3.yml md5sum 93b28a9e1fe42d212018eb4336849208
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* SMP */
f_ll_pause_enc_req_handler = 0;
f_ll_pause_enc_rsp_handler = 0;
f_ll_enc_req_handler = 0;
f_ll_enc_rsp_handler = 0;
f_ll_start_enc_req_handler = 0;
f_ll_start_enc_rsp_handler = 0;
f_hci_le_start_enc_cmd_handler = 0;
f_hci_le_ltk_req_reply_cmd_handler = 0;
f_hci_le_ltk_req_neg_reply_cmd_handler = 0;
f_llc_encrypt_ind_handler = 0;
f_llc_op_encrypt_ind_handler = 0;
f_hci_le_rd_local_p256_public_key_cmd_handler = 0;
f_hci_le_generate_dhkey_cmd_handler = 0;
f_hci_le_enc_cmd_handler = 0;
r_rwip_crypt_evt_handler = 0;
/* LE ping */
f_ll_ping_req_handler = 0;
f_ll_ping_rsp_handler = 0;
f_llc_op_le_ping_ind_handler = 0;
f_llc_auth_payl_nearly_op_handler = 0;
f_llc_auth_payl_real_to_handler = 0;
f_llc_auth_payl_nearly_to_handler = 0;
/* ecc */
r_ecc_init = 0;

View File

@ -0,0 +1,37 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32c3.rom.ld for esp32c3
*
*
* Generated from ./interface-esp32c3.yml md5sum 93b28a9e1fe42d212018eb4336849208
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* overwrite */
lld_acl_rx_ind_handler = 0;
lld_con_estab_ind_handler = 0;
lld_adv_rep_ind_handler = 0;
llm_rpa_renew_to_handler = 0;
lld_scan_end_ind_handler = 0;
llm_scan_period_to_handler = 0;
/* nvds */
r_nvds_init = 0;
f_nvds_get = 0;
f_nvds_del = 0;
f_nvds_put = 0;
/* controller flash */
r_flash_init = 0;
r_flash_env_init = 0;
r_flash_env_deinit = 0;
/* QA test */
f_hci_vendor_ble_qa_test_cmd_handler = 0;

View File

@ -0,0 +1,873 @@
/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32c3.rom.ld for esp32c3
*
*
* Generated from ./interface-esp32c3.yml md5sum 93b28a9e1fe42d212018eb4336849208
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/***************************************
Group bluetooth
***************************************/
/* Functions */
bt_rf_coex_get_dft_cfg = 0x400008dc;
bt_rf_coex_hooks_p_set = 0x400008e0;
btdm_con_maxevtime_cal_impl = 0x400008e4;
btdm_controller_get_compile_version_impl = 0x400008e8;
btdm_controller_rom_data_init = 0x400008ec;
btdm_dis_privacy_err_report_impl = 0x400008f0;
btdm_disable_adv_delay_impl = 0x400008f4;
btdm_enable_scan_continue_impl = 0x400008f8;
btdm_enable_scan_forever_impl = 0x400008fc;
btdm_get_power_state_impl = 0x40000900;
btdm_get_prevent_sleep_flag_impl = 0x40000904;
btdm_power_state_active_impl = 0x40000908;
btdm_switch_phy_coded_impl = 0x4000090c;
hci_acl_data_handler = 0x40000910;
hci_disconnect_cmd_handler = 0x40000914;
hci_le_con_upd_cmd_handler = 0x40000918;
hci_le_ltk_req_neg_reply_cmd_handler = 0x4000091c;
hci_le_ltk_req_reply_cmd_handler = 0x40000920;
hci_le_rd_chnl_map_cmd_handler = 0x40000924;
hci_le_rd_phy_cmd_handler = 0x40000928;
hci_le_rd_rem_feats_cmd_handler = 0x4000092c;
hci_le_rem_con_param_req_neg_reply_cmd_handler = 0x40000930;
hci_le_rem_con_param_req_reply_cmd_handler = 0x40000934;
hci_le_set_data_len_cmd_handler = 0x40000938;
hci_le_set_phy_cmd_handler = 0x4000093c;
hci_le_start_enc_cmd_handler = 0x40000940;
hci_rd_auth_payl_to_cmd_handler = 0x40000944;
hci_rd_rem_ver_info_cmd_handler = 0x40000948;
hci_rd_rssi_cmd_handler = 0x4000094c;
hci_rd_tx_pwr_lvl_cmd_handler = 0x40000950;
hci_vs_set_pref_slave_evt_dur_cmd_handler = 0x40000954;
hci_vs_set_pref_slave_latency_cmd_handler = 0x40000958;
hci_wr_auth_payl_to_cmd_handler = 0x4000095c;
ll_channel_map_ind_handler = 0x40000960;
ll_connection_param_req_handler = 0x40000964;
ll_connection_param_rsp_handler = 0x40000968;
ll_connection_update_ind_handler = 0x4000096c;
ll_enc_req_handler = 0x40000970;
ll_enc_rsp_handler = 0x40000974;
ll_feature_req_handler = 0x40000978;
ll_feature_rsp_handler = 0x4000097c;
ll_length_req_handler = 0x40000980;
ll_length_rsp_handler = 0x40000984;
ll_min_used_channels_ind_handler = 0x40000988;
ll_pause_enc_req_handler = 0x4000098c;
ll_pause_enc_rsp_handler = 0x40000990;
ll_phy_req_handler = 0x40000994;
ll_phy_rsp_handler = 0x40000998;
ll_phy_update_ind_handler = 0x4000099c;
ll_ping_req_handler = 0x400009a0;
ll_ping_rsp_handler = 0x400009a4;
ll_slave_feature_req_handler = 0x400009a8;
ll_start_enc_req_handler = 0x400009ac;
ll_start_enc_rsp_handler = 0x400009b0;
ll_terminate_ind_handler = 0x400009b4;
ll_version_ind_handler = 0x400009b8;
llc_auth_payl_nearly_to_handler = 0x400009bc;
llc_auth_payl_real_to_handler = 0x400009c0;
llc_encrypt_ind_handler = 0x400009c4;
llc_hci_command_handler_wrapper = 0x400009c8;
llc_ll_connection_param_req_pdu_send = 0x400009cc;
llc_ll_connection_param_rsp_pdu_send = 0x400009d0;
llc_ll_connection_update_ind_pdu_send = 0x400009d4;
llc_ll_enc_req_pdu_send = 0x400009d8;
llc_ll_enc_rsp_pdu_send = 0x400009dc;
llc_ll_feature_req_pdu_send = 0x400009e0;
llc_ll_feature_rsp_pdu_send = 0x400009e4;
llc_ll_length_req_pdu_send = 0x400009e8;
llc_ll_length_rsp_pdu_send = 0x400009ec;
llc_ll_pause_enc_req_pdu_send = 0x400009f0;
llc_ll_pause_enc_rsp_pdu_send = 0x400009f4;
llc_ll_phy_req_pdu_send = 0x400009f8;
llc_ll_phy_rsp_pdu_send = 0x400009fc;
llc_ll_ping_req_pdu_send = 0x40000a00;
llc_ll_ping_rsp_pdu_send = 0x40000a04;
llc_ll_start_enc_req_pdu_send = 0x40000a08;
llc_ll_start_enc_rsp_pdu_send = 0x40000a0c;
llc_ll_terminate_ind_pdu_send = 0x40000a10;
llc_ll_unknown_rsp_pdu_send = 0x40000a14;
llc_llcp_ch_map_update_ind_pdu_send = 0x40000a18;
llc_llcp_phy_upd_ind_pdu_send = 0x40000a1c;
llc_llcp_version_ind_pdu_send = 0x40000a20;
llc_op_ch_map_upd_ind_handler = 0x40000a24;
llc_op_con_upd_ind_handler = 0x40000a28;
llc_op_disconnect_ind_handler = 0x40000a2c;
llc_op_dl_upd_ind_handler = 0x40000a30;
llc_op_encrypt_ind_handler = 0x40000a34;
llc_op_feats_exch_ind_handler = 0x40000a38;
llc_op_le_ping_ind_handler = 0x40000a3c;
llc_op_phy_upd_ind_handler = 0x40000a40;
llc_op_ver_exch_ind_handler = 0x40000a44;
llc_stopped_ind_handler = 0x40000a48;
lld_acl_rx_ind_handler = 0x40000a4c;
lld_acl_tx_cfm_handler = 0x40000a50;
lld_adv_end_ind_handler = 0x40000a54;
lld_adv_rep_ind_handler = 0x40000a58;
lld_ch_map_upd_cfm_handler = 0x40000a5c;
lld_con_estab_ind_handler = 0x40000a60;
lld_con_evt_sd_evt_time_set = 0x40000a64;
lld_con_offset_upd_ind_handler = 0x40000a68;
lld_con_param_upd_cfm_handler = 0x40000a6c;
lld_disc_ind_handler = 0x40000a70;
lld_init_end_ind_handler = 0x40000a74;
lld_llcp_rx_ind_handler_wrapper = 0x40000a78;
lld_llcp_tx_cfm_handler = 0x40000a7c;
lld_per_adv_end_ind_handler = 0x40000a80;
lld_per_adv_rep_ind_handler = 0x40000a84;
lld_per_adv_rx_end_ind_handler = 0x40000a88;
lld_phy_coded_500k_get = 0x40000a8c;
lld_phy_upd_cfm_handler = 0x40000a90;
lld_scan_end_ind_handler = 0x40000a94;
lld_scan_req_ind_handler = 0x40000a98;
lld_sync_start_req_handler = 0x40000a9c;
lld_test_end_ind_handler = 0x40000aa0;
lld_update_rxbuf_handler = 0x40000aa4;
llm_ch_map_update_ind_handler = 0x40000aa8;
llm_hci_command_handler_wrapper = 0x40000aac;
llm_scan_period_to_handler = 0x40000ab0;
r_Add2SelfBigHex256 = 0x40000ab4;
r_AddBigHex256 = 0x40000ab8;
r_AddBigHexModP256 = 0x40000abc;
r_AddP256 = 0x40000ac0;
r_AddPdiv2_256 = 0x40000ac4;
r_GF_Jacobian_Point_Addition256 = 0x40000ac8;
r_GF_Jacobian_Point_Double256 = 0x40000acc;
r_GF_Point_Jacobian_To_Affine256 = 0x40000ad0;
r_MultiplyBigHexByUint32_256 = 0x40000ad4;
r_MultiplyBigHexModP256 = 0x40000ad8;
r_MultiplyByU16ModP256 = 0x40000adc;
r_SubtractBigHex256 = 0x40000ae0;
r_SubtractBigHexMod256 = 0x40000ae4;
r_SubtractBigHexUint32_256 = 0x40000ae8;
r_SubtractFromSelfBigHex256 = 0x40000aec;
r_SubtractFromSelfBigHexSign256 = 0x40000af0;
r_aes_alloc = 0x40000af4;
r_aes_ccm_continue = 0x40000af8;
r_aes_ccm_process_e = 0x40000afc;
r_aes_ccm_xor_128_lsb = 0x40000b00;
r_aes_ccm_xor_128_msb = 0x40000b04;
r_aes_cmac_continue = 0x40000b08;
r_aes_cmac_start = 0x40000b0c;
r_aes_k1_continue = 0x40000b10;
r_aes_k2_continue = 0x40000b14;
r_aes_k3_continue = 0x40000b18;
r_aes_k4_continue = 0x40000b1c;
r_aes_shift_left_128 = 0x40000b20;
r_aes_start = 0x40000b24;
r_aes_xor_128 = 0x40000b28;
r_assert_err = 0x40000b2c;
r_assert_param = 0x40000b30;
r_assert_warn = 0x40000b34;
r_bigHexInversion256 = 0x40000b38;
r_ble_sw_cca_check_isr = 0x40000b3c;
r_ble_util_buf_acl_tx_alloc = 0x40000b40;
r_ble_util_buf_acl_tx_elt_get = 0x40000b44;
r_ble_util_buf_acl_tx_free = 0x40000b48;
r_ble_util_buf_acl_tx_free_in_isr = 0x40000b4c;
r_ble_util_buf_adv_tx_alloc = 0x40000b50;
r_ble_util_buf_adv_tx_free = 0x40000b54;
r_ble_util_buf_adv_tx_free_in_isr = 0x40000b58;
r_ble_util_buf_env_deinit = 0x40000b5c;
r_ble_util_buf_env_init = 0x40000b60;
r_ble_util_buf_get_rx_buf_nb = 0x40000b64;
r_ble_util_buf_get_rx_buf_size = 0x40000b68;
r_ble_util_buf_llcp_tx_alloc = 0x40000b6c;
r_ble_util_buf_llcp_tx_free = 0x40000b70;
r_ble_util_buf_rx_alloc = 0x40000b74;
r_ble_util_buf_rx_alloc_in_isr = 0x40000b78;
r_ble_util_buf_rx_free = 0x40000b7c;
r_ble_util_buf_rx_free_in_isr = 0x40000b80;
r_ble_util_buf_set_rx_buf_nb = 0x40000b84;
r_ble_util_buf_set_rx_buf_size = 0x40000b88;
r_ble_util_data_rx_buf_reset = 0x40000b8c;
r_bt_bb_get_intr_mask = 0x40000b90;
r_bt_bb_intr_clear = 0x40000b94;
r_bt_bb_intr_mask_set = 0x40000b98;
r_bt_bb_isr = 0x40000b9c;
r_bt_rf_coex_cfg_set = 0x40000ba0;
r_bt_rf_coex_conn_dynamic_pti_en_get = 0x40000ba4;
r_bt_rf_coex_conn_phy_coded_data_time_limit_en_get = 0x40000ba8;
r_bt_rf_coex_ext_adv_dynamic_pti_en_get = 0x40000bac;
r_bt_rf_coex_ext_scan_dynamic_pti_en_get = 0x40000bb0;
r_bt_rf_coex_legacy_adv_dynamic_pti_en_get = 0x40000bb4;
r_bt_rf_coex_per_adv_dynamic_pti_en_get = 0x40000bb8;
r_bt_rf_coex_pti_table_get = 0x40000bbc;
r_bt_rf_coex_st_param_get = 0x40000bc0;
r_bt_rf_coex_st_param_set = 0x40000bc4;
r_bt_rf_coex_sync_scan_dynamic_pti_en_get = 0x40000bc8;
r_bt_rma_apply_rule_cs_fmt = 0x40000bcc;
r_bt_rma_apply_rule_cs_idx = 0x40000bd0;
r_bt_rma_configure = 0x40000bd4;
r_bt_rma_deregister_rule_cs_fmt = 0x40000bd8;
r_bt_rma_deregister_rule_cs_idx = 0x40000bdc;
r_bt_rma_get_ant_by_act = 0x40000be0;
r_bt_rma_init = 0x40000be4;
r_bt_rma_register_rule_cs_fmt = 0x40000be8;
r_bt_rma_register_rule_cs_idx = 0x40000bec;
r_bt_rtp_apply_rule_cs_fmt = 0x40000bf0;
r_bt_rtp_apply_rule_cs_idx = 0x40000bf4;
r_bt_rtp_deregister_rule_cs_fmt = 0x40000bf8;
r_bt_rtp_deregister_rule_cs_idx = 0x40000bfc;
r_bt_rtp_get_txpwr_idx_by_act = 0x40000c00;
r_bt_rtp_init = 0x40000c04;
r_bt_rtp_register_rule_cs_fmt = 0x40000c08;
r_bt_rtp_register_rule_cs_idx = 0x40000c0c;
r_btdm_isr = 0x40000c10;
r_btdm_task_post = 0x40000c14;
r_btdm_task_post_from_isr = 0x40000c18;
r_btdm_task_recycle = 0x40000c1c;
r_cali_phase_match_p = 0x40000c20;
r_cmp_abs_time = 0x40000c24;
r_cmp_dest_id = 0x40000c28;
r_cmp_timer_id = 0x40000c2c;
r_co_bdaddr_compare = 0x40000c30;
r_co_ble_pkt_dur_in_us = 0x40000c34;
r_co_list_extract = 0x40000c38;
r_co_list_extract_after = 0x40000c3c;
r_co_list_extract_sublist = 0x40000c40;
r_co_list_find = 0x40000c44;
r_co_list_init = 0x40000c48;
r_co_list_insert_after = 0x40000c4c;
r_co_list_insert_before = 0x40000c50;
r_co_list_merge = 0x40000c54;
r_co_list_pool_init = 0x40000c58;
r_co_list_pop_front = 0x40000c5c;
r_co_list_push_back = 0x40000c60;
r_co_list_push_back_sublist = 0x40000c64;
r_co_list_push_front = 0x40000c68;
r_co_list_size = 0x40000c6c;
r_co_nb_good_le_channels = 0x40000c70;
r_co_util_pack = 0x40000c74;
r_co_util_read_array_size = 0x40000c78;
r_co_util_unpack = 0x40000c7c;
r_dbg_env_deinit = 0x40000c80;
r_dbg_env_init = 0x40000c84;
r_dbg_platform_reset_complete = 0x40000c88;
r_dl_upd_proc_start = 0x40000c8c;
r_dump_data = 0x40000c90;
r_ecc_abort_key256_generation = 0x40000c94;
r_ecc_gen_new_public_key = 0x40000c98;
r_ecc_gen_new_secret_key = 0x40000c9c;
r_ecc_generate_key256 = 0x40000ca0;
r_ecc_get_debug_Keys = 0x40000ca4;
r_ecc_init = 0x40000ca8;
r_ecc_is_valid_point = 0x40000cac;
r_ecc_multiplication_event_handler = 0x40000cb0;
r_ecc_point_multiplication_win_256 = 0x40000cb4;
r_emi_alloc_em_mapping_by_offset = 0x40000cb8;
r_emi_base_reg_lut_show = 0x40000cbc;
r_emi_em_base_reg_show = 0x40000cc0;
r_emi_free_em_mapping_by_offset = 0x40000cc4;
r_emi_get_em_mapping_idx_by_offset = 0x40000cc8;
r_emi_get_mem_addr_by_offset = 0x40000ccc;
r_emi_overwrite_em_mapping_by_offset = 0x40000cd0;
r_esp_vendor_hci_command_handler = 0x40000cd4;
r_get_stack_usage = 0x40000cd8;
r_h4tl_acl_hdr_rx_evt_handler = 0x40000cdc;
r_h4tl_cmd_hdr_rx_evt_handler = 0x40000ce0;
r_h4tl_cmd_pld_rx_evt_handler = 0x40000ce4;
r_h4tl_eif_io_event_post = 0x40000ce8;
r_h4tl_eif_register = 0x40000cec;
r_h4tl_init = 0x40000cf0;
r_h4tl_out_of_sync = 0x40000cf4;
r_h4tl_out_of_sync_check = 0x40000cf8;
r_h4tl_read_hdr = 0x40000cfc;
r_h4tl_read_next_out_of_sync = 0x40000d00;
r_h4tl_read_payl = 0x40000d04;
r_h4tl_read_start = 0x40000d08;
r_h4tl_rx_acl_hdr_extract = 0x40000d0c;
r_h4tl_rx_cmd_hdr_extract = 0x40000d10;
r_h4tl_rx_done = 0x40000d14;
r_h4tl_start = 0x40000d18;
r_h4tl_stop = 0x40000d1c;
r_h4tl_tx_done = 0x40000d20;
r_h4tl_tx_evt_handler = 0x40000d24;
r_h4tl_write = 0x40000d28;
r_hci_acl_tx_data_alloc = 0x40000d2c;
r_hci_acl_tx_data_received = 0x40000d30;
r_hci_basic_cmd_send_2_controller = 0x40000d34;
r_hci_ble_adv_report_filter_check = 0x40000d38;
r_hci_ble_adv_report_tx_check = 0x40000d3c;
r_hci_ble_conhdl_register = 0x40000d40;
r_hci_ble_conhdl_unregister = 0x40000d44;
r_hci_build_acl_data = 0x40000d48;
r_hci_build_cc_evt = 0x40000d4c;
r_hci_build_cs_evt = 0x40000d50;
r_hci_build_evt = 0x40000d54;
r_hci_build_le_evt = 0x40000d58;
r_hci_cmd_get_max_param_size = 0x40000d5c;
r_hci_cmd_received = 0x40000d60;
r_hci_cmd_reject = 0x40000d64;
r_hci_evt_mask_check = 0x40000d68;
r_hci_evt_mask_set = 0x40000d6c;
r_hci_fc_acl_buf_size_set = 0x40000d70;
r_hci_fc_acl_en = 0x40000d74;
r_hci_fc_acl_packet_sent = 0x40000d78;
r_hci_fc_check_host_available_nb_acl_packets = 0x40000d7c;
r_hci_fc_host_nb_acl_pkts_complete = 0x40000d80;
r_hci_fc_init = 0x40000d84;
r_hci_look_for_cmd_desc = 0x40000d88;
r_hci_look_for_evt_desc = 0x40000d8c;
r_hci_look_for_le_evt_desc = 0x40000d90;
r_hci_look_for_le_evt_desc_esp = 0x40000d94;
r_hci_pack_bytes = 0x40000d98;
r_hci_register_vendor_desc_tab = 0x40000d9c;
r_hci_send_2_controller = 0x40000da0;
r_hci_send_2_host = 0x40000da4;
r_hci_tl_c2h_data_flow_on = 0x40000da8;
r_hci_tl_cmd_hdr_rx_evt_handler = 0x40000dac;
r_hci_tl_cmd_pld_rx_evt_handler = 0x40000db0;
r_hci_tl_get_pkt = 0x40000db4;
r_hci_tl_hci_pkt_handler = 0x40000db8;
r_hci_tl_hci_tx_done_evt_handler = 0x40000dbc;
r_hci_tl_inc_nb_h2c_cmd_pkts = 0x40000dc0;
r_hci_tl_save_pkt = 0x40000dc4;
r_hci_tl_send = 0x40000dc8;
r_hci_tx_done = 0x40000dcc;
r_hci_tx_start = 0x40000dd0;
r_hci_tx_trigger = 0x40000dd4;
r_isValidSecretKey_256 = 0x40000dd8;
r_ke_check_malloc = 0x40000ddc;
r_ke_event_callback_set = 0x40000de0;
r_ke_event_clear = 0x40000de4;
r_ke_event_flush = 0x40000de8;
r_ke_event_get = 0x40000dec;
r_ke_event_get_all = 0x40000df0;
r_ke_event_init = 0x40000df4;
r_ke_event_schedule = 0x40000df8;
r_ke_event_set = 0x40000dfc;
r_ke_flush = 0x40000e00;
r_ke_free = 0x40000e04;
r_ke_handler_search = 0x40000e08;
r_ke_init = 0x40000e0c;
r_ke_is_free = 0x40000e10;
r_ke_malloc = 0x40000e14;
r_ke_mem_init = 0x40000e18;
r_ke_mem_is_empty = 0x40000e1c;
r_ke_mem_is_in_heap = 0x40000e20;
r_ke_msg_alloc = 0x40000e24;
r_ke_msg_dest_id_get = 0x40000e28;
r_ke_msg_discard = 0x40000e2c;
r_ke_msg_forward = 0x40000e30;
r_ke_msg_forward_new_id = 0x40000e34;
r_ke_msg_free = 0x40000e38;
r_ke_msg_in_queue = 0x40000e3c;
r_ke_msg_save = 0x40000e40;
r_ke_msg_send = 0x40000e44;
r_ke_msg_send_basic = 0x40000e48;
r_ke_msg_src_id_get = 0x40000e4c;
r_ke_queue_extract = 0x40000e50;
r_ke_queue_insert = 0x40000e54;
r_ke_sleep_check = 0x40000e58;
r_ke_state_get = 0x40000e5c;
r_ke_state_set = 0x40000e60;
r_ke_task_check = 0x40000e64;
r_ke_task_create = 0x40000e68;
r_ke_task_delete = 0x40000e6c;
r_ke_task_handler_get = 0x40000e70;
r_ke_task_init = 0x40000e74;
r_ke_task_msg_flush = 0x40000e78;
r_ke_task_saved_update = 0x40000e7c;
r_ke_task_schedule = 0x40000e80;
r_ke_time = 0x40000e84;
r_ke_time_cmp = 0x40000e88;
r_ke_time_past = 0x40000e8c;
r_ke_timer_active = 0x40000e90;
r_ke_timer_adjust_all = 0x40000e94;
r_ke_timer_clear = 0x40000e98;
r_ke_timer_init = 0x40000e9c;
r_ke_timer_schedule = 0x40000ea0;
r_ke_timer_set = 0x40000ea4;
r_led_init = 0x40000ea8;
r_led_set_all = 0x40000eac;
r_llc_aes_res_cb = 0x40000eb0;
r_llc_ch_map_up_proc_err_cb = 0x40000eb4;
r_llc_cleanup = 0x40000eb8;
r_llc_cmd_cmp_send = 0x40000ebc;
r_llc_cmd_stat_send = 0x40000ec0;
r_llc_con_move_cbk = 0x40000ec4;
r_llc_con_plan_set_update = 0x40000ec8;
r_llc_con_upd_param_in_range = 0x40000ecc;
r_llc_disconnect = 0x40000ed0;
r_llc_disconnect_end = 0x40000ed4;
r_llc_disconnect_proc_continue = 0x40000ed8;
r_llc_disconnect_proc_err_cb = 0x40000edc;
r_llc_dl_chg_check = 0x40000ee0;
r_llc_dle_proc_err_cb = 0x40000ee4;
r_llc_feats_exch_proc_err_cb = 0x40000ee8;
r_llc_hci_cmd_handler_tab_p_get = 0x40000eec;
r_llc_hci_command_handler = 0x40000ef0;
r_llc_hci_con_param_req_evt_send = 0x40000ef4;
r_llc_hci_con_upd_info_send = 0x40000ef8;
r_llc_hci_disconnected_dis = 0x40000efc;
r_llc_hci_dl_upd_info_send = 0x40000f00;
r_llc_hci_enc_evt_send = 0x40000f04;
r_llc_hci_feats_info_send = 0x40000f08;
r_llc_hci_le_phy_upd_cmp_evt_send = 0x40000f0c;
r_llc_hci_ltk_request_evt_send = 0x40000f10;
r_llc_hci_nb_cmp_pkts_evt_send = 0x40000f14;
r_llc_hci_version_info_send = 0x40000f18;
r_llc_init_term_proc = 0x40000f1c;
r_llc_iv_skd_rand_gen = 0x40000f20;
r_llc_le_ping_proc_continue = 0x40000f24;
r_llc_le_ping_proc_err_cb = 0x40000f28;
r_llc_le_ping_restart = 0x40000f2c;
r_llc_le_ping_set = 0x40000f30;
r_llc_ll_pause_enc_rsp_ack_handler = 0x40000f34;
r_llc_ll_reject_ind_ack_handler = 0x40000f38;
r_llc_ll_reject_ind_pdu_send = 0x40000f3c;
r_llc_ll_start_enc_rsp_ack_handler = 0x40000f40;
r_llc_ll_terminate_ind_ack = 0x40000f44;
r_llc_ll_unknown_ind_handler = 0x40000f48;
r_llc_llcp_send = 0x40000f4c;
r_llc_llcp_state_set = 0x40000f50;
r_llc_llcp_trans_timer_set = 0x40000f54;
r_llc_llcp_tx_check = 0x40000f58;
r_llc_loc_ch_map_proc_continue = 0x40000f5c;
r_llc_loc_con_upd_proc_continue = 0x40000f60;
r_llc_loc_con_upd_proc_err_cb = 0x40000f64;
r_llc_loc_dl_upd_proc_continue = 0x40000f68;
r_llc_loc_encrypt_proc_continue = 0x40000f6c;
r_llc_loc_encrypt_proc_err_cb = 0x40000f70;
r_llc_loc_feats_exch_proc_continue = 0x40000f74;
r_llc_loc_phy_upd_proc_continue = 0x40000f78;
r_llc_loc_phy_upd_proc_err_cb = 0x40000f7c;
r_llc_msg_handler_tab_p_get = 0x40000f80;
r_llc_pref_param_compute = 0x40000f84;
r_llc_proc_collision_check = 0x40000f88;
r_llc_proc_err_ind = 0x40000f8c;
r_llc_proc_get = 0x40000f90;
r_llc_proc_id_get = 0x40000f94;
r_llc_proc_reg = 0x40000f98;
r_llc_proc_state_get = 0x40000f9c;
r_llc_proc_state_set = 0x40000fa0;
r_llc_proc_timer_pause_set = 0x40000fa4;
r_llc_proc_timer_set = 0x40000fa8;
r_llc_proc_unreg = 0x40000fac;
r_llc_rem_ch_map_proc_continue = 0x40000fb0;
r_llc_rem_con_upd_proc_continue = 0x40000fb4;
r_llc_rem_con_upd_proc_err_cb = 0x40000fb8;
r_llc_rem_dl_upd_proc = 0x40000fbc;
r_llc_rem_encrypt_proc_continue = 0x40000fc0;
r_llc_rem_encrypt_proc_err_cb = 0x40000fc4;
r_llc_rem_phy_upd_proc_continue = 0x40000fc8;
r_llc_rem_phy_upd_proc_err_cb = 0x40000fcc;
r_llc_role_get = 0x40000fd0;
r_llc_sk_gen = 0x40000fd4;
r_llc_start = 0x40000fd8;
r_llc_stop = 0x40000fdc;
r_llc_ver_exch_loc_proc_continue = 0x40000fe0;
r_llc_ver_proc_err_cb = 0x40000fe4;
r_llcp_pdu_handler_tab_p_get = 0x40000fe8;
r_lld_aa_gen = 0x40000fec;
r_lld_adv_adv_data_set = 0x40000ff0;
r_lld_adv_adv_data_update = 0x40000ff4;
r_lld_adv_aux_ch_idx_set = 0x40000ff8;
r_lld_adv_aux_evt_canceled_cbk = 0x40000ffc;
r_lld_adv_aux_evt_start_cbk = 0x40001000;
r_lld_adv_coex_check_ext_adv_synced = 0x40001004;
r_lld_adv_coex_env_reset = 0x40001008;
r_lld_adv_duration_update = 0x4000100c;
r_lld_adv_dynamic_pti_process = 0x40001010;
r_lld_adv_end = 0x40001014;
r_lld_adv_evt_canceled_cbk = 0x40001018;
r_lld_adv_evt_start_cbk = 0x4000101c;
r_lld_adv_ext_chain_construct = 0x40001020;
r_lld_adv_ext_pkt_prepare = 0x40001024;
r_lld_adv_frm_cbk = 0x40001028;
r_lld_adv_frm_isr = 0x4000102c;
r_lld_adv_frm_skip_isr = 0x40001030;
r_lld_adv_init = 0x40001034;
r_lld_adv_pkt_rx = 0x40001038;
r_lld_adv_pkt_rx_connect_ind = 0x4000103c;
r_lld_adv_pkt_rx_send_scan_req_evt = 0x40001040;
r_lld_adv_rand_addr_update = 0x40001044;
r_lld_adv_restart = 0x40001048;
r_lld_adv_scan_rsp_data_set = 0x4000104c;
r_lld_adv_scan_rsp_data_update = 0x40001050;
r_lld_adv_set_tx_power = 0x40001054;
r_lld_adv_start = 0x40001058;
r_lld_adv_stop = 0x4000105c;
r_lld_adv_sync_info_set = 0x40001060;
r_lld_adv_sync_info_update = 0x40001064;
r_lld_calc_aux_rx = 0x40001068;
r_lld_cca_alloc = 0x4000106c;
r_lld_cca_data_reset = 0x40001070;
r_lld_cca_free = 0x40001074;
r_lld_ch_assess_data_get = 0x40001078;
r_lld_ch_idx_get = 0x4000107c;
r_lld_ch_map_set = 0x40001080;
r_lld_channel_assess = 0x40001084;
r_lld_con_activity_act_offset_compute = 0x40001088;
r_lld_con_activity_offset_compute = 0x4000108c;
r_lld_con_ch_map_update = 0x40001090;
r_lld_con_cleanup = 0x40001094;
r_lld_con_current_tx_power_get = 0x40001098;
r_lld_con_data_flow_set = 0x4000109c;
r_lld_con_data_len_update = 0x400010a0;
r_lld_con_data_tx = 0x400010a4;
r_lld_con_enc_key_load = 0x400010a8;
r_lld_con_event_counter_get = 0x400010ac;
r_lld_con_evt_canceled_cbk = 0x400010b0;
r_lld_con_evt_duration_min_get = 0x400010b4;
r_lld_con_evt_max_eff_time_cal = 0x400010b8;
r_lld_con_evt_sd_evt_time_get = 0x400010bc;
r_lld_con_evt_start_cbk = 0x400010c0;
r_lld_con_evt_time_update = 0x400010c4;
r_lld_con_free_all_tx_buf = 0x400010c8;
r_lld_con_frm_cbk = 0x400010cc;
r_lld_con_frm_isr = 0x400010d0;
r_lld_con_frm_skip_isr = 0x400010d4;
r_lld_con_init = 0x400010d8;
r_lld_con_llcp_tx = 0x400010dc;
r_lld_con_max_lat_calc = 0x400010e0;
r_lld_con_offset_get = 0x400010e4;
r_lld_con_param_update = 0x400010e8;
r_lld_con_phys_update = 0x400010ec;
r_lld_con_pref_slave_evt_dur_set = 0x400010f0;
r_lld_con_pref_slave_latency_set = 0x400010f4;
r_lld_con_rssi_get = 0x400010f8;
r_lld_con_rx = 0x400010fc;
r_lld_con_rx_channel_assess = 0x40001100;
r_lld_con_rx_enc = 0x40001104;
r_lld_con_rx_isr = 0x40001108;
r_lld_con_rx_link_info_check = 0x4000110c;
r_lld_con_rx_llcp_check = 0x40001110;
r_lld_con_rx_sync_time_update = 0x40001114;
r_lld_con_sched = 0x40001118;
r_lld_con_set_tx_power = 0x4000111c;
r_lld_con_start = 0x40001120;
r_lld_con_stop = 0x40001124;
r_lld_con_tx = 0x40001128;
r_lld_con_tx_enc = 0x4000112c;
r_lld_con_tx_isr = 0x40001130;
r_lld_con_tx_len_update = 0x40001134;
r_lld_con_tx_len_update_for_intv = 0x40001138;
r_lld_con_tx_len_update_for_rate = 0x4000113c;
r_lld_con_tx_prog = 0x40001140;
r_lld_conn_dynamic_pti_process = 0x40001144;
r_lld_continue_scan_rx_isr_end_process = 0x40001148;
r_lld_ext_scan_dynamic_pti_process = 0x4000114c;
r_lld_hw_cca_end_isr = 0x40001150;
r_lld_hw_cca_evt_handler = 0x40001154;
r_lld_hw_cca_isr = 0x40001158;
r_lld_init_cal_anchor_point = 0x4000115c;
r_lld_init_compute_winoffset = 0x40001160;
r_lld_init_connect_req_pack = 0x40001164;
r_lld_init_end = 0x40001168;
r_lld_init_evt_canceled_cbk = 0x4000116c;
r_lld_init_evt_start_cbk = 0x40001170;
r_lld_init_frm_cbk = 0x40001174;
r_lld_init_frm_eof_isr = 0x40001178;
r_lld_init_frm_skip_isr = 0x4000117c;
r_lld_init_init = 0x40001180;
r_lld_init_process_pkt_rx = 0x40001184;
r_lld_init_process_pkt_rx_adv_ext_ind = 0x40001188;
r_lld_init_process_pkt_rx_adv_ind_or_direct_ind = 0x4000118c;
r_lld_init_process_pkt_rx_aux_connect_rsp = 0x40001190;
r_lld_init_process_pkt_tx = 0x40001194;
r_lld_init_process_pkt_tx_cal_con_timestamp = 0x40001198;
r_lld_init_sched = 0x4000119c;
r_lld_init_set_tx_power = 0x400011a0;
r_lld_init_start = 0x400011a4;
r_lld_init_stop = 0x400011a8;
r_lld_instant_proc_end = 0x400011ac;
r_lld_llcp_rx_ind_handler = 0x400011b0;
r_lld_per_adv_ch_map_update = 0x400011b4;
r_lld_per_adv_chain_construct = 0x400011b8;
r_lld_per_adv_cleanup = 0x400011bc;
r_lld_per_adv_coex_env_reset = 0x400011c0;
r_lld_per_adv_data_set = 0x400011c4;
r_lld_per_adv_data_update = 0x400011c8;
r_lld_per_adv_dynamic_pti_process = 0x400011cc;
r_lld_per_adv_evt_canceled_cbk = 0x400011d0;
r_lld_per_adv_evt_start_cbk = 0x400011d4;
r_lld_per_adv_ext_pkt_prepare = 0x400011d8;
r_lld_per_adv_frm_cbk = 0x400011dc;
r_lld_per_adv_frm_isr = 0x400011e0;
r_lld_per_adv_frm_skip_isr = 0x400011e4;
r_lld_per_adv_init = 0x400011e8;
r_lld_per_adv_init_info_get = 0x400011ec;
r_lld_per_adv_list_add = 0x400011f0;
r_lld_per_adv_list_rem = 0x400011f4;
r_lld_per_adv_sched = 0x400011f8;
r_lld_per_adv_set_tx_power = 0x400011fc;
r_lld_per_adv_start = 0x40001200;
r_lld_per_adv_stop = 0x40001204;
r_lld_per_adv_sync_info_get = 0x40001208;
r_lld_process_cca_data = 0x4000120c;
r_lld_ral_search = 0x40001210;
r_lld_read_clock = 0x40001214;
r_lld_res_list_add = 0x40001218;
r_lld_res_list_clear = 0x4000121c;
r_lld_res_list_is_empty = 0x40001220;
r_lld_res_list_local_rpa_get = 0x40001224;
r_lld_res_list_peer_rpa_get = 0x40001228;
r_lld_res_list_peer_update = 0x4000122c;
r_lld_res_list_priv_mode_update = 0x40001230;
r_lld_res_list_rem = 0x40001234;
r_lld_reset_reg = 0x40001238;
r_lld_rpa_renew = 0x4000123c;
r_lld_rpa_renew_evt_canceled_cbk = 0x40001240;
r_lld_rpa_renew_evt_start_cbk = 0x40001244;
r_lld_rpa_renew_instant_cbk = 0x40001248;
r_lld_rxdesc_check = 0x4000124c;
r_lld_rxdesc_free = 0x40001250;
r_lld_scan_create_sync = 0x40001254;
r_lld_scan_create_sync_cancel = 0x40001258;
r_lld_scan_end = 0x4000125c;
r_lld_scan_evt_canceled_cbk = 0x40001260;
r_lld_scan_evt_start_cbk = 0x40001264;
r_lld_scan_frm_cbk = 0x40001268;
r_lld_scan_frm_eof_isr = 0x4000126c;
r_lld_scan_frm_rx_isr = 0x40001270;
r_lld_scan_frm_skip_isr = 0x40001274;
r_lld_scan_init = 0x40001278;
r_lld_scan_params_update = 0x4000127c;
r_lld_scan_process_pkt_rx = 0x40001280;
r_lld_scan_process_pkt_rx_adv_rep = 0x40001284;
r_lld_scan_process_pkt_rx_aux_adv_ind = 0x40001288;
r_lld_scan_process_pkt_rx_aux_chain_ind = 0x4000128c;
r_lld_scan_process_pkt_rx_aux_scan_rsp = 0x40001290;
r_lld_scan_process_pkt_rx_ext_adv = 0x40001294;
r_lld_scan_process_pkt_rx_ext_adv_ind = 0x40001298;
r_lld_scan_process_pkt_rx_legacy_adv = 0x4000129c;
r_lld_scan_restart = 0x400012a0;
r_lld_scan_sched = 0x400012a4;
r_lld_scan_set_tx_power = 0x400012a8;
r_lld_scan_start = 0x400012ac;
r_lld_scan_stop = 0x400012b0;
r_lld_scan_sync_accept = 0x400012b4;
r_lld_scan_sync_info_unpack = 0x400012b8;
r_lld_scan_trunc_ind = 0x400012bc;
r_lld_sw_cca_evt_handler = 0x400012c0;
r_lld_sw_cca_isr = 0x400012c4;
r_lld_sync_ch_map_update = 0x400012c8;
r_lld_sync_cleanup = 0x400012cc;
r_lld_sync_evt_canceled_cbk = 0x400012d0;
r_lld_sync_evt_start_cbk = 0x400012d4;
r_lld_sync_frm_cbk = 0x400012d8;
r_lld_sync_frm_eof_isr = 0x400012dc;
r_lld_sync_frm_rx_isr = 0x400012e0;
r_lld_sync_frm_skip_isr = 0x400012e4;
r_lld_sync_init = 0x400012e8;
r_lld_sync_process_pkt_rx = 0x400012ec;
r_lld_sync_process_pkt_rx_aux_sync_ind = 0x400012f0;
r_lld_sync_process_pkt_rx_pkt_check = 0x400012f4;
r_lld_sync_scan_dynamic_pti_process = 0x400012f8;
r_lld_sync_sched = 0x400012fc;
r_lld_sync_start = 0x40001300;
r_lld_sync_stop = 0x40001304;
r_lld_sync_trunc_ind = 0x40001308;
r_lld_test_cleanup = 0x4000130c;
r_lld_test_evt_canceled_cbk = 0x40001310;
r_lld_test_evt_start_cbk = 0x40001314;
r_lld_test_freq2chnl = 0x40001318;
r_lld_test_frm_cbk = 0x4000131c;
r_lld_test_frm_isr = 0x40001320;
r_lld_test_init = 0x40001324;
r_lld_test_rx_isr = 0x40001328;
r_lld_test_set_tx_power = 0x4000132c;
r_lld_test_start = 0x40001330;
r_lld_test_stop = 0x40001334;
r_lld_update_rxbuf = 0x40001338;
r_lld_update_rxbuf_isr = 0x4000133c;
r_lld_white_list_add = 0x40001340;
r_lld_white_list_rem = 0x40001344;
r_llm_activity_free_get = 0x40001348;
r_llm_activity_free_set = 0x4000134c;
r_llm_activity_syncing_get = 0x40001350;
r_llm_adv_con_len_check = 0x40001354;
r_llm_adv_hdl_to_id = 0x40001358;
r_llm_adv_rep_flow_control_check = 0x4000135c;
r_llm_adv_rep_flow_control_update = 0x40001360;
r_llm_adv_reports_list_check = 0x40001364;
r_llm_adv_set_all_release = 0x40001368;
r_llm_adv_set_dft_params = 0x4000136c;
r_llm_adv_set_release = 0x40001370;
r_llm_aes_res_cb = 0x40001374;
r_llm_ble_update_adv_flow_control = 0x40001378;
r_llm_ch_map_update = 0x4000137c;
r_llm_cmd_cmp_send = 0x40001380;
r_llm_cmd_stat_send = 0x40001384;
r_llm_dev_list_empty_entry = 0x40001388;
r_llm_dev_list_search = 0x4000138c;
r_llm_env_adv_dup_filt_deinit = 0x40001390;
r_llm_env_adv_dup_filt_init = 0x40001394;
r_llm_init_ble_adv_report_flow_contol = 0x40001398;
r_llm_is_dev_connected = 0x4000139c;
r_llm_is_dev_synced = 0x400013a0;
r_llm_is_non_con_act_ongoing_check = 0x400013a4;
r_llm_is_wl_accessible = 0x400013a8;
r_llm_le_evt_mask_check = 0x400013ac;
r_llm_le_features_get = 0x400013b0;
r_llm_link_disc = 0x400013b4;
r_llm_master_ch_map_get = 0x400013b8;
r_llm_msg_handler_tab_p_get = 0x400013bc;
r_llm_no_activity = 0x400013c0;
r_llm_per_adv_slot_dur = 0x400013c4;
r_llm_plan_elt_get = 0x400013c8;
r_llm_rx_path_comp_get = 0x400013cc;
r_llm_scan_start = 0x400013d0;
r_llm_scan_sync_acad_attach = 0x400013d4;
r_llm_scan_sync_acad_detach = 0x400013d8;
r_llm_send_adv_lost_event_to_host = 0x400013dc;
r_llm_tx_path_comp_get = 0x400013e0;
r_misc_deinit = 0x400013e4;
r_misc_free_em_buf_in_isr = 0x400013e8;
r_misc_init = 0x400013ec;
r_misc_msg_handler_tab_p_get = 0x400013f0;
r_notEqual256 = 0x400013f4;
r_phy_upd_proc_start = 0x400013f8;
r_platform_reset = 0x400013fc;
r_register_esp_vendor_cmd_handler = 0x40001400;
r_rf_em_init = 0x40001404;
r_rf_force_agc_enable = 0x40001408;
r_rf_reg_rd = 0x4000140c;
r_rf_reg_wr = 0x40001410;
r_rf_reset = 0x40001414;
r_rf_rssi_convert = 0x40001418;
r_rf_rw_v9_le_disable = 0x4000141c;
r_rf_rw_v9_le_enable = 0x40001420;
r_rf_sleep = 0x40001424;
r_rf_txpwr_cs_get = 0x40001428;
r_rf_txpwr_dbm_get = 0x4000142c;
r_rf_util_cs_fmt_convert = 0x40001430;
r_rw_crypto_aes_ccm = 0x40001434;
r_rw_crypto_aes_encrypt = 0x40001438;
r_rw_crypto_aes_init = 0x4000143c;
r_rw_crypto_aes_k1 = 0x40001440;
r_rw_crypto_aes_k2 = 0x40001444;
r_rw_crypto_aes_k3 = 0x40001448;
r_rw_crypto_aes_k4 = 0x4000144c;
r_rw_crypto_aes_rand = 0x40001450;
r_rw_crypto_aes_result_handler = 0x40001454;
r_rw_crypto_aes_s1 = 0x40001458;
r_rw_cryto_aes_cmac = 0x4000145c;
r_rw_v9_init_em_radio_table = 0x40001460;
r_rwble_isr = 0x40001464;
r_rwble_sleep_enter = 0x40001468;
r_rwble_sleep_wakeup_end = 0x4000146c;
r_rwbtdm_isr_wrapper = 0x40001470;
r_rwip_active_check = 0x40001474;
r_rwip_aes_encrypt = 0x40001478;
r_rwip_assert = 0x4000147c;
r_rwip_crypt_evt_handler = 0x40001480;
r_rwip_crypt_isr_handler = 0x40001484;
r_rwip_eif_get = 0x40001488;
r_rwip_half_slot_2_lpcycles = 0x4000148c;
r_rwip_hus_2_lpcycles = 0x40001490;
r_rwip_isr = 0x40001494;
r_rwip_lpcycles_2_hus = 0x40001498;
r_rwip_prevent_sleep_clear = 0x4000149c;
r_rwip_prevent_sleep_set = 0x400014a0;
r_rwip_schedule = 0x400014a4;
r_rwip_sleep = 0x400014a8;
r_rwip_sw_int_handler = 0x400014ac;
r_rwip_sw_int_req = 0x400014b0;
r_rwip_time_get = 0x400014b4;
r_rwip_timer_10ms_handler = 0x400014b8;
r_rwip_timer_10ms_set = 0x400014bc;
r_rwip_timer_hs_handler = 0x400014c0;
r_rwip_timer_hs_set = 0x400014c4;
r_rwip_timer_hus_handler = 0x400014c8;
r_rwip_timer_hus_set = 0x400014cc;
r_rwip_wakeup = 0x400014d0;
r_rwip_wakeup_end = 0x400014d4;
r_rwip_wlcoex_set = 0x400014d8;
r_sch_alarm_clear = 0x400014dc;
r_sch_alarm_init = 0x400014e0;
r_sch_alarm_prog = 0x400014e4;
r_sch_alarm_set = 0x400014e8;
r_sch_alarm_timer_isr = 0x400014ec;
r_sch_arb_conflict_check = 0x400014f0;
r_sch_arb_elt_cancel = 0x400014f4;
r_sch_arb_event_start_isr = 0x400014f8;
r_sch_arb_init = 0x400014fc;
r_sch_arb_insert = 0x40001500;
r_sch_arb_prog_timer = 0x40001504;
r_sch_arb_remove = 0x40001508;
r_sch_arb_sw_isr = 0x4000150c;
r_sch_plan_chk = 0x40001510;
r_sch_plan_clock_wrap_offset_update = 0x40001514;
r_sch_plan_init = 0x40001518;
r_sch_plan_interval_req = 0x4000151c;
r_sch_plan_offset_max_calc = 0x40001520;
r_sch_plan_offset_req = 0x40001524;
r_sch_plan_position_range_compute = 0x40001528;
r_sch_plan_rem = 0x4000152c;
r_sch_plan_req = 0x40001530;
r_sch_plan_set = 0x40001534;
r_sch_prog_end_isr = 0x40001538;
r_sch_prog_init = 0x4000153c;
r_sch_prog_push = 0x40001540;
r_sch_prog_rx_isr = 0x40001544;
r_sch_prog_skip_isr = 0x40001548;
r_sch_prog_tx_isr = 0x4000154c;
r_sch_slice_bg_add = 0x40001550;
r_sch_slice_bg_remove = 0x40001554;
r_sch_slice_compute = 0x40001558;
r_sch_slice_fg_add = 0x4000155c;
r_sch_slice_fg_remove = 0x40001560;
r_sch_slice_init = 0x40001564;
r_sch_slice_per_add = 0x40001568;
r_sch_slice_per_remove = 0x4000156c;
r_sdk_config_get_bt_sleep_enable = 0x40001570;
r_sdk_config_get_hl_derived_opts = 0x40001574;
r_sdk_config_get_opts = 0x40001578;
r_sdk_config_get_priv_opts = 0x4000157c;
r_sdk_config_set_bt_sleep_enable = 0x40001580;
r_sdk_config_set_hl_derived_opts = 0x40001584;
r_sdk_config_set_opts = 0x40001588;
r_specialModP256 = 0x4000158c;
r_unloaded_area_init = 0x40001590;
r_vhci_flow_off = 0x40001594;
r_vhci_flow_on = 0x40001598;
r_vhci_notify_host_send_available = 0x4000159c;
r_vhci_send_to_host = 0x400015a0;
r_vnd_hci_command_handler = 0x400015a4;
r_vshci_init = 0x400015a8;
vnd_hci_command_handler_wrapper = 0x400015ac;
/* bluetooth hook funcs */
r_llc_loc_encrypt_proc_continue_hook = 0x40001c60;
r_llc_loc_phy_upd_proc_continue_hook = 0x40001c64;
r_llc_rem_phy_upd_proc_continue_hook = 0x40001c68;
r_lld_scan_frm_eof_isr_hook = 0x40001c6c;
r_lld_scan_evt_start_cbk_hook = 0x40001c70;
r_lld_scan_process_pkt_rx_ext_adv_hook = 0x40001c78;
r_lld_scan_sched_hook = 0x40001c7c;
r_lld_adv_evt_start_cbk_hook = 0x40001c84;
r_lld_adv_aux_evt_start_cbk_hook = 0x40001c88;
r_lld_adv_frm_isr_hook = 0x40001c8c;
r_lld_adv_start_init_evt_param_hook = 0x40001c90;
r_lld_con_evt_canceled_cbk_hook = 0x40001c94;
r_lld_con_frm_isr_hook = 0x40001c98;
r_lld_con_tx_hook = 0x40001c9c;
r_lld_con_rx_hook = 0x40001ca0;
r_lld_con_evt_start_cbk_hook = 0x40001ca4;
r_lld_con_tx_prog_new_packet_hook = 0x40001cac;
r_lld_init_frm_eof_isr_hook = 0x40001cb0;
r_lld_init_evt_start_cbk_hook = 0x40001cb4;
r_lld_init_sched_hook = 0x40001cbc;
r_lld_init_process_pkt_tx_hook = 0x40001cc0;
r_lld_per_adv_evt_start_cbk_hook = 0x40001cc4;
r_lld_per_adv_frm_isr_hook = 0x40001cc8;
r_lld_per_adv_start_hook = 0x40001ccc;
r_lld_sync_frm_eof_isr_hook = 0x40001cd0;
r_lld_sync_evt_start_cbk_hook = 0x40001cd4;
r_lld_sync_start_hook = 0x40001cd8;
r_lld_sync_process_pkt_rx_pkt_check_hook = 0x40001cdc;
r_sch_arb_insert_hook = 0x40001ce0;
r_sch_plan_offset_req_hook = 0x40001ce4;

View File

@ -44,38 +44,6 @@ ppProcTxCallback = 0x40001b30;
ieee80211_gettid = 0x40001b34;
/***************************************
Group eco3_bluetooth
***************************************/
/* Functions */
r_lld_legacy_adv_dynamic_pti_get = 0x40001b38;
r_lld_legacy_adv_dynamic_pti_process = 0x40001b3c;
r_lld_ext_adv_dynamic_pti_get = 0x40001b40;
r_lld_ext_adv_dynamic_aux_pti_process = 0x40001b44;
r_lld_ext_adv_dynamic_pti_process = 0x40001b48;
r_lld_adv_ext_pkt_prepare_set = 0x40001b4c;
r_lld_adv_ext_chain_connectable_construct = 0x40001b54;
r_lld_adv_pkt_rx_connect_post = 0x40001b5c;
r_lld_adv_start_init_evt_param = 0x40001b60;
r_lld_adv_start_set_cs = 0x40001b64;
/* r_lld_adv_start_update_filter_policy = 0x40001b68; */
r_lld_adv_start_schedule_asap = 0x40001b6c;
r_lld_con_tx_prog_new_packet_coex = 0x40001b70;
r_lld_per_adv_dynamic_pti_get = 0x40001b78;
r_lld_per_adv_evt_start_chm_upd = 0x40001b7c;
r_lld_ext_scan_dynamic_pti_get = 0x40001b80;
r_lld_sync_insert = 0x40001b88;
r_sch_prog_ble_push = 0x40001b8c;
r_sch_prog_bt_push = 0x40001b90;
r_lld_init_evt_end_type_set = 0x40001b94;
r_lld_init_evt_end_type_get = 0x40001b98;
r_lld_adv_direct_adv_use_rpa_addr_state_set = 0x40001b9c;
r_lld_adv_direct_adv_use_rpa_addr_state_get = 0x40001ba0;
r_lld_init_evt_end_type_check_state_set = 0x40001ba4;
r_lld_init_evt_end_type_check_state_get = 0x40001ba8;
/***************************************
Group eco3_phy
***************************************/

View File

@ -0,0 +1,45 @@
/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
ESP32C3 ECO3 ROM address table
Version 3 API's imported from the ROM
*/
/***************************************
Group eco3_bluetooth
***************************************/
/* Functions */
r_lld_legacy_adv_dynamic_pti_get = 0x40001b38;
r_lld_legacy_adv_dynamic_pti_process = 0x40001b3c;
r_lld_ext_adv_dynamic_pti_get = 0x40001b40;
r_lld_ext_adv_dynamic_aux_pti_process = 0x40001b44;
r_lld_ext_adv_dynamic_pti_process = 0x40001b48;
r_lld_adv_ext_pkt_prepare_set = 0x40001b4c;
r_lld_adv_ext_chain_none_construct = 0x40001b50;
r_lld_adv_ext_chain_connectable_construct = 0x40001b54;
r_lld_adv_ext_chain_scannable_construct = 0x40001b58;
r_lld_adv_pkt_rx_connect_post = 0x40001b5c;
r_lld_adv_start_init_evt_param = 0x40001b60;
r_lld_adv_start_set_cs = 0x40001b64;
r_lld_adv_start_update_filter_policy = 0x40001b68;
r_lld_adv_start_schedule_asap = 0x40001b6c;
r_lld_con_tx_prog_new_packet_coex = 0x40001b70;
r_lld_con_tx_prog_new_packet = 0x40001b74;
r_lld_per_adv_dynamic_pti_get = 0x40001b78;
r_lld_per_adv_evt_start_chm_upd = 0x40001b7c;
r_lld_ext_scan_dynamic_pti_get = 0x40001b80;
r_lld_scan_try_sched = 0x40001b84;
r_lld_sync_insert = 0x40001b88;
r_sch_prog_ble_push = 0x40001b8c;
r_sch_prog_bt_push = 0x40001b90;
r_lld_init_evt_end_type_set = 0x40001b94;
r_lld_init_evt_end_type_get = 0x40001b98;
r_lld_adv_direct_adv_use_rpa_addr_state_set = 0x40001b9c;
r_lld_adv_direct_adv_use_rpa_addr_state_get = 0x40001ba0;
r_lld_init_evt_end_type_check_state_set = 0x40001ba4;
r_lld_init_evt_end_type_check_state_get = 0x40001ba8;

View File

@ -11,23 +11,23 @@ ic_mac_deinit = 0x400015dc;
lmacDiscardMSDU = 0x400015f4;
/*lmacSetTxFrame = 0x40001628;*/
lmacTxDone = 0x4000162c;
lmacTxFrame = 0x40001630;
/*lmacTxFrame = 0x40001630;*/
mac_tx_set_htsig = 0x40001638;
mac_tx_set_plcp1 = 0x40001640;
pm_check_state = 0x40001648;
/* pm_check_state = 0x40001648; */
/*pm_on_beacon_rx = 0x4000167c;*/
/*pm_parse_beacon = 0x40001688;*/
pm_process_tim = 0x4000168c;
/*pm_process_tim = 0x4000168c;*/
pm_rx_beacon_process = 0x40001690;
pm_rx_data_process = 0x40001694;
/* pm_sleep = 0x40001698;*/
/* pm_tbtt_process = 0x400016a0;*/
ppMapTxQueue = 0x400016d8;
/*ppMapTxQueue = 0x400016d8;*/
ppProcTxSecFrame = 0x400016dc;
/*ppRxFragmentProc = 0x40001704;*/
/* rcGetSched = 0x40001764;*/
rcTxUpdatePer = 0x40001770;
rcUpdateTxDone = 0x4000177c;
/*rcUpdateTxDone = 0x4000177c;*/
wDevCheckBlockError = 0x400017b4;
/* wDev_IndicateFrame = 0x400017c8;*/
wDev_ProcessFiq = 0x400017f0;
@ -93,131 +93,6 @@ rom1_phy_close_rf = 0x40001c18;
uart_tx_switch = 0x40001c44;
/***************************************
Group eco7_bluetooth
***************************************/
/* Functions */
r_lld_con_count_get = 0x40001c48;
r_lld_update_con_offset = 0x40001c4c;
r_lld_con_update_last_clock = 0x40001c50;
r_lld_con_llcp_ind_info_clear = 0x40001c54;
r_lld_con_update_terminte_info_init = 0x40001c58;
r_lld_con_terminate_max_evt_update = 0x40001c5c;
r_llc_pref_param_compute_eco = 0x40001ce8;
r_llc_hci_con_upd_info_send_eco = 0x40001cec;
r_llc_rem_encrypt_proc_continue_eco = 0x40001cf0;
r_llc_start_eco = 0x40001cf8;
r_lld_ext_adv_dynamic_aux_pti_process_eco = 0x40001cfc;
r_lld_adv_start_eco = 0x40001d04;
r_lld_con_evt_canceled_cbk_eco = 0x40001d08;
r_lld_con_evt_time_update_eco = 0x40001d0c;
r_lld_con_start_eco = 0x40001d10;
r_lld_con_frm_isr_eco = 0x40001d14;
r_lld_con_tx_eco = 0x40001d18;
r_lld_ext_scan_dynamic_pti_process_eco = 0x40001d28;
r_lld_scan_frm_eof_isr_eco = 0x40001d2c;
r_lld_sync_start_eco = 0x40001d30;
r_lld_sync_insert_eco = 0x40001d34;
r_llm_adv_rep_flow_control_update_eco = 0x40001d38;
r_llm_env_adv_dup_filt_init_eco = 0x40001d3c;
r_llm_env_adv_dup_filt_deinit_eco = 0x40001d40;
r_llm_adv_rep_flow_control_check_eco = 0x40001d44;
r_llm_scan_start_eco = 0x40001d48;
r_llm_update_duplicate_scan_count = 0x40001d4c;
r_llc_hci_command_handler_pre = 0x40001d50;
r_llc_hci_command_handler_get = 0x40001d54;
r_llc_hci_command_handler_search = 0x40001d58;
r_llc_llcp_pdu_handler_get_overwrite = 0x40001d5c;
r_llc_llcp_pdu_handler_pre = 0x40001d60;
r_llc_llcp_pdu_handler_end = 0x40001d64;
r_llc_con_conflict_check = 0x40001d6c;
r_sch_prog_hw_reset_try = 0x40001d70;
r_sch_prog_et_state_reset = 0x40001d74;
r_sch_prog_end_isr_handler = 0x40001d78;
r_sch_plan_conflict_check = 0x40001d7c;
r_rwble_isr_hw_fixed = 0x40001d80;
r_bt_bb_recorrect_is_dead = 0x40001d84;
r_bt_bb_restart_hw_recorrect = 0x40001d88;
r_ke_task_handler_pre = 0x40001da0;
r_ke_task_handler_end = 0x40001da4;
r_lld_scan_frm_skip_isr_eco = 0x40001db0;
r_lld_ext_scan_dynamic_pti_reset = 0x40001db4;
r_llc_rem_phy_upd_proc_continue_eco = 0x40001db8;
r_llm_get_preferred_phys = 0x40001dbc;
r_lld_hw_cca_isr_eco = 0x40001dc0;
r_lld_sw_cca_isr_eco = 0x40001dc4;
r_lld_cca_chan_prn_e = 0x40001dc8;
r_lld_cca_chan_prn_s = 0x40001dcc;
r_lld_cca_chan_sel_remap = 0x40001dd0;
r_lld_cca_chan_sel_1 = 0x40001dd4;
r_lld_cca_chan_sel_2 = 0x40001dd8;
r_lld_cca_set_thresh = 0x40001ddc;
r_lld_cca_con_start = 0x40001de0;
r_lld_cca_con_end = 0x40001de4;
r_lld_cca_chm_restore = 0x40001de8;
r_lld_cca_chan_unused_check = 0x40001dec;
r_lld_cca_chm_update_check = 0x40001df0;
r_lld_cca_busy_mode_handle = 0x40001df4;
r_lld_cca_lbt_handle = 0x40001df8;
r_lld_cca_scst_timeout_check = 0x40001dfc;
r_lld_cca_chan_avl_timeout_check = 0x40001e00;
r_lld_con_start_hook = 0x40001ca8;
/* ble Functions eco */
r_bt_bb_isr = 0x40000b9c;
r_bt_rf_coex_conn_phy_coded_data_time_limit_en_get = 0x40000ba8;
r_bt_rtp_get_txpwr_idx_by_act = 0x40000c00;
r_btdm_task_post = 0x40000c14;
r_btdm_task_post_from_isr = 0x40000c18;
r_btdm_task_recycle = 0x40000c1c;
r_hci_register_vendor_desc_tab = 0x40000d9c;
r_ke_task_schedule = 0x40000e80;
r_llc_hci_command_handler = 0x40000ef0;
r_llc_loc_con_upd_proc_continue = 0x40000f60;
r_llc_loc_phy_upd_proc_continue = 0x40000f78;
r_llc_rem_con_upd_proc_continue = 0x40000fb4;
r_lld_con_sched = 0x40001118;
r_lld_con_stop = 0x40001124;
r_lld_llcp_rx_ind_handler = 0x400011b0;
r_lld_per_adv_sched = 0x400011f8;
r_lld_scan_process_pkt_rx_adv_rep = 0x40001284;
r_register_esp_vendor_cmd_handler = 0x40001400;
r_rf_txpwr_cs_get = 0x40001428;
r_rf_txpwr_dbm_get = 0x4000142c;
r_sch_arb_event_start_isr = 0x400014f8;
r_sch_plan_set = 0x40001534;
r_sch_prog_end_isr = 0x40001538;
r_lld_adv_ext_chain_scannable_construct = 0x40001b58;
r_lld_scan_process_pkt_rx = 0x40001280;
r_llm_le_features_get = 0x400013b0;
/* ble functions rename */
r_lld_init_start_hack = 0x400011a4;
/* ble functions disable */
/*
r_lld_adv_frm_isr_eco = 0x40001d00;
r_lld_res_list_clear = 0x40004638;
r_lld_res_list_rem = 0x40004680;
r_lld_adv_start_hook = 0x40001c80;
r_lld_con_evt_start_cbk_eco = 0x40001d1c;
r_lld_con_tx_prog_new_packet = 0x40001b74;
r_lld_adv_ext_chain_none_construct = 0x40001b50;
r_llc_llcp_send_eco = 0x40001cf4;
r_llc_llcp_channel_map_ind_ack = 0x40001d68;
r_rwble_isr = 0x40001464;
r_lld_scan_start_eco = 0x40001d24;
r_lld_scan_try_sched_eco = 0x40001dac;
r_lld_scan_start_hook = 0x40001c74;
r_lld_init_start_hook = 0x40001cb8;
r_lld_scan_evt_start_cbk_eco = 0x40001d20;
r_ke_task_handler_get_overwrite = 0x40001da8;
*/
/***************************************
Group eco7_phy
***************************************/

View File

@ -0,0 +1,130 @@
/*
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/***************************************
Group eco7_bluetooth
***************************************/
/* Functions */
r_lld_con_count_get = 0x40001c48;
r_lld_update_con_offset = 0x40001c4c;
r_lld_con_update_last_clock = 0x40001c50;
r_lld_con_llcp_ind_info_clear = 0x40001c54;
r_lld_con_update_terminte_info_init = 0x40001c58;
r_lld_con_terminate_max_evt_update = 0x40001c5c;
r_llc_pref_param_compute_eco = 0x40001ce8;
r_llc_hci_con_upd_info_send_eco = 0x40001cec;
r_llc_rem_encrypt_proc_continue_eco = 0x40001cf0;
r_lld_ext_adv_dynamic_aux_pti_process_eco = 0x40001cfc;
r_lld_adv_start_eco = 0x40001d04;
r_lld_con_evt_canceled_cbk_eco = 0x40001d08;
r_lld_con_evt_time_update_eco = 0x40001d0c;
r_lld_con_start_eco = 0x40001d10;
r_lld_con_frm_isr_eco = 0x40001d14;
r_lld_con_tx_eco = 0x40001d18;
r_lld_ext_scan_dynamic_pti_process_eco = 0x40001d28;
r_lld_scan_frm_eof_isr_eco = 0x40001d2c;
r_lld_sync_start_eco = 0x40001d30;
r_lld_sync_insert_eco = 0x40001d34;
r_llm_adv_rep_flow_control_update_eco = 0x40001d38;
r_llm_env_adv_dup_filt_init_eco = 0x40001d3c;
r_llm_env_adv_dup_filt_deinit_eco = 0x40001d40;
r_llm_adv_rep_flow_control_check_eco = 0x40001d44;
r_llm_scan_start_eco = 0x40001d48;
r_llm_update_duplicate_scan_count = 0x40001d4c;
r_llc_hci_command_handler_pre = 0x40001d50;
r_llc_hci_command_handler_get = 0x40001d54;
r_llc_hci_command_handler_search = 0x40001d58;
r_llc_llcp_pdu_handler_pre = 0x40001d60;
r_llc_llcp_pdu_handler_end = 0x40001d64;
r_llc_con_conflict_check = 0x40001d6c;
r_sch_prog_hw_reset_try = 0x40001d70;
r_sch_prog_et_state_reset = 0x40001d74;
r_sch_prog_end_isr_handler = 0x40001d78;
r_sch_plan_conflict_check = 0x40001d7c;
r_rwble_isr_hw_fixed = 0x40001d80;
r_bt_bb_recorrect_is_dead = 0x40001d84;
r_bt_bb_restart_hw_recorrect = 0x40001d88;
r_ke_task_handler_pre = 0x40001da0;
r_ke_task_handler_end = 0x40001da4;
r_lld_scan_frm_skip_isr_eco = 0x40001db0;
r_lld_ext_scan_dynamic_pti_reset = 0x40001db4;
r_llc_rem_phy_upd_proc_continue_eco = 0x40001db8;
r_llm_get_preferred_phys = 0x40001dbc;
r_lld_hw_cca_isr_eco = 0x40001dc0;
r_lld_sw_cca_isr_eco = 0x40001dc4;
r_lld_cca_chan_prn_e = 0x40001dc8;
r_lld_cca_chan_prn_s = 0x40001dcc;
r_lld_cca_chan_sel_remap = 0x40001dd0;
r_lld_cca_chan_sel_1 = 0x40001dd4;
r_lld_cca_chan_sel_2 = 0x40001dd8;
r_lld_cca_set_thresh = 0x40001ddc;
r_lld_cca_con_start = 0x40001de0;
r_lld_cca_con_end = 0x40001de4;
r_lld_cca_chm_restore = 0x40001de8;
r_lld_cca_chan_unused_check = 0x40001dec;
r_lld_cca_chm_update_check = 0x40001df0;
r_lld_cca_busy_mode_handle = 0x40001df4;
r_lld_cca_lbt_handle = 0x40001df8;
r_lld_cca_scst_timeout_check = 0x40001dfc;
r_lld_cca_chan_avl_timeout_check = 0x40001e00;
r_lld_con_start_hook = 0x40001ca8;
/* ble Functions eco */
r_bt_bb_isr_hack = 0x40000b9c;
r_bt_rf_coex_conn_phy_coded_data_time_limit_en_get_hack = 0x40000ba8;
r_bt_rtp_get_txpwr_idx_by_act_hack = 0x40000c00;
r_btdm_task_post_hack = 0x40000c14;
r_btdm_task_post_from_isr_hack = 0x40000c18;
r_btdm_task_recycle_hack = 0x40000c1c;
r_ke_task_schedule_hack = 0x40000e80;
r_llc_hci_command_handler_hack = 0x40000ef0;
r_llc_loc_ch_map_proc_continue_hack = 0x40000f5c;
r_llc_loc_con_upd_proc_continue_hack = 0x40000f60;
r_llc_loc_phy_upd_proc_continue_hack = 0x40000f78;
r_llc_rem_con_upd_proc_continue_hack = 0x40000fb4;
r_lld_con_sched_hack = 0x40001118;
r_lld_con_stop_hack = 0x40001124;
r_lld_llcp_rx_ind_handler_hack = 0x400011b0;
r_lld_per_adv_sched_hack = 0x400011f8;
r_rf_txpwr_cs_get_hack = 0x40001428;
r_rf_txpwr_dbm_get_hack = 0x4000142c;
r_sch_arb_event_start_isr_hack = 0x400014f8;
r_sch_plan_set_hack = 0x40001534;
r_sch_prog_end_isr_hack = 0x40001538;
r_lld_adv_ext_chain_scannable_construct_hack = 0x40001b58;
r_lld_scan_process_pkt_rx_hack = 0x40001280;
r_llm_le_features_get_hack = 0x400013b0;
/* ble functions rename */
r_lld_init_start_hack = 0x400011a4;
/* ble functions disable */
/*
r_lld_adv_frm_isr_eco = 0x40001d00;
r_lld_res_list_clear = 0x40004638;
r_lld_res_list_rem = 0x40004680;
r_lld_adv_start_hook = 0x40001c80;
r_lld_con_evt_start_cbk_eco = 0x40001d1c;
r_lld_con_tx_prog_new_packet = 0x40001b74;
r_lld_adv_ext_chain_none_construct = 0x40001b50;
r_llc_llcp_send_eco = 0x40001cf4;
r_llc_llcp_channel_map_ind_ack = 0x40001d68;
r_rwble_isr = 0x40001464;
r_lld_scan_start_eco = 0x40001d24;
r_lld_scan_try_sched_eco = 0x40001dac;
r_lld_scan_start_hook = 0x40001c74;
r_lld_init_start_hook = 0x40001cb8;
r_lld_scan_evt_start_cbk_eco = 0x40001d20;
r_ke_task_handler_get_overwrite = 0x40001da8;
r_hci_register_vendor_desc_tab = 0x40000d9c;
r_lld_scan_process_pkt_rx_adv_rep = 0x40001284;
r_register_esp_vendor_cmd_handler = 0x40001400;
r_llc_llcp_pdu_handler_get_overwrite = 0x40001d5c;
r_llc_start_eco = 0x40001cf8;
*/

View File

@ -267,8 +267,8 @@ PROVIDE( esp_flash_get_protectable_regions = 0x40000318 );
PROVIDE( esp_flash_get_protected_region = 0x4000031c );
PROVIDE( esp_flash_set_protected_region = 0x40000320 );
PROVIDE( esp_flash_read = 0x40000324 );
PROVIDE( esp_flash_write = 0x40000328 );
PROVIDE( esp_flash_write_encrypted = 0x4000032c );
PROVIDE( rom_esp_flash_write = 0x40000328 );
PROVIDE( rom_esp_flash_write_encrypted = 0x4000032c );
PROVIDE( esp_flash_read_encrypted = 0x40000330 );
PROVIDE( esp_flash_get_io_mode = 0x40000334 );
PROVIDE( esp_flash_set_io_mode = 0x40000338 );
@ -366,8 +366,8 @@ ets_get_xtal_freq = 0x40000598;
gpio_input_get = 0x4000059c;
gpio_matrix_in = 0x400005a0;
gpio_matrix_out = 0x400005a4;
gpio_output_disable = 0x400005a8;
gpio_output_enable = 0x400005ac;
/* gpio_output_disable = 0x400005a8; */
/* gpio_output_enable = 0x400005ac; */
gpio_output_set = 0x400005b0;
gpio_pad_hold = 0x400005b4;
gpio_pad_input_disable = 0x400005b8;
@ -525,801 +525,6 @@ PROVIDE( g_usb_print = 0x3fcdffd0 );
/***************************************
Group bluetooth
***************************************/
/* Functions */
bt_rf_coex_get_dft_cfg = 0x400008dc;
bt_rf_coex_hooks_p_set = 0x400008e0;
btdm_con_maxevtime_cal_impl = 0x400008e4;
btdm_controller_get_compile_version_impl = 0x400008e8;
btdm_controller_rom_data_init = 0x400008ec;
btdm_dis_privacy_err_report_impl = 0x400008f0;
btdm_disable_adv_delay_impl = 0x400008f4;
btdm_enable_scan_continue_impl = 0x400008f8;
btdm_enable_scan_forever_impl = 0x400008fc;
btdm_get_power_state_impl = 0x40000900;
btdm_get_prevent_sleep_flag_impl = 0x40000904;
btdm_power_state_active_impl = 0x40000908;
btdm_switch_phy_coded_impl = 0x4000090c;
hci_acl_data_handler = 0x40000910;
hci_disconnect_cmd_handler = 0x40000914;
hci_le_con_upd_cmd_handler = 0x40000918;
hci_le_ltk_req_neg_reply_cmd_handler = 0x4000091c;
hci_le_ltk_req_reply_cmd_handler = 0x40000920;
hci_le_rd_chnl_map_cmd_handler = 0x40000924;
hci_le_rd_phy_cmd_handler = 0x40000928;
hci_le_rd_rem_feats_cmd_handler = 0x4000092c;
hci_le_rem_con_param_req_neg_reply_cmd_handler = 0x40000930;
hci_le_rem_con_param_req_reply_cmd_handler = 0x40000934;
hci_le_set_data_len_cmd_handler = 0x40000938;
hci_le_set_phy_cmd_handler = 0x4000093c;
hci_le_start_enc_cmd_handler = 0x40000940;
hci_rd_auth_payl_to_cmd_handler = 0x40000944;
hci_rd_rem_ver_info_cmd_handler = 0x40000948;
hci_rd_rssi_cmd_handler = 0x4000094c;
hci_rd_tx_pwr_lvl_cmd_handler = 0x40000950;
hci_vs_set_pref_slave_evt_dur_cmd_handler = 0x40000954;
hci_vs_set_pref_slave_latency_cmd_handler = 0x40000958;
hci_wr_auth_payl_to_cmd_handler = 0x4000095c;
ll_channel_map_ind_handler = 0x40000960;
ll_connection_param_req_handler = 0x40000964;
ll_connection_param_rsp_handler = 0x40000968;
ll_connection_update_ind_handler = 0x4000096c;
ll_enc_req_handler = 0x40000970;
ll_enc_rsp_handler = 0x40000974;
ll_feature_req_handler = 0x40000978;
ll_feature_rsp_handler = 0x4000097c;
ll_length_req_handler = 0x40000980;
ll_length_rsp_handler = 0x40000984;
ll_min_used_channels_ind_handler = 0x40000988;
ll_pause_enc_req_handler = 0x4000098c;
ll_pause_enc_rsp_handler = 0x40000990;
ll_phy_req_handler = 0x40000994;
ll_phy_rsp_handler = 0x40000998;
ll_phy_update_ind_handler = 0x4000099c;
ll_ping_req_handler = 0x400009a0;
ll_ping_rsp_handler = 0x400009a4;
ll_slave_feature_req_handler = 0x400009a8;
ll_start_enc_req_handler = 0x400009ac;
ll_start_enc_rsp_handler = 0x400009b0;
ll_terminate_ind_handler = 0x400009b4;
ll_version_ind_handler = 0x400009b8;
llc_auth_payl_nearly_to_handler = 0x400009bc;
llc_auth_payl_real_to_handler = 0x400009c0;
llc_encrypt_ind_handler = 0x400009c4;
llc_hci_command_handler_wrapper = 0x400009c8;
llc_ll_connection_param_req_pdu_send = 0x400009cc;
llc_ll_connection_param_rsp_pdu_send = 0x400009d0;
llc_ll_connection_update_ind_pdu_send = 0x400009d4;
llc_ll_enc_req_pdu_send = 0x400009d8;
llc_ll_enc_rsp_pdu_send = 0x400009dc;
llc_ll_feature_req_pdu_send = 0x400009e0;
llc_ll_feature_rsp_pdu_send = 0x400009e4;
llc_ll_length_req_pdu_send = 0x400009e8;
llc_ll_length_rsp_pdu_send = 0x400009ec;
llc_ll_pause_enc_req_pdu_send = 0x400009f0;
llc_ll_pause_enc_rsp_pdu_send = 0x400009f4;
llc_ll_phy_req_pdu_send = 0x400009f8;
llc_ll_phy_rsp_pdu_send = 0x400009fc;
llc_ll_ping_req_pdu_send = 0x40000a00;
llc_ll_ping_rsp_pdu_send = 0x40000a04;
llc_ll_start_enc_req_pdu_send = 0x40000a08;
llc_ll_start_enc_rsp_pdu_send = 0x40000a0c;
llc_ll_terminate_ind_pdu_send = 0x40000a10;
llc_ll_unknown_rsp_pdu_send = 0x40000a14;
llc_llcp_ch_map_update_ind_pdu_send = 0x40000a18;
llc_llcp_phy_upd_ind_pdu_send = 0x40000a1c;
llc_llcp_version_ind_pdu_send = 0x40000a20;
llc_op_ch_map_upd_ind_handler = 0x40000a24;
llc_op_con_upd_ind_handler = 0x40000a28;
llc_op_disconnect_ind_handler = 0x40000a2c;
llc_op_dl_upd_ind_handler = 0x40000a30;
llc_op_encrypt_ind_handler = 0x40000a34;
llc_op_feats_exch_ind_handler = 0x40000a38;
llc_op_le_ping_ind_handler = 0x40000a3c;
llc_op_phy_upd_ind_handler = 0x40000a40;
llc_op_ver_exch_ind_handler = 0x40000a44;
llc_stopped_ind_handler = 0x40000a48;
lld_acl_rx_ind_handler = 0x40000a4c;
lld_acl_tx_cfm_handler = 0x40000a50;
lld_adv_end_ind_handler = 0x40000a54;
lld_adv_rep_ind_handler = 0x40000a58;
lld_ch_map_upd_cfm_handler = 0x40000a5c;
lld_con_estab_ind_handler = 0x40000a60;
lld_con_evt_sd_evt_time_set = 0x40000a64;
lld_con_offset_upd_ind_handler = 0x40000a68;
lld_con_param_upd_cfm_handler = 0x40000a6c;
lld_disc_ind_handler = 0x40000a70;
lld_init_end_ind_handler = 0x40000a74;
lld_llcp_rx_ind_handler_wrapper = 0x40000a78;
lld_llcp_tx_cfm_handler = 0x40000a7c;
lld_per_adv_end_ind_handler = 0x40000a80;
lld_per_adv_rep_ind_handler = 0x40000a84;
lld_per_adv_rx_end_ind_handler = 0x40000a88;
lld_phy_coded_500k_get = 0x40000a8c;
lld_phy_upd_cfm_handler = 0x40000a90;
lld_scan_end_ind_handler = 0x40000a94;
lld_scan_req_ind_handler = 0x40000a98;
lld_sync_start_req_handler = 0x40000a9c;
lld_test_end_ind_handler = 0x40000aa0;
lld_update_rxbuf_handler = 0x40000aa4;
llm_ch_map_update_ind_handler = 0x40000aa8;
llm_hci_command_handler_wrapper = 0x40000aac;
llm_scan_period_to_handler = 0x40000ab0;
r_Add2SelfBigHex256 = 0x40000ab4;
r_AddBigHex256 = 0x40000ab8;
r_AddBigHexModP256 = 0x40000abc;
r_AddP256 = 0x40000ac0;
r_AddPdiv2_256 = 0x40000ac4;
r_GF_Jacobian_Point_Addition256 = 0x40000ac8;
r_GF_Jacobian_Point_Double256 = 0x40000acc;
r_GF_Point_Jacobian_To_Affine256 = 0x40000ad0;
r_MultiplyBigHexByUint32_256 = 0x40000ad4;
r_MultiplyBigHexModP256 = 0x40000ad8;
r_MultiplyByU16ModP256 = 0x40000adc;
r_SubtractBigHex256 = 0x40000ae0;
r_SubtractBigHexMod256 = 0x40000ae4;
r_SubtractBigHexUint32_256 = 0x40000ae8;
r_SubtractFromSelfBigHex256 = 0x40000aec;
r_SubtractFromSelfBigHexSign256 = 0x40000af0;
r_aes_alloc = 0x40000af4;
r_aes_ccm_continue = 0x40000af8;
r_aes_ccm_process_e = 0x40000afc;
r_aes_ccm_xor_128_lsb = 0x40000b00;
r_aes_ccm_xor_128_msb = 0x40000b04;
r_aes_cmac_continue = 0x40000b08;
r_aes_cmac_start = 0x40000b0c;
r_aes_k1_continue = 0x40000b10;
r_aes_k2_continue = 0x40000b14;
r_aes_k3_continue = 0x40000b18;
r_aes_k4_continue = 0x40000b1c;
r_aes_shift_left_128 = 0x40000b20;
r_aes_start = 0x40000b24;
r_aes_xor_128 = 0x40000b28;
r_assert_err = 0x40000b2c;
r_assert_param = 0x40000b30;
r_assert_warn = 0x40000b34;
r_bigHexInversion256 = 0x40000b38;
r_ble_sw_cca_check_isr = 0x40000b3c;
r_ble_util_buf_acl_tx_alloc = 0x40000b40;
r_ble_util_buf_acl_tx_elt_get = 0x40000b44;
r_ble_util_buf_acl_tx_free = 0x40000b48;
r_ble_util_buf_acl_tx_free_in_isr = 0x40000b4c;
r_ble_util_buf_adv_tx_alloc = 0x40000b50;
r_ble_util_buf_adv_tx_free = 0x40000b54;
r_ble_util_buf_adv_tx_free_in_isr = 0x40000b58;
r_ble_util_buf_env_deinit = 0x40000b5c;
r_ble_util_buf_env_init = 0x40000b60;
r_ble_util_buf_get_rx_buf_nb = 0x40000b64;
r_ble_util_buf_get_rx_buf_size = 0x40000b68;
r_ble_util_buf_llcp_tx_alloc = 0x40000b6c;
r_ble_util_buf_llcp_tx_free = 0x40000b70;
r_ble_util_buf_rx_alloc = 0x40000b74;
r_ble_util_buf_rx_alloc_in_isr = 0x40000b78;
r_ble_util_buf_rx_free = 0x40000b7c;
r_ble_util_buf_rx_free_in_isr = 0x40000b80;
r_ble_util_buf_set_rx_buf_nb = 0x40000b84;
r_ble_util_buf_set_rx_buf_size = 0x40000b88;
r_ble_util_data_rx_buf_reset = 0x40000b8c;
r_bt_bb_get_intr_mask = 0x40000b90;
r_bt_bb_intr_clear = 0x40000b94;
r_bt_bb_intr_mask_set = 0x40000b98;
r_bt_rf_coex_cfg_set = 0x40000ba0;
r_bt_rf_coex_conn_dynamic_pti_en_get = 0x40000ba4;
r_bt_rf_coex_ext_adv_dynamic_pti_en_get = 0x40000bac;
r_bt_rf_coex_ext_scan_dynamic_pti_en_get = 0x40000bb0;
r_bt_rf_coex_legacy_adv_dynamic_pti_en_get = 0x40000bb4;
r_bt_rf_coex_per_adv_dynamic_pti_en_get = 0x40000bb8;
r_bt_rf_coex_pti_table_get = 0x40000bbc;
r_bt_rf_coex_st_param_get = 0x40000bc0;
r_bt_rf_coex_st_param_set = 0x40000bc4;
r_bt_rf_coex_sync_scan_dynamic_pti_en_get = 0x40000bc8;
r_bt_rma_apply_rule_cs_fmt = 0x40000bcc;
r_bt_rma_apply_rule_cs_idx = 0x40000bd0;
r_bt_rma_configure = 0x40000bd4;
r_bt_rma_deregister_rule_cs_fmt = 0x40000bd8;
r_bt_rma_deregister_rule_cs_idx = 0x40000bdc;
r_bt_rma_get_ant_by_act = 0x40000be0;
r_bt_rma_init = 0x40000be4;
r_bt_rma_register_rule_cs_fmt = 0x40000be8;
r_bt_rma_register_rule_cs_idx = 0x40000bec;
r_bt_rtp_apply_rule_cs_fmt = 0x40000bf0;
r_bt_rtp_apply_rule_cs_idx = 0x40000bf4;
r_bt_rtp_deregister_rule_cs_fmt = 0x40000bf8;
r_bt_rtp_deregister_rule_cs_idx = 0x40000bfc;
r_bt_rtp_init = 0x40000c04;
r_bt_rtp_register_rule_cs_fmt = 0x40000c08;
r_bt_rtp_register_rule_cs_idx = 0x40000c0c;
r_btdm_isr = 0x40000c10;
r_cali_phase_match_p = 0x40000c20;
r_cmp_abs_time = 0x40000c24;
r_cmp_dest_id = 0x40000c28;
r_cmp_timer_id = 0x40000c2c;
r_co_bdaddr_compare = 0x40000c30;
r_co_ble_pkt_dur_in_us = 0x40000c34;
r_co_list_extract = 0x40000c38;
r_co_list_extract_after = 0x40000c3c;
r_co_list_extract_sublist = 0x40000c40;
r_co_list_find = 0x40000c44;
r_co_list_init = 0x40000c48;
r_co_list_insert_after = 0x40000c4c;
r_co_list_insert_before = 0x40000c50;
r_co_list_merge = 0x40000c54;
r_co_list_pool_init = 0x40000c58;
r_co_list_pop_front = 0x40000c5c;
r_co_list_push_back = 0x40000c60;
r_co_list_push_back_sublist = 0x40000c64;
r_co_list_push_front = 0x40000c68;
r_co_list_size = 0x40000c6c;
r_co_nb_good_le_channels = 0x40000c70;
r_co_util_pack = 0x40000c74;
r_co_util_read_array_size = 0x40000c78;
r_co_util_unpack = 0x40000c7c;
r_dbg_env_deinit = 0x40000c80;
r_dbg_env_init = 0x40000c84;
r_dbg_platform_reset_complete = 0x40000c88;
r_dl_upd_proc_start = 0x40000c8c;
r_dump_data = 0x40000c90;
r_ecc_abort_key256_generation = 0x40000c94;
r_ecc_gen_new_public_key = 0x40000c98;
r_ecc_gen_new_secret_key = 0x40000c9c;
r_ecc_generate_key256 = 0x40000ca0;
r_ecc_get_debug_Keys = 0x40000ca4;
r_ecc_init = 0x40000ca8;
r_ecc_is_valid_point = 0x40000cac;
r_ecc_multiplication_event_handler = 0x40000cb0;
r_ecc_point_multiplication_win_256 = 0x40000cb4;
r_emi_alloc_em_mapping_by_offset = 0x40000cb8;
r_emi_base_reg_lut_show = 0x40000cbc;
r_emi_em_base_reg_show = 0x40000cc0;
r_emi_free_em_mapping_by_offset = 0x40000cc4;
r_emi_get_em_mapping_idx_by_offset = 0x40000cc8;
r_emi_get_mem_addr_by_offset = 0x40000ccc;
r_emi_overwrite_em_mapping_by_offset = 0x40000cd0;
r_esp_vendor_hci_command_handler = 0x40000cd4;
r_get_stack_usage = 0x40000cd8;
r_h4tl_acl_hdr_rx_evt_handler = 0x40000cdc;
r_h4tl_cmd_hdr_rx_evt_handler = 0x40000ce0;
r_h4tl_cmd_pld_rx_evt_handler = 0x40000ce4;
r_h4tl_eif_io_event_post = 0x40000ce8;
r_h4tl_eif_register = 0x40000cec;
r_h4tl_init = 0x40000cf0;
r_h4tl_out_of_sync = 0x40000cf4;
r_h4tl_out_of_sync_check = 0x40000cf8;
r_h4tl_read_hdr = 0x40000cfc;
r_h4tl_read_next_out_of_sync = 0x40000d00;
r_h4tl_read_payl = 0x40000d04;
r_h4tl_read_start = 0x40000d08;
r_h4tl_rx_acl_hdr_extract = 0x40000d0c;
r_h4tl_rx_cmd_hdr_extract = 0x40000d10;
r_h4tl_rx_done = 0x40000d14;
r_h4tl_start = 0x40000d18;
r_h4tl_stop = 0x40000d1c;
r_h4tl_tx_done = 0x40000d20;
r_h4tl_tx_evt_handler = 0x40000d24;
r_h4tl_write = 0x40000d28;
r_hci_acl_tx_data_alloc = 0x40000d2c;
r_hci_acl_tx_data_received = 0x40000d30;
r_hci_basic_cmd_send_2_controller = 0x40000d34;
r_hci_ble_adv_report_filter_check = 0x40000d38;
r_hci_ble_adv_report_tx_check = 0x40000d3c;
r_hci_ble_conhdl_register = 0x40000d40;
r_hci_ble_conhdl_unregister = 0x40000d44;
r_hci_build_acl_data = 0x40000d48;
r_hci_build_cc_evt = 0x40000d4c;
r_hci_build_cs_evt = 0x40000d50;
r_hci_build_evt = 0x40000d54;
r_hci_build_le_evt = 0x40000d58;
r_hci_cmd_get_max_param_size = 0x40000d5c;
r_hci_cmd_received = 0x40000d60;
r_hci_cmd_reject = 0x40000d64;
r_hci_evt_mask_check = 0x40000d68;
r_hci_evt_mask_set = 0x40000d6c;
r_hci_fc_acl_buf_size_set = 0x40000d70;
r_hci_fc_acl_en = 0x40000d74;
r_hci_fc_acl_packet_sent = 0x40000d78;
r_hci_fc_check_host_available_nb_acl_packets = 0x40000d7c;
r_hci_fc_host_nb_acl_pkts_complete = 0x40000d80;
r_hci_fc_init = 0x40000d84;
r_hci_look_for_cmd_desc = 0x40000d88;
r_hci_look_for_evt_desc = 0x40000d8c;
r_hci_look_for_le_evt_desc = 0x40000d90;
r_hci_look_for_le_evt_desc_esp = 0x40000d94;
r_hci_pack_bytes = 0x40000d98;
r_hci_send_2_controller = 0x40000da0;
r_hci_send_2_host = 0x40000da4;
r_hci_tl_c2h_data_flow_on = 0x40000da8;
r_hci_tl_cmd_hdr_rx_evt_handler = 0x40000dac;
r_hci_tl_cmd_pld_rx_evt_handler = 0x40000db0;
r_hci_tl_get_pkt = 0x40000db4;
r_hci_tl_hci_pkt_handler = 0x40000db8;
r_hci_tl_hci_tx_done_evt_handler = 0x40000dbc;
r_hci_tl_inc_nb_h2c_cmd_pkts = 0x40000dc0;
r_hci_tl_save_pkt = 0x40000dc4;
r_hci_tl_send = 0x40000dc8;
r_hci_tx_done = 0x40000dcc;
r_hci_tx_start = 0x40000dd0;
r_hci_tx_trigger = 0x40000dd4;
r_isValidSecretKey_256 = 0x40000dd8;
r_ke_check_malloc = 0x40000ddc;
r_ke_event_callback_set = 0x40000de0;
r_ke_event_clear = 0x40000de4;
r_ke_event_flush = 0x40000de8;
r_ke_event_get = 0x40000dec;
r_ke_event_get_all = 0x40000df0;
r_ke_event_init = 0x40000df4;
r_ke_event_schedule = 0x40000df8;
r_ke_event_set = 0x40000dfc;
r_ke_flush = 0x40000e00;
r_ke_free = 0x40000e04;
r_ke_handler_search = 0x40000e08;
r_ke_init = 0x40000e0c;
r_ke_is_free = 0x40000e10;
r_ke_malloc = 0x40000e14;
r_ke_mem_init = 0x40000e18;
r_ke_mem_is_empty = 0x40000e1c;
r_ke_mem_is_in_heap = 0x40000e20;
r_ke_msg_alloc = 0x40000e24;
r_ke_msg_dest_id_get = 0x40000e28;
r_ke_msg_discard = 0x40000e2c;
r_ke_msg_forward = 0x40000e30;
r_ke_msg_forward_new_id = 0x40000e34;
r_ke_msg_free = 0x40000e38;
r_ke_msg_in_queue = 0x40000e3c;
r_ke_msg_save = 0x40000e40;
r_ke_msg_send = 0x40000e44;
r_ke_msg_send_basic = 0x40000e48;
r_ke_msg_src_id_get = 0x40000e4c;
r_ke_queue_extract = 0x40000e50;
r_ke_queue_insert = 0x40000e54;
r_ke_sleep_check = 0x40000e58;
r_ke_state_get = 0x40000e5c;
r_ke_state_set = 0x40000e60;
r_ke_task_check = 0x40000e64;
r_ke_task_create = 0x40000e68;
r_ke_task_delete = 0x40000e6c;
r_ke_task_handler_get = 0x40000e70;
r_ke_task_init = 0x40000e74;
r_ke_task_msg_flush = 0x40000e78;
r_ke_task_saved_update = 0x40000e7c;
r_ke_time = 0x40000e84;
r_ke_time_cmp = 0x40000e88;
r_ke_time_past = 0x40000e8c;
r_ke_timer_active = 0x40000e90;
r_ke_timer_adjust_all = 0x40000e94;
r_ke_timer_clear = 0x40000e98;
r_ke_timer_init = 0x40000e9c;
r_ke_timer_schedule = 0x40000ea0;
r_ke_timer_set = 0x40000ea4;
r_led_init = 0x40000ea8;
r_led_set_all = 0x40000eac;
r_llc_aes_res_cb = 0x40000eb0;
r_llc_ch_map_up_proc_err_cb = 0x40000eb4;
r_llc_cleanup = 0x40000eb8;
r_llc_cmd_cmp_send = 0x40000ebc;
r_llc_cmd_stat_send = 0x40000ec0;
r_llc_con_move_cbk = 0x40000ec4;
r_llc_con_plan_set_update = 0x40000ec8;
r_llc_con_upd_param_in_range = 0x40000ecc;
r_llc_disconnect = 0x40000ed0;
r_llc_disconnect_end = 0x40000ed4;
r_llc_disconnect_proc_continue = 0x40000ed8;
r_llc_disconnect_proc_err_cb = 0x40000edc;
r_llc_dl_chg_check = 0x40000ee0;
r_llc_dle_proc_err_cb = 0x40000ee4;
r_llc_feats_exch_proc_err_cb = 0x40000ee8;
r_llc_hci_cmd_handler_tab_p_get = 0x40000eec;
r_llc_hci_con_param_req_evt_send = 0x40000ef4;
r_llc_hci_con_upd_info_send = 0x40000ef8;
r_llc_hci_disconnected_dis = 0x40000efc;
r_llc_hci_dl_upd_info_send = 0x40000f00;
r_llc_hci_enc_evt_send = 0x40000f04;
r_llc_hci_feats_info_send = 0x40000f08;
r_llc_hci_le_phy_upd_cmp_evt_send = 0x40000f0c;
r_llc_hci_ltk_request_evt_send = 0x40000f10;
r_llc_hci_nb_cmp_pkts_evt_send = 0x40000f14;
r_llc_hci_version_info_send = 0x40000f18;
r_llc_init_term_proc = 0x40000f1c;
r_llc_iv_skd_rand_gen = 0x40000f20;
r_llc_le_ping_proc_continue = 0x40000f24;
r_llc_le_ping_proc_err_cb = 0x40000f28;
/* r_llc_le_ping_restart = 0x40000f2c; */
r_llc_le_ping_set = 0x40000f30;
r_llc_ll_pause_enc_rsp_ack_handler = 0x40000f34;
r_llc_ll_reject_ind_ack_handler = 0x40000f38;
r_llc_ll_reject_ind_pdu_send = 0x40000f3c;
r_llc_ll_start_enc_rsp_ack_handler = 0x40000f40;
r_llc_ll_terminate_ind_ack = 0x40000f44;
r_llc_ll_unknown_ind_handler = 0x40000f48;
r_llc_llcp_send = 0x40000f4c;
r_llc_llcp_state_set = 0x40000f50;
r_llc_llcp_trans_timer_set = 0x40000f54;
r_llc_llcp_tx_check = 0x40000f58;
r_llc_loc_ch_map_proc_continue = 0x40000f5c;
r_llc_loc_con_upd_proc_err_cb = 0x40000f64;
r_llc_loc_dl_upd_proc_continue = 0x40000f68;
r_llc_loc_encrypt_proc_continue = 0x40000f6c;
r_llc_loc_encrypt_proc_err_cb = 0x40000f70;
r_llc_loc_feats_exch_proc_continue = 0x40000f74;
r_llc_loc_phy_upd_proc_err_cb = 0x40000f7c;
r_llc_msg_handler_tab_p_get = 0x40000f80;
r_llc_pref_param_compute = 0x40000f84;
r_llc_proc_collision_check = 0x40000f88;
r_llc_proc_err_ind = 0x40000f8c;
r_llc_proc_get = 0x40000f90;
r_llc_proc_id_get = 0x40000f94;
r_llc_proc_reg = 0x40000f98;
r_llc_proc_state_get = 0x40000f9c;
r_llc_proc_state_set = 0x40000fa0;
r_llc_proc_timer_pause_set = 0x40000fa4;
r_llc_proc_timer_set = 0x40000fa8;
r_llc_proc_unreg = 0x40000fac;
r_llc_rem_ch_map_proc_continue = 0x40000fb0;
r_llc_rem_con_upd_proc_err_cb = 0x40000fb8;
r_llc_rem_dl_upd_proc = 0x40000fbc;
r_llc_rem_encrypt_proc_continue = 0x40000fc0;
r_llc_rem_encrypt_proc_err_cb = 0x40000fc4;
r_llc_rem_phy_upd_proc_continue = 0x40000fc8;
r_llc_rem_phy_upd_proc_err_cb = 0x40000fcc;
r_llc_role_get = 0x40000fd0;
r_llc_sk_gen = 0x40000fd4;
r_llc_start = 0x40000fd8;
r_llc_stop = 0x40000fdc;
r_llc_ver_exch_loc_proc_continue = 0x40000fe0;
r_llc_ver_proc_err_cb = 0x40000fe4;
r_llcp_pdu_handler_tab_p_get = 0x40000fe8;
r_lld_aa_gen = 0x40000fec;
r_lld_adv_adv_data_set = 0x40000ff0;
r_lld_adv_adv_data_update = 0x40000ff4;
r_lld_adv_aux_ch_idx_set = 0x40000ff8;
r_lld_adv_aux_evt_canceled_cbk = 0x40000ffc;
r_lld_adv_aux_evt_start_cbk = 0x40001000;
r_lld_adv_coex_check_ext_adv_synced = 0x40001004;
r_lld_adv_coex_env_reset = 0x40001008;
r_lld_adv_duration_update = 0x4000100c;
r_lld_adv_dynamic_pti_process = 0x40001010;
r_lld_adv_end = 0x40001014;
r_lld_adv_evt_canceled_cbk = 0x40001018;
r_lld_adv_evt_start_cbk = 0x4000101c;
r_lld_adv_ext_chain_construct = 0x40001020;
r_lld_adv_ext_pkt_prepare = 0x40001024;
r_lld_adv_frm_cbk = 0x40001028;
r_lld_adv_frm_isr = 0x4000102c;
r_lld_adv_frm_skip_isr = 0x40001030;
r_lld_adv_init = 0x40001034;
r_lld_adv_pkt_rx = 0x40001038;
r_lld_adv_pkt_rx_connect_ind = 0x4000103c;
r_lld_adv_pkt_rx_send_scan_req_evt = 0x40001040;
r_lld_adv_rand_addr_update = 0x40001044;
r_lld_adv_restart = 0x40001048;
r_lld_adv_scan_rsp_data_set = 0x4000104c;
r_lld_adv_scan_rsp_data_update = 0x40001050;
r_lld_adv_set_tx_power = 0x40001054;
r_lld_adv_start = 0x40001058;
r_lld_adv_stop = 0x4000105c;
r_lld_adv_sync_info_set = 0x40001060;
r_lld_adv_sync_info_update = 0x40001064;
r_lld_calc_aux_rx = 0x40001068;
r_lld_cca_alloc = 0x4000106c;
r_lld_cca_data_reset = 0x40001070;
r_lld_cca_free = 0x40001074;
r_lld_ch_assess_data_get = 0x40001078;
r_lld_ch_idx_get = 0x4000107c;
r_lld_ch_map_set = 0x40001080;
r_lld_channel_assess = 0x40001084;
r_lld_con_activity_act_offset_compute = 0x40001088;
r_lld_con_activity_offset_compute = 0x4000108c;
r_lld_con_ch_map_update = 0x40001090;
r_lld_con_cleanup = 0x40001094;
r_lld_con_current_tx_power_get = 0x40001098;
r_lld_con_data_flow_set = 0x4000109c;
r_lld_con_data_len_update = 0x400010a0;
r_lld_con_data_tx = 0x400010a4;
r_lld_con_enc_key_load = 0x400010a8;
r_lld_con_event_counter_get = 0x400010ac;
r_lld_con_evt_canceled_cbk = 0x400010b0;
r_lld_con_evt_duration_min_get = 0x400010b4;
r_lld_con_evt_max_eff_time_cal = 0x400010b8;
r_lld_con_evt_sd_evt_time_get = 0x400010bc;
r_lld_con_evt_start_cbk = 0x400010c0;
r_lld_con_evt_time_update = 0x400010c4;
r_lld_con_free_all_tx_buf = 0x400010c8;
r_lld_con_frm_cbk = 0x400010cc;
r_lld_con_frm_isr = 0x400010d0;
r_lld_con_frm_skip_isr = 0x400010d4;
r_lld_con_init = 0x400010d8;
r_lld_con_llcp_tx = 0x400010dc;
r_lld_con_max_lat_calc = 0x400010e0;
r_lld_con_offset_get = 0x400010e4;
r_lld_con_param_update = 0x400010e8;
r_lld_con_phys_update = 0x400010ec;
r_lld_con_pref_slave_evt_dur_set = 0x400010f0;
r_lld_con_pref_slave_latency_set = 0x400010f4;
r_lld_con_rssi_get = 0x400010f8;
r_lld_con_rx = 0x400010fc;
/* r_lld_con_rx_channel_assess = 0x40001100; */
r_lld_con_rx_enc = 0x40001104;
r_lld_con_rx_isr = 0x40001108;
r_lld_con_rx_link_info_check = 0x4000110c;
r_lld_con_rx_llcp_check = 0x40001110;
r_lld_con_rx_sync_time_update = 0x40001114;
r_lld_con_set_tx_power = 0x4000111c;
r_lld_con_start = 0x40001120;
r_lld_con_tx = 0x40001128;
r_lld_con_tx_enc = 0x4000112c;
r_lld_con_tx_isr = 0x40001130;
r_lld_con_tx_len_update = 0x40001134;
r_lld_con_tx_len_update_for_intv = 0x40001138;
r_lld_con_tx_len_update_for_rate = 0x4000113c;
r_lld_con_tx_prog = 0x40001140;
r_lld_conn_dynamic_pti_process = 0x40001144;
r_lld_continue_scan_rx_isr_end_process = 0x40001148;
r_lld_ext_scan_dynamic_pti_process = 0x4000114c;
r_lld_hw_cca_end_isr = 0x40001150;
r_lld_hw_cca_evt_handler = 0x40001154;
r_lld_hw_cca_isr = 0x40001158;
r_lld_init_cal_anchor_point = 0x4000115c;
r_lld_init_compute_winoffset = 0x40001160;
r_lld_init_connect_req_pack = 0x40001164;
r_lld_init_end = 0x40001168;
r_lld_init_evt_canceled_cbk = 0x4000116c;
r_lld_init_evt_start_cbk = 0x40001170;
r_lld_init_frm_cbk = 0x40001174;
r_lld_init_frm_eof_isr = 0x40001178;
r_lld_init_frm_skip_isr = 0x4000117c;
r_lld_init_init = 0x40001180;
r_lld_init_process_pkt_rx = 0x40001184;
r_lld_init_process_pkt_rx_adv_ext_ind = 0x40001188;
r_lld_init_process_pkt_rx_adv_ind_or_direct_ind = 0x4000118c;
r_lld_init_process_pkt_rx_aux_connect_rsp = 0x40001190;
r_lld_init_process_pkt_tx = 0x40001194;
r_lld_init_process_pkt_tx_cal_con_timestamp = 0x40001198;
r_lld_init_sched = 0x4000119c;
r_lld_init_set_tx_power = 0x400011a0;
r_lld_init_start = 0x400011a4;
r_lld_init_stop = 0x400011a8;
r_lld_instant_proc_end = 0x400011ac;
r_lld_per_adv_ch_map_update = 0x400011b4;
r_lld_per_adv_chain_construct = 0x400011b8;
r_lld_per_adv_cleanup = 0x400011bc;
r_lld_per_adv_coex_env_reset = 0x400011c0;
r_lld_per_adv_data_set = 0x400011c4;
r_lld_per_adv_data_update = 0x400011c8;
r_lld_per_adv_dynamic_pti_process = 0x400011cc;
r_lld_per_adv_evt_canceled_cbk = 0x400011d0;
r_lld_per_adv_evt_start_cbk = 0x400011d4;
r_lld_per_adv_ext_pkt_prepare = 0x400011d8;
r_lld_per_adv_frm_cbk = 0x400011dc;
r_lld_per_adv_frm_isr = 0x400011e0;
r_lld_per_adv_frm_skip_isr = 0x400011e4;
r_lld_per_adv_init = 0x400011e8;
r_lld_per_adv_init_info_get = 0x400011ec;
r_lld_per_adv_list_add = 0x400011f0;
r_lld_per_adv_list_rem = 0x400011f4;
r_lld_per_adv_set_tx_power = 0x400011fc;
r_lld_per_adv_start = 0x40001200;
r_lld_per_adv_stop = 0x40001204;
r_lld_per_adv_sync_info_get = 0x40001208;
r_lld_process_cca_data = 0x4000120c;
r_lld_ral_search = 0x40001210;
r_lld_read_clock = 0x40001214;
r_lld_res_list_add = 0x40001218;
r_lld_res_list_is_empty = 0x40001220;
r_lld_res_list_local_rpa_get = 0x40001224;
r_lld_res_list_peer_rpa_get = 0x40001228;
r_lld_res_list_peer_update = 0x4000122c;
/* r_lld_res_list_priv_mode_update = 0x40001230; */
r_lld_reset_reg = 0x40001238;
r_lld_rpa_renew = 0x4000123c;
r_lld_rpa_renew_evt_canceled_cbk = 0x40001240;
r_lld_rpa_renew_evt_start_cbk = 0x40001244;
r_lld_rpa_renew_instant_cbk = 0x40001248;
r_lld_rxdesc_check = 0x4000124c;
r_lld_rxdesc_free = 0x40001250;
r_lld_scan_create_sync = 0x40001254;
r_lld_scan_create_sync_cancel = 0x40001258;
r_lld_scan_end = 0x4000125c;
r_lld_scan_evt_canceled_cbk = 0x40001260;
r_lld_scan_evt_start_cbk = 0x40001264;
r_lld_scan_frm_cbk = 0x40001268;
r_lld_scan_frm_eof_isr = 0x4000126c;
r_lld_scan_frm_rx_isr = 0x40001270;
r_lld_scan_frm_skip_isr = 0x40001274;
r_lld_scan_init = 0x40001278;
r_lld_scan_params_update = 0x4000127c;
r_lld_scan_process_pkt_rx_aux_adv_ind = 0x40001288;
r_lld_scan_process_pkt_rx_aux_chain_ind = 0x4000128c;
r_lld_scan_process_pkt_rx_aux_scan_rsp = 0x40001290;
r_lld_scan_process_pkt_rx_ext_adv = 0x40001294;
r_lld_scan_process_pkt_rx_ext_adv_ind = 0x40001298;
r_lld_scan_process_pkt_rx_legacy_adv = 0x4000129c;
r_lld_scan_restart = 0x400012a0;
r_lld_scan_sched = 0x400012a4;
r_lld_scan_set_tx_power = 0x400012a8;
r_lld_scan_start = 0x400012ac;
r_lld_scan_stop = 0x400012b0;
r_lld_scan_sync_accept = 0x400012b4;
r_lld_scan_sync_info_unpack = 0x400012b8;
r_lld_scan_trunc_ind = 0x400012bc;
r_lld_sw_cca_evt_handler = 0x400012c0;
r_lld_sw_cca_isr = 0x400012c4;
r_lld_sync_ch_map_update = 0x400012c8;
r_lld_sync_cleanup = 0x400012cc;
r_lld_sync_evt_canceled_cbk = 0x400012d0;
r_lld_sync_evt_start_cbk = 0x400012d4;
r_lld_sync_frm_cbk = 0x400012d8;
r_lld_sync_frm_eof_isr = 0x400012dc;
r_lld_sync_frm_rx_isr = 0x400012e0;
r_lld_sync_frm_skip_isr = 0x400012e4;
r_lld_sync_init = 0x400012e8;
r_lld_sync_process_pkt_rx = 0x400012ec;
r_lld_sync_process_pkt_rx_aux_sync_ind = 0x400012f0;
r_lld_sync_process_pkt_rx_pkt_check = 0x400012f4;
r_lld_sync_scan_dynamic_pti_process = 0x400012f8;
r_lld_sync_sched = 0x400012fc;
r_lld_sync_start = 0x40001300;
r_lld_sync_stop = 0x40001304;
r_lld_sync_trunc_ind = 0x40001308;
r_lld_test_cleanup = 0x4000130c;
r_lld_test_evt_canceled_cbk = 0x40001310;
r_lld_test_evt_start_cbk = 0x40001314;
r_lld_test_freq2chnl = 0x40001318;
r_lld_test_frm_cbk = 0x4000131c;
r_lld_test_frm_isr = 0x40001320;
r_lld_test_init = 0x40001324;
r_lld_test_rx_isr = 0x40001328;
r_lld_test_set_tx_power = 0x4000132c;
r_lld_test_start = 0x40001330;
/* r_lld_test_stop = 0x40001334; */
r_lld_update_rxbuf = 0x40001338;
r_lld_update_rxbuf_isr = 0x4000133c;
r_lld_white_list_add = 0x40001340;
r_lld_white_list_rem = 0x40001344;
r_llm_activity_free_get = 0x40001348;
r_llm_activity_free_set = 0x4000134c;
r_llm_activity_syncing_get = 0x40001350;
r_llm_adv_con_len_check = 0x40001354;
r_llm_adv_hdl_to_id = 0x40001358;
r_llm_adv_rep_flow_control_check = 0x4000135c;
r_llm_adv_rep_flow_control_update = 0x40001360;
r_llm_adv_reports_list_check = 0x40001364;
r_llm_adv_set_all_release = 0x40001368;
r_llm_adv_set_dft_params = 0x4000136c;
r_llm_adv_set_release = 0x40001370;
r_llm_aes_res_cb = 0x40001374;
r_llm_ble_update_adv_flow_control = 0x40001378;
r_llm_ch_map_update = 0x4000137c;
r_llm_cmd_cmp_send = 0x40001380;
r_llm_cmd_stat_send = 0x40001384;
r_llm_dev_list_empty_entry = 0x40001388;
r_llm_dev_list_search = 0x4000138c;
r_llm_env_adv_dup_filt_deinit = 0x40001390;
r_llm_env_adv_dup_filt_init = 0x40001394;
r_llm_init_ble_adv_report_flow_contol = 0x40001398;
r_llm_is_dev_connected = 0x4000139c;
r_llm_is_dev_synced = 0x400013a0;
r_llm_is_non_con_act_ongoing_check = 0x400013a4;
r_llm_is_wl_accessible = 0x400013a8;
r_llm_le_evt_mask_check = 0x400013ac;
r_llm_link_disc = 0x400013b4;
r_llm_master_ch_map_get = 0x400013b8;
r_llm_msg_handler_tab_p_get = 0x400013bc;
r_llm_no_activity = 0x400013c0;
r_llm_per_adv_slot_dur = 0x400013c4;
r_llm_plan_elt_get = 0x400013c8;
r_llm_rx_path_comp_get = 0x400013cc;
r_llm_scan_start = 0x400013d0;
r_llm_scan_sync_acad_attach = 0x400013d4;
r_llm_scan_sync_acad_detach = 0x400013d8;
r_llm_send_adv_lost_event_to_host = 0x400013dc;
r_llm_tx_path_comp_get = 0x400013e0;
r_misc_deinit = 0x400013e4;
r_misc_free_em_buf_in_isr = 0x400013e8;
r_misc_init = 0x400013ec;
r_misc_msg_handler_tab_p_get = 0x400013f0;
r_notEqual256 = 0x400013f4;
r_phy_upd_proc_start = 0x400013f8;
r_platform_reset = 0x400013fc;
r_rf_em_init = 0x40001404;
r_rf_force_agc_enable = 0x40001408;
r_rf_reg_rd = 0x4000140c;
r_rf_reg_wr = 0x40001410;
r_rf_reset = 0x40001414;
r_rf_rssi_convert = 0x40001418;
r_rf_rw_v9_le_disable = 0x4000141c;
r_rf_rw_v9_le_enable = 0x40001420;
r_rf_sleep = 0x40001424;
r_rf_util_cs_fmt_convert = 0x40001430;
r_rw_crypto_aes_ccm = 0x40001434;
r_rw_crypto_aes_encrypt = 0x40001438;
r_rw_crypto_aes_init = 0x4000143c;
r_rw_crypto_aes_k1 = 0x40001440;
r_rw_crypto_aes_k2 = 0x40001444;
r_rw_crypto_aes_k3 = 0x40001448;
r_rw_crypto_aes_k4 = 0x4000144c;
r_rw_crypto_aes_rand = 0x40001450;
r_rw_crypto_aes_result_handler = 0x40001454;
r_rw_crypto_aes_s1 = 0x40001458;
r_rw_cryto_aes_cmac = 0x4000145c;
r_rw_v9_init_em_radio_table = 0x40001460;
r_rwble_sleep_enter = 0x40001468;
r_rwble_sleep_wakeup_end = 0x4000146c;
/* r_rwbtdm_isr_wrapper = 0x40001470; */
r_rwip_active_check = 0x40001474;
r_rwip_aes_encrypt = 0x40001478;
/* r_rwip_assert = 0x4000147c; */
r_rwip_crypt_evt_handler = 0x40001480;
r_rwip_crypt_isr_handler = 0x40001484;
r_rwip_eif_get = 0x40001488;
r_rwip_half_slot_2_lpcycles = 0x4000148c;
r_rwip_hus_2_lpcycles = 0x40001490;
r_rwip_isr = 0x40001494;
r_rwip_lpcycles_2_hus = 0x40001498;
r_rwip_prevent_sleep_clear = 0x4000149c;
r_rwip_prevent_sleep_set = 0x400014a0;
r_rwip_schedule = 0x400014a4;
r_rwip_sleep = 0x400014a8;
r_rwip_sw_int_handler = 0x400014ac;
r_rwip_sw_int_req = 0x400014b0;
r_rwip_time_get = 0x400014b4;
r_rwip_timer_10ms_handler = 0x400014b8;
r_rwip_timer_10ms_set = 0x400014bc;
r_rwip_timer_hs_handler = 0x400014c0;
r_rwip_timer_hs_set = 0x400014c4;
r_rwip_timer_hus_handler = 0x400014c8;
r_rwip_timer_hus_set = 0x400014cc;
r_rwip_wakeup = 0x400014d0;
/* r_rwip_wakeup_end = 0x400014d4; */
r_rwip_wlcoex_set = 0x400014d8;
r_sch_alarm_clear = 0x400014dc;
r_sch_alarm_init = 0x400014e0;
r_sch_alarm_prog = 0x400014e4;
r_sch_alarm_set = 0x400014e8;
r_sch_alarm_timer_isr = 0x400014ec;
r_sch_arb_conflict_check = 0x400014f0;
r_sch_arb_elt_cancel = 0x400014f4;
r_sch_arb_init = 0x400014fc;
r_sch_arb_insert = 0x40001500;
r_sch_arb_prog_timer = 0x40001504;
r_sch_arb_remove = 0x40001508;
r_sch_arb_sw_isr = 0x4000150c;
r_sch_plan_chk = 0x40001510;
r_sch_plan_clock_wrap_offset_update = 0x40001514;
r_sch_plan_init = 0x40001518;
r_sch_plan_interval_req = 0x4000151c;
r_sch_plan_offset_max_calc = 0x40001520;
r_sch_plan_offset_req = 0x40001524;
r_sch_plan_position_range_compute = 0x40001528;
r_sch_plan_rem = 0x4000152c;
r_sch_plan_req = 0x40001530;
r_sch_prog_init = 0x4000153c;
r_sch_prog_push = 0x40001540;
r_sch_prog_rx_isr = 0x40001544;
r_sch_prog_skip_isr = 0x40001548;
r_sch_prog_tx_isr = 0x4000154c;
r_sch_slice_bg_add = 0x40001550;
r_sch_slice_bg_remove = 0x40001554;
r_sch_slice_compute = 0x40001558;
r_sch_slice_fg_add = 0x4000155c;
r_sch_slice_fg_remove = 0x40001560;
r_sch_slice_init = 0x40001564;
r_sch_slice_per_add = 0x40001568;
r_sch_slice_per_remove = 0x4000156c;
r_sdk_config_get_bt_sleep_enable = 0x40001570;
r_sdk_config_get_hl_derived_opts = 0x40001574;
r_sdk_config_get_opts = 0x40001578;
r_sdk_config_get_priv_opts = 0x4000157c;
r_sdk_config_set_bt_sleep_enable = 0x40001580;
r_sdk_config_set_hl_derived_opts = 0x40001584;
r_sdk_config_set_opts = 0x40001588;
r_specialModP256 = 0x4000158c;
r_unloaded_area_init = 0x40001590;
r_vhci_flow_off = 0x40001594;
r_vhci_flow_on = 0x40001598;
r_vhci_notify_host_send_available = 0x4000159c;
r_vhci_send_to_host = 0x400015a0;
r_vnd_hci_command_handler = 0x400015a4;
r_vshci_init = 0x400015a8;
vnd_hci_command_handler_wrapper = 0x400015ac;
/* Data (.data, .bss, .rodata) */
bt_rf_coex_cfg_p = 0x3fcdffcc;
bt_rf_coex_hooks_p = 0x3fcdffc8;
@ -1463,38 +668,6 @@ rwip_coex_cfg = 0x3ff1eeac;
rwip_priority = 0x3ff1ee94;
veryBigHexP256 = 0x3ff1ee48;
/* bluetooth hook funcs */
r_llc_loc_encrypt_proc_continue_hook = 0x40001c60;
r_llc_loc_phy_upd_proc_continue_hook = 0x40001c64;
r_llc_rem_phy_upd_proc_continue_hook = 0x40001c68;
r_lld_scan_frm_eof_isr_hook = 0x40001c6c;
r_lld_scan_evt_start_cbk_hook = 0x40001c70;
r_lld_scan_process_pkt_rx_ext_adv_hook = 0x40001c78;
r_lld_scan_sched_hook = 0x40001c7c;
r_lld_adv_evt_start_cbk_hook = 0x40001c84;
r_lld_adv_aux_evt_start_cbk_hook = 0x40001c88;
r_lld_adv_frm_isr_hook = 0x40001c8c;
r_lld_adv_start_init_evt_param_hook = 0x40001c90;
r_lld_con_evt_canceled_cbk_hook = 0x40001c94;
r_lld_con_frm_isr_hook = 0x40001c98;
r_lld_con_tx_hook = 0x40001c9c;
r_lld_con_rx_hook = 0x40001ca0;
r_lld_con_evt_start_cbk_hook = 0x40001ca4;
r_lld_con_tx_prog_new_packet_hook = 0x40001cac;
r_lld_init_frm_eof_isr_hook = 0x40001cb0;
r_lld_init_evt_start_cbk_hook = 0x40001cb4;
r_lld_init_sched_hook = 0x40001cbc;
r_lld_init_process_pkt_tx_hook = 0x40001cc0;
r_lld_per_adv_evt_start_cbk_hook = 0x40001cc4;
r_lld_per_adv_frm_isr_hook = 0x40001cc8;
r_lld_per_adv_start_hook = 0x40001ccc;
r_lld_sync_frm_eof_isr_hook = 0x40001cd0;
r_lld_sync_evt_start_cbk_hook = 0x40001cd4;
r_lld_sync_start_hook = 0x40001cd8;
r_lld_sync_process_pkt_rx_pkt_check_hook = 0x40001cdc;
r_sch_arb_insert_hook = 0x40001ce0;
r_sch_plan_offset_req_hook = 0x40001ce4;
/***************************************
Group rom_pp
***************************************/
@ -1510,7 +683,7 @@ hal_mac_tx_get_blockack = 0x400015d0;
/* hal_mac_tx_set_ppdu = 0x400015d4;*/
ic_get_trc = 0x400015d8;
/* ic_mac_deinit = 0x400015dc; */
ic_mac_init = 0x400015e0;
/* ic_mac_init = 0x400015e0; */
ic_interface_enabled = 0x400015e4;
is_lmac_idle = 0x400015e8;
/*lmacAdjustTimestamp = 0x400015ec;*/
@ -1544,10 +717,10 @@ pm_mac_sleep = 0x4000165c;
pm_enable_active_timer = 0x40001660;
pm_enable_sleep_delay_timer = 0x40001664;
pm_local_tsf_process = 0x40001668;
pm_set_beacon_filter = 0x4000166c;
pm_is_in_wifi_slice_threshold = 0x40001670;
//pm_set_beacon_filter = 0x4000166c;
/*pm_is_in_wifi_slice_threshold = 0x40001670;*/
pm_is_waked = 0x40001674;
pm_keep_alive = 0x40001678;
/*pm_keep_alive = 0x40001678;*/
/* pm_on_beacon_rx = 0x4000167c; */
pm_on_data_rx = 0x40001680;
pm_on_tbtt = 0x40001684;
@ -1572,7 +745,7 @@ ppEnqueueTxDone = 0x400016cc;
ppGetTxQFirstAvail_Locked = 0x400016d0;
ppGetTxframe = 0x400016d4;
ppProcessRxPktHdr = 0x400016e0;
ppProcessTxQ = 0x400016e4;
/*ppProcessTxQ = 0x400016e4;*/
ppRecordBarRRC = 0x400016e8;
lmacRequestTxopQueue = 0x400016ec;
lmacReleaseTxopQueue = 0x400016f0;
@ -1582,7 +755,7 @@ ppResortTxAMPDU = 0x400016fc;
ppResumeTxAMPDU = 0x40001700;
/* ppRxFragmentProc = 0x40001704; */
/* ppRxPkt = 0x40001708; */
ppRxProtoProc = 0x4000170c;
/* ppRxProtoProc = 0x4000170c; */
ppSearchTxQueue = 0x40001710;
ppSearchTxframe = 0x40001714;
ppSelectNextQueue = 0x40001718;
@ -1610,7 +783,7 @@ rcSetTxAmpduLimit = 0x4000176c;
rcUpdateAckSnr = 0x40001774;
/*rcUpdateRate = 0x40001778;*/
/* rcUpdateTxDone = 0x4000177c; */
rcUpdateTxDoneAmpdu2 = 0x40001780;
/* rcUpdateTxDoneAmpdu2 = 0x40001780;*/
rcUpSched = 0x40001784;
rssi_margin = 0x40001788;
rx11NRate2AMPDULimit = 0x4000178c;
@ -1773,7 +946,7 @@ coex_hw_timer_set = 0x400018e0;
coex_schm_interval_set = 0x400018e4;
coex_schm_lock = 0x400018e8;
coex_schm_unlock = 0x400018ec;
coex_status_get = 0x400018f0;
/*coex_status_get = 0x400018f0;*/
coex_wifi_release = 0x400018f4;
esp_coex_ble_conn_dynamic_prio_get = 0x400018f8;
/* Data (.data, .bss, .rodata) */

View File

@ -35,7 +35,7 @@ coex_hw_timer_set = 0x40000b30;
coex_schm_interval_set = 0x40000b34;
coex_schm_lock = 0x40000b38;
coex_schm_unlock = 0x40000b3c;
coex_status_get = 0x40000b40;
/*coex_status_get = 0x40000b40;*/
coex_wifi_release = 0x40000b44;
esp_coex_ble_conn_dynamic_prio_get = 0x40000b48;
/* Data (.data, .bss, .rodata) */

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -238,8 +238,8 @@ ets_clk_mspi_apb_wait_ready = 0x400006d0;
gpio_input_get = 0x400006d4;
gpio_matrix_in = 0x400006d8;
gpio_matrix_out = 0x400006dc;
gpio_output_disable = 0x400006e0;
gpio_output_enable = 0x400006e4;
/* gpio_output_disable = 0x400006e0; */
/* gpio_output_enable = 0x400006e4; */
gpio_output_set = 0x400006e8;
gpio_pad_hold = 0x400006ec;
gpio_pad_input_disable = 0x400006f0;
@ -259,11 +259,11 @@ gpio_bypass_matrix_in = 0x40000714;
***************************************/
/* Functions */
esprv_intc_int_set_priority = 0x40000718;
esprv_intc_int_set_threshold = 0x4000071c;
esprv_intc_int_enable = 0x40000720;
esprv_intc_int_disable = 0x40000724;
esprv_intc_int_set_type = 0x40000728;
PROVIDE( esprv_intc_int_set_priority = 0x40000718 );
PROVIDE( esprv_intc_int_set_threshold = 0x4000071c );
PROVIDE( esprv_intc_int_enable = 0x40000720 );
PROVIDE( esprv_intc_int_disable = 0x40000724 );
PROVIDE( esprv_intc_int_set_type = 0x40000728 );
PROVIDE( intr_handler_set = 0x4000072c );
intr_matrix_set = 0x40000730;
ets_intr_lock = 0x40000734;

View File

@ -31,7 +31,7 @@ hal_mac_tx_get_blockack = 0x40000bfc;
//hal_mac_tx_set_ppdu = 0x40000c00;
ic_get_trc = 0x40000c04;
//ic_mac_deinit = 0x40000c08;
ic_mac_init = 0x40000c0c;
/* ic_mac_init = 0x40000c0c; */
ic_interface_enabled = 0x40000c10;
is_lmac_idle = 0x40000c14;
/*lmacAdjustTimestamp = 0x40000c18;*/
@ -66,7 +66,7 @@ pm_mac_sleep = 0x40000c84;
pm_enable_sleep_delay_timer = 0x40000c8c;
pm_local_tsf_process = 0x40000c90;
//pm_set_beacon_filter = 0x40000c94;
pm_is_in_wifi_slice_threshold = 0x40000c98;
/*pm_is_in_wifi_slice_threshold = 0x40000c98;*/
pm_is_waked = 0x40000c9c;
//pm_keep_alive = 0x40000ca0;
/* pm_on_beacon_rx = 0x40000ca4; */
@ -102,7 +102,7 @@ ppRecycleRxPkt = 0x40000d14;
ppResumeTxAMPDU = 0x40000d1c;
/*ppRxFragmentProc = 0x40000d20;*/
//ppRxPkt = 0x40000d24;
ppRxProtoProc = 0x40000d28;
//ppRxProtoProc = 0x40000d28;
ppSearchTxQueue = 0x40000d2c;
ppSearchTxframe = 0x40000d30;
ppSelectNextQueue = 0x40000d34;
@ -130,8 +130,8 @@ rcSetTxAmpduLimit = 0x40000d88;
rcTxUpdatePer = 0x40000d8c;
rcUpdateAckSnr = 0x40000d90;
/*rcUpdateRate = 0x40000d94;*/
rcUpdateTxDone = 0x40000d98;
rcUpdateTxDoneAmpdu2 = 0x40000d9c;
/*rcUpdateTxDone = 0x40000d98;*/
/*rcUpdateTxDoneAmpdu2 = 0x40000d9c;*/
rcUpSched = 0x40000da0;
rssi_margin = 0x40000da4;
rx11NRate2AMPDULimit = 0x40000da8;

View File

@ -50,15 +50,15 @@ esp_flash_chip_driver_initialized = 0x4000022c;
esp_flash_read_id = 0x40000230;
esp_flash_get_size = 0x40000234;
esp_flash_erase_chip = 0x40000238;
esp_flash_erase_region = 0x4000023c;
rom_esp_flash_erase_region = 0x4000023c;
esp_flash_get_chip_write_protect = 0x40000240;
esp_flash_set_chip_write_protect = 0x40000244;
esp_flash_get_protectable_regions = 0x40000248;
esp_flash_get_protected_region = 0x4000024c;
esp_flash_set_protected_region = 0x40000250;
esp_flash_read = 0x40000254;
esp_flash_write = 0x40000258;
esp_flash_write_encrypted = 0x4000025c;
rom_esp_flash_write = 0x40000258;
rom_esp_flash_write_encrypted = 0x4000025c;
esp_flash_read_encrypted = 0x40000260;
esp_flash_get_io_mode = 0x40000264;
esp_flash_set_io_mode = 0x40000268;

View File

@ -226,8 +226,8 @@ ets_clk_get_cpu_freq = 0x4000069c;
gpio_input_get = 0x400006a0;
gpio_matrix_in = 0x400006a4;
gpio_matrix_out = 0x400006a8;
gpio_output_disable = 0x400006ac;
gpio_output_enable = 0x400006b0;
/* gpio_output_disable = 0x400006ac; */
/* gpio_output_enable = 0x400006b0; */
gpio_output_set = 0x400006b4;
gpio_pad_hold = 0x400006b8;
gpio_pad_input_disable = 0x400006bc;

View File

@ -50,15 +50,15 @@ esp_flash_chip_driver_initialized = 0x40000224;
esp_flash_read_id = 0x40000228;
esp_flash_get_size = 0x4000022c;
esp_flash_erase_chip = 0x40000230;
esp_flash_erase_region = 0x40000234;
rom_esp_flash_erase_region = 0x40000234;
esp_flash_get_chip_write_protect = 0x40000238;
esp_flash_set_chip_write_protect = 0x4000023c;
esp_flash_get_protectable_regions = 0x40000240;
esp_flash_get_protected_region = 0x40000244;
esp_flash_set_protected_region = 0x40000248;
esp_flash_read = 0x4000024c;
esp_flash_write = 0x40000250;
esp_flash_write_encrypted = 0x40000254;
rom_esp_flash_write = 0x40000250;
rom_esp_flash_write_encrypted = 0x40000254;
esp_flash_read_encrypted = 0x40000258;
esp_flash_get_io_mode = 0x4000025c;
esp_flash_set_io_mode = 0x40000260;

View File

@ -3,4 +3,18 @@ INCLUDE "rom/esp32s3.rom.ld"
INCLUDE "rom/esp32s3.rom.libgcc.ld"
INCLUDE "rom/esp32s3.rom.version.ld"
/*
TODO if BT_CTRL_RUN_IN_FLASH_ONLY
INCLUDE "rom/esp32s3.rom.ble_50.ld"
INCLUDE "rom/esp32s3.rom.ble_cca.ld"
INCLUDE "rom/esp32s3.rom.ble_dtm.ld"
INCLUDE "rom/esp32s3.rom.ble_master.ld"
INCLUDE "rom/esp32s3.rom.ble_scan.ld"
INCLUDE "rom/esp32s3.rom.ble_smp.ld"
INCLUDE "rom/esp32s3.rom.ble_test.ld"
*/
INCLUDE "rom/esp32s3.rom.bt_funcs.ld"
INCLUDE "rom/additional.ld"

View File

@ -0,0 +1,74 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32s3.rom.ld for esp32s3
*
*
* Generated from ./interface-esp32s3.yml md5sum 39c4ce259b11323b9404c192b01b712b
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* extend adv */
f_hci_le_set_ext_adv_param_cmd_handler = 0x40000000;
f_hci_le_set_adv_set_rand_addr_cmd_handler = 0x40000000;
f_hci_le_set_ext_adv_data_cmd_handler = 0x40000000;
f_hci_le_set_ext_scan_rsp_data_cmd_handler = 0x40000000;
f_hci_le_set_ext_adv_en_cmd_handler = 0x40000000;
f_hci_le_rd_max_adv_data_len_cmd_handler = 0x40000000;
f_hci_le_rd_nb_supp_adv_sets_cmd_handler = 0x40000000;
f_hci_le_rmv_adv_set_cmd_handler = 0x40000000;
f_hci_le_clear_adv_sets_cmd_handler = 0x40000000;
r_lld_adv_sync_info_set = 0x40000000;
r_lld_ext_adv_dynamic_pti_process = 0x40000000;
r_lld_adv_ext_chain_construct = 0x40000000;
r_lld_adv_aux_evt_canceled_cbk = 0x40000000;
r_lld_adv_aux_evt_start_cbk = 0x40000000;
r_lld_adv_aux_ch_idx_set = 0x40000000;
/* periodic adv */
f_hci_le_set_per_adv_param_cmd_handler = 0x40000000;
f_hci_le_set_per_adv_data_cmd_handler = 0x40000000;
f_hci_le_set_per_adv_en_cmd_handler = 0x40000000;
r_lld_per_adv_ch_map_update = 0x40000000;
r_lld_per_adv_init = 0x40000000;
/* PA list */
f_hci_le_add_dev_to_per_adv_list_cmd_handler = 0x40000000;
f_hci_le_rmv_dev_from_per_adv_list_cmd_handler = 0x40000000;
f_hci_le_clear_per_adv_list_cmd_handler = 0x40000000;
f_hci_le_rd_per_adv_list_size_cmd_handler = 0x40000000;
/* extend scan */
f_hci_le_set_ext_scan_param_cmd_handler = 0x40000000;
f_hci_le_set_ext_scan_en_cmd_handler = 0x40000000;
r_lld_scan_process_pkt_rx_ext_adv = 0x40000000;
r_lld_scan_trunc_ind = 0x40000000;
/* extend con */
f_hci_le_ext_create_con_cmd_handler = 0x40000000;
r_lld_init_process_pkt_rx_adv_ext_ind = 0x40000000;
r_lld_init_process_pkt_rx_aux_connect_rsp = 0x40000000;
/* PA sync */
f_hci_le_per_adv_create_sync_cmd_handler = 0x40000000;
f_hci_le_per_adv_create_sync_cancel_cmd_handler = 0x40000000;
f_hci_le_per_adv_term_sync_cmd_handler = 0x40000000;
f_lld_per_adv_rx_end_ind_handler_hack = 0x40000000;
f_lld_sync_start_req_handler = 0x40000000;
f_lld_per_adv_rep_ind_handler = 0x40000000;
r_lld_sync_init = 0x40000000;
/* phy update*/
f_llc_op_phy_upd_ind_handler = 0x40000000;
f_ll_phy_req_handler = 0x40000000;
f_ll_phy_rsp_handler = 0x40000000;
f_ll_phy_update_ind_handler = 0x40000000;
f_lld_phy_upd_cfm_handler = 0x40000000;
f_hci_le_set_phy_cmd_handler = 0x40000000;
llc_llcp_phy_update_ind_ack = 0x40000000;

View File

@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32s3.rom.ld for esp32s3
*
*
* Generated from ./interface-esp32s3.yml md5sum 39c4ce259b11323b9404c192b01b712b
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* SW CCA */
r_lld_cca_con_evt_start_handle = 0x40000000;
r_lld_hw_cca_end_isr = 0x40000000;
r_lld_hw_cca_isr_eco = 0x40000000;
r_lld_cca_bb_sync_found_handle = 0x40000000;
r_lld_cca_data_reset = 0x40000000;
r_lld_cca_sw_init = 0x40000000;
r_lld_cca_con_evt_end_handle = 0x40000000;
r_lld_cca_alloc = 0x40000000;
r_lld_cca_sw_alloc = 0x40000000;
r_lld_cca_sw_free = 0x40000000;
r_lld_cca_free = 0x40000000;
r_cca_init = 0x40000000;
r_lld_hw_cca_evt_handler = 0x40000000;
r_lld_sw_cca_evt_handler = 0x40000000;
r_ble_sw_cca_check_isr = 0x40000000;

View File

@ -0,0 +1,22 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32s3.rom.ld for esp32s3
*
*
* Generated from ./interface-esp32s3.yml md5sum 39c4ce259b11323b9404c192b01b712b
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* DTM */
f_hci_le_rx_test_cmd_handler = 0x40000000;
f_hci_le_tx_test_cmd_handler = 0x40000000;
f_hci_le_enh_rx_test_cmd_handler = 0x40000000;
f_hci_le_enh_tx_test_cmd_handler = 0x40000000;
f_hci_le_test_end_cmd_handler = 0x40000000;
r_lld_test_init = 0x40000000;

View File

@ -0,0 +1,20 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32s3.rom.ld for esp32s3
*
*
* Generated from ./interface-esp32s3.yml md5sum 39c4ce259b11323b9404c192b01b712b
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* master */
f_hci_le_create_con_cmd_handler = 0x40000000;
f_hci_le_create_con_cancel_cmd_handler = 0x40000000;
lld_init_end_ind_handler = 0x40000000;
r_lld_init_init = 0x40000000;

View File

@ -0,0 +1,37 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32s3.rom.ld for esp32s3
*
*
* Generated from ./interface-esp32s3.yml md5sum 39c4ce259b11323b9404c192b01b712b
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* BLE scan */
f_hci_le_set_scan_param_cmd_handler = 0x40000000;
f_hci_le_set_scan_en_cmd_handler = 0x40000000;
f_llm_scan_period_to_handler_hack = 0x40000000;
f_lld_adv_rep_ind_handler_hack = 0x40000000;
r_lld_scan_init = 0x40000000;
r_lld_scan_restart = 0x40000000;
f_lld_scan_end_ind_handler_hack = 0x40000000;
r_llm_env_adv_dup_filt_deinit_eco = 0x40000000;
llm_exception_list_init = 0x40000000;
llm_duplicate_list_init = 0x40000000;
f_hci_vendor_ble_update_duplicate_exceptional_list_cmd_handler = 0x40000000;
f_hci_vendor_ble_init_adv_flow_control_cmd_handler = 0x40000000;
f_hci_vendor_ble_update_adv_report_flow_control_cmd_handler = 0x40000000;
coex_schm_ble_scan_stop = 0x40000000;
f_hci_le_set_ext_scan_param_cmd_handler = 0x40000000;
f_hci_le_set_ext_scan_en_cmd_handler = 0x40000000;
r_lld_scan_process_pkt_rx_ext_adv = 0x40000000;
r_lld_scan_trunc_ind = 0x40000000;

View File

@ -0,0 +1,42 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32s3.rom.ld for esp32s3
*
*
* Generated from ./interface-esp32s3.yml md5sum 39c4ce259b11323b9404c192b01b712b
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* SMP */
f_ll_pause_enc_req_handler = 0x40000000;
f_ll_pause_enc_rsp_handler = 0x40000000;
f_ll_enc_req_handler = 0x40000000;
f_ll_enc_rsp_handler = 0x40000000;
f_ll_start_enc_req_handler = 0x40000000;
f_ll_start_enc_rsp_handler = 0x40000000;
f_hci_le_start_enc_cmd_handler = 0x40000000;
f_hci_le_ltk_req_reply_cmd_handler = 0x40000000;
f_hci_le_ltk_req_neg_reply_cmd_handler = 0x40000000;
f_llc_encrypt_ind_handler = 0x40000000;
f_llc_op_encrypt_ind_handler = 0x40000000;
f_hci_le_rd_local_p256_public_key_cmd_handler = 0x40000000;
f_hci_le_generate_dhkey_cmd_handler = 0x40000000;
f_hci_le_enc_cmd_handler = 0x40000000;
r_rwip_crypt_evt_handler = 0x40000000;
/* LE ping */
f_ll_ping_req_handler = 0x40000000;
f_ll_ping_rsp_handler = 0x40000000;
f_llc_op_le_ping_ind_handler = 0x40000000;
f_llc_auth_payl_nearly_op_handler = 0x40000000;
f_llc_auth_payl_real_to_handler = 0x40000000;
f_llc_auth_payl_nearly_to_handler = 0x40000000;
/* ecc */
r_ecc_init = 0x40000000;

View File

@ -0,0 +1,37 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32s3.rom.ld for esp32s3
*
*
* Generated from ./interface-esp32s3.yml md5sum 39c4ce259b11323b9404c192b01b712b
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/* overwrite */
lld_acl_rx_ind_handler = 0x40000000;
lld_con_estab_ind_handler = 0x40000000;
lld_adv_rep_ind_handler = 0x40000000;
llm_rpa_renew_to_handler = 0x40000000;
lld_scan_end_ind_handler = 0x40000000;
llm_scan_period_to_handler = 0x40000000;
/* nvds */
r_nvds_init = 0x40000000;
f_nvds_get = 0x40000000;
f_nvds_del = 0x40000000;
f_nvds_put = 0x40000000;
/* controller flash */
r_flash_init = 0x40000000;
r_flash_env_init = 0x40000000;
r_flash_env_deinit = 0x40000000;
/* QA test */
f_hci_vendor_ble_qa_test_cmd_handler = 0x40000000;

View File

@ -0,0 +1,902 @@
/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ROM function interface esp32s3.rom.ld for esp32s3
*
*
* Generated from ./interface-esp32s3.yml md5sum 39c4ce259b11323b9404c192b01b712b
*
* Compatible with ROM where ECO version equal or greater to 0.
*
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT.
*/
/***************************************
Group bluetooth
***************************************/
/* Functions */
bt_rf_coex_get_dft_cfg = 0x40002a78;
bt_rf_coex_hooks_p_set = 0x40002a84;
btdm_con_maxevtime_cal_impl = 0x40002a90;
btdm_controller_get_compile_version_impl = 0x40002a9c;
btdm_controller_rom_data_init = 0x40002aa8;
btdm_dis_privacy_err_report_impl = 0x40002ab4;
btdm_disable_adv_delay_impl = 0x40002ac0;
btdm_enable_scan_continue_impl = 0x40002acc;
btdm_enable_scan_forever_impl = 0x40002ad8;
btdm_get_power_state_impl = 0x40002ae4;
btdm_get_prevent_sleep_flag_impl = 0x40002af0;
btdm_power_state_active_impl = 0x40002afc;
btdm_switch_phy_coded_impl = 0x40002b08;
hci_acl_data_handler = 0x40002b14;
hci_disconnect_cmd_handler = 0x40002b20;
hci_le_con_upd_cmd_handler = 0x40002b2c;
hci_le_ltk_req_neg_reply_cmd_handler = 0x40002b38;
hci_le_ltk_req_reply_cmd_handler = 0x40002b44;
hci_le_rd_chnl_map_cmd_handler = 0x40002b50;
hci_le_rd_phy_cmd_handler = 0x40002b5c;
hci_le_rd_rem_feats_cmd_handler = 0x40002b68;
hci_le_rem_con_param_req_neg_reply_cmd_handler = 0x40002b74;
hci_le_rem_con_param_req_reply_cmd_handler = 0x40002b80;
hci_le_set_data_len_cmd_handler = 0x40002b8c;
hci_le_set_phy_cmd_handler = 0x40002b98;
hci_le_start_enc_cmd_handler = 0x40002ba4;
hci_rd_auth_payl_to_cmd_handler = 0x40002bb0;
hci_rd_rem_ver_info_cmd_handler = 0x40002bbc;
hci_rd_rssi_cmd_handler = 0x40002bc8;
hci_rd_tx_pwr_lvl_cmd_handler = 0x40002bd4;
hci_vs_set_pref_slave_evt_dur_cmd_handler = 0x40002be0;
hci_vs_set_pref_slave_latency_cmd_handler = 0x40002bec;
hci_wr_auth_payl_to_cmd_handler = 0x40002bf8;
ll_channel_map_ind_handler = 0x40002c04;
ll_connection_param_req_handler = 0x40002c10;
ll_connection_param_rsp_handler = 0x40002c1c;
ll_connection_update_ind_handler = 0x40002c28;
ll_enc_req_handler = 0x40002c34;
ll_enc_rsp_handler = 0x40002c40;
ll_feature_req_handler = 0x40002c4c;
ll_feature_rsp_handler = 0x40002c58;
ll_length_req_handler = 0x40002c64;
ll_length_rsp_handler = 0x40002c70;
ll_min_used_channels_ind_handler = 0x40002c7c;
ll_pause_enc_req_handler = 0x40002c88;
ll_pause_enc_rsp_handler = 0x40002c94;
ll_phy_req_handler = 0x40002ca0;
ll_phy_rsp_handler = 0x40002cac;
ll_phy_update_ind_handler = 0x40002cb8;
ll_ping_req_handler = 0x40002cc4;
ll_ping_rsp_handler = 0x40002cd0;
ll_slave_feature_req_handler = 0x40002cdc;
ll_start_enc_req_handler = 0x40002ce8;
ll_start_enc_rsp_handler = 0x40002cf4;
ll_terminate_ind_handler = 0x40002d00;
ll_version_ind_handler = 0x40002d0c;
llc_auth_payl_nearly_to_handler = 0x40002d18;
llc_auth_payl_real_to_handler = 0x40002d24;
llc_encrypt_ind_handler = 0x40002d30;
llc_hci_command_handler_wrapper = 0x40002d3c;
llc_ll_connection_param_req_pdu_send = 0x40002d48;
llc_ll_connection_param_rsp_pdu_send = 0x40002d54;
llc_ll_connection_update_ind_pdu_send = 0x40002d60;
llc_ll_enc_req_pdu_send = 0x40002d6c;
llc_ll_enc_rsp_pdu_send = 0x40002d78;
llc_ll_feature_req_pdu_send = 0x40002d84;
llc_ll_feature_rsp_pdu_send = 0x40002d90;
llc_ll_length_req_pdu_send = 0x40002d9c;
llc_ll_length_rsp_pdu_send = 0x40002da8;
llc_ll_pause_enc_req_pdu_send = 0x40002db4;
llc_ll_pause_enc_rsp_pdu_send = 0x40002dc0;
llc_ll_phy_req_pdu_send = 0x40002dcc;
llc_ll_phy_rsp_pdu_send = 0x40002dd8;
llc_ll_ping_req_pdu_send = 0x40002de4;
llc_ll_ping_rsp_pdu_send = 0x40002df0;
llc_ll_start_enc_req_pdu_send = 0x40002dfc;
llc_ll_start_enc_rsp_pdu_send = 0x40002e08;
llc_ll_terminate_ind_pdu_send = 0x40002e14;
llc_ll_unknown_rsp_pdu_send = 0x40002e20;
llc_llcp_ch_map_update_ind_pdu_send = 0x40002e2c;
llc_llcp_phy_upd_ind_pdu_send = 0x40002e38;
llc_llcp_version_ind_pdu_send = 0x40002e44;
llc_op_ch_map_upd_ind_handler = 0x40002e50;
llc_op_con_upd_ind_handler = 0x40002e5c;
llc_op_disconnect_ind_handler = 0x40002e68;
llc_op_dl_upd_ind_handler = 0x40002e74;
llc_op_encrypt_ind_handler = 0x40002e80;
llc_op_feats_exch_ind_handler = 0x40002e8c;
llc_op_le_ping_ind_handler = 0x40002e98;
llc_op_phy_upd_ind_handler = 0x40002ea4;
llc_op_ver_exch_ind_handler = 0x40002eb0;
llc_stopped_ind_handler = 0x40002ebc;
lld_acl_rx_ind_handler = 0x40002ec8;
lld_acl_tx_cfm_handler = 0x40002ed4;
lld_adv_end_ind_handler = 0x40002ee0;
lld_adv_rep_ind_handler = 0x40002eec;
lld_ch_map_upd_cfm_handler = 0x40002ef8;
lld_con_estab_ind_handler = 0x40002f04;
lld_con_evt_sd_evt_time_set = 0x40002f10;
lld_con_offset_upd_ind_handler = 0x40002f1c;
lld_con_param_upd_cfm_handler = 0x40002f28;
lld_disc_ind_handler = 0x40002f34;
lld_init_end_ind_handler = 0x40002f40;
lld_llcp_rx_ind_handler_wrapper = 0x40002f4c;
lld_llcp_tx_cfm_handler = 0x40002f58;
lld_per_adv_end_ind_handler = 0x40002f64;
lld_per_adv_rep_ind_handler = 0x40002f70;
lld_per_adv_rx_end_ind_handler = 0x40002f7c;
lld_phy_coded_500k_get = 0x40002f88;
lld_phy_upd_cfm_handler = 0x40002f94;
lld_scan_end_ind_handler = 0x40002fa0;
lld_scan_req_ind_handler = 0x40002fac;
lld_sync_start_req_handler = 0x40002fb8;
lld_test_end_ind_handler = 0x40002fc4;
lld_update_rxbuf_handler = 0x40002fd0;
llm_ch_map_update_ind_handler = 0x40002fdc;
llm_hci_command_handler_wrapper = 0x40002fe8;
llm_scan_period_to_handler = 0x40002ff4;
r_Add2SelfBigHex256 = 0x40003000;
r_AddBigHex256 = 0x4000300c;
r_AddBigHexModP256 = 0x40003018;
r_AddP256 = 0x40003024;
r_AddPdiv2_256 = 0x40003030;
r_GF_Jacobian_Point_Addition256 = 0x4000303c;
r_GF_Jacobian_Point_Double256 = 0x40003048;
r_GF_Point_Jacobian_To_Affine256 = 0x40003054;
r_MultiplyBigHexByUint32_256 = 0x40003060;
r_MultiplyBigHexModP256 = 0x4000306c;
r_MultiplyByU16ModP256 = 0x40003078;
r_SubtractBigHex256 = 0x40003084;
r_SubtractBigHexMod256 = 0x40003090;
r_SubtractBigHexUint32_256 = 0x4000309c;
r_SubtractFromSelfBigHex256 = 0x400030a8;
r_SubtractFromSelfBigHexSign256 = 0x400030b4;
r_aes_alloc = 0x400030c0;
r_aes_ccm_continue = 0x400030cc;
r_aes_ccm_process_e = 0x400030d8;
r_aes_ccm_xor_128_lsb = 0x400030e4;
r_aes_ccm_xor_128_msb = 0x400030f0;
r_aes_cmac_continue = 0x400030fc;
r_aes_cmac_start = 0x40003108;
r_aes_k1_continue = 0x40003114;
r_aes_k2_continue = 0x40003120;
r_aes_k3_continue = 0x4000312c;
r_aes_k4_continue = 0x40003138;
r_aes_shift_left_128 = 0x40003144;
r_aes_start = 0x40003150;
r_aes_xor_128 = 0x4000315c;
r_assert_err = 0x40003168;
r_assert_param = 0x40003174;
r_assert_warn = 0x40003180;
r_bigHexInversion256 = 0x4000318c;
r_ble_sw_cca_check_isr = 0x40003198;
r_ble_util_buf_acl_tx_alloc = 0x400031a4;
r_ble_util_buf_acl_tx_elt_get = 0x400031b0;
r_ble_util_buf_acl_tx_free = 0x400031bc;
r_ble_util_buf_acl_tx_free_in_isr = 0x400031c8;
r_ble_util_buf_adv_tx_alloc = 0x400031d4;
r_ble_util_buf_adv_tx_free = 0x400031e0;
r_ble_util_buf_adv_tx_free_in_isr = 0x400031ec;
r_ble_util_buf_env_deinit = 0x400031f8;
r_ble_util_buf_env_init = 0x40003204;
r_ble_util_buf_get_rx_buf_nb = 0x40003210;
r_ble_util_buf_get_rx_buf_size = 0x4000321c;
r_ble_util_buf_llcp_tx_alloc = 0x40003228;
r_ble_util_buf_llcp_tx_free = 0x40003234;
r_ble_util_buf_rx_alloc = 0x40003240;
r_ble_util_buf_rx_alloc_in_isr = 0x4000324c;
r_ble_util_buf_rx_free = 0x40003258;
r_ble_util_buf_rx_free_in_isr = 0x40003264;
r_ble_util_buf_set_rx_buf_nb = 0x40003270;
r_ble_util_buf_set_rx_buf_size = 0x4000327c;
r_ble_util_data_rx_buf_reset = 0x40003288;
r_bt_bb_get_intr_mask = 0x40003294;
r_bt_bb_intr_clear = 0x400032a0;
r_bt_bb_intr_mask_set = 0x400032ac;
r_bt_bb_isr = 0x400032b8;
r_bt_rf_coex_cfg_set = 0x400032c4;
r_bt_rf_coex_conn_dynamic_pti_en_get = 0x400032d0;
r_bt_rf_coex_conn_phy_coded_data_time_limit_en_get = 0x400032dc;
r_bt_rf_coex_ext_adv_dynamic_pti_en_get = 0x400032e8;
r_bt_rf_coex_ext_scan_dynamic_pti_en_get = 0x400032f4;
r_bt_rf_coex_legacy_adv_dynamic_pti_en_get = 0x40003300;
r_bt_rf_coex_per_adv_dynamic_pti_en_get = 0x4000330c;
r_bt_rf_coex_pti_table_get = 0x40003318;
r_bt_rf_coex_st_param_get = 0x40003324;
r_bt_rf_coex_st_param_set = 0x40003330;
r_bt_rf_coex_sync_scan_dynamic_pti_en_get = 0x4000333c;
r_bt_rma_apply_rule_cs_fmt = 0x40003348;
r_bt_rma_apply_rule_cs_idx = 0x40003354;
r_bt_rma_configure = 0x40003360;
r_bt_rma_deregister_rule_cs_fmt = 0x4000336c;
r_bt_rma_deregister_rule_cs_idx = 0x40003378;
r_bt_rma_get_ant_by_act = 0x40003384;
r_bt_rma_init = 0x40003390;
r_bt_rma_register_rule_cs_fmt = 0x4000339c;
r_bt_rma_register_rule_cs_idx = 0x400033a8;
r_bt_rtp_apply_rule_cs_fmt = 0x400033b4;
r_bt_rtp_apply_rule_cs_idx = 0x400033c0;
r_bt_rtp_deregister_rule_cs_fmt = 0x400033cc;
r_bt_rtp_deregister_rule_cs_idx = 0x400033d8;
r_bt_rtp_get_txpwr_idx_by_act = 0x400033e4;
r_bt_rtp_init = 0x400033f0;
r_bt_rtp_register_rule_cs_fmt = 0x400033fc;
r_bt_rtp_register_rule_cs_idx = 0x40003408;
r_btdm_isr = 0x40003414;
r_btdm_task_post = 0x40003420;
r_btdm_task_post_from_isr = 0x4000342c;
r_btdm_task_recycle = 0x40003438;
r_cali_phase_match_p = 0x40003444;
r_cmp_abs_time = 0x40003450;
r_cmp_dest_id = 0x4000345c;
r_cmp_timer_id = 0x40003468;
r_co_bdaddr_compare = 0x40003474;
r_co_ble_pkt_dur_in_us = 0x40003480;
r_co_list_extract = 0x4000348c;
r_co_list_extract_after = 0x40003498;
r_co_list_extract_sublist = 0x400034a4;
r_co_list_find = 0x400034b0;
r_co_list_init = 0x400034bc;
r_co_list_insert_after = 0x400034c8;
r_co_list_insert_before = 0x400034d4;
r_co_list_merge = 0x400034e0;
r_co_list_pool_init = 0x400034ec;
r_co_list_pop_front = 0x400034f8;
r_co_list_push_back = 0x40003504;
r_co_list_push_back_sublist = 0x40003510;
r_co_list_push_front = 0x4000351c;
r_co_list_size = 0x40003528;
r_co_nb_good_le_channels = 0x40003534;
r_co_util_pack = 0x40003540;
r_co_util_read_array_size = 0x4000354c;
r_co_util_unpack = 0x40003558;
r_dbg_env_deinit = 0x40003564;
r_dbg_env_init = 0x40003570;
r_dbg_platform_reset_complete = 0x4000357c;
r_dl_upd_proc_start = 0x40003588;
r_dump_data = 0x40003594;
r_ecc_abort_key256_generation = 0x400035a0;
r_ecc_gen_new_public_key = 0x400035ac;
r_ecc_gen_new_secret_key = 0x400035b8;
r_ecc_generate_key256 = 0x400035c4;
r_ecc_get_debug_Keys = 0x400035d0;
r_ecc_init = 0x400035dc;
r_ecc_is_valid_point = 0x400035e8;
r_ecc_multiplication_event_handler = 0x400035f4;
r_ecc_point_multiplication_win_256 = 0x40003600;
r_emi_alloc_em_mapping_by_offset = 0x4000360c;
r_emi_base_reg_lut_show = 0x40003618;
r_emi_em_base_reg_show = 0x40003624;
r_emi_free_em_mapping_by_offset = 0x40003630;
r_emi_get_em_mapping_idx_by_offset = 0x4000363c;
r_emi_get_mem_addr_by_offset = 0x40003648;
r_emi_overwrite_em_mapping_by_offset = 0x40003654;
r_esp_vendor_hci_command_handler = 0x40003660;
r_get_stack_usage = 0x4000366c;
r_h4tl_acl_hdr_rx_evt_handler = 0x40003678;
r_h4tl_cmd_hdr_rx_evt_handler = 0x40003684;
r_h4tl_cmd_pld_rx_evt_handler = 0x40003690;
r_h4tl_eif_io_event_post = 0x4000369c;
r_h4tl_eif_register = 0x400036a8;
r_h4tl_init = 0x400036b4;
r_h4tl_out_of_sync = 0x400036c0;
r_h4tl_out_of_sync_check = 0x400036cc;
r_h4tl_read_hdr = 0x400036d8;
r_h4tl_read_next_out_of_sync = 0x400036e4;
r_h4tl_read_payl = 0x400036f0;
r_h4tl_read_start = 0x400036fc;
r_h4tl_rx_acl_hdr_extract = 0x40003708;
r_h4tl_rx_cmd_hdr_extract = 0x40003714;
r_h4tl_rx_done = 0x40003720;
r_h4tl_start = 0x4000372c;
r_h4tl_stop = 0x40003738;
r_h4tl_tx_done = 0x40003744;
r_h4tl_tx_evt_handler = 0x40003750;
r_h4tl_write = 0x4000375c;
r_hci_acl_tx_data_alloc = 0x40003768;
r_hci_acl_tx_data_received = 0x40003774;
r_hci_basic_cmd_send_2_controller = 0x40003780;
r_hci_ble_adv_report_filter_check = 0x4000378c;
r_hci_ble_adv_report_tx_check = 0x40003798;
r_hci_ble_conhdl_register = 0x400037a4;
r_hci_ble_conhdl_unregister = 0x400037b0;
r_hci_build_acl_data = 0x400037bc;
r_hci_build_cc_evt = 0x400037c8;
r_hci_build_cs_evt = 0x400037d4;
r_hci_build_evt = 0x400037e0;
r_hci_build_le_evt = 0x400037ec;
r_hci_cmd_get_max_param_size = 0x400037f8;
r_hci_cmd_received = 0x40003804;
r_hci_cmd_reject = 0x40003810;
r_hci_evt_mask_check = 0x4000381c;
r_hci_evt_mask_set = 0x40003828;
r_hci_fc_acl_buf_size_set = 0x40003834;
r_hci_fc_acl_en = 0x40003840;
r_hci_fc_acl_packet_sent = 0x4000384c;
r_hci_fc_check_host_available_nb_acl_packets = 0x40003858;
r_hci_fc_host_nb_acl_pkts_complete = 0x40003864;
r_hci_fc_init = 0x40003870;
r_hci_look_for_cmd_desc = 0x4000387c;
r_hci_look_for_evt_desc = 0x40003888;
r_hci_look_for_le_evt_desc = 0x40003894;
r_hci_look_for_le_evt_desc_esp = 0x400038a0;
r_hci_pack_bytes = 0x400038ac;
r_hci_register_vendor_desc_tab = 0x400038b8;
r_hci_send_2_controller = 0x400038c4;
r_hci_send_2_host = 0x400038d0;
r_hci_tl_c2h_data_flow_on = 0x400038dc;
r_hci_tl_cmd_hdr_rx_evt_handler = 0x400038e8;
r_hci_tl_cmd_pld_rx_evt_handler = 0x400038f4;
r_hci_tl_get_pkt = 0x40003900;
r_hci_tl_hci_pkt_handler = 0x4000390c;
r_hci_tl_hci_tx_done_evt_handler = 0x40003918;
r_hci_tl_inc_nb_h2c_cmd_pkts = 0x40003924;
r_hci_tl_save_pkt = 0x40003930;
r_hci_tl_send = 0x4000393c;
r_hci_tx_done = 0x40003948;
r_hci_tx_start = 0x40003954;
r_hci_tx_trigger = 0x40003960;
r_isValidSecretKey_256 = 0x4000396c;
r_ke_check_malloc = 0x40003978;
r_ke_event_callback_set = 0x40003984;
r_ke_event_clear = 0x40003990;
r_ke_event_flush = 0x4000399c;
r_ke_event_get = 0x400039a8;
r_ke_event_get_all = 0x400039b4;
r_ke_event_init = 0x400039c0;
r_ke_event_schedule = 0x400039cc;
r_ke_event_set = 0x400039d8;
r_ke_flush = 0x400039e4;
r_ke_free = 0x400039f0;
r_ke_handler_search = 0x400039fc;
r_ke_init = 0x40003a08;
r_ke_is_free = 0x40003a14;
r_ke_malloc = 0x40003a20;
r_ke_mem_init = 0x40003a2c;
r_ke_mem_is_empty = 0x40003a38;
r_ke_mem_is_in_heap = 0x40003a44;
r_ke_msg_alloc = 0x40003a50;
r_ke_msg_dest_id_get = 0x40003a5c;
r_ke_msg_discard = 0x40003a68;
r_ke_msg_forward = 0x40003a74;
r_ke_msg_forward_new_id = 0x40003a80;
r_ke_msg_free = 0x40003a8c;
r_ke_msg_in_queue = 0x40003a98;
r_ke_msg_save = 0x40003aa4;
r_ke_msg_send = 0x40003ab0;
r_ke_msg_send_basic = 0x40003abc;
r_ke_msg_src_id_get = 0x40003ac8;
r_ke_queue_extract = 0x40003ad4;
r_ke_queue_insert = 0x40003ae0;
r_ke_sleep_check = 0x40003aec;
r_ke_state_get = 0x40003af8;
r_ke_state_set = 0x40003b04;
r_ke_task_check = 0x40003b10;
r_ke_task_create = 0x40003b1c;
r_ke_task_delete = 0x40003b28;
r_ke_task_handler_get = 0x40003b34;
r_ke_task_init = 0x40003b40;
r_ke_task_msg_flush = 0x40003b4c;
r_ke_task_saved_update = 0x40003b58;
r_ke_task_schedule = 0x40003b64;
r_ke_time = 0x40003b70;
r_ke_time_cmp = 0x40003b7c;
r_ke_time_past = 0x40003b88;
r_ke_timer_active = 0x40003b94;
r_ke_timer_adjust_all = 0x40003ba0;
r_ke_timer_clear = 0x40003bac;
r_ke_timer_init = 0x40003bb8;
r_ke_timer_schedule = 0x40003bc4;
r_ke_timer_set = 0x40003bd0;
r_led_init = 0x40003bdc;
r_led_set_all = 0x40003be8;
r_llc_aes_res_cb = 0x40003bf4;
r_llc_ch_map_up_proc_err_cb = 0x40003c00;
r_llc_cleanup = 0x40003c0c;
r_llc_cmd_cmp_send = 0x40003c18;
r_llc_cmd_stat_send = 0x40003c24;
r_llc_con_move_cbk = 0x40003c30;
r_llc_con_plan_set_update = 0x40003c3c;
r_llc_con_upd_param_in_range = 0x40003c48;
r_llc_disconnect = 0x40003c54;
r_llc_disconnect_end = 0x40003c60;
r_llc_disconnect_proc_continue = 0x40003c6c;
r_llc_disconnect_proc_err_cb = 0x40003c78;
r_llc_dl_chg_check = 0x40003c84;
r_llc_dle_proc_err_cb = 0x40003c90;
r_llc_feats_exch_proc_err_cb = 0x40003c9c;
r_llc_hci_cmd_handler_tab_p_get = 0x40003ca8;
r_llc_hci_command_handler = 0x40003cb4;
r_llc_hci_con_param_req_evt_send = 0x40003cc0;
r_llc_hci_con_upd_info_send = 0x40003ccc;
r_llc_hci_disconnected_dis = 0x40003cd8;
r_llc_hci_dl_upd_info_send = 0x40003ce4;
r_llc_hci_enc_evt_send = 0x40003cf0;
r_llc_hci_feats_info_send = 0x40003cfc;
r_llc_hci_le_phy_upd_cmp_evt_send = 0x40003d08;
r_llc_hci_ltk_request_evt_send = 0x40003d14;
r_llc_hci_nb_cmp_pkts_evt_send = 0x40003d20;
r_llc_hci_version_info_send = 0x40003d2c;
r_llc_init_term_proc = 0x40003d38;
r_llc_iv_skd_rand_gen = 0x40003d44;
r_llc_le_ping_proc_continue = 0x40003d50;
r_llc_le_ping_proc_err_cb = 0x40003d5c;
r_llc_le_ping_restart = 0x40003d68;
r_llc_le_ping_set = 0x40003d74;
r_llc_ll_pause_enc_rsp_ack_handler = 0x40003d80;
r_llc_ll_reject_ind_ack_handler = 0x40003d8c;
r_llc_ll_reject_ind_pdu_send = 0x40003d98;
r_llc_ll_start_enc_rsp_ack_handler = 0x40003da4;
r_llc_ll_terminate_ind_ack = 0x40003db0;
r_llc_ll_unknown_ind_handler = 0x40003dbc;
r_llc_llcp_send = 0x40003dc8;
r_llc_llcp_state_set = 0x40003dd4;
r_llc_llcp_trans_timer_set = 0x40003de0;
r_llc_llcp_tx_check = 0x40003dec;
r_llc_loc_ch_map_proc_continue = 0x40003df8;
r_llc_loc_con_upd_proc_continue = 0x40003e04;
r_llc_loc_con_upd_proc_err_cb = 0x40003e10;
r_llc_loc_dl_upd_proc_continue = 0x40003e1c;
r_llc_loc_encrypt_proc_continue = 0x40003e28;
r_llc_loc_encrypt_proc_err_cb = 0x40003e34;
r_llc_loc_feats_exch_proc_continue = 0x40003e40;
r_llc_loc_phy_upd_proc_continue = 0x40003e4c;
r_llc_loc_phy_upd_proc_err_cb = 0x40003e58;
r_llc_msg_handler_tab_p_get = 0x40003e64;
r_llc_pref_param_compute = 0x40003e70;
r_llc_proc_collision_check = 0x40003e7c;
r_llc_proc_err_ind = 0x40003e88;
r_llc_proc_get = 0x40003e94;
r_llc_proc_id_get = 0x40003ea0;
r_llc_proc_reg = 0x40003eac;
r_llc_proc_state_get = 0x40003eb8;
r_llc_proc_state_set = 0x40003ec4;
r_llc_proc_timer_pause_set = 0x40003ed0;
r_llc_proc_timer_set = 0x40003edc;
r_llc_proc_unreg = 0x40003ee8;
r_llc_rem_ch_map_proc_continue = 0x40003ef4;
r_llc_rem_con_upd_proc_continue = 0x40003f00;
r_llc_rem_con_upd_proc_err_cb = 0x40003f0c;
r_llc_rem_dl_upd_proc = 0x40003f18;
r_llc_rem_encrypt_proc_continue = 0x40003f24;
r_llc_rem_encrypt_proc_err_cb = 0x40003f30;
r_llc_rem_phy_upd_proc_continue = 0x40003f3c;
r_llc_rem_phy_upd_proc_err_cb = 0x40003f48;
r_llc_role_get = 0x40003f54;
r_llc_sk_gen = 0x40003f60;
r_llc_start = 0x40003f6c;
r_llc_stop = 0x40003f78;
r_llc_ver_exch_loc_proc_continue = 0x40003f84;
r_llc_ver_proc_err_cb = 0x40003f90;
r_llcp_pdu_handler_tab_p_get = 0x40003f9c;
r_lld_aa_gen = 0x40003fa8;
r_lld_adv_adv_data_set = 0x40003fb4;
r_lld_adv_adv_data_update = 0x40003fc0;
r_lld_adv_aux_ch_idx_set = 0x40003fcc;
r_lld_adv_aux_evt_canceled_cbk = 0x40003fd8;
r_lld_adv_aux_evt_start_cbk = 0x40003fe4;
r_lld_adv_coex_check_ext_adv_synced = 0x40003ff0;
r_lld_adv_coex_env_reset = 0x40003ffc;
r_lld_adv_duration_update = 0x40004008;
r_lld_adv_dynamic_pti_process = 0x40004014;
r_lld_adv_end = 0x40004020;
r_lld_adv_evt_canceled_cbk = 0x4000402c;
r_lld_adv_evt_start_cbk = 0x40004038;
r_lld_adv_ext_chain_construct = 0x40004044;
r_lld_adv_ext_pkt_prepare = 0x40004050;
r_lld_adv_frm_cbk = 0x4000405c;
r_lld_adv_frm_isr = 0x40004068;
r_lld_adv_frm_skip_isr = 0x40004074;
r_lld_adv_init = 0x40004080;
r_lld_adv_pkt_rx = 0x4000408c;
r_lld_adv_pkt_rx_connect_ind = 0x40004098;
r_lld_adv_pkt_rx_send_scan_req_evt = 0x400040a4;
r_lld_adv_rand_addr_update = 0x400040b0;
r_lld_adv_restart = 0x400040bc;
r_lld_adv_scan_rsp_data_set = 0x400040c8;
r_lld_adv_scan_rsp_data_update = 0x400040d4;
r_lld_adv_set_tx_power = 0x400040e0;
r_lld_adv_start = 0x400040ec;
r_lld_adv_stop = 0x400040f8;
r_lld_adv_sync_info_set = 0x40004104;
r_lld_adv_sync_info_update = 0x40004110;
r_lld_calc_aux_rx = 0x4000411c;
r_lld_cca_alloc = 0x40004128;
r_lld_cca_data_reset = 0x40004134;
r_lld_cca_free = 0x40004140;
r_lld_ch_assess_data_get = 0x4000414c;
r_lld_ch_idx_get = 0x40004158;
r_lld_ch_map_set = 0x40004164;
r_lld_channel_assess = 0x40004170;
r_lld_con_activity_act_offset_compute = 0x4000417c;
r_lld_con_activity_offset_compute = 0x40004188;
r_lld_con_ch_map_update = 0x40004194;
r_lld_con_cleanup = 0x400041a0;
r_lld_con_current_tx_power_get = 0x400041ac;
r_lld_con_data_flow_set = 0x400041b8;
r_lld_con_data_len_update = 0x400041c4;
r_lld_con_data_tx = 0x400041d0;
r_lld_con_enc_key_load = 0x400041dc;
r_lld_con_event_counter_get = 0x400041e8;
r_lld_con_evt_canceled_cbk = 0x400041f4;
r_lld_con_evt_duration_min_get = 0x40004200;
r_lld_con_evt_max_eff_time_cal = 0x4000420c;
r_lld_con_evt_sd_evt_time_get = 0x40004218;
r_lld_con_evt_start_cbk = 0x40004224;
r_lld_con_evt_time_update = 0x40004230;
r_lld_con_free_all_tx_buf = 0x4000423c;
r_lld_con_frm_cbk = 0x40004248;
r_lld_con_frm_isr = 0x40004254;
r_lld_con_frm_skip_isr = 0x40004260;
r_lld_con_init = 0x4000426c;
r_lld_con_llcp_tx = 0x40004278;
r_lld_con_max_lat_calc = 0x40004284;
r_lld_con_offset_get = 0x40004290;
r_lld_con_param_update = 0x4000429c;
r_lld_con_phys_update = 0x400042a8;
r_lld_con_pref_slave_evt_dur_set = 0x400042b4;
r_lld_con_pref_slave_latency_set = 0x400042c0;
r_lld_con_rssi_get = 0x400042cc;
r_lld_con_rx = 0x400042d8;
r_lld_con_rx_channel_assess = 0x400042e4;
r_lld_con_rx_enc = 0x400042f0;
r_lld_con_rx_isr = 0x400042fc;
r_lld_con_rx_link_info_check = 0x40004308;
r_lld_con_rx_llcp_check = 0x40004314;
r_lld_con_rx_sync_time_update = 0x40004320;
r_lld_con_sched = 0x4000432c;
r_lld_con_set_tx_power = 0x40004338;
r_lld_con_start = 0x40004344;
r_lld_con_stop = 0x40004350;
r_lld_con_tx = 0x4000435c;
r_lld_con_tx_enc = 0x40004368;
r_lld_con_tx_isr = 0x40004374;
r_lld_con_tx_len_update = 0x40004380;
r_lld_con_tx_len_update_for_intv = 0x4000438c;
r_lld_con_tx_len_update_for_rate = 0x40004398;
r_lld_con_tx_prog = 0x400043a4;
r_lld_conn_dynamic_pti_process = 0x400043b0;
r_lld_continue_scan_rx_isr_end_process = 0x400043bc;
r_lld_ext_scan_dynamic_pti_process = 0x400043c8;
r_lld_hw_cca_end_isr = 0x400043d4;
r_lld_hw_cca_evt_handler = 0x400043e0;
r_lld_hw_cca_isr = 0x400043ec;
r_lld_init_cal_anchor_point = 0x400043f8;
r_lld_init_compute_winoffset = 0x40004404;
r_lld_init_connect_req_pack = 0x40004410;
r_lld_init_end = 0x4000441c;
r_lld_init_evt_canceled_cbk = 0x40004428;
r_lld_init_evt_start_cbk = 0x40004434;
r_lld_init_frm_cbk = 0x40004440;
r_lld_init_frm_eof_isr = 0x4000444c;
r_lld_init_frm_skip_isr = 0x40004458;
r_lld_init_init = 0x40004464;
r_lld_init_process_pkt_rx = 0x40004470;
r_lld_init_process_pkt_rx_adv_ext_ind = 0x4000447c;
r_lld_init_process_pkt_rx_adv_ind_or_direct_ind = 0x40004488;
r_lld_init_process_pkt_rx_aux_connect_rsp = 0x40004494;
r_lld_init_process_pkt_tx = 0x400044a0;
r_lld_init_process_pkt_tx_cal_con_timestamp = 0x400044ac;
r_lld_init_sched = 0x400044b8;
r_lld_init_set_tx_power = 0x400044c4;
r_lld_init_start = 0x400044d0;
r_lld_init_stop = 0x400044dc;
r_lld_instant_proc_end = 0x400044e8;
r_lld_llcp_rx_ind_handler = 0x400044f4;
r_lld_per_adv_ch_map_update = 0x40004500;
r_lld_per_adv_chain_construct = 0x4000450c;
r_lld_per_adv_cleanup = 0x40004518;
r_lld_per_adv_coex_env_reset = 0x40004524;
r_lld_per_adv_data_set = 0x40004530;
r_lld_per_adv_data_update = 0x4000453c;
r_lld_per_adv_dynamic_pti_process = 0x40004548;
r_lld_per_adv_evt_canceled_cbk = 0x40004554;
r_lld_per_adv_evt_start_cbk = 0x40004560;
r_lld_per_adv_ext_pkt_prepare = 0x4000456c;
r_lld_per_adv_frm_cbk = 0x40004578;
r_lld_per_adv_frm_isr = 0x40004584;
r_lld_per_adv_frm_skip_isr = 0x40004590;
r_lld_per_adv_init = 0x4000459c;
r_lld_per_adv_init_info_get = 0x400045a8;
r_lld_per_adv_list_add = 0x400045b4;
r_lld_per_adv_list_rem = 0x400045c0;
r_lld_per_adv_sched = 0x400045cc;
r_lld_per_adv_set_tx_power = 0x400045d8;
r_lld_per_adv_start = 0x400045e4;
r_lld_per_adv_stop = 0x400045f0;
r_lld_per_adv_sync_info_get = 0x400045fc;
r_lld_process_cca_data = 0x40004608;
r_lld_ral_search = 0x40004614;
r_lld_read_clock = 0x40004620;
r_lld_res_list_add = 0x4000462c;
r_lld_res_list_clear = 0x40004638;
r_lld_res_list_is_empty = 0x40004644;
r_lld_res_list_local_rpa_get = 0x40004650;
r_lld_res_list_peer_rpa_get = 0x4000465c;
r_lld_res_list_peer_update = 0x40004668;
r_lld_res_list_priv_mode_update = 0x40004674;
r_lld_res_list_rem = 0x40004680;
r_lld_reset_reg = 0x4000468c;
r_lld_rpa_renew = 0x40004698;
r_lld_rpa_renew_evt_canceled_cbk = 0x400046a4;
r_lld_rpa_renew_evt_start_cbk = 0x400046b0;
r_lld_rpa_renew_instant_cbk = 0x400046bc;
r_lld_rxdesc_check = 0x400046c8;
r_lld_rxdesc_free = 0x400046d4;
r_lld_scan_create_sync = 0x400046e0;
r_lld_scan_create_sync_cancel = 0x400046ec;
r_lld_scan_end = 0x400046f8;
r_lld_scan_evt_canceled_cbk = 0x40004704;
r_lld_scan_evt_start_cbk = 0x40004710;
r_lld_scan_frm_cbk = 0x4000471c;
r_lld_scan_frm_eof_isr = 0x40004728;
r_lld_scan_frm_rx_isr = 0x40004734;
r_lld_scan_frm_skip_isr = 0x40004740;
r_lld_scan_init = 0x4000474c;
r_lld_scan_params_update = 0x40004758;
r_lld_scan_process_pkt_rx = 0x40004764;
r_lld_scan_process_pkt_rx_adv_rep = 0x40004770;
r_lld_scan_process_pkt_rx_aux_adv_ind = 0x4000477c;
r_lld_scan_process_pkt_rx_aux_chain_ind = 0x40004788;
r_lld_scan_process_pkt_rx_aux_scan_rsp = 0x40004794;
r_lld_scan_process_pkt_rx_ext_adv = 0x400047a0;
r_lld_scan_process_pkt_rx_ext_adv_ind = 0x400047ac;
r_lld_scan_process_pkt_rx_legacy_adv = 0x400047b8;
r_lld_scan_restart = 0x400047c4;
r_lld_scan_sched = 0x400047d0;
r_lld_scan_set_tx_power = 0x400047dc;
r_lld_scan_start = 0x400047e8;
r_lld_scan_stop = 0x400047f4;
r_lld_scan_sync_accept = 0x40004800;
r_lld_scan_sync_info_unpack = 0x4000480c;
r_lld_scan_trunc_ind = 0x40004818;
r_lld_sw_cca_evt_handler = 0x40004824;
r_lld_sw_cca_isr = 0x40004830;
r_lld_sync_ch_map_update = 0x4000483c;
r_lld_sync_cleanup = 0x40004848;
r_lld_sync_evt_canceled_cbk = 0x40004854;
r_lld_sync_evt_start_cbk = 0x40004860;
r_lld_sync_frm_cbk = 0x4000486c;
r_lld_sync_frm_eof_isr = 0x40004878;
r_lld_sync_frm_rx_isr = 0x40004884;
r_lld_sync_frm_skip_isr = 0x40004890;
r_lld_sync_init = 0x4000489c;
r_lld_sync_process_pkt_rx = 0x400048a8;
r_lld_sync_process_pkt_rx_aux_sync_ind = 0x400048b4;
r_lld_sync_process_pkt_rx_pkt_check = 0x400048c0;
r_lld_sync_scan_dynamic_pti_process = 0x400048cc;
r_lld_sync_sched = 0x400048d8;
r_lld_sync_start = 0x400048e4;
r_lld_sync_stop = 0x400048f0;
r_lld_sync_trunc_ind = 0x400048fc;
r_lld_test_cleanup = 0x40004908;
r_lld_test_evt_canceled_cbk = 0x40004914;
r_lld_test_evt_start_cbk = 0x40004920;
r_lld_test_freq2chnl = 0x4000492c;
r_lld_test_frm_cbk = 0x40004938;
r_lld_test_frm_isr = 0x40004944;
r_lld_test_init = 0x40004950;
r_lld_test_rx_isr = 0x4000495c;
r_lld_test_set_tx_power = 0x40004968;
r_lld_test_start = 0x40004974;
r_lld_test_stop = 0x40004980;
r_lld_update_rxbuf = 0x4000498c;
r_lld_update_rxbuf_isr = 0x40004998;
r_lld_white_list_add = 0x400049a4;
r_lld_white_list_rem = 0x400049b0;
r_llm_activity_free_get = 0x400049bc;
r_llm_activity_free_set = 0x400049c8;
r_llm_activity_syncing_get = 0x400049d4;
r_llm_adv_con_len_check = 0x400049e0;
r_llm_adv_hdl_to_id = 0x400049ec;
r_llm_adv_rep_flow_control_check = 0x400049f8;
r_llm_adv_rep_flow_control_update = 0x40004a04;
r_llm_adv_reports_list_check = 0x40004a10;
r_llm_adv_set_all_release = 0x40004a1c;
r_llm_adv_set_dft_params = 0x40004a28;
r_llm_adv_set_release = 0x40004a34;
r_llm_aes_res_cb = 0x40004a40;
r_llm_ble_update_adv_flow_control = 0x40004a4c;
r_llm_ch_map_update = 0x40004a58;
r_llm_cmd_cmp_send = 0x40004a64;
r_llm_cmd_stat_send = 0x40004a70;
r_llm_dev_list_empty_entry = 0x40004a7c;
r_llm_dev_list_search = 0x40004a88;
r_llm_env_adv_dup_filt_deinit = 0x40004a94;
r_llm_env_adv_dup_filt_init = 0x40004aa0;
r_llm_init_ble_adv_report_flow_contol = 0x40004aac;
r_llm_is_dev_connected = 0x40004ab8;
r_llm_is_dev_synced = 0x40004ac4;
r_llm_is_non_con_act_ongoing_check = 0x40004ad0;
r_llm_is_wl_accessible = 0x40004adc;
r_llm_le_evt_mask_check = 0x40004ae8;
r_llm_le_features_get = 0x40004af4;
r_llm_link_disc = 0x40004b00;
r_llm_master_ch_map_get = 0x40004b0c;
r_llm_msg_handler_tab_p_get = 0x40004b18;
r_llm_no_activity = 0x40004b24;
r_llm_per_adv_slot_dur = 0x40004b30;
r_llm_plan_elt_get = 0x40004b3c;
r_llm_rx_path_comp_get = 0x40004b48;
r_llm_scan_start = 0x40004b54;
r_llm_scan_sync_acad_attach = 0x40004b60;
r_llm_scan_sync_acad_detach = 0x40004b6c;
r_llm_send_adv_lost_event_to_host = 0x40004b78;
r_llm_tx_path_comp_get = 0x40004b84;
r_misc_deinit = 0x40004b90;
r_misc_free_em_buf_in_isr = 0x40004b9c;
r_misc_init = 0x40004ba8;
r_misc_msg_handler_tab_p_get = 0x40004bb4;
r_notEqual256 = 0x40004bc0;
r_phy_upd_proc_start = 0x40004bcc;
r_platform_reset = 0x40004bd8;
r_register_esp_vendor_cmd_handler = 0x40004be4;
r_rf_em_init = 0x40004bf0;
r_rf_force_agc_enable = 0x40004bfc;
r_rf_reg_rd = 0x40004c08;
r_rf_reg_wr = 0x40004c14;
r_rf_reset = 0x40004c20;
r_rf_rssi_convert = 0x40004c2c;
r_rf_rw_v9_le_disable = 0x40004c38;
r_rf_rw_v9_le_enable = 0x40004c44;
r_rf_sleep = 0x40004c50;
r_rf_txpwr_cs_get = 0x40004c5c;
r_rf_txpwr_dbm_get = 0x40004c68;
r_rf_util_cs_fmt_convert = 0x40004c74;
r_rw_crypto_aes_ccm = 0x40004c80;
r_rw_crypto_aes_encrypt = 0x40004c8c;
r_rw_crypto_aes_init = 0x40004c98;
r_rw_crypto_aes_k1 = 0x40004ca4;
r_rw_crypto_aes_k2 = 0x40004cb0;
r_rw_crypto_aes_k3 = 0x40004cbc;
r_rw_crypto_aes_k4 = 0x40004cc8;
r_rw_crypto_aes_rand = 0x40004cd4;
r_rw_crypto_aes_result_handler = 0x40004ce0;
r_rw_crypto_aes_s1 = 0x40004cec;
r_rw_cryto_aes_cmac = 0x40004cf8;
r_rw_v9_init_em_radio_table = 0x40004d04;
r_rwble_isr = 0x40004d10;
r_rwble_sleep_enter = 0x40004d1c;
r_rwble_sleep_wakeup_end = 0x40004d28;
r_rwbtdm_isr_wrapper = 0x40004d34;
r_rwip_active_check = 0x40004d40;
r_rwip_aes_encrypt = 0x40004d4c;
r_rwip_assert = 0x40004d58;
r_rwip_crypt_evt_handler = 0x40004d64;
r_rwip_crypt_isr_handler = 0x40004d70;
r_rwip_eif_get = 0x40004d7c;
r_rwip_half_slot_2_lpcycles = 0x40004d88;
r_rwip_hus_2_lpcycles = 0x40004d94;
r_rwip_isr = 0x40004da0;
r_rwip_lpcycles_2_hus = 0x40004dac;
r_rwip_prevent_sleep_clear = 0x40004db8;
r_rwip_prevent_sleep_set = 0x40004dc4;
r_rwip_schedule = 0x40004dd0;
r_rwip_sleep = 0x40004ddc;
r_rwip_sw_int_handler = 0x40004de8;
r_rwip_sw_int_req = 0x40004df4;
r_rwip_time_get = 0x40004e00;
r_rwip_timer_10ms_handler = 0x40004e0c;
r_rwip_timer_10ms_set = 0x40004e18;
r_rwip_timer_hs_handler = 0x40004e24;
r_rwip_timer_hs_set = 0x40004e30;
r_rwip_timer_hus_handler = 0x40004e3c;
r_rwip_timer_hus_set = 0x40004e48;
r_rwip_wakeup = 0x40004e54;
r_rwip_wakeup_end = 0x40004e60;
r_rwip_wlcoex_set = 0x40004e6c;
r_sch_alarm_clear = 0x40004e78;
r_sch_alarm_init = 0x40004e84;
r_sch_alarm_prog = 0x40004e90;
r_sch_alarm_set = 0x40004e9c;
r_sch_alarm_timer_isr = 0x40004ea8;
r_sch_arb_conflict_check = 0x40004eb4;
r_sch_arb_elt_cancel = 0x40004ec0;
r_sch_arb_event_start_isr = 0x40004ecc;
r_sch_arb_init = 0x40004ed8;
r_sch_arb_insert = 0x40004ee4;
r_sch_arb_prog_timer = 0x40004ef0;
r_sch_arb_remove = 0x40004efc;
r_sch_arb_sw_isr = 0x40004f08;
r_sch_plan_chk = 0x40004f14;
r_sch_plan_clock_wrap_offset_update = 0x40004f20;
r_sch_plan_init = 0x40004f2c;
r_sch_plan_interval_req = 0x40004f38;
r_sch_plan_offset_max_calc = 0x40004f44;
r_sch_plan_offset_req = 0x40004f50;
r_sch_plan_position_range_compute = 0x40004f5c;
r_sch_plan_rem = 0x40004f68;
r_sch_plan_req = 0x40004f74;
r_sch_plan_set = 0x40004f80;
r_sch_prog_end_isr = 0x40004f8c;
r_sch_prog_init = 0x40004f98;
r_sch_prog_push = 0x40004fa4;
r_sch_prog_rx_isr = 0x40004fb0;
r_sch_prog_skip_isr = 0x40004fbc;
r_sch_prog_tx_isr = 0x40004fc8;
r_sch_slice_bg_add = 0x40004fd4;
r_sch_slice_bg_remove = 0x40004fe0;
r_sch_slice_compute = 0x40004fec;
r_sch_slice_fg_add = 0x40004ff8;
r_sch_slice_fg_remove = 0x40005004;
r_sch_slice_init = 0x40005010;
r_sch_slice_per_add = 0x4000501c;
r_sch_slice_per_remove = 0x40005028;
r_sdk_config_get_bt_sleep_enable = 0x40005034;
r_sdk_config_get_hl_derived_opts = 0x40005040;
r_sdk_config_get_opts = 0x4000504c;
r_sdk_config_get_priv_opts = 0x40005058;
r_sdk_config_set_bt_sleep_enable = 0x40005064;
r_sdk_config_set_hl_derived_opts = 0x40005070;
r_sdk_config_set_opts = 0x4000507c;
r_specialModP256 = 0x40005088;
r_unloaded_area_init = 0x40005094;
r_vhci_flow_off = 0x400050a0;
r_vhci_flow_on = 0x400050ac;
r_vhci_notify_host_send_available = 0x400050b8;
r_vhci_send_to_host = 0x400050c4;
r_vnd_hci_command_handler = 0x400050d0;
r_vshci_init = 0x400050dc;
vnd_hci_command_handler_wrapper = 0x400050e8;
r_lld_legacy_adv_dynamic_pti_get = 0x400050f4;
r_lld_legacy_adv_dynamic_pti_process = 0x40005100;
r_lld_ext_adv_dynamic_pti_get = 0x4000510c;
r_lld_ext_adv_dynamic_aux_pti_process = 0x40005118;
r_lld_ext_adv_dynamic_pti_process = 0x40005124;
r_lld_adv_ext_pkt_prepare_set = 0x40005130;
r_lld_adv_ext_chain_none_construct = 0x4000513c;
r_lld_adv_ext_chain_connectable_construct = 0x40005148;
r_lld_adv_ext_chain_scannable_construct = 0x40005154;
r_lld_adv_pkt_rx_connect_post = 0x40005160;
r_lld_adv_start_init_evt_param = 0x4000516c;
r_lld_adv_start_set_cs = 0x40005178;
r_lld_adv_start_update_filter_policy = 0x40005184;
r_lld_adv_start_schedule_asap = 0x40005190;
r_lld_con_tx_prog_new_packet_coex = 0x4000519c;
r_lld_con_tx_prog_new_packet = 0x400051a8;
r_lld_per_adv_dynamic_pti_get = 0x400051b4;
r_lld_per_adv_evt_start_chm_upd = 0x400051c0;
r_lld_ext_scan_dynamic_pti_get = 0x400051cc;
r_lld_scan_try_sched = 0x400051d8;
r_lld_sync_insert = 0x400051e4;
r_sch_prog_ble_push = 0x400051f0;
r_sch_prog_bt_push = 0x400051fc;
r_lld_init_evt_end_type_set = 0x40005208;
r_lld_init_evt_end_type_get = 0x40005214;
r_lld_adv_direct_adv_use_rpa_addr_state_set = 0x40005220;
r_lld_adv_direct_adv_use_rpa_addr_state_get = 0x4000522c;
r_lld_init_evt_end_type_check_state_set = 0x40005238;
r_lld_init_evt_end_type_check_state_get = 0x40005244;
/* bluetooth hook funcs */
r_llc_loc_encrypt_proc_continue_hook = 0x40001c60;
r_llc_loc_phy_upd_proc_continue_hook = 0x40001c64;
r_llc_rem_phy_upd_proc_continue_hook = 0x40001c68;
r_lld_scan_frm_eof_isr_hook = 0x40001c6c;
r_lld_scan_evt_start_cbk_hook = 0x40001c70;
r_lld_scan_process_pkt_rx_ext_adv_hook = 0x40001c78;
r_lld_scan_sched_hook = 0x40001c7c;
r_lld_adv_evt_start_cbk_hook = 0x40001c84;
r_lld_adv_aux_evt_start_cbk_hook = 0x40001c88;
r_lld_adv_frm_isr_hook = 0x40001c8c;
r_lld_adv_start_init_evt_param_hook = 0x40001c90;
r_lld_con_evt_canceled_cbk_hook = 0x40001c94;
r_lld_con_frm_isr_hook = 0x40001c98;
r_lld_con_tx_hook = 0x40001c9c;
r_lld_con_rx_hook = 0x40001ca0;
r_lld_con_evt_start_cbk_hook = 0x40001ca4;
r_lld_con_tx_prog_new_packet_hook = 0x40001cac;
r_lld_init_frm_eof_isr_hook = 0x40001cb0;
r_lld_init_evt_start_cbk_hook = 0x40001cb4;
r_lld_init_sched_hook = 0x40001cbc;
r_lld_init_process_pkt_tx_hook = 0x40001cc0;
r_lld_per_adv_evt_start_cbk_hook = 0x40001cc4;
r_lld_per_adv_frm_isr_hook = 0x40001cc8;
r_lld_per_adv_start_hook = 0x40001ccc;
r_lld_sync_frm_eof_isr_hook = 0x40001cd0;
r_lld_sync_evt_start_cbk_hook = 0x40001cd4;
r_lld_sync_start_hook = 0x40001cd8;
r_lld_sync_process_pkt_rx_pkt_check_hook = 0x40001cdc;
r_sch_arb_insert_hook = 0x40001ce0;
r_sch_plan_offset_req_hook = 0x40001ce4;

View File

@ -194,8 +194,8 @@ PROVIDE( spi_flash_munmap = 0x40000bc4 );
PROVIDE( spi_flash_mmap_dump = 0x40000bd0 );
PROVIDE( spi_flash_check_and_flush_cache = 0x40000bdc );
PROVIDE( spi_flash_mmap_get_free_pages = 0x40000be8 );
PROVIDE( spi_flash_cache2phys = 0x40000bf4 );
PROVIDE( spi_flash_phys2cache = 0x40000c00 );
PROVIDE( spi_flash_cache2phys = 0x40000bf4 ); /* patched when XIP */
PROVIDE( spi_flash_phys2cache = 0x40000c00 ); /* patched when XIP */
PROVIDE( spi_flash_disable_cache = 0x40000c0c );
PROVIDE( spi_flash_restore_cache = 0x40000c18 );
PROVIDE( spi_flash_cache_enabled = 0x40000c24 );
@ -318,8 +318,8 @@ PROVIDE( esp_flash_get_protectable_regions = 0x40001110 );
PROVIDE( esp_flash_get_protected_region = 0x4000111c );
PROVIDE( esp_flash_set_protected_region = 0x40001128 );
PROVIDE( esp_flash_read = 0x40001134 );
PROVIDE( esp_flash_write = 0x40001140 );
PROVIDE( esp_flash_write_encrypted = 0x4000114c );
PROVIDE( rom_esp_flash_write = 0x40001140 );
PROVIDE( rom_esp_flash_write_encrypted = 0x4000114c );
PROVIDE( esp_flash_read_encrypted = 0x40001158 );
PROVIDE( esp_flash_get_io_mode = 0x40001164 );
PROVIDE( esp_flash_set_io_mode = 0x40001170 );
@ -458,8 +458,8 @@ ets_get_xtal_freq = 0x40001a7c;
gpio_input_get = 0x40001a88;
gpio_matrix_in = 0x40001a94;
gpio_matrix_out = 0x40001aa0;
gpio_output_disable = 0x40001aac;
gpio_output_enable = 0x40001ab8;
/* gpio_output_disable = 0x40001aac; */
/* gpio_output_enable = 0x40001ab8; */
gpio_output_set = 0x40001ac4;
gpio_pad_hold = 0x40001ad0;
gpio_pad_input_disable = 0x40001adc;
@ -776,825 +776,6 @@ rom_usb_osglue = 0x3fceffac;
Group bluetooth
***************************************/
/* Functions */
bt_rf_coex_get_dft_cfg = 0x40002a78;
bt_rf_coex_hooks_p_set = 0x40002a84;
btdm_con_maxevtime_cal_impl = 0x40002a90;
btdm_controller_get_compile_version_impl = 0x40002a9c;
btdm_controller_rom_data_init = 0x40002aa8;
btdm_dis_privacy_err_report_impl = 0x40002ab4;
btdm_disable_adv_delay_impl = 0x40002ac0;
btdm_enable_scan_continue_impl = 0x40002acc;
btdm_enable_scan_forever_impl = 0x40002ad8;
btdm_get_power_state_impl = 0x40002ae4;
btdm_get_prevent_sleep_flag_impl = 0x40002af0;
btdm_power_state_active_impl = 0x40002afc;
btdm_switch_phy_coded_impl = 0x40002b08;
hci_acl_data_handler = 0x40002b14;
hci_disconnect_cmd_handler = 0x40002b20;
hci_le_con_upd_cmd_handler = 0x40002b2c;
hci_le_ltk_req_neg_reply_cmd_handler = 0x40002b38;
hci_le_ltk_req_reply_cmd_handler = 0x40002b44;
hci_le_rd_chnl_map_cmd_handler = 0x40002b50;
hci_le_rd_phy_cmd_handler = 0x40002b5c;
hci_le_rd_rem_feats_cmd_handler = 0x40002b68;
hci_le_rem_con_param_req_neg_reply_cmd_handler = 0x40002b74;
hci_le_rem_con_param_req_reply_cmd_handler = 0x40002b80;
hci_le_set_data_len_cmd_handler = 0x40002b8c;
hci_le_set_phy_cmd_handler = 0x40002b98;
hci_le_start_enc_cmd_handler = 0x40002ba4;
hci_rd_auth_payl_to_cmd_handler = 0x40002bb0;
hci_rd_rem_ver_info_cmd_handler = 0x40002bbc;
hci_rd_rssi_cmd_handler = 0x40002bc8;
hci_rd_tx_pwr_lvl_cmd_handler = 0x40002bd4;
hci_vs_set_pref_slave_evt_dur_cmd_handler = 0x40002be0;
hci_vs_set_pref_slave_latency_cmd_handler = 0x40002bec;
hci_wr_auth_payl_to_cmd_handler = 0x40002bf8;
ll_channel_map_ind_handler = 0x40002c04;
ll_connection_param_req_handler = 0x40002c10;
ll_connection_param_rsp_handler = 0x40002c1c;
ll_connection_update_ind_handler = 0x40002c28;
ll_enc_req_handler = 0x40002c34;
ll_enc_rsp_handler = 0x40002c40;
ll_feature_req_handler = 0x40002c4c;
ll_feature_rsp_handler = 0x40002c58;
ll_length_req_handler = 0x40002c64;
ll_length_rsp_handler = 0x40002c70;
ll_min_used_channels_ind_handler = 0x40002c7c;
ll_pause_enc_req_handler = 0x40002c88;
ll_pause_enc_rsp_handler = 0x40002c94;
ll_phy_req_handler = 0x40002ca0;
ll_phy_rsp_handler = 0x40002cac;
ll_phy_update_ind_handler = 0x40002cb8;
ll_ping_req_handler = 0x40002cc4;
ll_ping_rsp_handler = 0x40002cd0;
ll_slave_feature_req_handler = 0x40002cdc;
ll_start_enc_req_handler = 0x40002ce8;
ll_start_enc_rsp_handler = 0x40002cf4;
ll_terminate_ind_handler = 0x40002d00;
ll_version_ind_handler = 0x40002d0c;
llc_auth_payl_nearly_to_handler = 0x40002d18;
llc_auth_payl_real_to_handler = 0x40002d24;
llc_encrypt_ind_handler = 0x40002d30;
llc_hci_command_handler_wrapper = 0x40002d3c;
llc_ll_connection_param_req_pdu_send = 0x40002d48;
llc_ll_connection_param_rsp_pdu_send = 0x40002d54;
llc_ll_connection_update_ind_pdu_send = 0x40002d60;
llc_ll_enc_req_pdu_send = 0x40002d6c;
llc_ll_enc_rsp_pdu_send = 0x40002d78;
llc_ll_feature_req_pdu_send = 0x40002d84;
llc_ll_feature_rsp_pdu_send = 0x40002d90;
llc_ll_length_req_pdu_send = 0x40002d9c;
llc_ll_length_rsp_pdu_send = 0x40002da8;
llc_ll_pause_enc_req_pdu_send = 0x40002db4;
llc_ll_pause_enc_rsp_pdu_send = 0x40002dc0;
llc_ll_phy_req_pdu_send = 0x40002dcc;
llc_ll_phy_rsp_pdu_send = 0x40002dd8;
llc_ll_ping_req_pdu_send = 0x40002de4;
llc_ll_ping_rsp_pdu_send = 0x40002df0;
llc_ll_start_enc_req_pdu_send = 0x40002dfc;
llc_ll_start_enc_rsp_pdu_send = 0x40002e08;
llc_ll_terminate_ind_pdu_send = 0x40002e14;
llc_ll_unknown_rsp_pdu_send = 0x40002e20;
llc_llcp_ch_map_update_ind_pdu_send = 0x40002e2c;
llc_llcp_phy_upd_ind_pdu_send = 0x40002e38;
llc_llcp_version_ind_pdu_send = 0x40002e44;
llc_op_ch_map_upd_ind_handler = 0x40002e50;
llc_op_con_upd_ind_handler = 0x40002e5c;
llc_op_disconnect_ind_handler = 0x40002e68;
llc_op_dl_upd_ind_handler = 0x40002e74;
llc_op_encrypt_ind_handler = 0x40002e80;
llc_op_feats_exch_ind_handler = 0x40002e8c;
llc_op_le_ping_ind_handler = 0x40002e98;
llc_op_phy_upd_ind_handler = 0x40002ea4;
llc_op_ver_exch_ind_handler = 0x40002eb0;
llc_stopped_ind_handler = 0x40002ebc;
lld_acl_rx_ind_handler = 0x40002ec8;
lld_acl_tx_cfm_handler = 0x40002ed4;
lld_adv_end_ind_handler = 0x40002ee0;
lld_adv_rep_ind_handler = 0x40002eec;
lld_ch_map_upd_cfm_handler = 0x40002ef8;
lld_con_estab_ind_handler = 0x40002f04;
lld_con_evt_sd_evt_time_set = 0x40002f10;
lld_con_offset_upd_ind_handler = 0x40002f1c;
lld_con_param_upd_cfm_handler = 0x40002f28;
lld_disc_ind_handler = 0x40002f34;
lld_init_end_ind_handler = 0x40002f40;
lld_llcp_rx_ind_handler_wrapper = 0x40002f4c;
lld_llcp_tx_cfm_handler = 0x40002f58;
lld_per_adv_end_ind_handler = 0x40002f64;
lld_per_adv_rep_ind_handler = 0x40002f70;
lld_per_adv_rx_end_ind_handler = 0x40002f7c;
lld_phy_coded_500k_get = 0x40002f88;
lld_phy_upd_cfm_handler = 0x40002f94;
lld_scan_end_ind_handler = 0x40002fa0;
lld_scan_req_ind_handler = 0x40002fac;
lld_sync_start_req_handler = 0x40002fb8;
lld_test_end_ind_handler = 0x40002fc4;
lld_update_rxbuf_handler = 0x40002fd0;
llm_ch_map_update_ind_handler = 0x40002fdc;
llm_hci_command_handler_wrapper = 0x40002fe8;
llm_scan_period_to_handler = 0x40002ff4;
r_Add2SelfBigHex256 = 0x40003000;
r_AddBigHex256 = 0x4000300c;
r_AddBigHexModP256 = 0x40003018;
r_AddP256 = 0x40003024;
r_AddPdiv2_256 = 0x40003030;
r_GF_Jacobian_Point_Addition256 = 0x4000303c;
r_GF_Jacobian_Point_Double256 = 0x40003048;
r_GF_Point_Jacobian_To_Affine256 = 0x40003054;
r_MultiplyBigHexByUint32_256 = 0x40003060;
r_MultiplyBigHexModP256 = 0x4000306c;
r_MultiplyByU16ModP256 = 0x40003078;
r_SubtractBigHex256 = 0x40003084;
r_SubtractBigHexMod256 = 0x40003090;
r_SubtractBigHexUint32_256 = 0x4000309c;
r_SubtractFromSelfBigHex256 = 0x400030a8;
r_SubtractFromSelfBigHexSign256 = 0x400030b4;
r_aes_alloc = 0x400030c0;
r_aes_ccm_continue = 0x400030cc;
r_aes_ccm_process_e = 0x400030d8;
r_aes_ccm_xor_128_lsb = 0x400030e4;
r_aes_ccm_xor_128_msb = 0x400030f0;
r_aes_cmac_continue = 0x400030fc;
r_aes_cmac_start = 0x40003108;
r_aes_k1_continue = 0x40003114;
r_aes_k2_continue = 0x40003120;
r_aes_k3_continue = 0x4000312c;
r_aes_k4_continue = 0x40003138;
r_aes_shift_left_128 = 0x40003144;
r_aes_start = 0x40003150;
r_aes_xor_128 = 0x4000315c;
r_assert_err = 0x40003168;
r_assert_param = 0x40003174;
r_assert_warn = 0x40003180;
r_bigHexInversion256 = 0x4000318c;
r_ble_sw_cca_check_isr = 0x40003198;
r_ble_util_buf_acl_tx_alloc = 0x400031a4;
r_ble_util_buf_acl_tx_elt_get = 0x400031b0;
r_ble_util_buf_acl_tx_free = 0x400031bc;
r_ble_util_buf_acl_tx_free_in_isr = 0x400031c8;
r_ble_util_buf_adv_tx_alloc = 0x400031d4;
r_ble_util_buf_adv_tx_free = 0x400031e0;
r_ble_util_buf_adv_tx_free_in_isr = 0x400031ec;
r_ble_util_buf_env_deinit = 0x400031f8;
r_ble_util_buf_env_init = 0x40003204;
r_ble_util_buf_get_rx_buf_nb = 0x40003210;
r_ble_util_buf_get_rx_buf_size = 0x4000321c;
r_ble_util_buf_llcp_tx_alloc = 0x40003228;
r_ble_util_buf_llcp_tx_free = 0x40003234;
r_ble_util_buf_rx_alloc = 0x40003240;
r_ble_util_buf_rx_alloc_in_isr = 0x4000324c;
r_ble_util_buf_rx_free = 0x40003258;
r_ble_util_buf_rx_free_in_isr = 0x40003264;
r_ble_util_buf_set_rx_buf_nb = 0x40003270;
r_ble_util_buf_set_rx_buf_size = 0x4000327c;
r_ble_util_data_rx_buf_reset = 0x40003288;
r_bt_bb_get_intr_mask = 0x40003294;
r_bt_bb_intr_clear = 0x400032a0;
r_bt_bb_intr_mask_set = 0x400032ac;
r_bt_rf_coex_cfg_set = 0x400032c4;
r_bt_rf_coex_conn_dynamic_pti_en_get = 0x400032d0;
r_bt_rf_coex_ext_adv_dynamic_pti_en_get = 0x400032e8;
r_bt_rf_coex_ext_scan_dynamic_pti_en_get = 0x400032f4;
r_bt_rf_coex_legacy_adv_dynamic_pti_en_get = 0x40003300;
r_bt_rf_coex_per_adv_dynamic_pti_en_get = 0x4000330c;
r_bt_rf_coex_pti_table_get = 0x40003318;
r_bt_rf_coex_st_param_get = 0x40003324;
r_bt_rf_coex_st_param_set = 0x40003330;
r_bt_rf_coex_sync_scan_dynamic_pti_en_get = 0x4000333c;
r_bt_rma_apply_rule_cs_fmt = 0x40003348;
r_bt_rma_apply_rule_cs_idx = 0x40003354;
r_bt_rma_configure = 0x40003360;
r_bt_rma_deregister_rule_cs_fmt = 0x4000336c;
r_bt_rma_deregister_rule_cs_idx = 0x40003378;
r_bt_rma_get_ant_by_act = 0x40003384;
r_bt_rma_init = 0x40003390;
r_bt_rma_register_rule_cs_fmt = 0x4000339c;
r_bt_rma_register_rule_cs_idx = 0x400033a8;
r_bt_rtp_apply_rule_cs_fmt = 0x400033b4;
r_bt_rtp_apply_rule_cs_idx = 0x400033c0;
r_bt_rtp_deregister_rule_cs_fmt = 0x400033cc;
r_bt_rtp_deregister_rule_cs_idx = 0x400033d8;
r_bt_rtp_init = 0x400033f0;
r_bt_rtp_register_rule_cs_fmt = 0x400033fc;
r_bt_rtp_register_rule_cs_idx = 0x40003408;
r_btdm_isr = 0x40003414;
r_cali_phase_match_p = 0x40003444;
r_cmp_abs_time = 0x40003450;
r_cmp_dest_id = 0x4000345c;
r_cmp_timer_id = 0x40003468;
r_co_bdaddr_compare = 0x40003474;
r_co_ble_pkt_dur_in_us = 0x40003480;
r_co_list_extract = 0x4000348c;
r_co_list_extract_after = 0x40003498;
r_co_list_extract_sublist = 0x400034a4;
r_co_list_find = 0x400034b0;
r_co_list_init = 0x400034bc;
r_co_list_insert_after = 0x400034c8;
r_co_list_insert_before = 0x400034d4;
r_co_list_merge = 0x400034e0;
r_co_list_pool_init = 0x400034ec;
r_co_list_pop_front = 0x400034f8;
r_co_list_push_back = 0x40003504;
r_co_list_push_back_sublist = 0x40003510;
r_co_list_push_front = 0x4000351c;
r_co_list_size = 0x40003528;
r_co_nb_good_le_channels = 0x40003534;
r_co_util_pack = 0x40003540;
r_co_util_read_array_size = 0x4000354c;
r_co_util_unpack = 0x40003558;
r_dbg_env_deinit = 0x40003564;
r_dbg_env_init = 0x40003570;
r_dbg_platform_reset_complete = 0x4000357c;
r_dl_upd_proc_start = 0x40003588;
r_dump_data = 0x40003594;
r_ecc_abort_key256_generation = 0x400035a0;
r_ecc_gen_new_public_key = 0x400035ac;
r_ecc_gen_new_secret_key = 0x400035b8;
r_ecc_generate_key256 = 0x400035c4;
r_ecc_get_debug_Keys = 0x400035d0;
r_ecc_init = 0x400035dc;
r_ecc_is_valid_point = 0x400035e8;
r_ecc_multiplication_event_handler = 0x400035f4;
r_ecc_point_multiplication_win_256 = 0x40003600;
r_emi_alloc_em_mapping_by_offset = 0x4000360c;
r_emi_base_reg_lut_show = 0x40003618;
r_emi_em_base_reg_show = 0x40003624;
r_emi_free_em_mapping_by_offset = 0x40003630;
r_emi_get_em_mapping_idx_by_offset = 0x4000363c;
r_emi_get_mem_addr_by_offset = 0x40003648;
r_emi_overwrite_em_mapping_by_offset = 0x40003654;
r_esp_vendor_hci_command_handler = 0x40003660;
r_get_stack_usage = 0x4000366c;
r_h4tl_acl_hdr_rx_evt_handler = 0x40003678;
r_h4tl_cmd_hdr_rx_evt_handler = 0x40003684;
r_h4tl_cmd_pld_rx_evt_handler = 0x40003690;
r_h4tl_eif_io_event_post = 0x4000369c;
r_h4tl_eif_register = 0x400036a8;
r_h4tl_init = 0x400036b4;
r_h4tl_out_of_sync = 0x400036c0;
r_h4tl_out_of_sync_check = 0x400036cc;
r_h4tl_read_hdr = 0x400036d8;
r_h4tl_read_next_out_of_sync = 0x400036e4;
r_h4tl_read_payl = 0x400036f0;
r_h4tl_read_start = 0x400036fc;
r_h4tl_rx_acl_hdr_extract = 0x40003708;
r_h4tl_rx_cmd_hdr_extract = 0x40003714;
r_h4tl_rx_done = 0x40003720;
r_h4tl_start = 0x4000372c;
r_h4tl_stop = 0x40003738;
r_h4tl_tx_done = 0x40003744;
r_h4tl_tx_evt_handler = 0x40003750;
r_h4tl_write = 0x4000375c;
r_hci_acl_tx_data_alloc = 0x40003768;
r_hci_acl_tx_data_received = 0x40003774;
r_hci_basic_cmd_send_2_controller = 0x40003780;
r_hci_ble_adv_report_filter_check = 0x4000378c;
r_hci_ble_adv_report_tx_check = 0x40003798;
r_hci_ble_conhdl_register = 0x400037a4;
r_hci_ble_conhdl_unregister = 0x400037b0;
r_hci_build_acl_data = 0x400037bc;
r_hci_build_cc_evt = 0x400037c8;
r_hci_build_cs_evt = 0x400037d4;
r_hci_build_evt = 0x400037e0;
r_hci_build_le_evt = 0x400037ec;
r_hci_cmd_get_max_param_size = 0x400037f8;
r_hci_cmd_received = 0x40003804;
r_hci_cmd_reject = 0x40003810;
r_hci_evt_mask_check = 0x4000381c;
r_hci_evt_mask_set = 0x40003828;
r_hci_fc_acl_buf_size_set = 0x40003834;
r_hci_fc_acl_en = 0x40003840;
r_hci_fc_acl_packet_sent = 0x4000384c;
r_hci_fc_check_host_available_nb_acl_packets = 0x40003858;
r_hci_fc_host_nb_acl_pkts_complete = 0x40003864;
r_hci_fc_init = 0x40003870;
r_hci_look_for_cmd_desc = 0x4000387c;
r_hci_look_for_evt_desc = 0x40003888;
r_hci_look_for_le_evt_desc = 0x40003894;
r_hci_look_for_le_evt_desc_esp = 0x400038a0;
r_hci_pack_bytes = 0x400038ac;
r_hci_send_2_controller = 0x400038c4;
r_hci_send_2_host = 0x400038d0;
r_hci_tl_c2h_data_flow_on = 0x400038dc;
r_hci_tl_cmd_hdr_rx_evt_handler = 0x400038e8;
r_hci_tl_cmd_pld_rx_evt_handler = 0x400038f4;
r_hci_tl_get_pkt = 0x40003900;
r_hci_tl_hci_pkt_handler = 0x4000390c;
r_hci_tl_hci_tx_done_evt_handler = 0x40003918;
r_hci_tl_inc_nb_h2c_cmd_pkts = 0x40003924;
r_hci_tl_save_pkt = 0x40003930;
r_hci_tl_send = 0x4000393c;
r_hci_tx_done = 0x40003948;
r_hci_tx_start = 0x40003954;
r_hci_tx_trigger = 0x40003960;
r_isValidSecretKey_256 = 0x4000396c;
r_ke_check_malloc = 0x40003978;
r_ke_event_callback_set = 0x40003984;
r_ke_event_clear = 0x40003990;
r_ke_event_flush = 0x4000399c;
r_ke_event_get = 0x400039a8;
r_ke_event_get_all = 0x400039b4;
r_ke_event_init = 0x400039c0;
r_ke_event_schedule = 0x400039cc;
r_ke_event_set = 0x400039d8;
r_ke_flush = 0x400039e4;
r_ke_free = 0x400039f0;
r_ke_handler_search = 0x400039fc;
r_ke_init = 0x40003a08;
r_ke_is_free = 0x40003a14;
r_ke_malloc = 0x40003a20;
r_ke_mem_init = 0x40003a2c;
r_ke_mem_is_empty = 0x40003a38;
r_ke_mem_is_in_heap = 0x40003a44;
r_ke_msg_alloc = 0x40003a50;
r_ke_msg_dest_id_get = 0x40003a5c;
r_ke_msg_discard = 0x40003a68;
r_ke_msg_forward = 0x40003a74;
r_ke_msg_forward_new_id = 0x40003a80;
r_ke_msg_free = 0x40003a8c;
r_ke_msg_in_queue = 0x40003a98;
r_ke_msg_save = 0x40003aa4;
r_ke_msg_send = 0x40003ab0;
r_ke_msg_send_basic = 0x40003abc;
r_ke_msg_src_id_get = 0x40003ac8;
r_ke_queue_extract = 0x40003ad4;
r_ke_queue_insert = 0x40003ae0;
r_ke_sleep_check = 0x40003aec;
r_ke_state_get = 0x40003af8;
r_ke_state_set = 0x40003b04;
r_ke_task_check = 0x40003b10;
r_ke_task_create = 0x40003b1c;
r_ke_task_delete = 0x40003b28;
r_ke_task_handler_get = 0x40003b34;
r_ke_task_init = 0x40003b40;
r_ke_task_msg_flush = 0x40003b4c;
r_ke_task_saved_update = 0x40003b58;
r_ke_time = 0x40003b70;
r_ke_time_cmp = 0x40003b7c;
r_ke_time_past = 0x40003b88;
r_ke_timer_active = 0x40003b94;
r_ke_timer_adjust_all = 0x40003ba0;
r_ke_timer_clear = 0x40003bac;
r_ke_timer_init = 0x40003bb8;
r_ke_timer_schedule = 0x40003bc4;
r_ke_timer_set = 0x40003bd0;
r_led_init = 0x40003bdc;
r_led_set_all = 0x40003be8;
r_llc_aes_res_cb = 0x40003bf4;
r_llc_ch_map_up_proc_err_cb = 0x40003c00;
r_llc_cleanup = 0x40003c0c;
r_llc_cmd_cmp_send = 0x40003c18;
r_llc_cmd_stat_send = 0x40003c24;
r_llc_con_move_cbk = 0x40003c30;
r_llc_con_plan_set_update = 0x40003c3c;
r_llc_con_upd_param_in_range = 0x40003c48;
r_llc_disconnect = 0x40003c54;
r_llc_disconnect_end = 0x40003c60;
r_llc_disconnect_proc_continue = 0x40003c6c;
r_llc_disconnect_proc_err_cb = 0x40003c78;
r_llc_dl_chg_check = 0x40003c84;
r_llc_dle_proc_err_cb = 0x40003c90;
r_llc_feats_exch_proc_err_cb = 0x40003c9c;
r_llc_hci_cmd_handler_tab_p_get = 0x40003ca8;
r_llc_hci_con_param_req_evt_send = 0x40003cc0;
r_llc_hci_con_upd_info_send = 0x40003ccc;
r_llc_hci_disconnected_dis = 0x40003cd8;
r_llc_hci_dl_upd_info_send = 0x40003ce4;
r_llc_hci_enc_evt_send = 0x40003cf0;
r_llc_hci_feats_info_send = 0x40003cfc;
r_llc_hci_le_phy_upd_cmp_evt_send = 0x40003d08;
r_llc_hci_ltk_request_evt_send = 0x40003d14;
r_llc_hci_nb_cmp_pkts_evt_send = 0x40003d20;
r_llc_hci_version_info_send = 0x40003d2c;
r_llc_init_term_proc = 0x40003d38;
r_llc_iv_skd_rand_gen = 0x40003d44;
r_llc_le_ping_proc_continue = 0x40003d50;
r_llc_le_ping_proc_err_cb = 0x40003d5c;
/* r_llc_le_ping_restart = 0x40003d68; */
r_llc_le_ping_set = 0x40003d74;
r_llc_ll_pause_enc_rsp_ack_handler = 0x40003d80;
r_llc_ll_reject_ind_ack_handler = 0x40003d8c;
r_llc_ll_reject_ind_pdu_send = 0x40003d98;
r_llc_ll_start_enc_rsp_ack_handler = 0x40003da4;
r_llc_ll_terminate_ind_ack = 0x40003db0;
r_llc_ll_unknown_ind_handler = 0x40003dbc;
r_llc_llcp_send = 0x40003dc8;
r_llc_llcp_state_set = 0x40003dd4;
r_llc_llcp_trans_timer_set = 0x40003de0;
r_llc_llcp_tx_check = 0x40003dec;
r_llc_loc_ch_map_proc_continue = 0x40003df8;
r_llc_loc_con_upd_proc_err_cb = 0x40003e10;
r_llc_loc_dl_upd_proc_continue = 0x40003e1c;
r_llc_loc_encrypt_proc_continue = 0x40003e28;
r_llc_loc_encrypt_proc_err_cb = 0x40003e34;
r_llc_loc_feats_exch_proc_continue = 0x40003e40;
r_llc_loc_phy_upd_proc_err_cb = 0x40003e58;
r_llc_msg_handler_tab_p_get = 0x40003e64;
r_llc_pref_param_compute = 0x40003e70;
r_llc_proc_collision_check = 0x40003e7c;
r_llc_proc_err_ind = 0x40003e88;
r_llc_proc_get = 0x40003e94;
r_llc_proc_id_get = 0x40003ea0;
r_llc_proc_reg = 0x40003eac;
r_llc_proc_state_get = 0x40003eb8;
r_llc_proc_state_set = 0x40003ec4;
r_llc_proc_timer_pause_set = 0x40003ed0;
r_llc_proc_timer_set = 0x40003edc;
r_llc_proc_unreg = 0x40003ee8;
r_llc_rem_ch_map_proc_continue = 0x40003ef4;
r_llc_rem_con_upd_proc_err_cb = 0x40003f0c;
r_llc_rem_dl_upd_proc = 0x40003f18;
r_llc_rem_encrypt_proc_continue = 0x40003f24;
r_llc_rem_encrypt_proc_err_cb = 0x40003f30;
r_llc_rem_phy_upd_proc_continue = 0x40003f3c;
r_llc_rem_phy_upd_proc_err_cb = 0x40003f48;
r_llc_role_get = 0x40003f54;
r_llc_sk_gen = 0x40003f60;
r_llc_start = 0x40003f6c;
r_llc_stop = 0x40003f78;
r_llc_ver_exch_loc_proc_continue = 0x40003f84;
r_llc_ver_proc_err_cb = 0x40003f90;
r_llcp_pdu_handler_tab_p_get = 0x40003f9c;
r_lld_aa_gen = 0x40003fa8;
r_lld_adv_adv_data_set = 0x40003fb4;
r_lld_adv_adv_data_update = 0x40003fc0;
r_lld_adv_aux_ch_idx_set = 0x40003fcc;
r_lld_adv_aux_evt_canceled_cbk = 0x40003fd8;
r_lld_adv_aux_evt_start_cbk = 0x40003fe4;
r_lld_adv_coex_check_ext_adv_synced = 0x40003ff0;
r_lld_adv_coex_env_reset = 0x40003ffc;
r_lld_adv_duration_update = 0x40004008;
r_lld_adv_dynamic_pti_process = 0x40004014;
r_lld_adv_end = 0x40004020;
r_lld_adv_evt_canceled_cbk = 0x4000402c;
r_lld_adv_evt_start_cbk = 0x40004038;
r_lld_adv_ext_chain_construct = 0x40004044;
r_lld_adv_ext_pkt_prepare = 0x40004050;
r_lld_adv_frm_cbk = 0x4000405c;
r_lld_adv_frm_isr = 0x40004068;
r_lld_adv_frm_skip_isr = 0x40004074;
r_lld_adv_init = 0x40004080;
r_lld_adv_pkt_rx = 0x4000408c;
r_lld_adv_pkt_rx_connect_ind = 0x40004098;
r_lld_adv_pkt_rx_send_scan_req_evt = 0x400040a4;
r_lld_adv_rand_addr_update = 0x400040b0;
r_lld_adv_restart = 0x400040bc;
r_lld_adv_scan_rsp_data_set = 0x400040c8;
r_lld_adv_scan_rsp_data_update = 0x400040d4;
r_lld_adv_set_tx_power = 0x400040e0;
r_lld_adv_start = 0x400040ec;
r_lld_adv_stop = 0x400040f8;
r_lld_adv_sync_info_set = 0x40004104;
r_lld_adv_sync_info_update = 0x40004110;
r_lld_calc_aux_rx = 0x4000411c;
r_lld_cca_alloc = 0x40004128;
r_lld_cca_data_reset = 0x40004134;
r_lld_cca_free = 0x40004140;
r_lld_ch_assess_data_get = 0x4000414c;
r_lld_ch_idx_get = 0x40004158;
r_lld_ch_map_set = 0x40004164;
r_lld_channel_assess = 0x40004170;
r_lld_con_activity_act_offset_compute = 0x4000417c;
r_lld_con_activity_offset_compute = 0x40004188;
r_lld_con_ch_map_update = 0x40004194;
r_lld_con_cleanup = 0x400041a0;
r_lld_con_current_tx_power_get = 0x400041ac;
r_lld_con_data_flow_set = 0x400041b8;
r_lld_con_data_len_update = 0x400041c4;
r_lld_con_data_tx = 0x400041d0;
r_lld_con_enc_key_load = 0x400041dc;
r_lld_con_event_counter_get = 0x400041e8;
r_lld_con_evt_canceled_cbk = 0x400041f4;
r_lld_con_evt_duration_min_get = 0x40004200;
r_lld_con_evt_max_eff_time_cal = 0x4000420c;
r_lld_con_evt_sd_evt_time_get = 0x40004218;
r_lld_con_evt_start_cbk = 0x40004224;
r_lld_con_evt_time_update = 0x40004230;
r_lld_con_free_all_tx_buf = 0x4000423c;
r_lld_con_frm_cbk = 0x40004248;
r_lld_con_frm_isr = 0x40004254;
r_lld_con_frm_skip_isr = 0x40004260;
r_lld_con_init = 0x4000426c;
r_lld_con_llcp_tx = 0x40004278;
r_lld_con_max_lat_calc = 0x40004284;
r_lld_con_offset_get = 0x40004290;
r_lld_con_param_update = 0x4000429c;
r_lld_con_phys_update = 0x400042a8;
r_lld_con_pref_slave_evt_dur_set = 0x400042b4;
r_lld_con_pref_slave_latency_set = 0x400042c0;
r_lld_con_rssi_get = 0x400042cc;
r_lld_con_rx = 0x400042d8;
/* r_lld_con_rx_channel_assess = 0x400042e4; */
r_lld_con_rx_enc = 0x400042f0;
r_lld_con_rx_isr = 0x400042fc;
r_lld_con_rx_link_info_check = 0x40004308;
r_lld_con_rx_llcp_check = 0x40004314;
r_lld_con_rx_sync_time_update = 0x40004320;
r_lld_con_set_tx_power = 0x40004338;
r_lld_con_start = 0x40004344;
r_lld_con_tx = 0x4000435c;
r_lld_con_tx_enc = 0x40004368;
r_lld_con_tx_isr = 0x40004374;
r_lld_con_tx_len_update = 0x40004380;
r_lld_con_tx_len_update_for_intv = 0x4000438c;
r_lld_con_tx_len_update_for_rate = 0x40004398;
r_lld_con_tx_prog = 0x400043a4;
r_lld_conn_dynamic_pti_process = 0x400043b0;
r_lld_continue_scan_rx_isr_end_process = 0x400043bc;
r_lld_ext_scan_dynamic_pti_process = 0x400043c8;
r_lld_hw_cca_end_isr = 0x400043d4;
r_lld_hw_cca_evt_handler = 0x400043e0;
r_lld_hw_cca_isr = 0x400043ec;
r_lld_init_cal_anchor_point = 0x400043f8;
r_lld_init_compute_winoffset = 0x40004404;
r_lld_init_connect_req_pack = 0x40004410;
r_lld_init_end = 0x4000441c;
r_lld_init_evt_canceled_cbk = 0x40004428;
r_lld_init_evt_start_cbk = 0x40004434;
r_lld_init_frm_cbk = 0x40004440;
r_lld_init_frm_eof_isr = 0x4000444c;
r_lld_init_frm_skip_isr = 0x40004458;
r_lld_init_init = 0x40004464;
r_lld_init_process_pkt_rx = 0x40004470;
r_lld_init_process_pkt_rx_adv_ext_ind = 0x4000447c;
r_lld_init_process_pkt_rx_adv_ind_or_direct_ind = 0x40004488;
r_lld_init_process_pkt_rx_aux_connect_rsp = 0x40004494;
r_lld_init_process_pkt_tx = 0x400044a0;
r_lld_init_process_pkt_tx_cal_con_timestamp = 0x400044ac;
r_lld_init_sched = 0x400044b8;
r_lld_init_set_tx_power = 0x400044c4;
r_lld_init_start = 0x400044d0;
r_lld_init_stop = 0x400044dc;
r_lld_instant_proc_end = 0x400044e8;
r_lld_per_adv_ch_map_update = 0x40004500;
r_lld_per_adv_chain_construct = 0x4000450c;
r_lld_per_adv_cleanup = 0x40004518;
r_lld_per_adv_coex_env_reset = 0x40004524;
r_lld_per_adv_data_set = 0x40004530;
r_lld_per_adv_data_update = 0x4000453c;
r_lld_per_adv_dynamic_pti_process = 0x40004548;
r_lld_per_adv_evt_canceled_cbk = 0x40004554;
r_lld_per_adv_evt_start_cbk = 0x40004560;
r_lld_per_adv_ext_pkt_prepare = 0x4000456c;
r_lld_per_adv_frm_cbk = 0x40004578;
r_lld_per_adv_frm_isr = 0x40004584;
r_lld_per_adv_frm_skip_isr = 0x40004590;
r_lld_per_adv_init = 0x4000459c;
r_lld_per_adv_init_info_get = 0x400045a8;
r_lld_per_adv_list_add = 0x400045b4;
r_lld_per_adv_list_rem = 0x400045c0;
r_lld_per_adv_set_tx_power = 0x400045d8;
r_lld_per_adv_start = 0x400045e4;
r_lld_per_adv_stop = 0x400045f0;
r_lld_per_adv_sync_info_get = 0x400045fc;
r_lld_process_cca_data = 0x40004608;
r_lld_ral_search = 0x40004614;
r_lld_read_clock = 0x40004620;
r_lld_res_list_add = 0x4000462c;
r_lld_res_list_is_empty = 0x40004644;
r_lld_res_list_local_rpa_get = 0x40004650;
r_lld_res_list_peer_rpa_get = 0x4000465c;
r_lld_res_list_peer_update = 0x40004668;
/* r_lld_res_list_priv_mode_update = 0x40004674; */
r_lld_reset_reg = 0x4000468c;
r_lld_rpa_renew = 0x40004698;
r_lld_rpa_renew_evt_canceled_cbk = 0x400046a4;
r_lld_rpa_renew_evt_start_cbk = 0x400046b0;
r_lld_rpa_renew_instant_cbk = 0x400046bc;
r_lld_rxdesc_check = 0x400046c8;
r_lld_rxdesc_free = 0x400046d4;
r_lld_scan_create_sync = 0x400046e0;
r_lld_scan_create_sync_cancel = 0x400046ec;
r_lld_scan_end = 0x400046f8;
r_lld_scan_evt_canceled_cbk = 0x40004704;
r_lld_scan_evt_start_cbk = 0x40004710;
r_lld_scan_frm_cbk = 0x4000471c;
r_lld_scan_frm_eof_isr = 0x40004728;
r_lld_scan_frm_rx_isr = 0x40004734;
r_lld_scan_frm_skip_isr = 0x40004740;
r_lld_scan_init = 0x4000474c;
r_lld_scan_params_update = 0x40004758;
r_lld_scan_process_pkt_rx_aux_adv_ind = 0x4000477c;
r_lld_scan_process_pkt_rx_aux_chain_ind = 0x40004788;
r_lld_scan_process_pkt_rx_aux_scan_rsp = 0x40004794;
r_lld_scan_process_pkt_rx_ext_adv = 0x400047a0;
r_lld_scan_process_pkt_rx_ext_adv_ind = 0x400047ac;
r_lld_scan_process_pkt_rx_legacy_adv = 0x400047b8;
r_lld_scan_restart = 0x400047c4;
r_lld_scan_sched = 0x400047d0;
r_lld_scan_set_tx_power = 0x400047dc;
r_lld_scan_start = 0x400047e8;
r_lld_scan_stop = 0x400047f4;
r_lld_scan_sync_accept = 0x40004800;
r_lld_scan_sync_info_unpack = 0x4000480c;
r_lld_scan_trunc_ind = 0x40004818;
r_lld_sw_cca_evt_handler = 0x40004824;
r_lld_sw_cca_isr = 0x40004830;
r_lld_sync_ch_map_update = 0x4000483c;
r_lld_sync_cleanup = 0x40004848;
r_lld_sync_evt_canceled_cbk = 0x40004854;
r_lld_sync_evt_start_cbk = 0x40004860;
r_lld_sync_frm_cbk = 0x4000486c;
r_lld_sync_frm_eof_isr = 0x40004878;
r_lld_sync_frm_rx_isr = 0x40004884;
r_lld_sync_frm_skip_isr = 0x40004890;
r_lld_sync_init = 0x4000489c;
r_lld_sync_process_pkt_rx = 0x400048a8;
r_lld_sync_process_pkt_rx_aux_sync_ind = 0x400048b4;
r_lld_sync_process_pkt_rx_pkt_check = 0x400048c0;
r_lld_sync_scan_dynamic_pti_process = 0x400048cc;
r_lld_sync_sched = 0x400048d8;
r_lld_sync_start = 0x400048e4;
r_lld_sync_stop = 0x400048f0;
r_lld_sync_trunc_ind = 0x400048fc;
r_lld_test_cleanup = 0x40004908;
r_lld_test_evt_canceled_cbk = 0x40004914;
r_lld_test_evt_start_cbk = 0x40004920;
r_lld_test_freq2chnl = 0x4000492c;
r_lld_test_frm_cbk = 0x40004938;
r_lld_test_frm_isr = 0x40004944;
r_lld_test_init = 0x40004950;
r_lld_test_rx_isr = 0x4000495c;
r_lld_test_set_tx_power = 0x40004968;
r_lld_test_start = 0x40004974;
/* r_lld_test_stop = 0x40004980;*/
r_lld_update_rxbuf = 0x4000498c;
r_lld_update_rxbuf_isr = 0x40004998;
r_lld_white_list_add = 0x400049a4;
r_lld_white_list_rem = 0x400049b0;
r_llm_activity_free_get = 0x400049bc;
r_llm_activity_free_set = 0x400049c8;
r_llm_activity_syncing_get = 0x400049d4;
r_llm_adv_con_len_check = 0x400049e0;
r_llm_adv_hdl_to_id = 0x400049ec;
r_llm_adv_rep_flow_control_check = 0x400049f8;
r_llm_adv_rep_flow_control_update = 0x40004a04;
r_llm_adv_reports_list_check = 0x40004a10;
r_llm_adv_set_all_release = 0x40004a1c;
r_llm_adv_set_dft_params = 0x40004a28;
r_llm_adv_set_release = 0x40004a34;
r_llm_aes_res_cb = 0x40004a40;
r_llm_ble_update_adv_flow_control = 0x40004a4c;
r_llm_ch_map_update = 0x40004a58;
r_llm_cmd_cmp_send = 0x40004a64;
r_llm_cmd_stat_send = 0x40004a70;
r_llm_dev_list_empty_entry = 0x40004a7c;
r_llm_dev_list_search = 0x40004a88;
r_llm_env_adv_dup_filt_deinit = 0x40004a94;
r_llm_env_adv_dup_filt_init = 0x40004aa0;
r_llm_init_ble_adv_report_flow_contol = 0x40004aac;
r_llm_is_dev_connected = 0x40004ab8;
r_llm_is_dev_synced = 0x40004ac4;
r_llm_is_non_con_act_ongoing_check = 0x40004ad0;
r_llm_is_wl_accessible = 0x40004adc;
r_llm_le_evt_mask_check = 0x40004ae8;
r_llm_link_disc = 0x40004b00;
r_llm_master_ch_map_get = 0x40004b0c;
r_llm_msg_handler_tab_p_get = 0x40004b18;
r_llm_no_activity = 0x40004b24;
r_llm_per_adv_slot_dur = 0x40004b30;
r_llm_plan_elt_get = 0x40004b3c;
r_llm_rx_path_comp_get = 0x40004b48;
r_llm_scan_start = 0x40004b54;
r_llm_scan_sync_acad_attach = 0x40004b60;
r_llm_scan_sync_acad_detach = 0x40004b6c;
r_llm_send_adv_lost_event_to_host = 0x40004b78;
r_llm_tx_path_comp_get = 0x40004b84;
r_misc_deinit = 0x40004b90;
r_misc_free_em_buf_in_isr = 0x40004b9c;
r_misc_init = 0x40004ba8;
r_misc_msg_handler_tab_p_get = 0x40004bb4;
r_notEqual256 = 0x40004bc0;
r_phy_upd_proc_start = 0x40004bcc;
r_platform_reset = 0x40004bd8;
r_rf_em_init = 0x40004bf0;
r_rf_force_agc_enable = 0x40004bfc;
r_rf_reg_rd = 0x40004c08;
r_rf_reg_wr = 0x40004c14;
r_rf_reset = 0x40004c20;
r_rf_rssi_convert = 0x40004c2c;
r_rf_rw_v9_le_disable = 0x40004c38;
r_rf_rw_v9_le_enable = 0x40004c44;
r_rf_sleep = 0x40004c50;
r_rf_util_cs_fmt_convert = 0x40004c74;
r_rw_crypto_aes_ccm = 0x40004c80;
r_rw_crypto_aes_encrypt = 0x40004c8c;
r_rw_crypto_aes_init = 0x40004c98;
r_rw_crypto_aes_k1 = 0x40004ca4;
r_rw_crypto_aes_k2 = 0x40004cb0;
r_rw_crypto_aes_k3 = 0x40004cbc;
r_rw_crypto_aes_k4 = 0x40004cc8;
r_rw_crypto_aes_rand = 0x40004cd4;
r_rw_crypto_aes_result_handler = 0x40004ce0;
r_rw_crypto_aes_s1 = 0x40004cec;
r_rw_cryto_aes_cmac = 0x40004cf8;
r_rw_v9_init_em_radio_table = 0x40004d04;
r_rwble_sleep_enter = 0x40004d1c;
r_rwble_sleep_wakeup_end = 0x40004d28;
/* r_rwbtdm_isr_wrapper = 0x40004d34; */
r_rwip_active_check = 0x40004d40;
r_rwip_aes_encrypt = 0x40004d4c;
/* r_rwip_assert = 0x40004d58; */
r_rwip_crypt_evt_handler = 0x40004d64;
r_rwip_crypt_isr_handler = 0x40004d70;
r_rwip_eif_get = 0x40004d7c;
r_rwip_half_slot_2_lpcycles = 0x40004d88;
r_rwip_hus_2_lpcycles = 0x40004d94;
r_rwip_isr = 0x40004da0;
r_rwip_lpcycles_2_hus = 0x40004dac;
r_rwip_prevent_sleep_clear = 0x40004db8;
r_rwip_prevent_sleep_set = 0x40004dc4;
r_rwip_schedule = 0x40004dd0;
r_rwip_sleep = 0x40004ddc;
r_rwip_sw_int_handler = 0x40004de8;
r_rwip_sw_int_req = 0x40004df4;
r_rwip_time_get = 0x40004e00;
r_rwip_timer_10ms_handler = 0x40004e0c;
r_rwip_timer_10ms_set = 0x40004e18;
r_rwip_timer_hs_handler = 0x40004e24;
r_rwip_timer_hs_set = 0x40004e30;
r_rwip_timer_hus_handler = 0x40004e3c;
r_rwip_timer_hus_set = 0x40004e48;
r_rwip_wakeup = 0x40004e54;
/* r_rwip_wakeup_end = 0x40004e60; */
r_rwip_wlcoex_set = 0x40004e6c;
r_sch_alarm_clear = 0x40004e78;
r_sch_alarm_init = 0x40004e84;
r_sch_alarm_prog = 0x40004e90;
r_sch_alarm_set = 0x40004e9c;
r_sch_alarm_timer_isr = 0x40004ea8;
r_sch_arb_conflict_check = 0x40004eb4;
r_sch_arb_elt_cancel = 0x40004ec0;
r_sch_arb_init = 0x40004ed8;
r_sch_arb_insert = 0x40004ee4;
r_sch_arb_prog_timer = 0x40004ef0;
r_sch_arb_remove = 0x40004efc;
r_sch_arb_sw_isr = 0x40004f08;
r_sch_plan_chk = 0x40004f14;
r_sch_plan_clock_wrap_offset_update = 0x40004f20;
r_sch_plan_init = 0x40004f2c;
r_sch_plan_interval_req = 0x40004f38;
r_sch_plan_offset_max_calc = 0x40004f44;
r_sch_plan_offset_req = 0x40004f50;
r_sch_plan_position_range_compute = 0x40004f5c;
r_sch_plan_rem = 0x40004f68;
r_sch_plan_req = 0x40004f74;
r_sch_prog_init = 0x40004f98;
r_sch_prog_push = 0x40004fa4;
r_sch_prog_rx_isr = 0x40004fb0;
r_sch_prog_skip_isr = 0x40004fbc;
r_sch_prog_tx_isr = 0x40004fc8;
r_sch_slice_bg_add = 0x40004fd4;
r_sch_slice_bg_remove = 0x40004fe0;
r_sch_slice_compute = 0x40004fec;
r_sch_slice_fg_add = 0x40004ff8;
r_sch_slice_fg_remove = 0x40005004;
r_sch_slice_init = 0x40005010;
r_sch_slice_per_add = 0x4000501c;
r_sch_slice_per_remove = 0x40005028;
r_sdk_config_get_bt_sleep_enable = 0x40005034;
r_sdk_config_get_hl_derived_opts = 0x40005040;
r_sdk_config_get_opts = 0x4000504c;
r_sdk_config_get_priv_opts = 0x40005058;
r_sdk_config_set_bt_sleep_enable = 0x40005064;
r_sdk_config_set_hl_derived_opts = 0x40005070;
r_sdk_config_set_opts = 0x4000507c;
r_specialModP256 = 0x40005088;
r_unloaded_area_init = 0x40005094;
r_vhci_flow_off = 0x400050a0;
r_vhci_flow_on = 0x400050ac;
r_vhci_notify_host_send_available = 0x400050b8;
r_vhci_send_to_host = 0x400050c4;
r_vnd_hci_command_handler = 0x400050d0;
r_vshci_init = 0x400050dc;
vnd_hci_command_handler_wrapper = 0x400050e8;
r_lld_legacy_adv_dynamic_pti_get = 0x400050f4;
r_lld_legacy_adv_dynamic_pti_process = 0x40005100;
r_lld_ext_adv_dynamic_pti_get = 0x4000510c;
r_lld_ext_adv_dynamic_aux_pti_process = 0x40005118;
r_lld_ext_adv_dynamic_pti_process = 0x40005124;
r_lld_adv_ext_pkt_prepare_set = 0x40005130;
r_lld_adv_ext_chain_connectable_construct = 0x40005148;
r_lld_adv_pkt_rx_connect_post = 0x40005160;
r_lld_adv_start_init_evt_param = 0x4000516c;
r_lld_adv_start_set_cs = 0x40005178;
/* r_lld_adv_start_update_filter_policy = 0x40005184; */
r_lld_adv_start_schedule_asap = 0x40005190;
r_lld_con_tx_prog_new_packet_coex = 0x4000519c;
r_lld_per_adv_dynamic_pti_get = 0x400051b4;
r_lld_per_adv_evt_start_chm_upd = 0x400051c0;
r_lld_ext_scan_dynamic_pti_get = 0x400051cc;
r_lld_sync_insert = 0x400051e4;
r_sch_prog_ble_push = 0x400051f0;
r_sch_prog_bt_push = 0x400051fc;
r_lld_init_evt_end_type_set = 0x40005208;
r_lld_init_evt_end_type_get = 0x40005214;
r_lld_adv_direct_adv_use_rpa_addr_state_set = 0x40005220;
r_lld_adv_direct_adv_use_rpa_addr_state_get = 0x4000522c;
r_lld_init_evt_end_type_check_state_set = 0x40005238;
r_lld_init_evt_end_type_check_state_get = 0x40005244;
/* Data (.data, .bss, .rodata) */
bt_rf_coex_cfg_p = 0x3fceffa8;
bt_rf_coex_hooks_p = 0x3fceffa4;
@ -1738,38 +919,6 @@ rwip_coex_cfg = 0x3ff1eebe;
rwip_priority = 0x3ff1eea8;
veryBigHexP256 = 0x3ff1ee5c;
/* bluetooth hook funcs */
r_llc_loc_encrypt_proc_continue_hook = 0x40001c60;
r_llc_loc_phy_upd_proc_continue_hook = 0x40001c64;
r_llc_rem_phy_upd_proc_continue_hook = 0x40001c68;
r_lld_scan_frm_eof_isr_hook = 0x40001c6c;
r_lld_scan_evt_start_cbk_hook = 0x40001c70;
r_lld_scan_process_pkt_rx_ext_adv_hook = 0x40001c78;
r_lld_scan_sched_hook = 0x40001c7c;
r_lld_adv_evt_start_cbk_hook = 0x40001c84;
r_lld_adv_aux_evt_start_cbk_hook = 0x40001c88;
r_lld_adv_frm_isr_hook = 0x40001c8c;
r_lld_adv_start_init_evt_param_hook = 0x40001c90;
r_lld_con_evt_canceled_cbk_hook = 0x40001c94;
r_lld_con_frm_isr_hook = 0x40001c98;
r_lld_con_tx_hook = 0x40001c9c;
r_lld_con_rx_hook = 0x40001ca0;
r_lld_con_evt_start_cbk_hook = 0x40001ca4;
r_lld_con_tx_prog_new_packet_hook = 0x40001cac;
r_lld_init_frm_eof_isr_hook = 0x40001cb0;
r_lld_init_evt_start_cbk_hook = 0x40001cb4;
r_lld_init_sched_hook = 0x40001cbc;
r_lld_init_process_pkt_tx_hook = 0x40001cc0;
r_lld_per_adv_evt_start_cbk_hook = 0x40001cc4;
r_lld_per_adv_frm_isr_hook = 0x40001cc8;
r_lld_per_adv_start_hook = 0x40001ccc;
r_lld_sync_frm_eof_isr_hook = 0x40001cd0;
r_lld_sync_evt_start_cbk_hook = 0x40001cd4;
r_lld_sync_start_hook = 0x40001cd8;
r_lld_sync_process_pkt_rx_pkt_check_hook = 0x40001cdc;
r_sch_arb_insert_hook = 0x40001ce0;
r_sch_plan_offset_req_hook = 0x40001ce4;
/***************************************
Group rom_pp
***************************************/
@ -1787,7 +936,7 @@ hal_mac_tx_get_blockack = 0x400052b0;
/* hal_mac_tx_set_ppdu = 0x400052bc;*/
ic_get_trc = 0x400052c8;
/* ic_mac_deinit = 0x400052d4; */
ic_mac_init = 0x400052e0;
/* ic_mac_init = 0x400052e0; */
ic_interface_enabled = 0x400052ec;
is_lmac_idle = 0x400052f8;
/*lmacAdjustTimestamp = 0x40005304;*/
@ -1822,10 +971,10 @@ pm_mac_sleep = 0x40005454;
pm_enable_active_timer = 0x40005460;
pm_enable_sleep_delay_timer = 0x4000546c;
pm_local_tsf_process = 0x40005478;
pm_set_beacon_filter = 0x40005484;
pm_is_in_wifi_slice_threshold = 0x40005490;
//pm_set_beacon_filter = 0x40005484;
/*pm_is_in_wifi_slice_threshold = 0x40005490;*/
pm_is_waked = 0x4000549c;
pm_keep_alive = 0x400054a8;
/*pm_keep_alive = 0x400054a8;*/
/* pm_on_beacon_rx = 0x400054b4; */
pm_on_data_rx = 0x400054c0;
pm_on_tbtt = 0x400054cc;
@ -1851,7 +1000,7 @@ ppGetTxQFirstAvail_Locked = 0x400055b0;
ppGetTxframe = 0x400055bc;
/*ppMapTxQueue = 0x400055c8;*/
ppProcessRxPktHdr = 0x400055e0;
ppProcessTxQ = 0x400055ec;
/*ppProcessTxQ = 0x400055ec;*/
ppRecordBarRRC = 0x400055f8;
lmacRequestTxopQueue = 0x40005604;
lmacReleaseTxopQueue = 0x40005610;
@ -1861,7 +1010,7 @@ ppResortTxAMPDU = 0x40005634;
ppResumeTxAMPDU = 0x40005640;
/* ppRxFragmentProc = 0x4000564c; */
/* ppRxPkt = 0x40005658; */
ppRxProtoProc = 0x40005664;
/* ppRxProtoProc = 0x40005664; */
ppSearchTxQueue = 0x40005670;
ppSearchTxframe = 0x4000567c;
ppSelectNextQueue = 0x40005688;
@ -1890,7 +1039,7 @@ rcSetTxAmpduLimit = 0x40005784;
rcUpdateAckSnr = 0x4000579c;
/*rcUpdateRate = 0x400057a8;*/
/* rcUpdateTxDone = 0x400057b4; */
rcUpdateTxDoneAmpdu2 = 0x400057c0;
/* rcUpdateTxDoneAmpdu2 = 0x400057c0;*/
rcUpSched = 0x400057cc;
rssi_margin = 0x400057d8;
rx11NRate2AMPDULimit = 0x400057e4;
@ -2058,7 +1207,7 @@ coex_hw_timer_set = 0x40005c04;
coex_schm_interval_set = 0x40005c10;
coex_schm_lock = 0x40005c1c;
coex_schm_unlock = 0x40005c28;
coex_status_get = 0x40005c34;
/*coex_status_get = 0x40005c34;*/
coex_wifi_release = 0x40005c40;
esp_coex_ble_conn_dynamic_prio_get = 0x40005c4c;
/* Data (.data, .bss, .rodata) */