From 5680e9d5a4050f5efdeaf3965b685473d0b86234 Mon Sep 17 00:00:00 2001 From: Tiago Medicci Serrano Date: Tue, 23 Jul 2024 17:57:14 -0300 Subject: [PATCH] espressif: Update internal libraries reference Update internal reference to get the most updated Espressif's libraries. Those libraries are based on branch `release/v5.1` of the ESP-IDF and include `v5.1.4` version of it. --- arch/risc-v/src/common/espressif/Make.defs | 4 +- arch/risc-v/src/common/espressif/Wireless.mk | 6 +- .../src/common/espressif/esp_hr_timer.c | 41 + .../src/common/espressif/esp_hr_timer.h | 37 + arch/risc-v/src/common/espressif/esp_start.c | 5 + .../src/common/espressif/esp_wifi_init.c | 2 +- arch/risc-v/src/esp32c3-legacy/Make.defs | 2 +- arch/risc-v/src/esp32c3/esp_coex_adapter.c | 4 +- arch/risc-v/src/esp32c3/esp_wifi_adapter.c | 110 +- arch/risc-v/src/esp32c3/hal_esp32c3.mk | 9 +- arch/risc-v/src/esp32c6/esp_coex_adapter.c | 4 +- arch/risc-v/src/esp32c6/esp_wifi_adapter.c | 110 +- arch/risc-v/src/esp32c6/hal_esp32c6.mk | 8 +- arch/risc-v/src/esp32h2/hal_esp32h2.mk | 5 +- arch/xtensa/src/esp32/Make.defs | 2 +- arch/xtensa/src/esp32/Wireless.mk | 6 +- arch/xtensa/src/esp32/esp32_ble_adapter.c | 113 +- arch/xtensa/src/esp32/esp32_wifi_adapter.c | 111 +- arch/xtensa/src/esp32/esp32_wireless.c | 81 +- arch/xtensa/src/esp32/esp32_wireless.h | 39 + arch/xtensa/src/esp32/hal.mk | 6 +- arch/xtensa/src/esp32s2/Make.defs | 2 +- arch/xtensa/src/esp32s2/esp32s2_spi.c | 41 +- .../xtensa/src/esp32s2/esp32s2_spiflash_mtd.c | 18 +- arch/xtensa/src/esp32s2/hal.mk | 4 +- arch/xtensa/src/esp32s3/Make.defs | 2 +- arch/xtensa/src/esp32s3/Wireless.mk | 6 +- arch/xtensa/src/esp32s3/esp32s3_ble_adapter.c | 1148 +++++--- arch/xtensa/src/esp32s3/esp32s3_irq.c | 28 +- arch/xtensa/src/esp32s3/esp32s3_rtc.c | 17 +- arch/xtensa/src/esp32s3/esp32s3_rtc.h | 16 + arch/xtensa/src/esp32s3/esp32s3_spiflash.c | 36 +- .../xtensa/src/esp32s3/esp32s3_wifi_adapter.c | 115 +- arch/xtensa/src/esp32s3/esp32s3_wireless.c | 92 +- arch/xtensa/src/esp32s3/esp32s3_wireless.h | 39 + arch/xtensa/src/esp32s3/hal.mk | 8 +- .../xtensa/src/esp32s3/hardware/esp32s3_soc.h | 2 - .../common/scripts/esp32c3_sections.ld | 15 + .../esp32c3-generic/src/esp32c3_bringup.c | 2 +- .../common/scripts/esp32c6_sections.ld | 7 + .../esp32c6-devkitc/src/esp32c6_bringup.c | 2 +- .../esp32c6-devkitm/src/esp32c6_bringup.c | 2 +- .../risc-v/esp32h2/common/scripts/common.ld | 4 + .../esp32h2/common/scripts/esp32h2_aliases.ld | 1 + .../common/scripts/esp32h2_sections.ld | 20 + .../esp32/common/scripts/esp32_aliases.ld | 7 + .../xtensa/esp32/common/scripts/esp32_rom.ld | 2088 ------------- .../esp32/common/scripts/mcuboot_sections.ld | 8 + .../common/scripts/simple_boot_sections.ld | 8 + .../esp32/esp32-2432S028/scripts/Make.defs | 2 - .../esp32/esp32-audio-kit/scripts/Make.defs | 2 - .../esp32/esp32-devkitc/scripts/Make.defs | 2 - .../esp32-ethernet-kit/scripts/Make.defs | 2 - .../esp32/esp32-lyrat/scripts/Make.defs | 2 - .../esp32/esp32-pico-kit/scripts/Make.defs | 2 - .../esp32/esp32-sparrow-kit/scripts/Make.defs | 2 - .../esp32/esp32-wrover-kit/scripts/Make.defs | 2 - .../lilygo_tbeam_lora_gps/scripts/Make.defs | 2 - .../esp32/ttgo_eink5_v2/scripts/Make.defs | 2 - .../esp32/ttgo_lora_esp32/scripts/Make.defs | 2 - .../ttgo_t_display_esp32/scripts/Make.defs | 2 - .../esp32s2/common/scripts/esp32s2_aliases.ld | 36 + .../esp32s2/common/scripts/esp32s2_rom.ld | 963 ------ .../esp32s2-kaluga-1/scripts/Make.defs | 2 +- .../esp32s2/esp32s2-saola-1/scripts/Make.defs | 2 +- .../franzininho-wifi/scripts/Make.defs | 2 +- .../esp32s3/common/scripts/esp32s3_rom.ld | 2570 ----------------- .../esp32s3/common/scripts/esp32s3_rom_api.ld | 78 - .../esp32s3/common/scripts/kernel-space.ld | 2 + .../esp32s3/common/scripts/legacy_sections.ld | 10 + .../common/scripts/mcuboot_sections.ld | 7 + .../common/scripts/protected_memory.ld | 2 +- .../common/scripts/simple_boot_sections.ld | 8 + .../esp32s3/esp32s3-box/scripts/Make.defs | 2 - .../configs/sta_softap/defconfig | 2 + .../esp32s3/esp32s3-devkit/scripts/Make.defs | 2 - .../esp32s3/esp32s3-eye/scripts/Make.defs | 2 - .../esp32s3/esp32s3-korvo-2/scripts/Make.defs | 2 - .../esp32s3/esp32s3-lcd-ev/scripts/Make.defs | 2 - .../esp32s3/esp32s3-meadow/scripts/Make.defs | 2 - 80 files changed, 1925 insertions(+), 6238 deletions(-) delete mode 100644 boards/xtensa/esp32/common/scripts/esp32_rom.ld create mode 100644 boards/xtensa/esp32s2/common/scripts/esp32s2_aliases.ld delete mode 100644 boards/xtensa/esp32s2/common/scripts/esp32s2_rom.ld delete mode 100644 boards/xtensa/esp32s3/common/scripts/esp32s3_rom.ld delete mode 100644 boards/xtensa/esp32s3/common/scripts/esp32s3_rom_api.ld diff --git a/arch/risc-v/src/common/espressif/Make.defs b/arch/risc-v/src/common/espressif/Make.defs index d3158f71e0..1fe90e0455 100644 --- a/arch/risc-v/src/common/espressif/Make.defs +++ b/arch/risc-v/src/common/espressif/Make.defs @@ -130,7 +130,7 @@ endif ESP_HAL_3RDPARTY_REPO = esp-hal-3rdparty ifndef ESP_HAL_3RDPARTY_VERSION - ESP_HAL_3RDPARTY_VERSION = 8e8e62cf6a7ae8a9659b91706024cab38af29118 + ESP_HAL_3RDPARTY_VERSION = 51afbfd1a17e806fa6fd8227a18395c1bbecbad3 endif ifndef ESP_HAL_3RDPARTY_URL @@ -161,7 +161,7 @@ include common$(DELIM)espressif$(DELIM)Bootloader.mk # Silent preprocessor warnings -CFLAGS += -Wno-undef -Wno-unused-variable +CFLAGS += -Wno-undef -Wno-unused-variable -fno-jump-tables -fno-tree-switch-conversion # Remove quotes from CONFIG_ESPRESSIF_CHIP_SERIES configuration diff --git a/arch/risc-v/src/common/espressif/Wireless.mk b/arch/risc-v/src/common/espressif/Wireless.mk index e2e627ca9f..9783ac1c5f 100644 --- a/arch/risc-v/src/common/espressif/Wireless.mk +++ b/arch/risc-v/src/common/espressif/Wireless.mk @@ -68,6 +68,7 @@ CHIP_CSRCS += pkcs5.c CHIP_CSRCS += platform_util.c CHIP_CSRCS += platform.c CHIP_CSRCS += sha1.c +CHIP_CSRCS += sha3.c CHIP_CSRCS += sha256.c CHIP_CSRCS += sha512.c CHIP_CSRCS += pk.c @@ -81,9 +82,9 @@ CHIP_CSRCS += md5.c CHIP_CSRCS += oid.c CHIP_CSRCS += pem.c CHIP_CSRCS += hmac_drbg.c -CHIP_CSRCS += hash_info.c CHIP_CSRCS += rsa_alt_helpers.c CHIP_CSRCS += ecdh.c +CHIP_CSRCS += pk_ecc.c VPATH += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)mbedtls$(DELIM)port @@ -112,6 +113,7 @@ CFLAGS += $(DEFINE_PREFIX)IEEE8021X_EAPOL CFLAGS += $(DEFINE_PREFIX)USE_WPA2_TASK CFLAGS += $(DEFINE_PREFIX)CONFIG_SHA256 CFLAGS += $(DEFINE_PREFIX)CONFIG_SAE +CFLAGS += $(DEFINE_PREFIX)USE_WPS_TASK ifeq ($(CONFIG_ESPRESSIF_WIFI_ENABLE_SAE_PK),y) CFLAGS += $(DEFINE_PREFIX)CONFIG_SAE_PK @@ -222,11 +224,11 @@ INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)$(WIFI_WPA_SUPPLICANT)$(DELIM) CHIP_CSRCS += esp_common.c CHIP_CSRCS += esp_hostap.c CHIP_CSRCS += esp_wpa_main.c -CHIP_CSRCS += esp_wpa2.c CHIP_CSRCS += esp_wpa3.c CHIP_CSRCS += esp_wpas_glue.c CHIP_CSRCS += esp_owe.c CHIP_CSRCS += esp_scan.c +CHIP_CSRCS += esp_wps.c VPATH += $(WIFI_WPA_SUPPLICANT)$(DELIM)esp_supplicant$(DELIM)src$(DELIM)crypto diff --git a/arch/risc-v/src/common/espressif/esp_hr_timer.c b/arch/risc-v/src/common/espressif/esp_hr_timer.c index e3be4daf9d..239a74ad13 100644 --- a/arch/risc-v/src/common/espressif/esp_hr_timer.c +++ b/arch/risc-v/src/common/espressif/esp_hr_timer.c @@ -424,6 +424,47 @@ void IRAM_ATTR esp_hr_timer_start(struct esp_hr_timer_s *timer, spin_unlock_irqrestore(&priv->lock, flags); } +/**************************************************************************** + * Name: esp_hr_timer_start_once + * + * Description: + * Start the High Resolution Timer with one shot mode. + * + * Input Parameters: + * timer - HR Timer pointer. + * timeout - Timeout value. + * + * Returned Value: + * None. + * + ****************************************************************************/ + +void esp_hr_timer_start_once(struct esp_hr_timer_s *timer, uint64_t timeout) +{ + esp_hr_timer_start(timer, timeout, false); +} + +/**************************************************************************** + * Name: esp_hr_timer_start_periodic + * + * Description: + * Start the High Resolution Timer with periodic mode. + * + * Input Parameters: + * timer - HR Timer pointer. + * timeout - Timeout value. + * + * Returned Value: + * None. + * + ****************************************************************************/ + +void esp_hr_timer_start_periodic(struct esp_hr_timer_s *timer, + uint64_t timeout) +{ + esp_hr_timer_start(timer, timeout, true); +} + /**************************************************************************** * Name: esp_hr_timer_stop * diff --git a/arch/risc-v/src/common/espressif/esp_hr_timer.h b/arch/risc-v/src/common/espressif/esp_hr_timer.h index bb48bca7f1..c098e6afc2 100644 --- a/arch/risc-v/src/common/espressif/esp_hr_timer.h +++ b/arch/risc-v/src/common/espressif/esp_hr_timer.h @@ -71,6 +71,8 @@ struct esp_hr_timer_args_s { void (*callback)(void *arg); /* Callback function */ void *arg; /* Private data */ + const char *name; /* Timer name, used in esp_timer_dump function */ + bool skip_unhandled_events; /* Skip unhandled events for periodic timers */ }; #undef EXTERN @@ -127,6 +129,41 @@ void esp_hr_timer_start(struct esp_hr_timer_s *timer, uint64_t timeout, bool repeat); +/**************************************************************************** + * Name: esp_hr_timer_start_once + * + * Description: + * Start the High Resolution Timer with one shot mode. + * + * Input Parameters: + * timer - HR Timer pointer. + * timeout - Timeout value. + * + * Returned Value: + * None. + * + ****************************************************************************/ + +void esp_hr_timer_start_once(struct esp_hr_timer_s *timer, uint64_t timeout); + +/**************************************************************************** + * Name: esp_hr_timer_start_periodic + * + * Description: + * Start the High Resolution Timer with periodic mode. + * + * Input Parameters: + * timer - HR Timer pointer. + * timeout - Timeout value. + * + * Returned Value: + * None. + * + ****************************************************************************/ + +void esp_hr_timer_start_periodic(struct esp_hr_timer_s *timer, + uint64_t timeout); + /**************************************************************************** * Name: esp_hr_timer_stop * diff --git a/arch/risc-v/src/common/espressif/esp_start.c b/arch/risc-v/src/common/espressif/esp_start.c index 421eb7749d..ce2e336f8e 100644 --- a/arch/risc-v/src/common/espressif/esp_start.c +++ b/arch/risc-v/src/common/espressif/esp_start.c @@ -38,6 +38,7 @@ #include "esp_start.h" #include "esp_clk_internal.h" +#include "esp_private/rtc_clk.h" #include "esp_cpu.h" #include "esp_private/brownout.h" #include "hal/wdt_hal.h" @@ -436,6 +437,10 @@ void __esp_start(void) CACHE_DROM_MMU_MAX_END - cache_mmu_irom_size); #endif /* CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE */ +#if CONFIG_ESP_SYSTEM_BBPLL_RECALIB + rtc_clk_recalib_bbpll(); +#endif + #ifdef CONFIG_ESPRESSIF_REGION_PROTECTION /* Configure region protection */ diff --git a/arch/risc-v/src/common/espressif/esp_wifi_init.c b/arch/risc-v/src/common/espressif/esp_wifi_init.c index ba94d12eaf..4939ef9ff4 100644 --- a/arch/risc-v/src/common/espressif/esp_wifi_init.c +++ b/arch/risc-v/src/common/espressif/esp_wifi_init.c @@ -35,7 +35,7 @@ #include "esp_sleep.h" #include "esp_private/esp_clk.h" #include "esp_wpa.h" -#include "esp_coexist_internal.h" +#include "private/esp_coexist_internal.h" #include "esp_phy_init.h" #include "esp_private/phy.h" diff --git a/arch/risc-v/src/esp32c3-legacy/Make.defs b/arch/risc-v/src/esp32c3-legacy/Make.defs index 73ed5f3330..30549d9c7e 100644 --- a/arch/risc-v/src/esp32c3-legacy/Make.defs +++ b/arch/risc-v/src/esp32c3-legacy/Make.defs @@ -237,7 +237,7 @@ endif ESP_HAL_3RDPARTY_REPO = esp-hal-3rdparty ifndef ESP_HAL_3RDPARTY_VERSION - ESP_HAL_3RDPARTY_VERSION = 45c33111b441363e1267158186a60f42525228ca + ESP_HAL_3RDPARTY_VERSION = 51afbfd1a17e806fa6fd8227a18395c1bbecbad3 endif ifndef ESP_HAL_3RDPARTY_URL diff --git a/arch/risc-v/src/esp32c3/esp_coex_adapter.c b/arch/risc-v/src/esp32c3/esp_coex_adapter.c index d994285bd0..555363c72c 100644 --- a/arch/risc-v/src/esp32c3/esp_coex_adapter.c +++ b/arch/risc-v/src/esp32c3/esp_coex_adapter.c @@ -41,11 +41,11 @@ #include "esp_timer.h" #include "soc/rtc.h" #include "esp_private/esp_clk.h" -#include "esp_coexist_adapter.h" +#include "private/esp_coexist_adapter.h" #include "rom/ets_sys.h" #include "soc/soc_caps.h" #include "soc/system_reg.h" -#include "esp_modem_wrapper.h" +#include "private/esp_modem_wrapper.h" /**************************************************************************** * Pre-processor Definitions diff --git a/arch/risc-v/src/esp32c3/esp_wifi_adapter.c b/arch/risc-v/src/esp32c3/esp_wifi_adapter.c index 1602dd7e9d..dd453ab82d 100644 --- a/arch/risc-v/src/esp32c3/esp_wifi_adapter.c +++ b/arch/risc-v/src/esp32c3/esp_wifi_adapter.c @@ -74,9 +74,9 @@ #include "esp_private/esp_clk.h" #include "os.h" #include "esp_smartconfig.h" -#include "esp_coexist_internal.h" +#include "private/esp_coexist_internal.h" #include "rom/ets_sys.h" -#include "esp_modem_wrapper.h" +#include "private/esp_modem_wrapper.h" #include "esp_wlan.h" #include "esp_wifi_adapter.h" @@ -282,6 +282,8 @@ int32_t esp_event_post_wrapper(const char *event_base, uint32_t ticks); static void wifi_apb80m_request_wrapper(void); static void wifi_apb80m_release_wrapper(void); +static void esp_phy_enable_wrapper(void); +static void esp_phy_disable_wrapper(void); static void timer_arm_wrapper(void *timer, uint32_t tmout, bool repeat); static void wifi_reset_mac_wrapper(void); static void wifi_rtc_enable_iso_wrapper(void); @@ -327,6 +329,8 @@ static void *coex_schm_curr_phase_get_wrapper(void); static int coex_register_start_cb_wrapper(int (* cb)(void)); static int coex_schm_process_restart_wrapper(void); static int coex_schm_register_cb_wrapper(int type, int(*cb)(int)); +static int coex_schm_flexible_period_set_wrapper(uint8_t period); +static uint8_t coex_schm_flexible_period_get_wrapper(void); static void esp_empty_wrapper(void); /* Second block of functions @@ -501,8 +505,8 @@ wifi_osi_funcs_t g_wifi_osi_funcs = esp_empty_wrapper, ._wifi_apb80m_request = wifi_apb80m_request_wrapper, ._wifi_apb80m_release = wifi_apb80m_release_wrapper, - ._phy_disable = esp_phy_disable, - ._phy_enable = esp_phy_enable, + ._phy_disable = esp_phy_disable_wrapper, + ._phy_enable = esp_phy_enable_wrapper, ._phy_update_country_info = esp_phy_update_country_info, ._read_mac = esp_read_mac_wrapper, ._timer_arm = timer_arm_wrapper, @@ -564,6 +568,8 @@ wifi_osi_funcs_t g_wifi_osi_funcs = ._coex_register_start_cb = coex_register_start_cb_wrapper, ._coex_schm_process_restart = coex_schm_process_restart_wrapper, ._coex_schm_register_cb = coex_schm_register_cb_wrapper, + ._coex_schm_flexible_period_set = coex_schm_flexible_period_set_wrapper, + ._coex_schm_flexible_period_get = coex_schm_flexible_period_get_wrapper, ._magic = ESP_WIFI_OS_ADAPTER_MAGIC, }; @@ -1561,6 +1567,48 @@ static void IRAM_ATTR wifi_apb80m_release_wrapper(void) #endif } +/**************************************************************************** + * Name: esp_phy_enable_wrapper + * + * Description: + * This function enables the WiFi PHY. It first enables the PHY for the + * WiFi modem, then sets the WiFi PHY enable flag to 1. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void esp_phy_enable_wrapper(void) +{ + esp_phy_enable(PHY_MODEM_WIFI); + phy_wifi_enable_set(1); +} + +/**************************************************************************** + * Name: esp_phy_disable_wrapper + * + * Description: + * This function disables the WiFi PHY. It first sets the WiFi PHY enable + * flag to 0, then disables the PHY for the WiFi modem. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void esp_phy_disable_wrapper(void) +{ + phy_wifi_enable_set(0); + esp_phy_disable(PHY_MODEM_WIFI); +} + /**************************************************************************** * Name: timer_arm_wrapper * @@ -2345,6 +2393,60 @@ static int coex_schm_register_cb_wrapper(int type, int(*cb)(int)) #endif } +/**************************************************************************** + * Name: coex_schm_flexible_period_set_wrapper + * + * Description: + * This function sets the coexistence scheme flexible period. If the + * coexistence power management feature is enabled + * (CONFIG_ESP_COEX_POWER_MANAGEMENT), it calls the function + * coex_schm_flexible_period_set with the given period and returns its + * result. If the feature is not enabled, it returns 0. + * + * Input Parameters: + * period - The flexible period to set. + * + * Returned Value: + * ESP_OK on success, or the result of coex_schm_flexible_period_set. + * + ****************************************************************************/ + +static int coex_schm_flexible_period_set_wrapper(uint8_t period) +{ +#if CONFIG_ESP_COEX_POWER_MANAGEMENT + return coex_schm_flexible_period_set(period); +#else + return 0; +#endif +} + +/**************************************************************************** + * Name: coex_schm_flexible_period_get_wrapper + * + * Description: + * This function gets the coexistence scheme flexible period. If the + * coexistence power management feature is enabled + * (CONFIG_ESP_COEX_POWER_MANAGEMENT), it calls the function + * coex_schm_flexible_period_get and returns its result. If the feature is + * not enabled, it returns 1. + * + * Input Parameters: + * None + * + * Returned Value: + * The coexistence scheme flexible period. + * + ****************************************************************************/ + +static uint8_t coex_schm_flexible_period_get_wrapper(void) +{ +#if CONFIG_ESP_COEX_POWER_MANAGEMENT + return coex_schm_flexible_period_get(); +#else + return 1; +#endif +} + /**************************************************************************** * Name: esp_empty_wrapper * diff --git a/arch/risc-v/src/esp32c3/hal_esp32c3.mk b/arch/risc-v/src/esp32c3/hal_esp32c3.mk index 58a5a478d4..e93c321fba 100644 --- a/arch/risc-v/src/esp32c3/hal_esp32c3.mk +++ b/arch/risc-v/src/esp32c3/hal_esp32c3.mk @@ -69,9 +69,10 @@ endif # Linker scripts -ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.ld -ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.eco3.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.api.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.eco3.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.libgcc.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.newlib.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.version.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).peripherals.ld @@ -106,6 +107,7 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)port$(DELIM)$(CHIP_SERIES)$(DELIM)sar_periph_ctrl.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)port$(DELIM)$(CHIP_SERIES)$(DELIM)systimer.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)lib_printf.c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)phy_common.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)phy_init.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_systimer.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)esp_err.c @@ -114,6 +116,7 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)port$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)system_internal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)adc_hal_common.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)brownout_hal.c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)cache_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)efuse_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)gdma_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)gpio_hal.c @@ -121,8 +124,6 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)ledc_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)systimer_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal.c -CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal_iram.c -CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)cache_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)mpu_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)mmu_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)rmt_hal.c diff --git a/arch/risc-v/src/esp32c6/esp_coex_adapter.c b/arch/risc-v/src/esp32c6/esp_coex_adapter.c index 89b6c3067a..0861115187 100644 --- a/arch/risc-v/src/esp32c6/esp_coex_adapter.c +++ b/arch/risc-v/src/esp32c6/esp_coex_adapter.c @@ -41,10 +41,10 @@ #include "esp_timer.h" #include "soc/rtc.h" #include "esp_private/esp_clk.h" -#include "esp_coexist_adapter.h" +#include "private/esp_coexist_adapter.h" #include "rom/ets_sys.h" #include "soc/soc_caps.h" -#include "esp_modem_wrapper.h" +#include "private/esp_modem_wrapper.h" /**************************************************************************** * Pre-processor Definitions diff --git a/arch/risc-v/src/esp32c6/esp_wifi_adapter.c b/arch/risc-v/src/esp32c6/esp_wifi_adapter.c index 4dd2a7d0ef..a233634a04 100644 --- a/arch/risc-v/src/esp32c6/esp_wifi_adapter.c +++ b/arch/risc-v/src/esp32c6/esp_wifi_adapter.c @@ -73,9 +73,9 @@ #include "esp_private/esp_clk.h" #include "os.h" #include "esp_smartconfig.h" -#include "esp_coexist_internal.h" +#include "private/esp_coexist_internal.h" #include "rom/ets_sys.h" -#include "esp_modem_wrapper.h" +#include "private/esp_modem_wrapper.h" #if SOC_PM_MODEM_RETENTION_BY_REGDMA #include "esp_private/esp_regdma.h" @@ -284,6 +284,8 @@ int32_t esp_event_post_wrapper(const char *event_base, uint32_t ticks); static void wifi_apb80m_request_wrapper(void); static void wifi_apb80m_release_wrapper(void); +static void esp_phy_enable_wrapper(void); +static void esp_phy_disable_wrapper(void); static void timer_arm_wrapper(void *timer, uint32_t tmout, bool repeat); static void wifi_reset_mac_wrapper(void); static void wifi_clock_enable_wrapper(void); @@ -327,6 +329,8 @@ static void *coex_schm_curr_phase_get_wrapper(void); static int coex_register_start_cb_wrapper(int (* cb)(void)); static int coex_schm_process_restart_wrapper(void); static int coex_schm_register_cb_wrapper(int type, int(*cb)(int)); +static int coex_schm_flexible_period_set_wrapper(uint8_t period); +static uint8_t coex_schm_flexible_period_get_wrapper(void); static void esp_empty_wrapper(void); /* Second block of functions @@ -501,8 +505,8 @@ wifi_osi_funcs_t g_wifi_osi_funcs = esp_empty_wrapper, ._wifi_apb80m_request = wifi_apb80m_request_wrapper, ._wifi_apb80m_release = wifi_apb80m_release_wrapper, - ._phy_disable = esp_phy_disable, - ._phy_enable = esp_phy_enable, + ._phy_disable = esp_phy_disable_wrapper, + ._phy_enable = esp_phy_enable_wrapper, ._phy_update_country_info = esp_phy_update_country_info, ._read_mac = esp_read_mac_wrapper, ._timer_arm = timer_arm_wrapper, @@ -564,6 +568,8 @@ wifi_osi_funcs_t g_wifi_osi_funcs = ._coex_register_start_cb = coex_register_start_cb_wrapper, ._coex_schm_process_restart = coex_schm_process_restart_wrapper, ._coex_schm_register_cb = coex_schm_register_cb_wrapper, + ._coex_schm_flexible_period_set = coex_schm_flexible_period_set_wrapper, + ._coex_schm_flexible_period_get = coex_schm_flexible_period_get_wrapper, ._magic = ESP_WIFI_OS_ADAPTER_MAGIC, }; @@ -1561,6 +1567,48 @@ static void IRAM_ATTR wifi_apb80m_release_wrapper(void) #endif } +/**************************************************************************** + * Name: esp_phy_enable_wrapper + * + * Description: + * This function enables the WiFi PHY. It first enables the PHY for the + * WiFi modem, then sets the WiFi PHY enable flag to 1. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void esp_phy_enable_wrapper(void) +{ + esp_phy_enable(PHY_MODEM_WIFI); + phy_wifi_enable_set(1); +} + +/**************************************************************************** + * Name: esp_phy_disable_wrapper + * + * Description: + * This function disables the WiFi PHY. It first sets the WiFi PHY enable + * flag to 0, then disables the PHY for the WiFi modem. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void esp_phy_disable_wrapper(void) +{ + phy_wifi_enable_set(0); + esp_phy_disable(PHY_MODEM_WIFI); +} + /**************************************************************************** * Name: timer_arm_wrapper * @@ -2299,6 +2347,60 @@ static int coex_schm_register_cb_wrapper(int type, int(*cb)(int)) #endif } +/**************************************************************************** + * Name: coex_schm_flexible_period_set_wrapper + * + * Description: + * This function sets the coexistence scheme flexible period. If the + * coexistence power management feature is enabled + * (CONFIG_ESP_COEX_POWER_MANAGEMENT), it calls the function + * coex_schm_flexible_period_set with the given period and returns its + * result. If the feature is not enabled, it returns 0. + * + * Input Parameters: + * period - The flexible period to set. + * + * Returned Value: + * ESP_OK on success, or the result of coex_schm_flexible_period_set. + * + ****************************************************************************/ + +static int coex_schm_flexible_period_set_wrapper(uint8_t period) +{ +#if CONFIG_ESP_COEX_POWER_MANAGEMENT + return coex_schm_flexible_period_set(period); +#else + return 0; +#endif +} + +/**************************************************************************** + * Name: coex_schm_flexible_period_get_wrapper + * + * Description: + * This function gets the coexistence scheme flexible period. If the + * coexistence power management feature is enabled + * (CONFIG_ESP_COEX_POWER_MANAGEMENT), it calls the function + * coex_schm_flexible_period_get and returns its result. If the feature is + * not enabled, it returns 1. + * + * Input Parameters: + * None + * + * Returned Value: + * The coexistence scheme flexible period. + * + ****************************************************************************/ + +static uint8_t coex_schm_flexible_period_get_wrapper(void) +{ +#if CONFIG_ESP_COEX_POWER_MANAGEMENT + return coex_schm_flexible_period_get(); +#else + return 1; +#endif +} + /**************************************************************************** * Name: esp_empty_wrapper * diff --git a/arch/risc-v/src/esp32c6/hal_esp32c6.mk b/arch/risc-v/src/esp32c6/hal_esp32c6.mk index b3dd2e746a..b38a18754f 100644 --- a/arch/risc-v/src/esp32c6/hal_esp32c6.mk +++ b/arch/risc-v/src/esp32c6/hal_esp32c6.mk @@ -61,17 +61,19 @@ INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY ifeq ($(CONFIG_ESPRESSIF_SIMPLE_BOOT),y) INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)bootloader_support$(DELIM)include INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)bootloader_support$(DELIM)private_include - INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)bootloader_support$(DELIM)bootloader_flash$(DELIM)include INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)spi_flash$(DELIM)include INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)spi_flash$(DELIM)include$(DELIM)spi_flash INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_app_format$(DELIM)include endif +INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)bootloader_support$(DELIM)bootloader_flash$(DELIM)include + # Linker scripts ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.api.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.coexist.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.libgcc.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.net80211.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.newlib.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.phy.ld @@ -112,8 +114,9 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)port$(DELIM)$(CHIP_SERIES)$(DELIM)sar_periph_ctrl.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)port$(DELIM)$(CHIP_SERIES)$(DELIM)systimer.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)lib_printf.c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)phy_common.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)phy_init.c -CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_regi2c_$(CHIP_SERIES).c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_hp_regi2c_$(CHIP_SERIES).c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_systimer.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_wdt.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)port$(DELIM)brownout.c @@ -131,7 +134,6 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)spi_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)spi_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal.c -CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)twai_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)twai_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)cache_hal.c diff --git a/arch/risc-v/src/esp32h2/hal_esp32h2.mk b/arch/risc-v/src/esp32h2/hal_esp32h2.mk index 82154d52d2..91cfbc67be 100644 --- a/arch/risc-v/src/esp32h2/hal_esp32h2.mk +++ b/arch/risc-v/src/esp32h2/hal_esp32h2.mk @@ -36,6 +36,7 @@ INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)include INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)include$(DELIM)$(CHIP_SERIES) INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES) +INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)ld INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)include INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)port$(DELIM)include INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)port$(DELIM)include$(DELIM)private @@ -65,8 +66,9 @@ endif # Linker scripts -ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.api.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.libgcc.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.newlib.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.spiflash.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.version.ld @@ -117,7 +119,6 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)spi_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)spi_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal.c -CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)mpu_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)mcpwm_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)mmu_hal.c diff --git a/arch/xtensa/src/esp32/Make.defs b/arch/xtensa/src/esp32/Make.defs index ee3cacb984..27034f94ef 100644 --- a/arch/xtensa/src/esp32/Make.defs +++ b/arch/xtensa/src/esp32/Make.defs @@ -208,7 +208,7 @@ endif ESP_HAL_3RDPARTY_REPO = esp-hal-3rdparty ifndef ESP_HAL_3RDPARTY_VERSION - ESP_HAL_3RDPARTY_VERSION = 8e8e62cf6a7ae8a9659b91706024cab38af29118 + ESP_HAL_3RDPARTY_VERSION = 51afbfd1a17e806fa6fd8227a18395c1bbecbad3 endif ifndef ESP_HAL_3RDPARTY_URL diff --git a/arch/xtensa/src/esp32/Wireless.mk b/arch/xtensa/src/esp32/Wireless.mk index 93ef1b810b..127d82a149 100644 --- a/arch/xtensa/src/esp32/Wireless.mk +++ b/arch/xtensa/src/esp32/Wireless.mk @@ -79,6 +79,7 @@ CHIP_CSRCS += pkcs5.c CHIP_CSRCS += platform_util.c CHIP_CSRCS += platform.c CHIP_CSRCS += sha1.c +CHIP_CSRCS += sha3.c CHIP_CSRCS += sha256.c CHIP_CSRCS += sha512.c CHIP_CSRCS += pk.c @@ -92,9 +93,9 @@ CHIP_CSRCS += md5.c CHIP_CSRCS += oid.c CHIP_CSRCS += pem.c CHIP_CSRCS += hmac_drbg.c -CHIP_CSRCS += hash_info.c CHIP_CSRCS += rsa_alt_helpers.c CHIP_CSRCS += ecdh.c +CHIP_CSRCS += pk_ecc.c VPATH += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)mbedtls$(DELIM)port @@ -123,6 +124,7 @@ CFLAGS += $(DEFINE_PREFIX)IEEE8021X_EAPOL CFLAGS += $(DEFINE_PREFIX)USE_WPA2_TASK CFLAGS += $(DEFINE_PREFIX)CONFIG_SHA256 CFLAGS += $(DEFINE_PREFIX)CONFIG_SAE +CFLAGS += $(DEFINE_PREFIX)USE_WPS_TASK ifeq ($(CONFIG_ESP_WIFI_ENABLE_SAE_PK),y) CFLAGS += $(DEFINE_PREFIX)CONFIG_SAE_PK @@ -233,11 +235,11 @@ INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)$(WIFI_WPA_SUPPLICANT)$(DELIM) CHIP_CSRCS += esp_common.c CHIP_CSRCS += esp_hostap.c CHIP_CSRCS += esp_wpa_main.c -CHIP_CSRCS += esp_wpa2.c CHIP_CSRCS += esp_wpa3.c CHIP_CSRCS += esp_wpas_glue.c CHIP_CSRCS += esp_owe.c CHIP_CSRCS += esp_scan.c +CHIP_CSRCS += esp_wps.c VPATH += $(WIFI_WPA_SUPPLICANT)$(DELIM)esp_supplicant$(DELIM)src$(DELIM)crypto diff --git a/arch/xtensa/src/esp32/esp32_ble_adapter.c b/arch/xtensa/src/esp32/esp32_ble_adapter.c index f065066517..7296401ce0 100644 --- a/arch/xtensa/src/esp32/esp32_ble_adapter.c +++ b/arch/xtensa/src/esp32/esp32_ble_adapter.c @@ -71,7 +71,8 @@ #include "soc/soc_caps.h" #include "xtensa/core-macros.h" #include "xtensa/xtensa_api.h" -#include "esp_coexist_internal.h" +#include "private/esp_coexist_internal.h" +#include "private/esp_coexist_adapter.h" #include "esp32_ble_adapter.h" @@ -107,7 +108,7 @@ #define BTDM_MODEM_WAKE_UP_DELAY (4) /* delay in slots of modem wake up procedure, including re-enable PHY/RF */ #define OSI_FUNCS_TIME_BLOCKING 0xffffffff -#define OSI_VERSION 0x00010004 +#define OSI_VERSION 0x00010005 #define OSI_MAGIC_VALUE 0xfadebead #ifdef CONFIG_PM @@ -228,6 +229,7 @@ struct osi_funcs_s int (* _coex_version_get)(unsigned int *major, unsigned int *minor, unsigned int *patch); + void (* _patch_apply)(void); uint32_t _magic; }; @@ -381,6 +383,7 @@ static int coex_register_wifi_channel_change_callback_wrapper(void *cb); static int coex_version_get_wrapper(unsigned int *major, unsigned int *minor, unsigned int *patch); +static void patch_apply(void); /**************************************************************************** * Other functions @@ -468,6 +471,8 @@ extern void btdm_controller_scan_duplicate_list_clear(void); /* Shutdown */ extern void esp_bt_controller_shutdown(void); +extern void sdk_config_set_bt_pll_track_enable(bool enable); +extern void sdk_config_set_uart_flow_ctrl_enable(bool enable); extern uint8_t _bss_start_btdm[]; extern uint8_t _bss_end_btdm[]; @@ -478,16 +483,16 @@ extern uint32_t _data_end_btdm_rom; extern uint32_t _bt_bss_start; extern uint32_t _bt_bss_end; -extern uint32_t _nimble_bss_start; -extern uint32_t _nimble_bss_end; -extern uint32_t _btdm_bss_start; -extern uint32_t _btdm_bss_end; +extern uint32_t _bt_controller_bss_start; +extern uint32_t _bt_controller_bss_end; extern uint32_t _bt_data_start; extern uint32_t _bt_data_end; -extern uint32_t _nimble_data_start; -extern uint32_t _nimble_data_end; -extern uint32_t _btdm_data_start; -extern uint32_t _btdm_data_end; +extern uint32_t _bt_controller_data_start; +extern uint32_t _bt_controller_data_end; + +extern void config_bt_funcs_reset(void); +extern void config_ble_funcs_reset(void); +extern void config_btdm_funcs_reset(void); /**************************************************************************** * Private Data @@ -560,6 +565,7 @@ static struct osi_funcs_s g_osi_funcs_ro = ._interrupt_l3_restore = interrupt_restore, ._customer_queue_create = NULL, ._coex_version_get = coex_version_get_wrapper, + ._patch_apply = patch_apply, ._magic = OSI_MAGIC_VALUE, }; @@ -1834,7 +1840,7 @@ static void btdm_sleep_enter_phase2_wrapper(void) { if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) { - esp_phy_disable(); + esp_phy_disable(PHY_MODEM_BT); #ifdef CONFIG_PM if (g_pm_lock_acquired) { @@ -1845,7 +1851,7 @@ static void btdm_sleep_enter_phase2_wrapper(void) } else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) { - esp_phy_disable(); + esp_phy_disable(PHY_MODEM_BT); /* pause bluetooth baseband */ @@ -1879,7 +1885,7 @@ void btdm_sleep_exit_phase3_wrapper(void) if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) { - esp_phy_enable(); + esp_phy_enable(PHY_MODEM_BT); btdm_check_and_init_bb(); #ifdef CONFIG_PM esp_timer_stop(g_btdm_slp_tmr); @@ -1890,7 +1896,7 @@ void btdm_sleep_exit_phase3_wrapper(void) /* resume bluetooth baseband */ periph_module_enable(PERIPH_BT_BASEBAND_MODULE); - esp_phy_enable(); + esp_phy_enable(PHY_MODEM_BT); } } @@ -2260,41 +2266,50 @@ static int coex_version_get_wrapper(unsigned int *major, unsigned int *patch) { #ifdef CONFIG_ESP32_WIFI_BT_COEXIST - const char *ver_str = coex_version_get(); + coex_version_t version; - if (ver_str != NULL) - { - unsigned int _major = 0; - unsigned int _minor = 0; - unsigned int _patch = 0; + ASSERT(coex_version_get_value(&version) == ESP_OK); - if (sscanf(ver_str, "%u.%u.%u", &_major, &_minor, &_patch) != 3) - { - return -1; - } + *major = (unsigned int)version.major; + *minor = (unsigned int)version.minor; + *patch = (unsigned int)version.patch; - if (major != NULL) - { - *major = _major; - } - - if (minor != NULL) - { - *minor = _minor; - } - - if (patch != NULL) - { - *patch = _patch; - } - - return 0; - } + return 0; #endif return -1; } +/**************************************************************************** + * Name: patch_apply + * + * Description: + * This function resets the BTDM and BT functions based on the current + * configuration. If the configuration is not set to BLE only, it resets + * the BT functions. If the configuration is not set to BR/EDR only, it + * resets the BLE functions. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void patch_apply(void) +{ + config_btdm_funcs_reset(); + +#ifndef CONFIG_BTDM_CTRL_MODE_BLE_ONLY + config_bt_funcs_reset(); +#endif + +#ifndef CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY + config_ble_funcs_reset(); +#endif +} + /**************************************************************************** * Other functions ****************************************************************************/ @@ -3046,6 +3061,12 @@ int esp32_bt_controller_init(void) UNUSED(set_div_ret); #endif +#if CONFIG_BTDM_CTRL_HCI_UART_FLOW_CTRL_EN + sdk_config_set_uart_flow_ctrl_enable(true); +#else + sdk_config_set_uart_flow_ctrl_enable(false); +#endif + #ifdef CONFIG_PM if ((err = esp_timer_create(&create_args, &g_btdm_slp_tmr) != OK)) { @@ -3154,7 +3175,7 @@ int esp32_bt_controller_enable(esp_bt_mode_t mode) esp32_pm_lockacquire(); #endif - esp_phy_enable(); + esp_phy_enable(PHY_MODEM_BT); #ifdef CONFIG_ESP32_WIFI_BT_COEXIST coex_enable(); @@ -3165,6 +3186,8 @@ int esp32_bt_controller_enable(esp_bt_mode_t mode) btdm_controller_enable_sleep(true); } + sdk_config_set_bt_pll_track_enable(true); + /* inititalize bluetooth baseband */ btdm_check_and_init_bb(); @@ -3175,7 +3198,7 @@ int esp32_bt_controller_enable(esp_bt_mode_t mode) #ifdef CONFIG_ESP32_WIFI_BT_COEXIST coex_disable(); #endif - esp_phy_disable(); + esp_phy_disable(PHY_MODEM_BT); #ifdef CONFIG_PM if (g_btdm_allow_light_sleep == false) { @@ -3189,7 +3212,7 @@ int esp32_bt_controller_enable(esp_bt_mode_t mode) g_btdm_controller_status = ESP_BT_CONTROLLER_STATUS_ENABLED; - return OK; + return esp_wifi_to_errno(ret); } /**************************************************************************** @@ -3232,7 +3255,7 @@ int esp32_bt_controller_disable(void) coex_disable(); #endif - esp_phy_disable(); + esp_phy_disable(PHY_MODEM_BT); g_btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED; #ifdef CONFIG_PM diff --git a/arch/xtensa/src/esp32/esp32_wifi_adapter.c b/arch/xtensa/src/esp32/esp32_wifi_adapter.c index 5c91bfd2e7..e267a6970c 100644 --- a/arch/xtensa/src/esp32/esp32_wifi_adapter.c +++ b/arch/xtensa/src/esp32/esp32_wifi_adapter.c @@ -71,7 +71,7 @@ #ifdef CONFIG_ESP32_BLE # include "esp32_ble_adapter.h" # ifdef CONFIG_ESP32_WIFI_BT_COEXIST -# include "esp_coexist_internal.h" +# include "private/esp_coexist_internal.h" # endif #endif @@ -266,6 +266,8 @@ static void esp_dport_access_stall_other_cpu_start(void); static void esp_dport_access_stall_other_cpu_end(void); static void wifi_apb80m_request(void); static void wifi_apb80m_release(void); +static void esp_phy_enable_wrapper(void); +static void esp_phy_disable_wrapper(void); static int32_t esp_wifi_read_mac(uint8_t *mac, uint32_t type); static void esp_timer_arm(void *timer, uint32_t tmout, bool repeat); static void esp_timer_disarm(void *timer); @@ -340,6 +342,8 @@ static void *coex_schm_curr_phase_get_wrapper(void); static int coex_register_start_cb_wrapper(int (* cb)(void)); static int coex_schm_process_restart_wrapper(void); static int coex_schm_register_cb_wrapper(int type, int(*cb)(int)); +static int coex_schm_flexible_period_set_wrapper(uint8_t period); +static uint8_t coex_schm_flexible_period_get_wrapper(void); /**************************************************************************** * Private Data @@ -491,8 +495,8 @@ wifi_osi_funcs_t g_wifi_osi_funcs = esp_dport_access_stall_other_cpu_end, ._wifi_apb80m_request = wifi_apb80m_request, ._wifi_apb80m_release = wifi_apb80m_release, - ._phy_disable = esp_phy_disable, - ._phy_enable = esp_phy_enable, + ._phy_disable = esp_phy_disable_wrapper, + ._phy_enable = esp_phy_enable_wrapper, ._phy_common_clock_enable = esp_phy_common_clock_enable, ._phy_common_clock_disable = esp_phy_common_clock_disable, ._phy_update_country_info = esp32_phy_update_country_info, @@ -555,6 +559,8 @@ wifi_osi_funcs_t g_wifi_osi_funcs = ._coex_register_start_cb = coex_register_start_cb_wrapper, ._coex_schm_process_restart = coex_schm_process_restart_wrapper, ._coex_schm_register_cb = coex_schm_register_cb_wrapper, + ._coex_schm_flexible_period_set = coex_schm_flexible_period_set_wrapper, + ._coex_schm_flexible_period_get = coex_schm_flexible_period_get_wrapper, ._magic = ESP_WIFI_OS_ADAPTER_MAGIC, }; @@ -2531,6 +2537,50 @@ static void wifi_apb80m_release(void) #endif } +/**************************************************************************** + * Name: esp_phy_enable_wrapper + * + * Description: + * This is a wrapper for enabling the ESP PHY. It calls the esp_phy_enable + * function with PHY_MODEM_WIFI as the argument, and then calls the + * phy_wifi_enable_set function with 1 as the argument. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void esp_phy_enable_wrapper(void) +{ + esp_phy_enable(PHY_MODEM_WIFI); + phy_wifi_enable_set(1); +} + +/**************************************************************************** + * Name: esp_phy_disable_wrapper + * + * Description: + * This is a wrapper for disabling the ESP PHY. It first calls the + * phy_wifi_enable_set function with 0 as the argument, and then calls the + * esp_phy_disable function with PHY_MODEM_WIFI as the argument. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void esp_phy_disable_wrapper(void) +{ + phy_wifi_enable_set(0); + esp_phy_disable(PHY_MODEM_WIFI); +} + /**************************************************************************** * Name: esp_wifi_read_mac * @@ -3997,6 +4047,61 @@ static int coex_schm_register_cb_wrapper(int type, int(*cb)(int)) #endif } +/**************************************************************************** + * Name: coex_schm_flexible_period_set_wrapper + * + * Description: + * This is a wrapper for coex_schm_flexible_period_set. It sets the + * flexible period for the coexistence mechanism. If power management + * feature is enabled (CONFIG_ESP_COEX_POWER_MANAGEMENT), it calls the + * function with the given period. If the feature is not enabled, it + * returns 0. + * + * Input Parameters: + * period - The period to set for the coexistence mechanism. + * + * Returned Value: + * If power management is enabled, it returns the result of the + * coex_schm_flexible_period_set function. Otherwise, it returns 0. + * + ****************************************************************************/ + +static int coex_schm_flexible_period_set_wrapper(uint8_t period) +{ +#if CONFIG_ESP_COEX_POWER_MANAGEMENT + return coex_schm_flexible_period_set(period); +#else + return 0; +#endif +} + +/**************************************************************************** + * Name: coex_schm_flexible_period_get_wrapper + * + * Description: + * This is a wrapper for coex_schm_flexible_period_get. If power management + * feature is enabled (CONFIG_ESP_COEX_POWER_MANAGEMENT), it calls the + * function and returns its result. If the feature is not enabled, it + * returns 1. + * + * Input Parameters: + * None + * + * Returned Value: + * If power management is enabled, it returns the result of the + * coex_schm_flexible_period_get function. Otherwise, it returns 1. + * + ****************************************************************************/ + +static uint8_t coex_schm_flexible_period_get_wrapper(void) +{ +#if CONFIG_ESP_COEX_POWER_MANAGEMENT + return coex_schm_flexible_period_get(); +#else + return 1; +#endif +} + /**************************************************************************** * Name: esp_random_ulong * diff --git a/arch/xtensa/src/esp32/esp32_wireless.c b/arch/xtensa/src/esp32/esp32_wireless.c index ad9cc4201b..5b807eaf5b 100644 --- a/arch/xtensa/src/esp32/esp32_wireless.c +++ b/arch/xtensa/src/esp32/esp32_wireless.c @@ -43,7 +43,7 @@ # include "esp_private/wifi.h" # include "esp_wpa.h" #endif -#include "esp_coexist_internal.h" +#include "private/esp_coexist_internal.h" #include "periph_ctrl.h" #include "esp_phy_init.h" #include "phy_init_data.h" @@ -351,6 +351,85 @@ static void esp_wifi_set_log_level(void) * Public Functions ****************************************************************************/ +/**************************************************************************** + * Name: esp_wifi_to_errno + * + * Description: + * Transform from ESP Wi-Fi error code to NuttX error code + * + * Input Parameters: + * err - ESP Wi-Fi error code + * + * Returned Value: + * NuttX error code defined in errno.h + * + ****************************************************************************/ + +int32_t esp_wifi_to_errno(int err) +{ + int ret; + + if (err < ESP_ERR_WIFI_BASE) + { + /* Unmask component error bits */ + + ret = err & 0xfff; + + switch (ret) + { + case ESP_OK: + ret = OK; + break; + case ESP_ERR_NO_MEM: + ret = -ENOMEM; + break; + + case ESP_ERR_INVALID_ARG: + ret = -EINVAL; + break; + + case ESP_ERR_INVALID_STATE: + ret = -EIO; + break; + + case ESP_ERR_INVALID_SIZE: + ret = -EINVAL; + break; + + case ESP_ERR_NOT_FOUND: + ret = -ENOSYS; + break; + + case ESP_ERR_NOT_SUPPORTED: + ret = -ENOSYS; + break; + + case ESP_ERR_TIMEOUT: + ret = -ETIMEDOUT; + break; + + case ESP_ERR_INVALID_MAC: + ret = -EINVAL; + break; + + default: + ret = ERROR; + break; + } + } + else + { + ret = ERROR; + } + + if (ret != OK) + { + wlerr("ERROR: %s\n", esp_err_to_name(err)); + } + + return ret; +} + /**************************************************************************** * Functions needed by libphy.a ****************************************************************************/ diff --git a/arch/xtensa/src/esp32/esp32_wireless.h b/arch/xtensa/src/esp32/esp32_wireless.h index 6c18379268..27edf9a80d 100644 --- a/arch/xtensa/src/esp32/esp32_wireless.h +++ b/arch/xtensa/src/esp32/esp32_wireless.h @@ -85,10 +85,49 @@ struct esp_queuecache_s uint8_t *buffer; }; +/**************************************************************************** + * Inline Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: nuttx_err_to_freertos + * + * Description: + * Transform from Nuttx OS error code to FreeRTOS's pdTRUE or pdFALSE. + * + * Input Parameters: + * ret - NuttX error code + * + * Returned Value: + * Wi-Fi adapter error code + * + ****************************************************************************/ + +static inline int32_t nuttx_err_to_freertos(int ret) +{ + return ret >= 0; +} + /**************************************************************************** * Public Function Prototypes ****************************************************************************/ +/**************************************************************************** + * Name: esp_wifi_to_errno + * + * Description: + * Transform from ESP Wi-Fi error code to NuttX error code + * + * Input Parameters: + * err - ESP Wi-Fi error code + * + * Returned Value: + * NuttX error code defined in errno.h + * + ****************************************************************************/ + +int32_t esp_wifi_to_errno(int err); + /**************************************************************************** * Functions needed by libphy.a ****************************************************************************/ diff --git a/arch/xtensa/src/esp32/hal.mk b/arch/xtensa/src/esp32/hal.mk index e0c795aa49..2557353506 100644 --- a/arch/xtensa/src/esp32/hal.mk +++ b/arch/xtensa/src/esp32/hal.mk @@ -65,6 +65,10 @@ INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.api.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.libgcc.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.newlib-data.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.newlib-funcs.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.syscalls.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).peripherals.ld # Source files @@ -90,6 +94,7 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)port$(DELIM)$(CHIP_SERIES)$(DELIM)rtc_time.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)port$(DELIM)esp_clk_tree_common.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)regi2c_ctrl.c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)phy_common.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)phy_init.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_wdt.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)port$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)clk.c @@ -103,7 +108,6 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)ledc_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)rmt_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)mcpwm_hal.c -CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)uart_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)uart_hal.c diff --git a/arch/xtensa/src/esp32s2/Make.defs b/arch/xtensa/src/esp32s2/Make.defs index dedd395e8a..dedecd1141 100644 --- a/arch/xtensa/src/esp32s2/Make.defs +++ b/arch/xtensa/src/esp32s2/Make.defs @@ -151,7 +151,7 @@ endif ESP_HAL_3RDPARTY_REPO = esp-hal-3rdparty ifndef ESP_HAL_3RDPARTY_VERSION - ESP_HAL_3RDPARTY_VERSION = 8e8e62cf6a7ae8a9659b91706024cab38af29118 + ESP_HAL_3RDPARTY_VERSION = 51afbfd1a17e806fa6fd8227a18395c1bbecbad3 endif ifndef ESP_HAL_3RDPARTY_URL diff --git a/arch/xtensa/src/esp32s2/esp32s2_spi.c b/arch/xtensa/src/esp32s2/esp32s2_spi.c index ff3e64aaeb..00875d693f 100644 --- a/arch/xtensa/src/esp32s2/esp32s2_spi.c +++ b/arch/xtensa/src/esp32s2/esp32s2_spi.c @@ -1193,8 +1193,12 @@ static void esp32s2_spi_poll_exchange(struct esp32s2_spi_priv_s *priv, void *rxbuffer, size_t nwords) { + const uintptr_t spi_user_reg = SPI_USER_REG(priv->config->id); + const uintptr_t spi_w0_reg = SPI_W0_REG(priv->config->id); + const uintptr_t spi_cmd_reg = SPI_CMD_REG(priv->config->id); + const uintptr_t spi_miso_dlen_reg = SPI_MISO_DLEN_REG(priv->config->id); + const uintptr_t spi_mosi_dlen_reg = SPI_MOSI_DLEN_REG(priv->config->id); const uint32_t total_bytes = nwords * (priv->nbits / 8); - const uint32_t id = priv->config->id; uintptr_t bytes_remaining = total_bytes; const uint8_t *tp = (const uint8_t *)txbuffer; uint8_t *rp = (uint8_t *)rxbuffer; @@ -1205,7 +1209,7 @@ static void esp32s2_spi_poll_exchange(struct esp32s2_spi_priv_s *priv, * register (W0). */ - uintptr_t data_buf_reg = SPI_W0_REG(id); + uintptr_t data_buf_reg = spi_w0_reg; uint32_t transfer_size = MIN(SPI_MAX_BUF_SIZE, bytes_remaining); /* Write data words to data buffer registers. @@ -1233,28 +1237,27 @@ static void esp32s2_spi_poll_exchange(struct esp32s2_spi_priv_s *priv, data_buf_reg += sizeof(uintptr_t); } - esp32s2_spi_set_regbits(SPI_USER_REG(id), SPI_USR_MOSI_M); + esp32s2_spi_set_regbits(spi_user_reg, SPI_USR_MOSI_M); if (rp == NULL) { - esp32s2_spi_clr_regbits(SPI_USER_REG(id), SPI_USR_MISO_M); + esp32s2_spi_clr_regbits(spi_user_reg, SPI_USR_MISO_M); } else { - esp32s2_spi_set_regbits(SPI_USER_REG(id), SPI_USR_MISO_M); + esp32s2_spi_set_regbits(spi_user_reg, SPI_USR_MISO_M); } - putreg32((transfer_size * 8) - 1, SPI_MOSI_DLEN_REG(id)); - - putreg32((transfer_size * 8) - 1, SPI_MISO_DLEN_REG(id)); + putreg32((transfer_size * 8) - 1, spi_mosi_dlen_reg); + putreg32((transfer_size * 8) - 1, spi_miso_dlen_reg); /* Trigger start of user-defined transaction for master. */ - esp32s2_spi_set_regbits(SPI_CMD_REG(id), SPI_USR_M); + esp32s2_spi_set_regbits(spi_cmd_reg, SPI_USR_M); /* Wait for the user-defined transaction to finish. */ - while ((getreg32(SPI_CMD_REG(id)) & SPI_USR_M) != 0) + while ((getreg32(spi_cmd_reg) & SPI_USR_M) != 0) { ; } @@ -1265,7 +1268,7 @@ static void esp32s2_spi_poll_exchange(struct esp32s2_spi_priv_s *priv, * register (W0). */ - data_buf_reg = SPI_W0_REG(id); + data_buf_reg = spi_w0_reg; /* Read received data words from SPI data buffer registers. */ @@ -1478,6 +1481,10 @@ void esp32s2_spi_dma_init(struct spi_dev_s *dev) static void esp32s2_spi_init(struct spi_dev_s *dev) { struct esp32s2_spi_priv_s *priv = (struct esp32s2_spi_priv_s *)dev; + const uintptr_t spi_user_reg = SPI_USER_REG(priv->config->id); + const uintptr_t spi_user1_reg = SPI_USER1_REG(priv->config->id); + const uintptr_t spi_slave_reg = SPI_SLAVE_REG(priv->config->id); + const uintptr_t spi_misc_reg = SPI_MISC_REG(priv->config->id); const struct esp32s2_spi_config_s *config = priv->config; const uint32_t id = config->id; uint32_t regval; @@ -1529,19 +1536,19 @@ static void esp32s2_spi_init(struct spi_dev_s *dev) modifyreg32(SYSTEM_PERIP_RST_EN0_REG, config->rst_bit, 0); regval = SPI_DOUTDIN_M | SPI_USR_MISO_M | SPI_USR_MOSI_M | SPI_CS_HOLD_M; - putreg32(regval, SPI_USER_REG(id)); - putreg32(0, SPI_USER1_REG(id)); - putreg32(0, SPI_SLAVE_REG(id)); + putreg32(regval, spi_user_reg); + putreg32(0, spi_user1_reg); + putreg32(0, spi_slave_reg); putreg32(SPI_CS1_DIS_M | SPI_CS2_DIS_M, - SPI_MISC_REG(id)); + spi_misc_reg); #if SPI_HAVE_SWCS - esp32s2_spi_set_regbits(SPI_MISC_REG(id), SPI_CS0_DIS_M); + esp32s2_spi_set_regbits(spi_misc_reg, SPI_CS0_DIS_M); #endif putreg32(0, SPI_CTRL_REG(id)); putreg32(VALUE_TO_FIELD(0, SPI_CS_HOLD_TIME), - SPI_USER1_REG(id)); + spi_user1_reg); #if defined(CONFIG_ESP32S2_SPI2_DMA) || defined(CONFIG_ESP32S2_SPI3_DMA) esp32s2_spi_dma_init(dev); diff --git a/arch/xtensa/src/esp32s2/esp32s2_spiflash_mtd.c b/arch/xtensa/src/esp32s2/esp32s2_spiflash_mtd.c index 54ead194a4..561ce846db 100644 --- a/arch/xtensa/src/esp32s2/esp32s2_spiflash_mtd.c +++ b/arch/xtensa/src/esp32s2/esp32s2_spiflash_mtd.c @@ -183,7 +183,7 @@ static int esp32s2_erase(struct mtd_dev_s *dev, off_t startblock, #ifdef CONFIG_ESP32S2_STORAGE_MTD_DEBUG finfo("%s(%p, 0x%x, %d)\n", __func__, dev, startblock, nblocks); - finfo("spi_flash_erase_range(0x%x, %d)\n", offset, nbytes); + finfo("esp32s2_erase(0x%x, %d)\n", offset, nbytes); #endif ret = nxmutex_lock(&g_lock); @@ -239,7 +239,7 @@ static ssize_t esp32s2_read(struct mtd_dev_s *dev, off_t offset, #ifdef CONFIG_ESP32S2_STORAGE_MTD_DEBUG finfo("%s(%p, 0x%x, %d, %p)\n", __func__, dev, offset, nbytes, buffer); - finfo("spi_flash_read(0x%x, %p, %d)\n", offset, buffer, nbytes); + finfo("esp32s2_read(0x%x, %p, %d)\n", offset, buffer, nbytes); #endif /* Acquire the mutex. */ @@ -293,7 +293,7 @@ static ssize_t esp32s2_bread(struct mtd_dev_s *dev, off_t startblock, finfo("%s(%p, 0x%x, %d, %p)\n", __func__, dev, startblock, nblocks, buffer); - finfo("spi_flash_read(0x%x, %p, %d)\n", addr, buffer, size); + finfo("esp32s2_bread(0x%x, %p, %d)\n", addr, buffer, size); #endif ret = nxmutex_lock(&g_lock); @@ -345,7 +345,7 @@ static ssize_t esp32s2_read_decrypt(struct mtd_dev_s *dev, #ifdef CONFIG_ESP32S2_STORAGE_MTD_DEBUG finfo("%s(%p, 0x%x, %d, %p)\n", __func__, dev, offset, nbytes, buffer); - finfo("spi_flash_read_encrypted(0x%x, %p, %d)\n", offset, buffer, + finfo("esp32s2_read_decrypt(0x%x, %p, %d)\n", offset, buffer, nbytes); #endif @@ -402,7 +402,7 @@ static ssize_t esp32s2_bread_decrypt(struct mtd_dev_s *dev, finfo("%s(%p, 0x%x, %d, %p)\n", __func__, dev, startblock, nblocks, buffer); - finfo("spi_flash_read_encrypted(0x%x, %p, %d)\n", addr, buffer, size); + finfo("esp32s2_bread_decrypt(0x%x, %p, %d)\n", addr, buffer, size); #endif ret = nxmutex_lock(&g_lock); @@ -458,7 +458,7 @@ static ssize_t esp32s2_write(struct mtd_dev_s *dev, off_t offset, #ifdef CONFIG_ESP32S2_STORAGE_MTD_DEBUG finfo("%s(%p, 0x%x, %d, %p)\n", __func__, dev, offset, nbytes, buffer); - finfo("spi_flash_write(0x%x, %p, %d)\n", offset, buffer, nbytes); + finfo("esp32s2_write(0x%x, %p, %d)\n", offset, buffer, nbytes); #endif /* Acquire the mutex. */ @@ -514,7 +514,7 @@ static ssize_t esp32s2_bwrite_encrypt(struct mtd_dev_s *dev, finfo("%s(%p, 0x%x, %d, %p)\n", __func__, dev, startblock, nblocks, buffer); - finfo("spi_flash_write_encrypted(0x%x, %p, %d)\n", addr, buffer, size); + finfo("esp32s2_bwrite_encrypt(0x%x, %p, %d)\n", addr, buffer, size); #endif ret = nxmutex_lock(&g_lock); @@ -523,7 +523,7 @@ static ssize_t esp32s2_bwrite_encrypt(struct mtd_dev_s *dev, return ret; } - ret = spi_flash_write_encrypted(addr, buffer, size); + ret = esp_rom_spiflash_write_encrypted(addr, (uint32_t *)buffer, size); nxmutex_unlock(&g_lock); if (ret == OK) @@ -566,7 +566,7 @@ static ssize_t esp32s2_bwrite(struct mtd_dev_s *dev, off_t startblock, finfo("%s(%p, 0x%x, %d, %p)\n", __func__, dev, startblock, nblocks, buffer); - finfo("spi_flash_write(0x%x, %p, %d)\n", addr, buffer, size); + finfo("esp32s2_bwrite(0x%x, %p, %d)\n", addr, buffer, size); #endif ret = nxmutex_lock(&g_lock); diff --git a/arch/xtensa/src/esp32s2/hal.mk b/arch/xtensa/src/esp32s2/hal.mk index efa79e09b1..a847ed9e2c 100644 --- a/arch/xtensa/src/esp32s2/hal.mk +++ b/arch/xtensa/src/esp32s2/hal.mk @@ -61,6 +61,9 @@ INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.api.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.libgcc.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.newlib-data.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.newlib-funcs.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.spiflash.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).peripherals.ld @@ -96,7 +99,6 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)ledc_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)ledc_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)rmt_hal.c -CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)uart_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)uart_hal.c diff --git a/arch/xtensa/src/esp32s3/Make.defs b/arch/xtensa/src/esp32s3/Make.defs index 64b7befd2c..702c74a8db 100644 --- a/arch/xtensa/src/esp32s3/Make.defs +++ b/arch/xtensa/src/esp32s3/Make.defs @@ -209,7 +209,7 @@ endif ESP_HAL_3RDPARTY_REPO = esp-hal-3rdparty ifndef ESP_HAL_3RDPARTY_VERSION - ESP_HAL_3RDPARTY_VERSION = 8e8e62cf6a7ae8a9659b91706024cab38af29118 + ESP_HAL_3RDPARTY_VERSION = 51afbfd1a17e806fa6fd8227a18395c1bbecbad3 endif ifndef ESP_HAL_3RDPARTY_URL diff --git a/arch/xtensa/src/esp32s3/Wireless.mk b/arch/xtensa/src/esp32s3/Wireless.mk index 6a4023b77b..74b6384e4b 100644 --- a/arch/xtensa/src/esp32s3/Wireless.mk +++ b/arch/xtensa/src/esp32s3/Wireless.mk @@ -80,6 +80,7 @@ CHIP_CSRCS += pkcs5.c CHIP_CSRCS += platform_util.c CHIP_CSRCS += platform.c CHIP_CSRCS += sha1.c +CHIP_CSRCS += sha3.c CHIP_CSRCS += sha256.c CHIP_CSRCS += sha512.c CHIP_CSRCS += pk.c @@ -93,9 +94,9 @@ CHIP_CSRCS += md5.c CHIP_CSRCS += oid.c CHIP_CSRCS += pem.c CHIP_CSRCS += hmac_drbg.c -CHIP_CSRCS += hash_info.c CHIP_CSRCS += rsa_alt_helpers.c CHIP_CSRCS += ecdh.c +CHIP_CSRCS += pk_ecc.c VPATH += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)mbedtls$(DELIM)port @@ -124,6 +125,7 @@ CFLAGS += $(DEFINE_PREFIX)IEEE8021X_EAPOL CFLAGS += $(DEFINE_PREFIX)USE_WPA2_TASK CFLAGS += $(DEFINE_PREFIX)CONFIG_SHA256 CFLAGS += $(DEFINE_PREFIX)CONFIG_SAE +CFLAGS += $(DEFINE_PREFIX)USE_WPS_TASK ifeq ($(CONFIG_ESP_WIFI_ENABLE_SAE_PK),y) CFLAGS += $(DEFINE_PREFIX)CONFIG_SAE_PK @@ -234,11 +236,11 @@ INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)$(WIFI_WPA_SUPPLICANT)$(DELIM) CHIP_CSRCS += esp_common.c CHIP_CSRCS += esp_hostap.c CHIP_CSRCS += esp_wpa_main.c -CHIP_CSRCS += esp_wpa2.c CHIP_CSRCS += esp_wpa3.c CHIP_CSRCS += esp_wpas_glue.c CHIP_CSRCS += esp_owe.c CHIP_CSRCS += esp_scan.c +CHIP_CSRCS += esp_wps.c VPATH += $(WIFI_WPA_SUPPLICANT)$(DELIM)esp_supplicant$(DELIM)src$(DELIM)crypto diff --git a/arch/xtensa/src/esp32s3/esp32s3_ble_adapter.c b/arch/xtensa/src/esp32s3/esp32s3_ble_adapter.c index 5f5b537d16..473a9f479e 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_ble_adapter.c +++ b/arch/xtensa/src/esp32s3/esp32s3_ble_adapter.c @@ -63,14 +63,17 @@ #include "esp_bt.h" #include "esp_log.h" #include "esp_mac.h" +#include "esp_intr_alloc.h" +#include "esp_private/esp_clk.h" #include "esp_private/phy.h" #include "esp_private/wifi.h" #include "esp_random.h" #include "esp_timer.h" +#include "esp_rom_sys.h" #include "periph_ctrl.h" #include "rom/ets_sys.h" #include "soc/soc_caps.h" -#include "esp_coexist_internal.h" +#include "private/esp_coexist_internal.h" #include "esp32s3_ble_adapter.h" @@ -93,7 +96,7 @@ #define BTDM_LPCLK_SEL_8M (3) #define OSI_FUNCS_TIME_BLOCKING 0xffffffff -#define OSI_VERSION 0x00010006 +#define OSI_VERSION 0x00010009 #define OSI_MAGIC_VALUE 0xfadebead #ifdef CONFIG_ESP32S3_SPIFLASH @@ -111,6 +114,28 @@ * Private Types ****************************************************************************/ +/* Pack using bitfields for better memory use */ + +typedef struct vector_desc_s vector_desc_t; + +struct vector_desc_s +{ + int flags: 16; + unsigned int cpu: 1; + unsigned int intno: 5; + int source: 8; + void *shared_vec_info; + vector_desc_t *next; +}; + +/** Interrupt handler associated data structure */ + +struct intr_handle_data_t +{ + vector_desc_t *vector_desc; + void *shared_vector_desc; +}; + /* VHCI function interface */ typedef struct vhci_host_callback_s @@ -119,18 +144,33 @@ typedef struct vhci_host_callback_s int (*notify_host_recv)(uint8_t *data, uint16_t len); /* callback used to notify that the controller has a packet to send to the host */ } vhci_host_callback_t; +typedef struct +{ + int source; /* ISR source */ + int flags; /* ISR alloc flag */ + void (*fn)(void *); /* ISR function */ + void *arg; /* ISR function args */ + intr_handle_t *handle; /* ISR handle */ + esp_err_t ret; +} btdm_isr_alloc_t; + /* BLE OS function */ struct osi_funcs_s { uint32_t _magic; uint32_t _version; - void (*_interrupt_set)(int cpu_no, int intr_source, - int interrupt_no, int interrpt_prio); - void (*_interrupt_clear)(int interrupt_source, int interrupt_no); - void (*_interrupt_handler_set)(int interrupt_no, void * fn, void *arg); - void (*_interrupt_disable)(void); - void (*_interrupt_restore)(void); + int (* _interrupt_alloc)(int cpu_id, + int source, + intr_handler_t handler, + void *arg, + void **ret_handle); + int (* _interrupt_free)(void *handle); + void (*_interrupt_handler_set_rsv)(int interrupt_no, + intr_handler_t fn, + void *arg); + void (*_global_intr_disable)(void); + void (*_global_intr_restore)(void); void (*_task_yield)(void); void (*_task_yield_from_isr)(void); void *(*_semphr_create)(uint32_t max, uint32_t init); @@ -171,15 +211,23 @@ struct osi_funcs_s void (* _btdm_sleep_exit_phase3)(void); /* called from task */ void (* _coex_wifi_sleep_set)(bool sleep); int (* _coex_core_ble_conn_dyn_prio_get)(bool *low, bool *high); + int (* _coex_schm_register_btdm_callback)(void *callback); void (* _coex_schm_status_bit_set)(uint32_t type, uint32_t status); void (* _coex_schm_status_bit_clear)(uint32_t type, uint32_t status); - void (* _interrupt_on)(int intr_num); - void (* _interrupt_off)(int intr_num); + uint32_t (* _coex_schm_interval_get)(void); + uint8_t (* _coex_schm_curr_period_get)(void); + void *(* _coex_schm_curr_phase_get)(void); + int (* _interrupt_enable)(void *handle); + int (* _interrupt_disable)(void *handle); void (* _esp_hw_power_down)(void); void (* _esp_hw_power_up)(void); void (* _ets_backup_dma_copy)(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_rem); + void (* _ets_delay_us)(uint32_t us); + void (* _btdm_rom_table_ready)(void); + bool (* _coex_bt_wakeup_request)(void); + void (* _coex_bt_wakeup_request_end)(void); }; /* BLE message queue private data */ @@ -212,12 +260,12 @@ typedef union struct { uint32_t enable : 1; /* whether low power mode is required */ - uint32_t lpclk_sel : 2; /* low power clock source */ + uint32_t lpclk_sel : 3; /* low power clock source */ uint32_t mac_bb_pd : 1; /* whether hardware(MAC, BB) force-power-down is required during sleep */ uint32_t wakeup_timer_required : 1; /* whether system timer is needed */ uint32_t no_light_sleep : 1; /* do not allow system to enter light sleep after bluetooth is enabled */ uint32_t main_xtal_pu : 1; /* power up main XTAL */ - uint32_t reserved : 25; /* reserved */ + uint32_t reserved : 24; /* reserved */ }; uint32_t val; } btdm_lpcntl_t; @@ -242,6 +290,7 @@ typedef union enum btdm_wakeup_src_e { BTDM_ASYNC_WAKEUP_SRC_VHCI, + BTDM_ASYNC_WAKEUP_REQ_COEX, BTDM_ASYNC_WAKEUP_SRC_DISA, BTDM_ASYNC_WAKEUP_SRC_TMR, BTDM_ASYNC_WAKEUP_SRC_MAX, @@ -279,12 +328,14 @@ struct irqstate_list_s * Functions to be registered to struct osi_funcs_s ****************************************************************************/ -static void interrupt_set_wrapper(int cpu_no, int intr_source, - int intr_num, int intr_prio); -static void interrupt_clear_wrapper(int intr_source, int intr_num); -static void interrupt_handler_set_wrapper(int intr_num, void *fn, void *arg); -static void IRAM_ATTR interrupt_disable(void); -static void IRAM_ATTR interrupt_restore(void); +static int interrupt_alloc_wrapper(int cpu_id, + int source, + intr_handler_t handler, + void *arg, + void **ret_handle); +static int interrupt_free_wrapper(void *handle); +static void IRAM_ATTR global_interrupt_disable(void); +static void IRAM_ATTR global_interrupt_restore(void); static void IRAM_ATTR task_yield_from_isr(void); static void *semphr_create_wrapper(uint32_t max, uint32_t init); static void semphr_delete_wrapper(void *semphr); @@ -328,16 +379,22 @@ static void btdm_sleep_enter_phase1_wrapper(uint32_t lpcycles); static void btdm_sleep_enter_phase2_wrapper(void); static void btdm_sleep_exit_phase3_wrapper(void); static void coex_wifi_sleep_set_hook(bool sleep); +static int coex_schm_register_btdm_callback_wrapper(void *callback); static void coex_schm_status_bit_set_wrapper(uint32_t type, uint32_t status); static void coex_schm_status_bit_clear_wrapper(uint32_t type, uint32_t status); - -static void interrupt_on_wrapper(int intr_num); -static void interrupt_off_wrapper(int intr_num); -void IRAM_ATTR btdm_hw_mac_power_down_wrapper(void); -void IRAM_ATTR btdm_hw_mac_power_up_wrapper(void); -void IRAM_ATTR btdm_backup_dma_copy_wrapper(uint32_t reg, uint32_t mem_addr, - uint32_t num, bool to_mem); +static uint32_t coex_schm_interval_get_wrapper(void); +static uint8_t coex_schm_curr_period_get_wrapper(void); +static void * coex_schm_curr_phase_get_wrapper(void); +static int interrupt_enable_wrapper(void *handle); +static int interrupt_disable_wrapper(void *handle); +static void btdm_hw_mac_power_down_wrapper(void); +static void btdm_hw_mac_power_up_wrapper(void); +static void btdm_backup_dma_copy_wrapper(uint32_t reg, uint32_t mem_addr, + uint32_t num, bool to_mem); +static void btdm_funcs_table_ready_wrapper(void); +static bool coex_bt_wakeup_request(void); +static void coex_bt_wakeup_request_end(void); /**************************************************************************** * Other functions @@ -364,6 +421,7 @@ static void IRAM_ATTR btdm_mac_bb_power_up_cb(void); #endif static void btdm_controller_mem_init(void); static void bt_controller_deinit_internal(void); +static void btdm_low_power_mode_deinit(void); static bool async_wakeup_request(int event); static void async_wakeup_request_end(int event); @@ -426,6 +484,7 @@ extern bool btdm_deep_sleep_mem_init(void); extern void btdm_deep_sleep_mem_deinit(void); extern void btdm_ble_power_down_dma_copy(bool copy); extern uint8_t btdm_sleep_clock_sync(void); +extern void sdk_config_extend_set_pll_track(bool enable); #if CONFIG_MAC_BB_PD extern void esp_mac_bb_power_down(void); @@ -434,14 +493,16 @@ extern void ets_backup_dma_copy(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_mem); #endif +extern void btdm_cca_feature_enable(void); + extern uint8_t _bt_bss_start[]; extern uint8_t _bt_bss_end[]; -extern uint8_t _btdm_bss_start[]; -extern uint8_t _btdm_bss_end[]; +extern uint8_t _bt_controller_bss_start[]; +extern uint8_t _bt_controller_bss_end[]; extern uint8_t _bt_data_start[]; extern uint8_t _bt_data_end[]; -extern uint8_t _btdm_data_start[]; -extern uint8_t _btdm_data_end[]; +extern uint8_t _bt_controller_data_start[]; +extern uint8_t _bt_controller_data_end[]; /**************************************************************************** * Private Data @@ -453,11 +514,11 @@ static struct osi_funcs_s g_osi_funcs = { ._magic = OSI_MAGIC_VALUE, ._version = OSI_VERSION, - ._interrupt_set = interrupt_set_wrapper, - ._interrupt_clear = interrupt_clear_wrapper, - ._interrupt_handler_set = interrupt_handler_set_wrapper, - ._interrupt_disable = interrupt_disable, - ._interrupt_restore = interrupt_restore, + ._interrupt_alloc = interrupt_alloc_wrapper, + ._interrupt_free = interrupt_free_wrapper, + ._interrupt_handler_set_rsv = NULL, + ._global_intr_disable = global_interrupt_disable, + ._global_intr_restore = global_interrupt_restore, ._task_yield = task_yield_from_isr, ._task_yield_from_isr = task_yield_from_isr, ._semphr_create = semphr_create_wrapper, @@ -496,16 +557,25 @@ static struct osi_funcs_s g_osi_funcs = ._btdm_sleep_exit_phase3 = btdm_sleep_exit_phase3_wrapper, ._coex_wifi_sleep_set = coex_wifi_sleep_set_hook, ._coex_core_ble_conn_dyn_prio_get = NULL, + ._coex_schm_register_btdm_callback = + coex_schm_register_btdm_callback_wrapper, ._coex_schm_status_bit_set = coex_schm_status_bit_set_wrapper, ._coex_schm_status_bit_clear = coex_schm_status_bit_clear_wrapper, - ._interrupt_on = interrupt_on_wrapper, - ._interrupt_off = interrupt_off_wrapper, + ._coex_schm_interval_get = coex_schm_interval_get_wrapper, + ._coex_schm_curr_period_get = coex_schm_curr_period_get_wrapper, + ._coex_schm_curr_phase_get = coex_schm_curr_phase_get_wrapper, + ._interrupt_enable = interrupt_enable_wrapper, + ._interrupt_disable = interrupt_disable_wrapper, ._esp_hw_power_down = btdm_hw_mac_power_down_wrapper, ._esp_hw_power_up = btdm_hw_mac_power_up_wrapper, ._ets_backup_dma_copy = btdm_backup_dma_copy_wrapper, + ._ets_delay_us = esp_rom_delay_us, + ._btdm_rom_table_ready = btdm_funcs_table_ready_wrapper, + ._coex_bt_wakeup_request = coex_bt_wakeup_request, + ._coex_bt_wakeup_request_end = coex_bt_wakeup_request_end, }; -static DRAM_ATTR struct osi_funcs_s *osi_funcs_p; +static DRAM_ATTR struct osi_funcs_s *g_osi_funcs_p; /* Controller status */ @@ -640,90 +710,121 @@ static IRAM_ATTR void esp_bt_power_domain_off(void) } /**************************************************************************** - * Name: interrupt_set_wrapper + * Name: interrupt_alloc_wrapper * * Description: - * Bind IRQ and resource with given parameters. + * This function allocates an interrupt. It first allocates memory for the + * interrupt and its handle. If this fails, it returns an error. Then, it + * sets up the interrupt and gets its IRQ. If this fails, it returns an + * error. Finally, it attaches the interrupt to the IRQ. If this fails, it + * returns an error. * * Input Parameters: - * cpu_no - The CPU which the interrupt number belongs. - * intr_source - The interrupt peripheral number. - * intr_num - The interrupt CPU number. - * intr_prio - The interrupt priority. + * cpu_id - The ID of the CPU where the interrupt will be allocated. + * source - The source of the interrupt. + * handler - The handler function for the interrupt. + * arg - The argument for the handler function. + * ret_handle - A pointer to the handle of the interrupt. * * Returned Value: - * None + * ESP_OK on success, or ESP_ERR_INVALID_ARG on failure. * ****************************************************************************/ -static void interrupt_set_wrapper(int cpu_no, - int intr_source, - int intr_num, - int intr_prio) +static int interrupt_alloc_wrapper(int cpu_id, + int source, + intr_handler_t handler, + void *arg, + void **ret_handle) { - /* There is no need to set up the interrupt matrix here - neither by - * calling `esp_rom_route_intr_matrix` nor by directly setting the - * related registers - because the callback `interrupt_on_wrapper` calls - * `up_enable_irq`, which already set this up. - */ + btdm_isr_alloc_t *p; + intr_handle_data_t *handle; + vector_desc_t *vd; + int ret = OK; + int cpuint; + int irq; - wlinfo("cpu_no=%d , intr_source=%d , intr_num=%d, intr_prio=%d\n", - cpu_no, intr_source, intr_num, intr_prio); + wlinfo("cpu_id=%d , source=%d , handler=%p, arg=%p, ret_handle=%p\n", + cpu_id, source, handler, arg, ret_handle); + + p = kmm_calloc(1, sizeof(btdm_isr_alloc_t)); + if (p == NULL) + { + return ESP_ERR_NOT_FOUND; + } + + handle = kmm_calloc(1, sizeof(intr_handle_data_t)); + if (handle == NULL) + { + free(p); + return ESP_ERR_NOT_FOUND; + } + + p->source = source; + p->flags = ESP_INTR_FLAG_LEVEL2 | ESP_INTR_FLAG_IRAM; + p->fn = handler; + p->arg = arg; + p->handle = (intr_handle_t *)ret_handle; + + cpuint = esp32s3_setup_irq(cpu_id, source, 2, ESP32S3_CPUINT_LEVEL); + if (cpuint < 0) + { + kmm_free(handle); + return ESP_ERR_NOT_FOUND; + } + + vd = kmm_calloc(1, sizeof(vector_desc_t)); + if (vd == NULL) + { + kmm_free(handle); + return ESP_ERR_NOT_FOUND; + } + + vd->intno = cpuint; + vd->cpu = cpu_id; + vd->source = source; + + irq = esp32s3_getirq(cpu_id, cpuint); + + handle->vector_desc = vd; + handle->shared_vector_desc = vd->shared_vec_info; + + *(p->handle) = handle; + + ret = irq_attach(irq, esp_int_adpt_cb, p); + if (ret != OK) + { + kmm_free(p); + kmm_free(handle); + return ESP_ERR_NOT_FOUND; + } + + return ESP_OK; } /**************************************************************************** - * Name: interrupt_clear_wrapper + * Name: interrupt_free_wrapper * * Description: * Not supported. Clear previously bound interrupt IRQ. * * Input Parameters: - * intr_source - The interrupt peripheral number. - * intr_num - The interrupt CPU number. + * handle - A pointer to the interrupt handle. * * Returned Value: * NuttX error code * ****************************************************************************/ -static void IRAM_ATTR interrupt_clear_wrapper(int intr_source, int intr_num) +static int interrupt_free_wrapper(void *handle) { + DEBUGPANIC(); + + return ESP_FAIL; } /**************************************************************************** - * Name: interrupt_handler_set_wrapper - * - * Description: - * Register interrupt function - * - * Input Parameters: - * intr_num - The interrupt CPU number. - * fn - Interrupt function - * arg - Function private data - * - * Returned Value: - * None - * - ****************************************************************************/ - -static void interrupt_handler_set_wrapper(int intr_num, void *fn, void *arg) -{ - struct irq_adpt_s *adapter; - int irq = esp32s3_getirq(0, intr_num); - - wlinfo("intr_num=%d fn=%p arg=%p irq=%d\n", intr_num, fn, arg, irq); - - adapter = kmm_malloc(sizeof(struct irq_adpt_s)); - DEBUGASSERT(adapter); - - adapter->func = fn; - adapter->arg = arg; - - DEBUGVERIFY(irq_attach(irq, esp_int_adpt_cb, adapter)); -} - -/**************************************************************************** - * Name: interrupt_disable + * Name: global_interrupt_disable * * Description: * Enter critical section by disabling interrupts and taking the spin lock @@ -737,7 +838,7 @@ static void interrupt_handler_set_wrapper(int intr_num, void *fn, void *arg) * ****************************************************************************/ -static void IRAM_ATTR interrupt_disable(void) +static void IRAM_ATTR global_interrupt_disable(void) { struct irqstate_list_s *irqstate; @@ -751,7 +852,7 @@ static void IRAM_ATTR interrupt_disable(void) } /**************************************************************************** - * Name: interrupt_restore + * Name: global_interrupt_restore * * Description: * Exit from critical section by enabling interrupts and releasing the spin @@ -765,7 +866,7 @@ static void IRAM_ATTR interrupt_disable(void) * ****************************************************************************/ -static void IRAM_ATTR interrupt_restore(void) +static void IRAM_ATTR global_interrupt_restore(void) { struct irqstate_list_s *irqstate; @@ -1660,7 +1761,7 @@ static void btdm_sleep_enter_phase2_wrapper(void) { if (g_lp_stat.phy_enabled) { - esp_phy_disable(); + esp_phy_disable(PHY_MODEM_BT); g_lp_stat.phy_enabled = 0; } else @@ -1668,13 +1769,13 @@ static void btdm_sleep_enter_phase2_wrapper(void) DEBUGPANIC(); } +#ifdef CONFIG_PM if (g_lp_stat.pm_lock_released == 0) { -#ifdef CONFIG_PM_ENABLE esp32s3_pm_lockrelease(); -#endif g_lp_stat.pm_lock_released = 1; } +#endif } } @@ -1694,7 +1795,7 @@ static void btdm_sleep_enter_phase2_wrapper(void) static void btdm_sleep_exit_phase3_wrapper(void) { -#ifdef CONFIG_PM_ENABLE +#ifdef CONFIG_PM if (g_lp_stat.pm_lock_released) { esp32s3_pm_lockacquire(); @@ -1706,7 +1807,7 @@ static void btdm_sleep_exit_phase3_wrapper(void) { if (g_lp_stat.phy_enabled == 0) { - esp_phy_enable(); + esp_phy_enable(PHY_MODEM_BT); g_lp_stat.phy_enabled = 1; } } @@ -1738,6 +1839,34 @@ static void coex_wifi_sleep_set_hook(bool sleep) { } +/**************************************************************************** + * Name: coex_schm_register_btdm_callback_wrapper + * + * Description: + * This is a wrapper for registering a BTDM callback with the coexistence + * scheme. If the Wi-Fi and Bluetooth coexistence feature is enabled + * (CONFIG_ESP32S3_WIFI_BT_COEXIST), it calls the + * coex_schm_register_callback function with COEX_SCHM_CALLBACK_TYPE_BT + * and the provided callback. If the feature is not enabled, it returns 0. + * + * Input Parameters: + * callback - The callback function to register. + * + * Returned Value: + * If the coexistence feature is enabled, it returns the result of the + * coex_schm_register_callback function. Otherwise, it returns 0. + * + ****************************************************************************/ + +static int coex_schm_register_btdm_callback_wrapper(void *callback) +{ +#if CONFIG_ESP32S3_WIFI_BT_COEXIST + return coex_schm_register_callback(COEX_SCHM_CALLBACK_TYPE_BT, callback); +#else + return 0; +#endif +} + /**************************************************************************** * Name: coex_schm_status_bit_set_wrapper * @@ -1784,46 +1913,166 @@ static void coex_schm_status_bit_clear_wrapper(uint32_t type, } /**************************************************************************** - * Name: interrupt_on_wrapper + * Name: coex_schm_interval_get_wrapper * * Description: - * Enable Wi-Fi interrupt + * This is a wrapper for coex_schm_interval_get. If the WiFi and Bluetooth + * coexistence feature is enabled (CONFIG_ESP32S3_WIFI_BT_COEXIST), it + * calls the function and returns its result. If not enabled, it returns 0. * * Input Parameters: - * intr_num - The interrupt CPU number. + * None * * Returned Value: - * None + * If the coexistence feature is enabled, it returns the result of the + * coex_schm_interval_get function. Otherwise, it returns 0. * ****************************************************************************/ -static void interrupt_on_wrapper(int intr_num) +static uint32_t coex_schm_interval_get_wrapper(void) { - int cpuint = intr_num; - int irq = esp32s3_getirq(0, cpuint); - - DEBUGVERIFY(esp32s3_irq_set_iram_isr(irq)); - - up_enable_irq(irq); +#if CONFIG_ESP32S3_WIFI_BT_COEXIST + return coex_schm_interval_get(); +#else + return 0; +#endif } /**************************************************************************** - * Name: interrupt_off_wrapper + * Name: coex_schm_curr_period_get_wrapper * * Description: - * Disable Wi-Fi interrupt + * This is a wrapper for coex_schm_curr_period_get. If the WiFi and + * Bluetooth coexistence feature is enabled + * (CONFIG_ESP32S3_WIFI_BT_COEXIST), it calls the function and returns its + * result. If the feature is not enabled, it returns 1. * * Input Parameters: - * intr_num - No mean + * None * * Returned Value: - * None + * If the coexistence feature is enabled, it returns the result of the + * coex_schm_curr_period_get function. Otherwise, it returns 1. * ****************************************************************************/ -static void interrupt_off_wrapper(int intr_num) +static uint8_t coex_schm_curr_period_get_wrapper(void) { - up_disable_irq(intr_num + XTENSA_IRQ_FIRSTPERIPH); +#if CONFIG_ESP32S3_WIFI_BT_COEXIST + return coex_schm_curr_period_get(); +#else + return 1; +#endif +} + +/**************************************************************************** + * Name: coex_schm_curr_phase_get_wrapper + * + * Description: + * This is a wrapper for coex_schm_curr_phase_get. If the WiFi and + * Bluetooth coexistence feature is enabled + * (CONFIG_ESP32S3_WIFI_BT_COEXIST), it calls the function and returns its + * result. If the feature is not enabled, it returns NULL. + * + * Input Parameters: + * None + * + * Returned Value: + * If the coexistence feature is enabled, it returns the result of the + * coex_schm_curr_phase_get function. Otherwise, it returns NULL. + * + ****************************************************************************/ + +static void * coex_schm_curr_phase_get_wrapper(void) +{ +#if CONFIG_ESP32S3_WIFI_BT_COEXIST + return coex_schm_curr_phase_get(); +#else + return NULL; +#endif +} + +/**************************************************************************** + * Name: interrupt_enable_wrapper + * + * Description: + * This function enables an interrupt. It first retrieves the interrupt + * number and checks if it's valid. If it's not, it returns an error. + * Then, it sets the interrupt to be handled in IRAM. If this fails, it + * returns an error. Finally, it enables the interrupt. If this fails, it + * returns an error. + * + * Input Parameters: + * handle - A pointer to the interrupt handle. + * + * Returned Value: + * ESP_OK on success, or ESP_ERR_INVALID_ARG on failure. + * + ****************************************************************************/ + +static int interrupt_enable_wrapper(void *handle) +{ + intr_handle_t isr = (intr_handle_t)handle; + int ret = ESP_OK; + int cpuint; + int irq; + + cpuint = isr->vector_desc->intno; + + irq = esp32s3_getirq(0, cpuint); + if (irq == 127) + { + wlerr("CPU interrupt is not assigned!\n"); + return ESP_ERR_INVALID_ARG; + } + + ret = esp32s3_irq_set_iram_isr(irq); + if (ret != ESP_OK) + { + wlerr("Failed to set IRAM ISR\n"); + return ESP_ERR_INVALID_ARG; + } + + up_enable_irq(irq); + + return ret == OK ? ESP_OK : ESP_ERR_INVALID_ARG; +} + +/**************************************************************************** + * Name: interrupt_disable_wrapper + * + * Description: + * This function disables an interrupt. It first retrieves the interrupt + * number and checks if it's valid. If it's not, it returns an error. + * Then, it disables the interrupt. If this fails, it returns an error. + * + * Input Parameters: + * handle - A pointer to the interrupt handle. + * + * Returned Value: + * ESP_OK on success, or ESP_ERR_INVALID_ARG on failure. + * + ****************************************************************************/ + +static int interrupt_disable_wrapper(void *handle) +{ + intr_handle_t isr = (intr_handle_t)handle; + int ret = ESP_OK; + int cpuint; + int irq; + + cpuint = isr->vector_desc->intno; + + irq = esp32s3_getirq(0, cpuint); + if (irq == 127) + { + wlerr("CPU interrupt is not assigned!\n"); + return ESP_ERR_INVALID_ARG; + } + + up_disable_irq(irq); + + return ret == OK ? ESP_OK : ESP_ERR_INVALID_ARG; } /**************************************************************************** @@ -2111,9 +2360,9 @@ static void IRAM_ATTR btdm_slp_tmr_callback(void *arg) static int IRAM_ATTR esp_int_adpt_cb(int irq, void *context, void *arg) { - struct irq_adpt_s *adapter = (struct irq_adpt_s *)arg; + btdm_isr_alloc_t *p = (btdm_isr_alloc_t *)arg; - adapter->func(adapter->arg); + p->fn(p->arg); return OK; } @@ -2222,6 +2471,180 @@ static void IRAM_ATTR btdm_mac_bb_power_up_cb(void) } #endif +static esp_err_t btdm_low_power_mode_init(esp_bt_controller_config_t *cfg) +{ + esp_err_t err = ESP_OK; + bool select_src_ret; + bool set_div_ret; + + do + { + /* set default values for global states or resources */ + + g_lp_stat.val = 0; + g_lp_cntl.val = 0; + g_lp_cntl.main_xtal_pu = 0; + g_wakeup_req_sem = NULL; + g_btdm_slp_tmr = NULL; + + /* configure and initialize resources */ + + g_lp_cntl.enable = (cfg->sleep_mode == ESP_BT_SLEEP_MODE_1) ? 1 : 0; + g_lp_cntl.lpclk_sel = (cfg->sleep_mode == ESP_BT_SLEEP_MODE_1) ? \ + cfg->sleep_clock : ESP_BT_SLEEP_CLOCK_MAIN_XTAL; + g_lp_cntl.no_light_sleep = 0; + + if (g_lp_cntl.enable) + { +#if CONFIG_MAC_BB_PD + if (!btdm_deep_sleep_mem_init()) + { + err = ESP_ERR_NO_MEM; + break; + } + + g_lp_cntl.mac_bb_pd = 1; +#endif +#ifdef CONFIG_PM + g_lp_cntl.wakeup_timer_required = 1; +#endif + /* async wakeup semaphore for VHCI */ + + g_wakeup_req_sem = semphr_create_wrapper(1, 0); + if (g_wakeup_req_sem == NULL) + { + err = ESP_ERR_NO_MEM; + break; + } + + btdm_vnd_offload_task_register(BTDM_VND_OL_SIG_WAKEUP_TMR, + btdm_sleep_exit_phase0); + + if (g_lp_cntl.wakeup_timer_required) + { + esp_timer_create_args_t create_args = + { + .callback = btdm_slp_tmr_callback, + .arg = NULL, + .name = "btSlp", + }; + + if ((err = esp_timer_create(&create_args, &g_btdm_slp_tmr)) != + ESP_OK) + { + wlerr("esp_timer_create failed"); + break; + } + } + + /* set default bluetooth sleep clock cycle and its + * fractional bits + */ + + g_btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; + g_btdm_lpcycle_us = 2 << (g_btdm_lpcycle_us_frac); + + /* External 32 kHz XTAL */ + + if (g_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_EXT_32K_XTAL) + { + /* check whether or not EXT_CRYS is working */ + + if (esp32s3_rtc_clk_slow_freq_get() != + SOC_RTC_SLOW_CLK_SRC_XTAL32K) + { + wlwarn("32.768kHz XTAL not detected, fall back to main" + "XTAL as Bluetooth sleep clock"); + g_lp_cntl.lpclk_sel = ESP_BT_SLEEP_CLOCK_MAIN_XTAL; +#if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP + g_lp_cntl.no_light_sleep = 1; +#endif + } + } + else if (g_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_RTC_SLOW) + { + /* Internal 136kHz RC oscillator */ + + if (esp32s3_rtc_clk_slow_freq_get() == + SOC_RTC_SLOW_CLK_SRC_RC_SLOW) + { + wlwarn("Internal 136kHz RC oscillator. The accuracy of " + "this clock is a lot larger than 500ppm which is " + "required in Bluetooth communication, so don't " + "select this option in scenarios such as BLE " + "connection state."); + } + else + { + wlwarn("Internal 136kHz RC oscillator not detected."); + PANIC(); + } + } + else if (g_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_MAIN_XTAL) + { + wlinfo("Bluetooth will use main XTAL as sleep clock."); + #if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP + g_lp_cntl.no_light_sleep = 1; + #endif + } + } + else + { + g_lp_cntl.no_light_sleep = 1; + } + + if (g_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_MAIN_XTAL) + { +#ifdef CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP + ASSERT(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_ON)); + g_lp_cntl.main_xtal_pu = 1; +#endif + select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL); + set_div_ret = btdm_lpclk_set_div(esp_clk_xtal_freq() / MHZ); + assert(select_src_ret && set_div_ret); + g_btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; + g_btdm_lpcycle_us = 1 << (g_btdm_lpcycle_us_frac); + } + else if (g_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_EXT_32K_XTAL) + { + select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL32K); + set_div_ret = btdm_lpclk_set_div(0); + assert(select_src_ret && set_div_ret); + g_btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; + g_btdm_lpcycle_us = (RTC_CLK_CAL_FRACT > 15) ? + (1000000 << (RTC_CLK_CAL_FRACT - 15)) : + (1000000 >> (15 - RTC_CLK_CAL_FRACT)); + assert(g_btdm_lpcycle_us != 0); + } + else if (g_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_RTC_SLOW) + { + select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_RTC_SLOW); + set_div_ret = btdm_lpclk_set_div(0); + assert(select_src_ret && set_div_ret); + g_btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; + g_btdm_lpcycle_us = esp_clk_slowclk_cal_get(); + } + else + { + UNUSED(select_src_ret); + UNUSED(set_div_ret); + err = ESP_ERR_INVALID_ARG; + break; + } + +#if CONFIG_ESP32S3_WIFI_BT_COEXIST + coex_update_lpclk_interval(); +#endif + +#ifdef CONFIG_PM + g_lp_stat.pm_lock_released = 1; +#endif + } + while (0); + + return err; +} + /**************************************************************************** * Name: btdm_controller_mem_init * @@ -2260,14 +2683,43 @@ static void bt_controller_deinit_internal(void) { periph_module_disable(PERIPH_BT_MODULE); - if (g_lp_stat.phy_enabled) + btdm_low_power_mode_deinit(); + + esp_bt_power_domain_off(); +#if CONFIG_MAC_BB_PD + esp_mac_bb_pd_mem_deinit(); +#endif + esp_phy_modem_deinit(); + + if (g_osi_funcs_p != NULL) { - esp_phy_disable(); - g_lp_stat.phy_enabled = 0; + free(g_osi_funcs_p); + g_osi_funcs_p = NULL; } - /* deinit low power control resources */ + g_btdm_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE; +} +/**************************************************************************** + * Name: btdm_low_power_mode_deinit + * + * Description: + * This function deinitializes the low power control resources. It checks + * various conditions and if they are met, it performs the corresponding + * deinitialization actions such as stopping and deleting timers, + * deregistering tasks, deleting semaphores, and updating the low power + * clock interval. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void btdm_low_power_mode_deinit(void) +{ #if CONFIG_MAC_BB_PD if (g_lp_cntl.mac_bb_pd) { @@ -2277,10 +2729,16 @@ static void bt_controller_deinit_internal(void) #endif #ifdef CONFIG_PM - g_lp_stat.pm_lock_released = 0; + if (g_lp_cntl.no_light_sleep) + { + if (g_light_sleep_pm_lock != NULL) + { + g_light_sleep_pm_lock = NULL; + } + } #endif - if (g_lp_cntl.wakeup_timer_required) + if (g_lp_cntl.wakeup_timer_required && g_btdm_slp_tmr != NULL) { if (g_lp_stat.wakeup_timer_started) { @@ -2302,12 +2760,12 @@ static void bt_controller_deinit_internal(void) } } - if (g_lp_cntl.lpclk_sel == BTDM_LPCLK_SEL_XTAL) + if (g_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_MAIN_XTAL) { #ifdef CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP if (g_lp_cntl.main_xtal_pu) { - esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_OFF); + ASSERT(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_OFF)); g_lp_cntl.main_xtal_pu = 0; } #endif @@ -2320,25 +2778,6 @@ static void bt_controller_deinit_internal(void) } g_btdm_lpcycle_us = 0; - -#if CONFIG_MAC_BB_PD - esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb); - esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb); -#endif - - esp_bt_power_domain_off(); -#if CONFIG_MAC_BB_PD - esp_mac_bb_pd_mem_deinit(); -#endif - esp_phy_modem_deinit(); - - if (osi_funcs_p != NULL) - { - kmm_free(osi_funcs_p); - osi_funcs_p = NULL; - } - - g_btdm_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE; } /**************************************************************************** @@ -2378,6 +2817,28 @@ static bool async_wakeup_request(int event) semphr_take_wrapper(g_wakeup_req_sem, OSI_FUNCS_TIME_BLOCKING); } break; + case BTDM_ASYNC_WAKEUP_REQ_COEX: + if (!btdm_power_state_active()) + { + do_wakeup_request = true; +#if CONFIG_PM + if (g_lp_stat.pm_lock_released) + { + esp32s3_pm_lockacquire(); + g_lp_stat.pm_lock_released = 0; + } +#endif + + btdm_wakeup_request(); + + if (g_lp_cntl.wakeup_timer_required && + g_lp_stat.wakeup_timer_started) + { + esp_timer_stop(g_btdm_slp_tmr); + g_lp_stat.wakeup_timer_started = 0; + } + } + default: return false; } @@ -2414,6 +2875,9 @@ static void async_wakeup_request_end(int event) case BTDM_ASYNC_WAKEUP_SRC_DISA: allow_to_sleep = true; break; + case BTDM_ASYNC_WAKEUP_REQ_COEX: + allow_to_sleep = false; + break; default: allow_to_sleep = true; break; @@ -2425,6 +2889,114 @@ static void async_wakeup_request_end(int event) } } +/**************************************************************************** + * Name: btdm_funcs_table_ready_wrapper + * + * Description: + * This is a wrapper for preparing the BTDM functions table. If the BT_BLE + * CCA mode is set to 2, it enables the CCA feature by calling the + * btdm_cca_feature_enable function. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void btdm_funcs_table_ready_wrapper(void) +{ +#if BT_BLE_CCA_MODE == 2 + btdm_cca_feature_enable(); +#endif +} + +/**************************************************************************** + * Name: bt_async_wakeup_request + * + * Description: + * This function requests an asynchronous wakeup for the Bluetooth + * controller. It calls the async_wakeup_request function with + * BTDM_ASYNC_WAKEUP_SRC_VHCI as the argument. + * + * Input Parameters: + * None + * + * Returned Value: + * The result of the async_wakeup_request function. + * + ****************************************************************************/ + +bool bt_async_wakeup_request(void) +{ + return async_wakeup_request(BTDM_ASYNC_WAKEUP_SRC_VHCI); +} + +/**************************************************************************** + * Name: bt_wakeup_request_end + * + * Description: + * This function ends a wakeup request for the Bluetooth controller. It + * calls the async_wakeup_request_end function with + * BTDM_ASYNC_WAKEUP_SRC_VHCI as the argument. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +void bt_wakeup_request_end(void) +{ + async_wakeup_request_end(BTDM_ASYNC_WAKEUP_SRC_VHCI); +} + +/**************************************************************************** + * Name: coex_bt_wakeup_request + * + * Description: + * This function requests a coexistence Bluetooth wakeup. It calls the + * async_wakeup_request function with BTDM_ASYNC_WAKEUP_REQ_COEX as the + * argument. + * + * Input Parameters: + * None + * + * Returned Value: + * The result of the async_wakeup_request function. + * + ****************************************************************************/ + +static bool coex_bt_wakeup_request(void) +{ + return async_wakeup_request(BTDM_ASYNC_WAKEUP_REQ_COEX); +} + +/**************************************************************************** + * Name: coex_bt_wakeup_request_end + * + * Description: + * This function ends a coexistence Bluetooth wakeup request. It calls the + * async_wakeup_request_end function with BTDM_ASYNC_WAKEUP_REQ_COEX as the + * argument. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void coex_bt_wakeup_request_end(void) +{ + async_wakeup_request_end(BTDM_ASYNC_WAKEUP_REQ_COEX); + return; +} + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -2448,8 +3020,6 @@ int esp32s3_bt_controller_init(void) { esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); esp_bt_controller_config_t *cfg = &bt_cfg; - bool select_src_ret; - bool set_div_ret; int i; int err; @@ -2476,7 +3046,7 @@ int esp32s3_bt_controller_init(void) cfg->controller_task_stack_size < ESP_TASK_BT_CONTROLLER_STACK) { wlerr("Invalid controller task prioriy or stack size"); - return ERROR; + return -EINVAL; } if (cfg->bluetooth_mode != ESP_BT_MODE_BLE) @@ -2491,7 +3061,7 @@ int esp32s3_bt_controller_init(void) (cfg->ble_max_act > BT_CTRL_BLE_MAX_ACT_LIMIT)) { wlerr("Invalid value of ble_max_act"); - return ERROR; + return -EINVAL; } } @@ -2502,6 +3072,13 @@ int esp32s3_bt_controller_init(void) wlerr("SLEEP_MODE_1 enabled but sleep clock not configured"); return ERROR; } + + if (cfg->sleep_clock > ESP_BT_SLEEP_CLOCK_RTC_SLOW) + { + wlerr("SLEEP_MODE_1 is enabled but this sleep clock is not " + "supported"); + return ERROR; + } } cfg->controller_task_stack_size = CONFIG_ESP32S3_BLE_TASK_STACK_SIZE; @@ -2519,28 +3096,14 @@ int esp32s3_bt_controller_init(void) btdm_controller_mem_init(); -#if CONFIG_MAC_BB_PD - if (esp_register_mac_bb_pd_callback(btdm_mac_bb_power_down_cb) != 0) - { - err = -EINVAL; - goto error; - } - - if (esp_register_mac_bb_pu_callback(btdm_mac_bb_power_up_cb) != 0) - { - err = -EINVAL; - goto error; - } -#endif - - osi_funcs_p = kmm_malloc(sizeof(struct osi_funcs_s)); - if (osi_funcs_p == NULL) + g_osi_funcs_p = kmm_malloc(sizeof(struct osi_funcs_s)); + if (g_osi_funcs_p == NULL) { return -ENOMEM; } - memcpy(osi_funcs_p, &g_osi_funcs, sizeof(struct osi_funcs_s)); - if (btdm_osi_funcs_register(osi_funcs_p) != 0) + memcpy(g_osi_funcs_p, &g_osi_funcs, sizeof(struct osi_funcs_s)); + if (btdm_osi_funcs_register(g_osi_funcs_p) != 0) { wlerr("Error, probably invalid OSI Functions\n"); return -EINVAL; @@ -2549,159 +3112,11 @@ int esp32s3_bt_controller_init(void) wlinfo("BT controller compile version [%s]\n", btdm_controller_get_compile_version()); - /* init low-power control resources */ - - do + if ((err = btdm_low_power_mode_init(cfg)) != ESP_OK) { - /* set default values for global states or resources */ - - g_lp_cntl.val = 0; - g_lp_stat.val = 0; - g_wakeup_req_sem = NULL; - g_btdm_slp_tmr = NULL; - - /* configure and initialize resources */ - - g_lp_cntl.enable = (cfg->sleep_mode == ESP_BT_SLEEP_MODE_1) ? 1 : 0; - g_lp_cntl.no_light_sleep = 0; - - if (g_lp_cntl.enable) - { -#if CONFIG_MAC_BB_PD - if (!btdm_deep_sleep_mem_init()) - { - err = -ENOMEM; - goto error; - } - - g_lp_cntl.mac_bb_pd = 1; -#endif -#ifdef CONFIG_PM - g_lp_cntl.wakeup_timer_required = true; -#endif - /* async wakeup semaphore for VHCI */ - - g_wakeup_req_sem = semphr_create_wrapper(1, 0); - if (g_wakeup_req_sem == NULL) - { - goto error; - } - - btdm_vnd_offload_task_register(BTDM_VND_OL_SIG_WAKEUP_TMR, - btdm_sleep_exit_phase0); - } - - if (g_lp_cntl.wakeup_timer_required) - { - esp_timer_create_args_t create_args = - { - .callback = btdm_slp_tmr_callback, - .arg = NULL, - .name = "btSlp", - }; - - if (esp_timer_create(&create_args, &g_btdm_slp_tmr) != OK) - { - wlerr("Failed to create timer"); - goto error; - } - } - - /* set default bluetooth sleep clock cycle and its fractional bits */ - - g_btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; - g_btdm_lpcycle_us = 2 << (g_btdm_lpcycle_us_frac); - - /* set default bluetooth sleep clock source */ - - g_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_XTAL; /* set default value */ - -#if CONFIG_BT_CTRL_LPCLK_SEL_EXT_32K_XTAL - /* check whether or not EXT_CRYS is working */ - - if (esp32s3_rtc_clk_slow_freq_get() == RTC_SLOW_FREQ_32K_XTAL) /* External 32 kHz XTAL */ - { - g_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_XTAL32K; - } - else - { - wlwarn("32.768kHz XTAL not detected"); -#if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP - g_lp_cntl.no_light_sleep = 1; -#endif - } -#elif (CONFIG_BT_CTRL_LPCLK_SEL_MAIN_XTAL) - wlwarn("Bluetooth will use main XTAL as Bluetooth sleep clock."); -#if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP - g_lp_cntl.no_light_sleep = 1; -#endif -#elif (CONFIG_BT_CTRL_LPCLK_SEL_RTC_SLOW) - /* check whether or not internal 150 kHz RC oscillator is working */ - - if (rtc_clk_slow_src_get() == RTC_SLOW_FREQ_RTC) - { - g_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_RTC_SLOW; /* Internal 150 kHz RC oscillator */ - wlwarn("Internal 150kHz RC osciallator. The accuracy of this " - "clock is a lot larger than 500ppm which is required in " - "Bluetooth communication, so don't select this option in " - "scenarios such as BLE connection state."); - } - else - { - wlerr("Internal 150kHz RC oscillator not detected."); - PANIC(); - } -#endif - - if (g_lp_cntl.lpclk_sel == BTDM_LPCLK_SEL_XTAL) - { - uint32_t rtc_clk_xtal_freq = 0; -#ifdef CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP - ASSERT(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_ON)); - g_lp_cntl.main_xtal_pu = 1; -#endif - select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL); - rtc_clk_xtal_freq = esp32s3_rtc_clk_xtal_freq_get(); - set_div_ret = btdm_lpclk_set_div(rtc_clk_xtal_freq); - DEBUGASSERT(select_src_ret && set_div_ret); - g_btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; - g_btdm_lpcycle_us = 1 << (g_btdm_lpcycle_us_frac); - } - else if (g_lp_cntl.lpclk_sel == BTDM_LPCLK_SEL_XTAL32K) - { - select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL32K); - set_div_ret = btdm_lpclk_set_div(0); - DEBUGASSERT(select_src_ret && set_div_ret); - g_btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; - g_btdm_lpcycle_us = (RTC_CLK_CAL_FRACT > 15) ? - (1000000 << (RTC_CLK_CAL_FRACT - 15)) : - (1000000 >> (15 - RTC_CLK_CAL_FRACT)); - DEBUGASSERT(g_btdm_lpcycle_us != 0); - } - else if (g_lp_cntl.lpclk_sel == BTDM_LPCLK_SEL_RTC_SLOW) - { - select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_RTC_SLOW); - set_div_ret = btdm_lpclk_set_div(0); - DEBUGASSERT(select_src_ret && set_div_ret); - g_btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; - g_btdm_lpcycle_us = esp32s3_clk_slowclk_cal_get(); - } - else - { - UNUSED(select_src_ret); - UNUSED(set_div_ret); - goto error; - } - -#if CONFIG_ESP32S3_WIFI_BT_COEXIST - coex_update_lpclk_interval(); -#endif - -#ifdef CONFIG_PM - g_lp_stat.pm_lock_released = 1; -#endif + wlerr("Low power module initialization failed\n"); + goto error; } - while (0); #ifdef CONFIG_ESP32S3_WIFI_BT_COEXIST coex_init(); @@ -2710,18 +3125,12 @@ int esp32s3_bt_controller_init(void) periph_module_enable(PERIPH_BT_MODULE); periph_module_reset(PERIPH_BT_MODULE); - esp_phy_enable(); - g_lp_stat.phy_enabled = 1; - if (btdm_controller_init(cfg) != 0) { - esp_phy_disable(); - g_lp_stat.phy_enabled = 0; - return -EIO; + err = -ENOMEM; + goto error; } - coex_pti_v2(); - g_btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED; #ifdef CONFIG_ESP32S3_SPIFLASH @@ -2737,7 +3146,7 @@ error: bt_controller_deinit_internal (); - return -ENOMEM; + return esp_wifi_to_errno(err); } /**************************************************************************** @@ -2801,6 +3210,14 @@ int esp32s3_bt_controller_enable(esp_bt_mode_t mode) return ERROR; } + /* Enable PHY when enabling controller to reduce power dissipation after + * controller init. Notice the init order: esp_phy_enable() -> + * bt_bb_v2_init_cmplx() -> coex_pti_v2() + */ + + esp_phy_enable(PHY_MODEM_BT); + g_lp_stat.phy_enabled = 1; + #ifdef CONFIG_ESP32S3_WIFI_BT_COEXIST coex_enable(); #endif @@ -2817,23 +3234,50 @@ int esp32s3_bt_controller_enable(esp_bt_mode_t mode) g_lp_stat.pm_lock_released = 0; #endif +#if CONFIG_MAC_BB_PD + if (esp_register_mac_bb_pd_callback(btdm_mac_bb_power_down_cb) != 0) + { + err = -EINVAL; + goto error; + } + + if (esp_register_mac_bb_pu_callback(btdm_mac_bb_power_up_cb) != 0) + { + err = -EINVAL; + goto error; + } +#endif + if (g_lp_cntl.enable) { btdm_controller_enable_sleep(true); } + /* Disable pll track by default in BLE controller on ESP32-C3 and + * ESP32-S3. + */ + + sdk_config_extend_set_pll_track(false); + if (btdm_controller_enable(mode) != 0) { ret = ERROR; goto error; } + coex_pti_v2(); + g_btdm_controller_status = ESP_BT_CONTROLLER_STATUS_ENABLED; return ret; error: +#if CONFIG_MAC_BB_PD + esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb); + esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb); +#endif + /* disable low power mode */ btdm_controller_enable_sleep(false); @@ -2854,6 +3298,11 @@ error: #if CONFIG_ESP32S3_WIFI_BT_COEXIST coex_disable(); #endif + if (g_lp_stat.phy_enabled) + { + esp_phy_disable(PHY_MODEM_BT); + g_lp_stat.phy_enabled = 0; + } return ret; } @@ -2894,14 +3343,25 @@ int esp32s3_bt_controller_disable(void) coex_disable(); #endif + if (g_lp_stat.phy_enabled) + { + esp_phy_disable(PHY_MODEM_BT); + g_lp_stat.phy_enabled = 0; + } + g_btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED; -#ifdef CONFIG_PM /* disable low power mode */ +#if CONFIG_MAC_BB_PD + esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb); + esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb); +#endif + +#ifdef CONFIG_PM if (g_lp_cntl.no_light_sleep) { - esp_pm_lock_release(s_light_sleep_pm_lock); + esp_pm_lock_release(g_light_sleep_pm_lock); } if (g_lp_stat.pm_lock_released == 0) @@ -3016,3 +3476,31 @@ int esp32s3_vhci_register_callback(const esp_vhci_host_callback_t *callback) (const vhci_host_callback_t *)callback) == 0 ? 0 : -1; return ret; } + +/**************************************************************************** + * Name: esp_bt_get_lpclk_src + * + * Description: + * This function returns the source of the low power clock for the ESP + * Bluetooth controller. If the controller is not initialized or enabled, + * it returns ESP_BT_SLEEP_CLOCK_NONE. Otherwise, it returns the current + * low power clock selection. + * + * Input Parameters: + * None + * + * Returned Value: + * The source of the low power clock for the ESP Bluetooth controller. + * + ****************************************************************************/ + +esp_bt_sleep_clock_t esp_bt_get_lpclk_src(void) +{ + if (g_btdm_controller_status != ESP_BT_CONTROLLER_STATUS_INITED && + g_btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) + { + return ESP_BT_SLEEP_CLOCK_NONE; + } + + return g_lp_cntl.lpclk_sel; +} diff --git a/arch/xtensa/src/esp32s3/esp32s3_irq.c b/arch/xtensa/src/esp32s3/esp32s3_irq.c index 349bc006d1..42c8750694 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_irq.c +++ b/arch/xtensa/src/esp32s3/esp32s3_irq.c @@ -115,13 +115,6 @@ # define ESP32S3_WIFI_RESERVE_INT 0 #endif -#ifdef CONFIG_ESP32S3_BLE -# define ESP32S3_BLE_RESERVE_INT ((1 << ESP32S3_CPUINT_BT_BB) | \ - (1 << ESP32S3_CPUINT_RWBLE)) -#else -# define ESP32S3_BLE_RESERVE_INT 0 -#endif - /**************************************************************************** * Public Data ****************************************************************************/ @@ -186,8 +179,7 @@ static bool g_non_iram_int_disabled_flag[CONFIG_SMP_NCPUS]; */ static uint32_t g_cpu0_freeints = ESP32S3_CPUINT_PERIPHSET & - ~(ESP32S3_WIFI_RESERVE_INT | - ESP32S3_BLE_RESERVE_INT); + ~ESP32S3_WIFI_RESERVE_INT; #ifdef CONFIG_SMP static uint32_t g_cpu1_freeints = ESP32S3_CPUINT_PERIPHSET; @@ -498,11 +490,6 @@ void up_irqinitialize(void) g_irqmap[ESP32S3_IRQ_PWR] = IRQ_MKMAP(0, ESP32S3_CPUINT_PWR); #endif -#ifdef CONFIG_ESP32S3_BLE - g_irqmap[ESP32S3_IRQ_BT_BB] = IRQ_MKMAP(0, ESP32S3_CPUINT_BT_BB); - g_irqmap[ESP32S3_IRQ_RWBLE] = IRQ_MKMAP(0, ESP32S3_CPUINT_RWBLE); -#endif - /* Initialize CPU interrupts */ esp32s3_cpuint_initialize(); @@ -515,13 +502,6 @@ void up_irqinitialize(void) xtensa_enable_cpuint(&g_intenable[0], 1 << ESP32S3_CPUINT_MAC); #endif -#ifdef CONFIG_ESP32S3_BLE - g_cpu0_intmap[ESP32S3_CPUINT_BT_BB] = CPUINT_ASSIGN(ESP32S3_IRQ_BT_BB); - g_cpu0_intmap[ESP32S3_CPUINT_RWBLE] = CPUINT_ASSIGN(ESP32S3_IRQ_RWBLE); - xtensa_enable_cpuint(&g_intenable[0], 1 << ESP32S3_CPUINT_BT_BB); - xtensa_enable_cpuint(&g_intenable[0], 1 << ESP32S3_CPUINT_RWBLE); -#endif - #ifdef CONFIG_SMP /* Attach and enable the inter-CPU interrupt */ @@ -828,6 +808,12 @@ int esp32s3_setup_irq(int cpu, int periphid, int priority, int flags) return -EINVAL; } + if (priority > XCHAL_SYSCALL_LEVEL) + { + irqerr("Invalid priority %d\n", priority); + return -EINVAL; + } + irqstate = enter_critical_section(); /* Setting up an IRQ includes the following steps: diff --git a/arch/xtensa/src/esp32s3/esp32s3_rtc.c b/arch/xtensa/src/esp32s3/esp32s3_rtc.c index c01623612b..4be9bd03a3 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_rtc.c +++ b/arch/xtensa/src/esp32s3/esp32s3_rtc.c @@ -378,7 +378,6 @@ static void IRAM_ATTR esp32s3_rtc_clk_fast_freq_set( static uint32_t IRAM_ATTR esp32s3_rtc_clk_cal_internal( enum esp32s3_rtc_cal_sel_e cal_clk, uint32_t slowclk_cycles); -static int IRAM_ATTR esp32s3_rtc_clk_slow_freq_get(void); static void IRAM_ATTR esp32s3_rtc_clk_slow_freq_set( enum esp32s3_rtc_slow_freq_e slow_freq); static void esp32s3_select_rtc_slow_clk(enum esp32s3_slow_clk_sel_e @@ -1167,7 +1166,21 @@ static void esp32s3_rtc_calibrate_ocode(void) * Public Functions ****************************************************************************/ -static int IRAM_ATTR esp32s3_rtc_clk_slow_freq_get(void) +/**************************************************************************** + * Name: esp32s3_rtc_clk_slow_freq_get + * + * Description: + * This function gets the frequency of the slow clock from the RTC. + * + * Input Parameters: + * None + * + * Returned Value: + * The frequency of the slow clock from the RTC. + * + ****************************************************************************/ + +int IRAM_ATTR esp32s3_rtc_clk_slow_freq_get(void) { return REG_GET_FIELD(RTC_CNTL_RTC_CLK_CONF_REG, RTC_CNTL_ANA_CLK_RTC_SEL); } diff --git a/arch/xtensa/src/esp32s3/esp32s3_rtc.h b/arch/xtensa/src/esp32s3/esp32s3_rtc.h index 9b4f4464da..aaa54bfffb 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_rtc.h +++ b/arch/xtensa/src/esp32s3/esp32s3_rtc.h @@ -198,6 +198,22 @@ struct alm_setalarm_s * Public Function Prototypes ****************************************************************************/ +/**************************************************************************** + * Name: esp32s3_rtc_clk_slow_freq_get + * + * Description: + * This function gets the frequency of the slow clock from the RTC. + * + * Input Parameters: + * None + * + * Returned Value: + * The frequency of the slow clock from the RTC. + * + ****************************************************************************/ + +int esp32s3_rtc_clk_slow_freq_get(void); + /**************************************************************************** * Name: esp32s3_rtc_clk_slow_freq_get_hz * diff --git a/arch/xtensa/src/esp32s3/esp32s3_spiflash.c b/arch/xtensa/src/esp32s3/esp32s3_spiflash.c index 231fab51c4..0bab95ad22 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_spiflash.c +++ b/arch/xtensa/src/esp32s3/esp32s3_spiflash.c @@ -48,6 +48,7 @@ #include "esp32s3_irq.h" #include "esp32s3_spiflash.h" +#include "hal/cache_hal.h" #include "soc/extmem_reg.h" #include "soc/spi_mem_reg.h" #include "rom/opi_flash.h" @@ -187,8 +188,8 @@ static void spiflash_start(void); static void spiflash_end(void); -static void spi_flash_disable_cache(uint32_t cpuid); -static void spi_flash_restore_cache(uint32_t cpuid); +static void spi_flash_disable_cache(void); +static void spi_flash_restore_cache(void); #ifdef CONFIG_SMP static int spi_flash_op_block_task(int argc, char *argv[]); static int spiflash_init_spi_flash_op_block_task(int cpu); @@ -220,6 +221,7 @@ static uint32_t s_flash_op_cache_state[CONFIG_SMP_NCPUS]; static rmutex_t g_flash_op_mutex; static volatile bool g_flash_op_can_start = false; static volatile bool g_flash_op_complete = false; +static volatile bool g_spi_flash_cache_suspended = false; static volatile bool g_sched_suspended[CONFIG_SMP_NCPUS]; #ifdef CONFIG_SMP static sem_t g_disable_non_iram_isr_on_core[CONFIG_SMP_NCPUS]; @@ -244,10 +246,9 @@ static void spiflash_suspend_cache(void) int other_cpu = cpu ? 0 : 1; #endif - spi_flash_disable_cache(cpu); -#ifdef CONFIG_SMP - spi_flash_disable_cache(other_cpu); -#endif + spi_flash_disable_cache(); + + g_spi_flash_cache_suspended = true; } /**************************************************************************** @@ -265,10 +266,9 @@ static void spiflash_resume_cache(void) int other_cpu = cpu ? 0 : 1; #endif - spi_flash_restore_cache(cpu); -#ifdef CONFIG_SMP - spi_flash_restore_cache(other_cpu); -#endif + spi_flash_restore_cache(); + + g_spi_flash_cache_suspended = false; } /**************************************************************************** @@ -765,17 +765,16 @@ static inline void IRAM_ATTR spiflash_os_yield(void) * s_flash_op_cache_state. * * Input Parameters: - * cpuid - The CPU core whose cache will be disabled. + * None. * * Returned Value: * None. * ****************************************************************************/ -static void spi_flash_disable_cache(uint32_t cpuid) +static void spi_flash_disable_cache(void) { - s_flash_op_cache_state[cpuid] = cache_suspend_icache() << 16; - s_flash_op_cache_state[cpuid] |= cache_suspend_dcache(); + cache_hal_suspend(CACHE_TYPE_ALL); } /**************************************************************************** @@ -786,17 +785,16 @@ static void spi_flash_disable_cache(uint32_t cpuid) * s_flash_op_cache_state. * * Input Parameters: - * cpuid - The CPU core whose cache will be restored. + * None. * * Returned Value: * None. * ****************************************************************************/ -static void spi_flash_restore_cache(uint32_t cpuid) +static void spi_flash_restore_cache(void) { - cache_resume_dcache(s_flash_op_cache_state[cpuid] & 0xffff); - cache_resume_icache(s_flash_op_cache_state[cpuid] >> 16); + cache_hal_resume(CACHE_TYPE_ALL); } #ifdef CONFIG_SMP @@ -855,7 +853,7 @@ static int spi_flash_op_block_task(int argc, char *argv[]) /* Flash operation is complete, re-enable cache */ - spi_flash_restore_cache(cpu); + spi_flash_restore_cache(); /* Restore interrupts that aren't located in IRAM */ diff --git a/arch/xtensa/src/esp32s3/esp32s3_wifi_adapter.c b/arch/xtensa/src/esp32s3/esp32s3_wifi_adapter.c index e9ac72dc2b..4770986842 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_wifi_adapter.c +++ b/arch/xtensa/src/esp32s3/esp32s3_wifi_adapter.c @@ -73,7 +73,7 @@ #ifdef CONFIG_ESP32S3_BLE # include "esp32s3_ble_adapter.h" # ifdef CONFIG_ESP32S3_WIFI_BT_COEXIST -# include "esp_coexist_internal.h" +# include "private/esp_coexist_internal.h" # endif #endif @@ -270,6 +270,8 @@ static void esp_dport_access_stall_other_cpu_start(void); static void esp_dport_access_stall_other_cpu_end(void); static void wifi_apb80m_request(void); static void wifi_apb80m_release(void); +static void esp_phy_enable_wrapper(void); +static void esp_phy_disable_wrapper(void); static int32_t esp_wifi_read_mac(uint8_t *mac, uint32_t type); static void esp_timer_arm(void *timer, uint32_t tmout, bool repeat); static void esp_timer_disarm(void *timer); @@ -345,6 +347,8 @@ static void *coex_schm_curr_phase_get_wrapper(void); static int coex_register_start_cb_wrapper(int (* cb)(void)); static int coex_schm_process_restart_wrapper(void); static int coex_schm_register_cb_wrapper(int type, int(*cb)(int)); +static int coex_schm_flexible_period_set_wrapper(uint8_t period); +static uint8_t coex_schm_flexible_period_get_wrapper(void); /**************************************************************************** * Private Data @@ -492,8 +496,8 @@ wifi_osi_funcs_t g_wifi_osi_funcs = esp_dport_access_stall_other_cpu_end, ._wifi_apb80m_request = wifi_apb80m_request, ._wifi_apb80m_release = wifi_apb80m_release, - ._phy_disable = esp_phy_disable, - ._phy_enable = esp_phy_enable, + ._phy_disable = esp_phy_disable_wrapper, + ._phy_enable = esp_phy_enable_wrapper, ._phy_update_country_info = esp32s3_phy_update_country_info, ._read_mac = esp_wifi_read_mac, ._timer_arm = esp_timer_arm, @@ -555,13 +559,11 @@ wifi_osi_funcs_t g_wifi_osi_funcs = ._coex_register_start_cb = coex_register_start_cb_wrapper, ._coex_schm_process_restart = coex_schm_process_restart_wrapper, ._coex_schm_register_cb = coex_schm_register_cb_wrapper, + ._coex_schm_flexible_period_set = coex_schm_flexible_period_set_wrapper, + ._coex_schm_flexible_period_get = coex_schm_flexible_period_get_wrapper, ._magic = ESP_WIFI_OS_ADAPTER_MAGIC, }; -/* Wi-Fi feature capacity data */ - -uint64_t g_wifi_feature_caps = CONFIG_FEATURE_WPA3_SAE_BIT; - /* Wi-Fi TAG string data */ ESP_EVENT_DEFINE_BASE(WIFI_EVENT); @@ -2538,6 +2540,50 @@ static void wifi_apb80m_release(void) #endif } +/**************************************************************************** + * Name: esp_phy_enable_wrapper + * + * Description: + * This is a wrapper for enabling the ESP PHY. It calls the esp_phy_enable + * function with PHY_MODEM_WIFI as the argument, and then calls the + * phy_wifi_enable_set function with 1 as the argument. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void esp_phy_enable_wrapper(void) +{ + esp_phy_enable(PHY_MODEM_WIFI); + phy_wifi_enable_set(1); +} + +/**************************************************************************** + * Name: esp_phy_disable_wrapper + * + * Description: + * This is a wrapper for disabling the ESP PHY. It first calls the + * phy_wifi_enable_set function with 0 as the argument, and then calls the + * esp_phy_disable function with PHY_MODEM_WIFI as the argument. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void esp_phy_disable_wrapper(void) +{ + phy_wifi_enable_set(0); + esp_phy_disable(PHY_MODEM_WIFI); +} + /**************************************************************************** * Name: esp_wifi_read_mac * @@ -4041,6 +4087,61 @@ static int coex_schm_register_cb_wrapper(int type, int(*cb)(int)) #endif } +/**************************************************************************** + * Name: coex_schm_flexible_period_set_wrapper + * + * Description: + * This is a wrapper for coex_schm_flexible_period_set. It sets the + * flexible period for the coexistence mechanism. If power management + * feature is enabled (CONFIG_ESP_COEX_POWER_MANAGEMENT), it calls the + * function with the given period. If the feature is not enabled, it + * returns 0. + * + * Input Parameters: + * period - The period to set for the coexistence mechanism. + * + * Returned Value: + * If power management is enabled, it returns the result of the + * coex_schm_flexible_period_set function. Otherwise, it returns 0. + * + ****************************************************************************/ + +static int coex_schm_flexible_period_set_wrapper(uint8_t period) +{ +#if CONFIG_ESP_COEX_POWER_MANAGEMENT + return coex_schm_flexible_period_set(period); +#else + return 0; +#endif +} + +/**************************************************************************** + * Name: coex_schm_flexible_period_get_wrapper + * + * Description: + * This is a wrapper for coex_schm_flexible_period_get. If power management + * feature is enabled (CONFIG_ESP_COEX_POWER_MANAGEMENT), it calls the + * function and returns its result. If the feature is not enabled, it + * returns 1. + * + * Input Parameters: + * None + * + * Returned Value: + * If power management is enabled, it returns the result of the + * coex_schm_flexible_period_get function. Otherwise, it returns 1. + * + ****************************************************************************/ + +static uint8_t coex_schm_flexible_period_get_wrapper(void) +{ +#if CONFIG_ESP_COEX_POWER_MANAGEMENT + return coex_schm_flexible_period_get(); +#else + return 1; +#endif +} + /**************************************************************************** * Name: esp_random_ulong * diff --git a/arch/xtensa/src/esp32s3/esp32s3_wireless.c b/arch/xtensa/src/esp32s3/esp32s3_wireless.c index ca051d513a..cdefe131ee 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_wireless.c +++ b/arch/xtensa/src/esp32s3/esp32s3_wireless.c @@ -45,7 +45,7 @@ # include "esp_private/wifi.h" # include "esp_wpa.h" #endif -#include "esp_coexist_internal.h" +#include "private/esp_coexist_internal.h" #include "periph_ctrl.h" #include "esp_phy_init.h" #include "phy_init_data.h" @@ -339,6 +339,85 @@ static void esp_wifi_set_log_level(void) * Public Functions ****************************************************************************/ +/**************************************************************************** + * Name: esp_wifi_to_errno + * + * Description: + * Transform from ESP Wi-Fi error code to NuttX error code + * + * Input Parameters: + * err - ESP Wi-Fi error code + * + * Returned Value: + * NuttX error code defined in errno.h + * + ****************************************************************************/ + +int32_t esp_wifi_to_errno(int err) +{ + int ret; + + if (err < ESP_ERR_WIFI_BASE) + { + /* Unmask component error bits */ + + ret = err & 0xfff; + + switch (ret) + { + case ESP_OK: + ret = OK; + break; + case ESP_ERR_NO_MEM: + ret = -ENOMEM; + break; + + case ESP_ERR_INVALID_ARG: + ret = -EINVAL; + break; + + case ESP_ERR_INVALID_STATE: + ret = -EIO; + break; + + case ESP_ERR_INVALID_SIZE: + ret = -EINVAL; + break; + + case ESP_ERR_NOT_FOUND: + ret = -ENOSYS; + break; + + case ESP_ERR_NOT_SUPPORTED: + ret = -ENOSYS; + break; + + case ESP_ERR_TIMEOUT: + ret = -ETIMEDOUT; + break; + + case ESP_ERR_INVALID_MAC: + ret = -EINVAL; + break; + + default: + ret = ERROR; + break; + } + } + else + { + ret = ERROR; + } + + if (ret != OK) + { + wlerr("ERROR: %s\n", esp_err_to_name(err)); + } + + return ret; +} + /**************************************************************************** * Functions needed by libphy.a ****************************************************************************/ @@ -1281,8 +1360,16 @@ int esp_wireless_deinit(void) int32_t esp_wifi_init(const wifi_init_config_t *config) { int32_t ret; + uint32_t min_active_time_us = + CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME * 1000; + uint32_t keep_alive_time_us = + CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME * 1000 * 1000; + uint32_t wait_broadcast_data_time_us = + CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME * 1000; - esp_wifi_power_domain_on(); + esp_wifi_set_sleep_min_active_time(min_active_time_us); + esp_wifi_set_keep_alive_time(keep_alive_time_us); + esp_wifi_set_sleep_wait_broadcast_data_time(wait_broadcast_data_time_us); #ifdef CONFIG_ESP32S3_WIFI_BT_COEXIST ret = coex_init(); @@ -1294,6 +1381,7 @@ int32_t esp_wifi_init(const wifi_init_config_t *config) #endif /* CONFIG_ESP32S3_WIFI_BT_COEXIST */ esp_wifi_set_log_level(); + esp_wifi_power_domain_on(); ret = esp_wifi_init_internal(config); if (ret) diff --git a/arch/xtensa/src/esp32s3/esp32s3_wireless.h b/arch/xtensa/src/esp32s3/esp32s3_wireless.h index d4dddbcf85..35970ab06f 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_wireless.h +++ b/arch/xtensa/src/esp32s3/esp32s3_wireless.h @@ -79,10 +79,49 @@ struct esp_queuecache_s uint8_t *buffer; }; +/**************************************************************************** + * Inline Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: nuttx_err_to_freertos + * + * Description: + * Transform from Nuttx OS error code to FreeRTOS's pdTRUE or pdFALSE. + * + * Input Parameters: + * ret - NuttX error code + * + * Returned Value: + * Wi-Fi adapter error code + * + ****************************************************************************/ + +static inline int32_t nuttx_err_to_freertos(int ret) +{ + return ret >= 0; +} + /**************************************************************************** * Public Function Prototypes ****************************************************************************/ +/**************************************************************************** + * Name: esp_wifi_to_errno + * + * Description: + * Transform from ESP Wi-Fi error code to NuttX error code + * + * Input Parameters: + * err - ESP Wi-Fi error code + * + * Returned Value: + * NuttX error code defined in errno.h + * + ****************************************************************************/ + +int32_t esp_wifi_to_errno(int err); + /**************************************************************************** * Functions needed by libphy.a ****************************************************************************/ diff --git a/arch/xtensa/src/esp32s3/hal.mk b/arch/xtensa/src/esp32s3/hal.mk index d68ac7fa2e..2e8ea859d6 100644 --- a/arch/xtensa/src/esp32s3/hal.mk +++ b/arch/xtensa/src/esp32s3/hal.mk @@ -65,6 +65,9 @@ INCLUDES += $(INCDIR_PREFIX)$(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.api.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.libgcc.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.newlib.ld +ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).rom.version.ld ARCHSCRIPT += $(ARCH_SRCDIR)$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)ld$(DELIM)$(CHIP_SERIES).peripherals.ld # Source files @@ -75,6 +78,7 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)efus CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)efuse$(DELIM)$(CHIP_SERIES)$(DELIM)esp_efuse_rtc_calib.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)efuse$(DELIM)$(CHIP_SERIES)$(DELIM)esp_efuse_table.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)efuse$(DELIM)$(CHIP_SERIES)$(DELIM)esp_efuse_utility.c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_common$(DELIM)src$(DELIM)esp_err_to_name.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)clk_ctrl_os.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)cpu.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)esp_clk.c @@ -91,9 +95,11 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)port$(DELIM)$(CHIP_SERIES)$(DELIM)mspi_timing_config.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)port$(DELIM)esp_clk_tree_common.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)regi2c_ctrl.c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)phy_common.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_phy$(DELIM)src$(DELIM)phy_init.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_hw_support$(DELIM)mspi_timing_tuning.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_wdt.c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_cache_esp32s2_esp32s3.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)port$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)clk.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_system$(DELIM)port$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)system_internal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)$(CHIP_SERIES)$(DELIM)clk_tree_hal.c @@ -105,7 +111,6 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)ledc_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)rmt_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)mcpwm_hal.c -CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal_iram.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)timer_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)cache_hal.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)hal$(DELIM)mpu_hal.c @@ -145,7 +150,6 @@ ifeq ($(CONFIG_ESPRESSIF_SIMPLE_BOOT),y) CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_sys.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_systimer.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_spiflash.c - CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)esp_rom$(DELIM)patches$(DELIM)esp_rom_cache_esp32s2_esp32s3.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)efuse$(DELIM)src$(DELIM)esp_efuse_fields.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)efuse$(DELIM)src$(DELIM)efuse_controller$(DELIM)keys$(DELIM)with_key_purposes$(DELIM)esp_efuse_api_key.c diff --git a/arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h b/arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h index 550ae0fb66..35d026f37e 100644 --- a/arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h +++ b/arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h @@ -39,8 +39,6 @@ * Pre-processor Definitions ****************************************************************************/ -#define REG_SPI_BASE(i) (DR_REG_SPI2_BASE + (((i) > 3) ? ((((i) - 2) * 0x1000) + 0x10000) : (((i) - 2) * 0x1000))) - #define DR_REG_USB_BASE 0x60080000 #define DR_REG_ASSIST_DEBUG_BASE 0x600CE000 diff --git a/boards/risc-v/esp32c3/common/scripts/esp32c3_sections.ld b/boards/risc-v/esp32c3/common/scripts/esp32c3_sections.ld index 6ac3ed1509..2d34ee1393 100644 --- a/boards/risc-v/esp32c3/common/scripts/esp32c3_sections.ld +++ b/boards/risc-v/esp32c3/common/scripts/esp32c3_sections.ld @@ -137,6 +137,12 @@ SECTIONS esp_head.*(.literal .text .literal.* .text.*) esp_start.*(.literal .text .literal.* .text.*) + *libesp_wifi.a:esp_adapter.*(.literal.coex_pti_get_wrapper .text.coex_pti_get_wrapper) + *libesp_wifi.a:wifi_netif.*(.literal.wifi_sta_receive .text.wifi_sta_receive) + *libesp_wifi.a:wifi_netif.*(.literal.wifi_transmit_wrap .text.wifi_transmit_wrap) + + *libhal.a:timer_hal.*(.literal.timer_hal_capture_and_get_counter_value .text.timer_hal_capture_and_get_counter_value) + *(.wifi0iram.*) *(.wifirxiram.*) *(.wifislpiram.*) @@ -291,6 +297,15 @@ SECTIONS _instruction_reserved_start = ABSOLUTE(.); /* This is a symbol marking the flash.text start, this can be used for mmu driver to maintain virtual address */ _text_start = ABSOLUTE(.); + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram.*) + *(.wifiextrairam .wifiextrairam.*) + *(EXCLUDE_FILE(*libpp.a) .wifiorslpiram EXCLUDE_FILE(*libpp.a) .wifiorslpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram.*) + *(.wifislpiram .wifislpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram.*) + + *libesp_wifi.a:esp_adapter.*(.text .text.clear_intr_wrapper .text.coex_deinit_wrapper .text.coex_disable_wrapper .text.coex_enable_wrapper .text.coex_init_wrapper .text.coex_register_start_cb_wrapper .text.coex_schm_curr_period_get_wrapper .text.coex_schm_curr_phase_get_wrapper .text.coex_schm_flexible_period_get_wrapper .text.coex_schm_flexible_period_set_wrapper .text.coex_schm_interval_get_wrapper .text.coex_schm_process_restart_wrapper .text.coex_schm_register_cb_wrapper .text.coex_schm_status_bit_clear_wrapper .text.coex_schm_status_bit_set_wrapper .text.coex_wifi_channel_set_wrapper .text.coex_wifi_request_wrapper .text.disable_intr_wrapper .text.enable_intr_wrapper .text.esp_event_post_wrapper .text.esp_log_write_wrapper .text.esp_log_writev_wrapper .text.esp_phy_disable_wrapper .text.esp_phy_enable_wrapper .text.esp_read_mac_wrapper .text.event_group_wait_bits_wrapper .text.get_time_wrapper .text.mutex_create_wrapper .text.mutex_delete_wrapper .text.nvs_open_wrapper .text.queue_create_wrapper .text.queue_recv_wrapper .text.queue_send_to_back_wrapper .text.queue_send_to_front_wrapper .text.queue_send_wrapper .text.recursive_mutex_create_wrapper .text.set_intr_wrapper .text.set_isr_wrapper .text.task_create_pinned_to_core_wrapper .text.task_create_wrapper .text.task_get_max_priority_wrapper .text.wifi_clock_disable_wrapper .text.wifi_clock_enable_wrapper .text.wifi_create_queue .text.wifi_create_queue_wrapper .text.wifi_delete_queue .text.wifi_delete_queue_wrapper .text.wifi_reset_mac_wrapper .text.wifi_thread_semphr_free .text.wifi_thread_semphr_get_wrapper) + *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */ *(.fini.literal) diff --git a/boards/risc-v/esp32c3/esp32c3-generic/src/esp32c3_bringup.c b/boards/risc-v/esp32c3/esp32c3-generic/src/esp32c3_bringup.c index 88a1b5c4b6..af3e766898 100644 --- a/boards/risc-v/esp32c3/esp32c3-generic/src/esp32c3_bringup.c +++ b/boards/risc-v/esp32c3/esp32c3-generic/src/esp32c3_bringup.c @@ -77,7 +77,7 @@ #endif #ifdef CONFIG_ESPRESSIF_WIFI_BT_COEXIST -# include "esp_coexist_internal.h" +# include "private/esp_coexist_internal.h" #endif #ifdef CONFIG_ESPRESSIF_WIFI diff --git a/boards/risc-v/esp32c6/common/scripts/esp32c6_sections.ld b/boards/risc-v/esp32c6/common/scripts/esp32c6_sections.ld index f928e009a6..02fde453a8 100644 --- a/boards/risc-v/esp32c6/common/scripts/esp32c6_sections.ld +++ b/boards/risc-v/esp32c6/common/scripts/esp32c6_sections.ld @@ -334,6 +334,13 @@ SECTIONS _instruction_reserved_start = ABSOLUTE(.); /* This is a symbol marking the flash.text start, this can be used for mmu driver to maintain virtual address */ _text_start = ABSOLUTE(.); + *(.wifi0iram .wifi0iram.*) + *(.wifiextrairam .wifiextrairam.*) + *(.wifiorslpiram .wifiorslpiram.*) + *(.wifirxiram .wifirxiram.*) + *(.wifislpiram .wifislpiram.*) + *(.wifislprxiram .wifislprxiram.*) + *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */ *(.fini.literal) diff --git a/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c b/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c index c9384cc162..b197add1f9 100644 --- a/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c +++ b/boards/risc-v/esp32c6/esp32c6-devkitc/src/esp32c6_bringup.c @@ -77,7 +77,7 @@ #endif #ifdef CONFIG_ESPRESSIF_WIFI_BT_COEXIST -# include "esp_coexist_internal.h" +# include "private/esp_coexist_internal.h" #endif #ifdef CONFIG_ESPRESSIF_WIFI diff --git a/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c b/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c index a824b69a3b..1829cd4802 100644 --- a/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c +++ b/boards/risc-v/esp32c6/esp32c6-devkitm/src/esp32c6_bringup.c @@ -77,7 +77,7 @@ #endif #ifdef CONFIG_ESPRESSIF_WIFI_BT_COEXIST -# include "esp_coexist_internal.h" +# include "private/esp_coexist_internal.h" #endif #ifdef CONFIG_ESPRESSIF_WIFI diff --git a/boards/risc-v/esp32h2/common/scripts/common.ld b/boards/risc-v/esp32h2/common/scripts/common.ld index 3265d61d88..1d961a58c0 100644 --- a/boards/risc-v/esp32h2/common/scripts/common.ld +++ b/boards/risc-v/esp32h2/common/scripts/common.ld @@ -19,6 +19,10 @@ ****************************************************************************/ #include +/* From esp-hal-3rdparty */ +#include "sdkconfig.h" +#include "ld.common" + #if CONFIG_ESPRESSIF_SOC_RTC_MEM_SUPPORTED # define ESP_BOOTLOADER_RESERVE_RTC 0 diff --git a/boards/risc-v/esp32h2/common/scripts/esp32h2_aliases.ld b/boards/risc-v/esp32h2/common/scripts/esp32h2_aliases.ld index 5019400aa8..8499490078 100644 --- a/boards/risc-v/esp32h2/common/scripts/esp32h2_aliases.ld +++ b/boards/risc-v/esp32h2/common/scripts/esp32h2_aliases.ld @@ -18,6 +18,7 @@ * ****************************************************************************/ +cache_set_idrom_mmu_size = Cache_Set_IDROM_MMU_Size; cache_resume_icache = Cache_Resume_ICache; cache_suspend_icache = Cache_Suspend_ICache; cache_invalidate_icache_all = Cache_Invalidate_ICache_All; diff --git a/boards/risc-v/esp32h2/common/scripts/esp32h2_sections.ld b/boards/risc-v/esp32h2/common/scripts/esp32h2_sections.ld index c3a77bc2d2..82171f3acf 100644 --- a/boards/risc-v/esp32h2/common/scripts/esp32h2_sections.ld +++ b/boards/risc-v/esp32h2/common/scripts/esp32h2_sections.ld @@ -88,6 +88,7 @@ SECTIONS *libarch.a:*gpio_periph.*(.text .text.* .literal .literal.*) *libarch.a:*modem_clock_hal.*(.text .text.* .literal .literal.*) *libarch.a:*esp_rom_systimer.*(.text .text.* .literal .literal.*) + *libarch.a:*esp_rom_tlsf.*(.literal .literal.* .text .text.*) *libarch.a:*esp_rom_wdt.*(.text .text.* .literal .literal.*) *libarch.a:*ocode_init.*(.text .text.* .literal .literal.*) *libarch.a:*esp_rom_regi2c_esp32h2.*(.text .text.* .literal .literal.*) @@ -124,6 +125,7 @@ SECTIONS *libarch.a:*uart_hal.*(.text .text.* .literal .literal.*) *libarch.a:*mpu_hal.*(.text .text.* .literal .literal.*) *libarch.a:*mmu_hal.*(.text .text.* .literal .literal.*) + *libarch.a:*pmu_hal.*(.literal .literal.* .text .text.*) *libarch.a:*uart_periph.*(.text .text.* .literal .literal.*) *libarch.a:*esp_rom_uart.*(.text .text.* .literal .literal.*) *libarch.a:*esp_rom_sys.*(.text .text.* .literal .literal.*) @@ -226,6 +228,7 @@ SECTIONS *libarch.a:*gpio_periph.*(.rodata .rodata.*) *libarch.a:*modem_clock_hal.*(.rodata .rodata.*) *libarch.a:*esp_rom_systimer.*(.rodata .rodata.*) + *libarch.a:*esp_rom_tlsf.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) *libarch.a:*esp_rom_wdt.*(.rodata .rodata.*) *libarch.a:*ocode_init.*(.rodata .rodata.*) *libarch.a:*esp_rom_regi2c_esp32h2.*(.rodata .rodata.*) @@ -262,6 +265,7 @@ SECTIONS *libarch.a:*uart_hal.*(.rodata .rodata.*) *libarch.a:*mpu_hal.*(.rodata .rodata.*) *libarch.a:*mmu_hal.*(.rodata .rodata.*) + *libarch.a:*pmu_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*) *libarch.a:*uart_periph.*(.rodata .rodata.*) *libarch.a:*esp_rom_uart.*(.rodata .rodata.*) *libarch.a:*esp_rom_sys.*(.rodata .rodata.*) @@ -326,12 +330,24 @@ SECTIONS .flash.text : ALIGN(0xFFFF) { _stext = .; + _instruction_reserved_start = ABSOLUTE(.); + _text_start = ABSOLUTE(.); *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */ *(.fini.literal) *(.fini) *(.gnu.version) + + /** CPU will try to prefetch up to 16 bytes of + * of instructions. This means that any configuration (e.g. MMU, PMS) must allow + * safe access to up to 16 bytes after the last real instruction, add + * dummy bytes to ensure this + */ + . += _esp_flash_mmap_prefetch_pad_size; + + _text_end = ABSOLUTE(.); + _instruction_reserved_end = ABSOLUTE(.); _etext = .; /* Similar to _iram_start, this symbol goes here so it is @@ -435,6 +451,10 @@ SECTIONS .rtc.text : { . = ALIGN(4); + _rtc_fast_start = ABSOLUTE(.); + _rtc_text_start = ABSOLUTE(.); + *(.rtc.entry.text) + *(.rtc.literal .rtc.text) } >rtc_iram_seg diff --git a/boards/xtensa/esp32/common/scripts/esp32_aliases.ld b/boards/xtensa/esp32/common/scripts/esp32_aliases.ld index 6ffa84db81..da6f5ac10e 100644 --- a/boards/xtensa/esp32/common/scripts/esp32_aliases.ld +++ b/boards/xtensa/esp32/common/scripts/esp32_aliases.ld @@ -22,6 +22,13 @@ /* Lower-case aliases for symbols not compliant to nxstyle */ +PROVIDE( rom_i2c_writereg = rom_i2c_writeReg ); + +PROVIDE( cache_flash_mmu_set = cache_flash_mmu_set_rom); +PROVIDE( cache_flush = Cache_Flush_rom ); +PROVIDE( cache_read_disable = Cache_Read_Disable_rom ); +PROVIDE( cache_read_enable = Cache_Read_Enable_rom ); + /* Bluetooth needs symbol alias, to be removed after IDF rename it */ #ifdef CONFIG_ESP32_BLE diff --git a/boards/xtensa/esp32/common/scripts/esp32_rom.ld b/boards/xtensa/esp32/common/scripts/esp32_rom.ld deleted file mode 100644 index 7554b74c32..0000000000 --- a/boards/xtensa/esp32/common/scripts/esp32_rom.ld +++ /dev/null @@ -1,2088 +0,0 @@ -/**************************************************************************** - * boards/xtensa/esp32/common/scripts/esp32_rom.ld - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. The - * ASF licenses this file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - ****************************************************************************/ - -/* -ESP32 ROM address table -Generated for ROM with MD5sum: -ab8282ae908fe9e7a63fb2a4ac2df013 ../../rom_image/prorom.elf -*/ - -/* Unlike other ROM functions which are exported using PROVIDE, which declares - * weak symbols, these libgcc functions are exported using assignment, - * which declares strong symbols. This is done so that ROM functions are always - * used instead of the ones provided by libgcc.a. - */ - -__absvdi2 = 0x4006387c; -__absvsi2 = 0x40063868; -__adddf3 = 0x40002590; -__addsf3 = 0x400020e8; -__addvdi3 = 0x40002cbc; -__addvsi3 = 0x40002c98; -__ashldi3 = 0x4000c818; -__ashrdi3 = 0x4000c830; -__bswapdi2 = 0x40064b08; -__bswapsi2 = 0x40064ae0; -__clrsbdi2 = 0x40064b7c; -__clrsbsi2 = 0x40064b64; -__clzdi2 = 0x4000ca50; -__clzsi2 = 0x4000c7e8; -__cmpdi2 = 0x40063820; -__ctzdi2 = 0x4000ca64; -__ctzsi2 = 0x4000c7f0; -__divdc3 = 0x400645a4; -__divdf3 = 0x40002954; -__divdi3 = 0x4000ca84; -__divsi3 = 0x4000c7b8; -__eqdf2 = 0x400636a8; -__eqsf2 = 0x40063374; -__extendsfdf2 = 0x40002c34; -__fixdfdi = 0x40002ac4; -__fixdfsi = 0x40002a78; -__fixsfdi = 0x4000244c; -__fixsfsi = 0x4000240c; -__fixunsdfsi = 0x40002b30; -__fixunssfdi = 0x40002504; -__fixunssfsi = 0x400024ac; -__floatdidf = 0x4000c988; -__floatdisf = 0x4000c8c0; -__floatsidf = 0x4000c944; -__floatsisf = 0x4000c870; -__floatundidf = 0x4000c978; -__floatundisf = 0x4000c8b0; -__floatunsidf = 0x4000c938; -__floatunsisf = 0x4000c864; -__gcc_bcmp = 0x40064a70; -__gedf2 = 0x40063768; -__gesf2 = 0x4006340c; -__gtdf2 = 0x400636dc; -__gtsf2 = 0x400633a0; -__ledf2 = 0x40063704; -__lesf2 = 0x400633c0; -__lshrdi3 = 0x4000c84c; -__ltdf2 = 0x40063790; -__ltsf2 = 0x4006342c; -__moddi3 = 0x4000cd4c; -__modsi3 = 0x4000c7c0; -__muldc3 = 0x40063c90; -__muldf3 = 0x4006358c; -__muldi3 = 0x4000c9fc; -__mulsf3 = 0x400632c8; -__mulsi3 = 0x4000c7b0; -__mulvdi3 = 0x40002d78; -__mulvsi3 = 0x40002d60; -__nedf2 = 0x400636a8; -__negdf2 = 0x400634a0; -__negdi2 = 0x4000ca14; -__negsf2 = 0x400020c0; -__negvdi2 = 0x40002e98; -__negvsi2 = 0x40002e78; -__nesf2 = 0x40063374; -__nsau_data = 0x3ff96544; -__paritysi2 = 0x40002f3c; -__popcount_tab = 0x3ff96544; -__popcountdi2 = 0x40002ef8; -__popcountsi2 = 0x40002ed0; -__powidf2 = 0x400638e4; -__subdf3 = 0x400026e4; -__subsf3 = 0x400021d0; -__subvdi3 = 0x40002d20; -__subvsi3 = 0x40002cf8; -__truncdfsf2 = 0x40002b90; -__ucmpdi2 = 0x40063840; -__udiv_w_sdiv = 0x40064bec; -__udivdi3 = 0x4000cff8; -__udivmoddi4 = 0x40064bf4; -__udivsi3 = 0x4000c7c8; -__umoddi3 = 0x4000d280; -__umodsi3 = 0x4000c7d0; -__umulsidi3 = 0x4000c7d8; -__unorddf2 = 0x400637f4; -__unordsf2 = 0x40063478; - -PROVIDE ( abort = 0x4000bba4 ); -PROVIDE ( abs = 0x40056340 ); -PROVIDE ( Add2SelfBigHex256 = 0x40015b7c ); -PROVIDE ( AddBigHex256 = 0x40015b28 ); -PROVIDE ( AddBigHexModP256 = 0x40015c98 ); -PROVIDE ( AddP256 = 0x40015c74 ); -PROVIDE ( AddPdiv2_256 = 0x40015ce0 ); -PROVIDE ( aes_128_cbc_decrypt = 0x4005cc7c ); -PROVIDE ( aes_128_cbc_encrypt = 0x4005cc18 ); -PROVIDE ( aes_unwrap = 0x4005ccf0 ); -PROVIDE ( app_gpio_arg = 0x3ffe003c ); -PROVIDE ( app_gpio_handler = 0x3ffe0040 ); -PROVIDE ( __ascii_wctomb = 0x40058ef0 ); -PROVIDE ( asctime = 0x40059588 ); -PROVIDE ( asctime_r = 0x40000ec8 ); -PROVIDE ( asiprintf = 0x40056d9c ); -PROVIDE ( _asiprintf_r = 0x40056d4c ); -PROVIDE ( asniprintf = 0x40056cd8 ); -PROVIDE ( _asniprintf_r = 0x40056c64 ); -PROVIDE ( asnprintf = 0x40056cd8 ); -PROVIDE ( _asnprintf_r = 0x40056c64 ); -PROVIDE ( asprintf = 0x40056d9c ); -PROVIDE ( _asprintf_r = 0x40056d4c ); -PROVIDE ( atoi = 0x400566c4 ); -PROVIDE ( _atoi_r = 0x400566d4 ); -PROVIDE ( atol = 0x400566ec ); -PROVIDE ( _atol_r = 0x400566fc ); -PROVIDE ( base64_decode = 0x4005ced8 ); -PROVIDE ( base64_encode = 0x4005cdbc ); -PROVIDE ( BasePoint_x_256 = 0x3ff97488 ); -PROVIDE ( BasePoint_y_256 = 0x3ff97468 ); -PROVIDE ( bigHexInversion256 = 0x400168f0 ); -PROVIDE ( bigHexP256 = 0x3ff973bc ); -PROVIDE ( btdm_r_ble_bt_handler_tab_p_get = 0x40019b0c ); -PROVIDE ( btdm_r_btdm_option_data_p_get = 0x40010004 ); -PROVIDE ( btdm_r_btdm_rom_version_get = 0x40010078 ); -PROVIDE ( btdm_r_data_init = 0x4001002c ); -PROVIDE ( btdm_r_import_rf_phy_func_p_get = 0x40054298 ); -PROVIDE ( btdm_r_ip_func_p_get = 0x40019af0 ); -PROVIDE ( btdm_r_ip_func_p_set = 0x40019afc ); -PROVIDE ( btdm_r_modules_func_p_get = 0x4005427c ); -PROVIDE ( btdm_r_modules_func_p_set = 0x40054270 ); -PROVIDE ( btdm_r_plf_func_p_set = 0x40054288 ); -PROVIDE ( bt_util_buf_env = 0x3ffb8bd4 ); -PROVIDE ( bzero = 0x4000c1f4 ); -PROVIDE ( cache_flash_mmu_set = 0x400095e0 ); -PROVIDE ( cache_flush = 0x40009a14 ); -PROVIDE ( cache_read_disable = 0x40009ab8 ); -PROVIDE ( cache_read_enable = 0x40009a84 ); -PROVIDE ( cache_read_init = 0x40009950 ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( calc_rtc_memory_crc = 0x40008170 ); -PROVIDE ( calloc = 0x4000bee4 ); -PROVIDE ( _calloc_r = 0x4000bbf8 ); -PROVIDE ( check_pos = 0x400068b8 ); -PROVIDE ( _cleanup = 0x40001df8 ); -PROVIDE ( _cleanup_r = 0x40001d48 ); -PROVIDE ( __clear_cache = 0x40063860 ); -PROVIDE ( close = 0x40001778 ); -PROVIDE ( _close_r = 0x4000bd3c ); -PROVIDE ( co_default_bdaddr = 0x3ffae704 ); -PROVIDE ( co_null_bdaddr = 0x3ffb80e0 ); -PROVIDE ( co_sca2ppm = 0x3ff971e8 ); -PROVIDE ( crc16_be = 0x4005d09c ); -PROVIDE ( crc16_le = 0x4005d05c ); -PROVIDE ( crc32_be = 0x4005d024 ); -PROVIDE ( crc32_le = 0x4005cfec ); -PROVIDE ( crc8_be = 0x4005d114 ); -PROVIDE ( crc8_le = 0x4005d0e0 ); -PROVIDE ( creat = 0x40000e8c ); -PROVIDE ( ctime = 0x400595b0 ); -PROVIDE ( ctime_r = 0x400595c4 ); -PROVIDE ( _ctype_ = 0x3ff96354 ); -PROVIDE ( __ctype_ptr__ = 0x3ff96350 ); -PROVIDE ( _data_end = 0x4000d5c8 ); -PROVIDE ( _data_end_btdm_rom = 0x4000d4f8 ); -PROVIDE ( _data_start = 0x4000d4f8 ); -PROVIDE ( _data_start_btdm_rom = 0x4000d4f4 ); -PROVIDE ( _data_start_btdm = 0x3ffae6e0); -PROVIDE ( _data_end_btdm = 0x3ffaff10); -PROVIDE ( _sbss_btdm = 0x3ffb8000); -PROVIDE ( _ebss_btdm = 0x3ffbff70); -PROVIDE ( _daylight = 0x3ffae0a4 ); -PROVIDE ( dbg_default_handler = 0x3ff97218 ); -PROVIDE ( dbg_default_state = 0x3ff97220 ); -PROVIDE ( dbg_state = 0x3ffb8d5d ); -PROVIDE ( DebugE256PublicKey_x = 0x3ff97428 ); -PROVIDE ( DebugE256PublicKey_y = 0x3ff97408 ); -PROVIDE ( DebugE256SecretKey = 0x3ff973e8 ); -PROVIDE ( debug_timer = 0x3ffe042c ); -PROVIDE ( debug_timerfn = 0x3ffe0430 ); -PROVIDE ( dh_group14_generator = 0x3ff9ac60 ); -PROVIDE ( dh_group14_prime = 0x3ff9ab60 ); -PROVIDE ( dh_group15_generator = 0x3ff9ab5f ); -PROVIDE ( dh_group15_prime = 0x3ff9a9df ); -PROVIDE ( dh_group16_generator = 0x3ff9a9de ); -PROVIDE ( dh_group16_prime = 0x3ff9a7de ); -PROVIDE ( dh_group17_generator = 0x3ff9a7dd ); -PROVIDE ( dh_group17_prime = 0x3ff9a4dd ); -PROVIDE ( dh_group18_generator = 0x3ff9a4dc ); -PROVIDE ( dh_group18_prime = 0x3ff9a0dc ); -PROVIDE ( dh_group1_generator = 0x3ff9ae03 ); -PROVIDE ( dh_group1_prime = 0x3ff9ada3 ); -PROVIDE ( dh_group2_generator = 0x3ff9ada2 ); -PROVIDE ( dh_group2_prime = 0x3ff9ad22 ); -PROVIDE ( dh_group5_generator = 0x3ff9ad21 ); -PROVIDE ( dh_group5_prime = 0x3ff9ac61 ); -PROVIDE ( div = 0x40056348 ); -PROVIDE ( _DoubleExceptionVector = 0x400003c0 ); -PROVIDE ( dummy_len_plus = 0x3ffae290 ); -PROVIDE ( __dummy_lock = 0x4000c728 ); -PROVIDE ( __dummy_lock_try = 0x4000c730 ); -PROVIDE ( ecc_env = 0x3ffb8d60 ); -PROVIDE ( ecc_Jacobian_InfinityPoint256 = 0x3ff972e8 ); -PROVIDE ( em_buf_env = 0x3ffb8d74 ); -PROVIDE ( environ = 0x3ffae0b4 ); -PROVIDE ( __env_lock = 0x40001fd4 ); -PROVIDE ( __env_lock_object = 0x3ffae0b8 ); -PROVIDE ( __env_unlock = 0x40001fe0 ); -PROVIDE ( esp_crc8 = 0x4005d144 ); -PROVIDE ( _etext = 0x4000d66c ); -PROVIDE ( ets_aes_crypt = 0x4005c9b8 ); -PROVIDE ( ets_aes_disable = 0x4005c8f8 ); -PROVIDE ( ets_aes_enable = 0x4005c8cc ); -PROVIDE ( ets_aes_set_endian = 0x4005c928 ); -PROVIDE ( ets_aes_setkey_dec = 0x4005c994 ); -PROVIDE ( ets_aes_setkey_enc = 0x4005c97c ); -PROVIDE ( ets_bigint_disable = 0x4005c4e0 ); -PROVIDE ( ets_bigint_enable = 0x4005c498 ); -PROVIDE ( ets_bigint_mod_mult_getz = 0x4005c818 ); -PROVIDE ( ets_bigint_mod_mult_prepare = 0x4005c7b4 ); -PROVIDE ( ets_bigint_mod_power_getz = 0x4005c614 ); -PROVIDE ( ets_bigint_mod_power_prepare = 0x4005c54c ); -PROVIDE ( ets_bigint_montgomery_mult_getz = 0x4005c7a4 ); -PROVIDE ( ets_bigint_montgomery_mult_prepare = 0x4005c6fc ); -PROVIDE ( ets_bigint_mult_getz = 0x4005c6e8 ); -PROVIDE ( ets_bigint_mult_prepare = 0x4005c630 ); -PROVIDE ( ets_bigint_wait_finish = 0x4005c520 ); -PROVIDE ( ets_delay_us = 0x40008534 ); -PROVIDE ( ets_efuse_get_8M_clock = 0x40008710 ); -PROVIDE ( ets_efuse_get_spiconfig = 0x40008658 ); -PROVIDE ( ets_efuse_program_op = 0x40008628 ); -PROVIDE ( ets_efuse_read_op = 0x40008600 ); -PROVIDE ( ets_get_cpu_frequency = 0x4000855c ); -PROVIDE ( ets_get_detected_xtal_freq = 0x40008588 ); -PROVIDE ( ets_get_xtal_scale = 0x4000856c ); -PROVIDE ( ets_update_cpu_frequency_rom = 0x40008550 ); -PROVIDE ( ets_install_putc1 = 0x40007d18 ); -PROVIDE ( ets_install_putc2 = 0x40007d38 ); -PROVIDE ( ets_install_uart_printf = 0x40007d28 ); -PROVIDE ( ets_intr_count = 0x3ffe03fc ); -PROVIDE ( ets_intr_lock = 0x400067b0 ); -PROVIDE ( ets_intr_unlock = 0x400067c4 ); -PROVIDE ( ets_isr_attach = 0x400067ec ); -PROVIDE ( ets_isr_mask = 0x400067fc ); -PROVIDE ( ets_isr_unmask = 0x40006808 ); -PROVIDE ( ets_post = 0x4000673c ); -PROVIDE ( ets_printf = 0x40007d54 ); -PROVIDE ( g_ticks_per_us_pro = 0x3ffe01e0 ); -PROVIDE ( g_ticks_per_us_app = 0x3ffe40f0 ); -PROVIDE ( ets_readySet_ = 0x3ffe01f0 ); -PROVIDE ( ets_run = 0x400066bc ); -PROVIDE ( ets_secure_boot_check = 0x4005cb40 ); -PROVIDE ( ets_secure_boot_check_finish = 0x4005cc04 ); -PROVIDE ( ets_secure_boot_check_start = 0x4005cbcc ); -PROVIDE ( ets_secure_boot_finish = 0x4005ca84 ); -PROVIDE ( ets_secure_boot_hash = 0x4005cad4 ); -PROVIDE ( ets_secure_boot_obtain = 0x4005cb14 ); -PROVIDE ( ets_secure_boot_rd_abstract = 0x4005cba8 ); -PROVIDE ( ets_secure_boot_rd_iv = 0x4005cb84 ); -PROVIDE ( ets_secure_boot_start = 0x4005ca34 ); -PROVIDE ( ets_set_appcpu_boot_addr = 0x4000689c ); -PROVIDE ( ets_set_idle_cb = 0x40006674 ); -PROVIDE ( ets_set_startup_callback = 0x4000688c ); -PROVIDE ( ets_set_user_start = 0x4000687c ); -PROVIDE ( ets_sha_disable = 0x4005c0a8 ); -PROVIDE ( ets_sha_enable = 0x4005c07c ); -PROVIDE ( ets_sha_finish = 0x4005c104 ); -PROVIDE ( ets_sha_init = 0x4005c0d4 ); -PROVIDE ( ets_sha_update = 0x4005c2a0 ); -PROVIDE ( ets_startup_callback = 0x3ffe0404 ); -PROVIDE ( ets_task = 0x40006688 ); -PROVIDE ( ets_timer_arm = 0x40008368 ); -PROVIDE ( ets_timer_arm_us = 0x400083ac ); -PROVIDE ( ets_timer_disarm = 0x400083ec ); -PROVIDE ( ets_timer_done = 0x40008428 ); -PROVIDE ( ets_timer_handler_isr = 0x40008454 ); -PROVIDE ( ets_timer_init = 0x400084e8 ); -PROVIDE ( ets_timer_setfn = 0x40008350 ); -PROVIDE ( ets_unpack_flash_code = 0x40007018 ); -PROVIDE ( ets_unpack_flash_code_legacy = 0x4000694c ); -PROVIDE ( ets_update_cpu_frequency = 0x40008550 ); -PROVIDE ( ets_waiti0 = 0x400067d8 ); -PROVIDE ( exc_cause_table = 0x3ff991d0 ); -PROVIDE ( _exit_r = 0x4000bd28 ); -PROVIDE ( fclose = 0x400020ac ); -PROVIDE ( _fclose_r = 0x40001fec ); -PROVIDE ( fflush = 0x40059394 ); -PROVIDE ( _fflush_r = 0x40059320 ); -PROVIDE ( FilePacketSendDeflatedReqMsgProc = 0x40008b24 ); -PROVIDE ( FilePacketSendReqMsgProc = 0x40008860 ); -PROVIDE ( _findenv_r = 0x40001f44 ); -PROVIDE ( fiprintf = 0x40056efc ); -PROVIDE ( _fiprintf_r = 0x40056ed8 ); -PROVIDE ( fiscanf = 0x40058884 ); -PROVIDE ( _fiscanf_r = 0x400588b4 ); -PROVIDE ( FlashDwnLdDeflatedStartMsgProc = 0x40008ad8 ); -PROVIDE ( FlashDwnLdParamCfgMsgProc = 0x4000891c ); -PROVIDE ( FlashDwnLdStartMsgProc = 0x40008820 ); -PROVIDE ( FlashDwnLdStopDeflatedReqMsgProc = 0x40008c18 ); -PROVIDE ( FlashDwnLdStopReqMsgProc = 0x400088ec ); -PROVIDE ( __fp_lock_all = 0x40001f1c ); -PROVIDE ( fprintf = 0x40056efc ); -PROVIDE ( _fprintf_r = 0x40056ed8 ); -PROVIDE ( __fp_unlock_all = 0x40001f30 ); -PROVIDE ( fputwc = 0x40058ea8 ); -PROVIDE ( __fputwc = 0x40058da0 ); -PROVIDE ( _fputwc_r = 0x40058e4c ); -PROVIDE ( free = 0x4000beb8 ); -PROVIDE ( _free_r = 0x4000bbcc ); -PROVIDE ( fscanf = 0x40058884 ); -PROVIDE ( _fscanf_r = 0x400588b4 ); -PROVIDE ( _fstat_r = 0x4000bccc ); -PROVIDE ( _fwalk = 0x4000c738 ); -PROVIDE ( _fwalk_reent = 0x4000c770 ); -PROVIDE ( _GeneralException = 0x40000e14 ); -PROVIDE ( __get_current_time_locale = 0x40001834 ); -PROVIDE ( _getenv_r = 0x40001fbc ); -PROVIDE ( _getpid_r = 0x4000bcfc ); -PROVIDE ( __getreent = 0x4000be8c ); -PROVIDE ( _gettimeofday_r = 0x4000bc58 ); -PROVIDE ( __gettzinfo = 0x40001fcc ); -PROVIDE ( GetUartDevice = 0x40009598 ); -PROVIDE ( GF_Jacobian_Point_Addition256 = 0x400163a4 ); -PROVIDE ( GF_Jacobian_Point_Double256 = 0x40016260 ); -PROVIDE ( GF_Point_Jacobian_To_Affine256 = 0x40016b0c ); -PROVIDE ( _global_impure_ptr = 0x3ffae0b0 ); -PROVIDE ( gmtime = 0x40059848 ); -PROVIDE ( gmtime_r = 0x40059868 ); -PROVIDE ( g_phyFuns_instance = 0x3ffae0c4 ); -PROVIDE ( gpio_init = 0x40009c20 ); -PROVIDE ( gpio_input_get = 0x40009b88 ); -PROVIDE ( gpio_input_get_high = 0x40009b9c ); -PROVIDE ( gpio_intr_ack = 0x40009dd4 ); -PROVIDE ( gpio_intr_ack_high = 0x40009e1c ); -PROVIDE ( gpio_intr_handler_register = 0x40009e6c ); -PROVIDE ( gpio_intr_pending = 0x40009cec ); -PROVIDE ( gpio_intr_pending_high = 0x40009cf8 ); -PROVIDE ( gpio_matrix_in = 0x40009edc ); -PROVIDE ( gpio_matrix_out = 0x40009f0c ); -PROVIDE ( gpio_output_set = 0x40009b24 ); -PROVIDE ( gpio_output_set_high = 0x40009b5c ); -PROVIDE ( gpio_pad_hold = 0x4000a734 ); -PROVIDE ( gpio_pad_pulldown = 0x4000a348 ); -PROVIDE ( gpio_pad_pullup = 0x4000a22c ); -PROVIDE ( gpio_pad_select_gpio = 0x40009fdc ); -PROVIDE ( gpio_pad_set_drv = 0x4000a11c ); -PROVIDE ( gpio_pad_unhold = 0x4000a484 ); -PROVIDE ( gpio_pending_mask = 0x3ffe0038 ); -PROVIDE ( gpio_pending_mask_high = 0x3ffe0044 ); -PROVIDE ( gpio_pin_intr_state_set = 0x40009d04 ); -PROVIDE ( gpio_pin_wakeup_disable = 0x40009eb0 ); -PROVIDE ( gpio_pin_wakeup_enable = 0x40009e7c ); -PROVIDE ( gpio_register_get = 0x40009cbc ); -PROVIDE ( gpio_register_set = 0x40009bbc ); -PROVIDE ( gTxMsg = 0x3ffe0050 ); -PROVIDE ( hci_cmd_desc_root_tab = 0x3ff976d4 ); -PROVIDE ( hci_cmd_desc_tab_ctrl_bb = 0x3ff97b70 ); -PROVIDE ( hci_cmd_desc_tab_info_par = 0x3ff97b1c ); -PROVIDE ( hci_cmd_desc_tab_le = 0x3ff97870 ); -PROVIDE ( hci_cmd_desc_tab_lk_ctrl = 0x3ff97fc0 ); -PROVIDE ( hci_cmd_desc_tab_lk_pol = 0x3ff97f3c ); -PROVIDE ( hci_cmd_desc_tab_stat_par = 0x3ff97ac8 ); -PROVIDE ( hci_cmd_desc_tab_testing = 0x3ff97a98 ); -PROVIDE ( hci_cmd_desc_tab_vs = 0x3ff97714 ); -PROVIDE ( hci_command_handler = 0x4004c928 ); -PROVIDE ( hci_env = 0x3ffb9350 ); -PROVIDE ( rwip_env = 0x3ffb8bcc ); -PROVIDE ( hci_evt_dbg_desc_tab = 0x3ff9750c ); -PROVIDE ( hci_evt_desc_tab = 0x3ff9751c ); -PROVIDE ( hci_evt_le_desc_tab = 0x3ff974b4 ); -PROVIDE ( hci_fc_env = 0x3ffb9340 ); -PROVIDE ( hmac_md5 = 0x4005d264 ); -PROVIDE ( hmac_md5_vector = 0x4005d17c ); -PROVIDE ( hmac_sha1 = 0x40060acc ); -PROVIDE ( hmac_sha1_vector = 0x400609e4 ); -PROVIDE ( hmac_sha256 = 0x40060d58 ); -PROVIDE ( hmac_sha256_vector = 0x40060c84 ); -PROVIDE ( intr_matrix_set = 0x4000681c ); -PROVIDE ( iprintf = 0x40056978 ); -PROVIDE ( _iprintf_r = 0x40056944 ); -PROVIDE ( isalnum = 0x40000f04 ); -PROVIDE ( isalpha = 0x40000f18 ); -PROVIDE ( isascii = 0x4000c20c ); -PROVIDE ( _isatty_r = 0x40000ea0 ); -PROVIDE ( isblank = 0x40000f2c ); -PROVIDE ( iscanf = 0x40058760 ); -PROVIDE ( _iscanf_r = 0x4005879c ); -PROVIDE ( iscntrl = 0x40000f50 ); -PROVIDE ( isdigit = 0x40000f64 ); -PROVIDE ( isgraph = 0x40000f94 ); -PROVIDE ( islower = 0x40000f78 ); -PROVIDE ( isprint = 0x40000fa8 ); -PROVIDE ( ispunct = 0x40000fc0 ); -PROVIDE ( isspace = 0x40000fd4 ); -PROVIDE ( isupper = 0x40000fe8 ); -PROVIDE ( itoa = 0x400566b4 ); -PROVIDE ( __itoa = 0x40056678 ); -PROVIDE ( jd_decomp = 0x400613e8 ); -PROVIDE ( jd_prepare = 0x40060fa8 ); -PROVIDE ( ke_env = 0x3ffb93cc ); -PROVIDE ( ke_handler_search = 0x4001a430 ); -PROVIDE ( ke_task_env = 0x3ffb81d4 ); -PROVIDE ( _KernelExceptionVector = 0x40000300 ); -PROVIDE ( _kill_r = 0x4000bd10 ); -PROVIDE ( labs = 0x40056370 ); -PROVIDE ( lb_default_handler = 0x3ff982b8 ); -PROVIDE ( lb_default_state_tab_p_get = 0x4001c198 ); -PROVIDE ( lb_env = 0x3ffb9424 ); -PROVIDE ( lb_hci_cmd_handler_tab_p_get = 0x4001c18c ); -PROVIDE ( lb_state = 0x3ffb94e8 ); -PROVIDE ( lc_default_handler = 0x3ff98648 ); -PROVIDE ( lc_default_state_tab_p_get = 0x4002f494 ); -PROVIDE ( lc_env = 0x3ffb94ec ); -PROVIDE ( lc_hci_cmd_handler_tab_p_get = 0x4002f488 ); -PROVIDE ( lc_state = 0x3ffb9508 ); -PROVIDE ( ld_acl_br_sizes = 0x3ff98a2a ); -PROVIDE ( ld_acl_br_types = 0x3ff98a36 ); -PROVIDE ( ld_acl_edr_sizes = 0x3ff98a14 ); -PROVIDE ( ld_acl_edr_types = 0x3ff98a22 ); -PROVIDE ( ld_env = 0x3ffb9510 ); -PROVIDE ( ldiv = 0x40056378 ); -PROVIDE ( ld_pcm_settings_dft = 0x3ff98a0c ); -PROVIDE ( ld_sched_params = 0x3ffb96c0 ); -PROVIDE ( ld_sync_train_channels = 0x3ff98a3c ); -PROVIDE ( _xtensa_level2_from = 0x40000954 ); -PROVIDE ( _xtensa_level2_vector = 0x40000180 ); -PROVIDE ( _xtensa_level3_from = 0x40000a28 ); -PROVIDE ( _xtensa_level3_vector = 0x400001c0 ); -PROVIDE ( _xtensa_level4_from = 0x40000af8 ); -PROVIDE ( _xtensa_level4_vector = 0x40000200 ); -PROVIDE ( _xtensa_level5_from = 0x40000c68 ); -PROVIDE ( _xtensa_level5_vector = 0x40000240 ); -PROVIDE ( _LevelOneInterrupt = 0x40000835 ); -PROVIDE ( _link_r = 0x4000bc9c ); -PROVIDE ( llc_default_handler = 0x3ff98b3c ); -PROVIDE ( llc_default_state_tab_p_get = 0x40046058 ); -PROVIDE ( llc_env = 0x3ffb96d0 ); -PROVIDE ( llc_hci_acl_data_tx_handler = 0x40042398 ); -PROVIDE ( llc_hci_cmd_handler_tab_p_get = 0x40042358 ); -PROVIDE ( llc_hci_command_handler = 0x40042360 ); -PROVIDE ( llcp_pdu_handler_tab_p_get = 0x40043f64 ); -PROVIDE ( llc_state = 0x3ffb96f8 ); -PROVIDE ( lldesc_build_chain = 0x4000a850 ); -PROVIDE ( lldesc_num2link = 0x4000a948 ); -PROVIDE ( lldesc_set_owner = 0x4000a974 ); -PROVIDE ( lld_evt_deferred_elt_push = 0x400466b4 ); -PROVIDE ( lld_evt_deferred_elt_pop = 0x400466dc ); -PROVIDE ( lld_evt_winsize_change = 0x40046730 ); -PROVIDE ( lld_evt_rxwin_compute = 0x400467c8 ); -PROVIDE ( lld_evt_slave_time_compute = 0x40046818 ); -PROVIDE ( lld_evt_env = 0x3ffb9704 ); -PROVIDE ( lld_evt_elt_wait_get = 0x400468e4 ); -PROVIDE ( lld_evt_get_next_free_slot = 0x4004692c ); -PROVIDE ( lld_pdu_adv_pk_desc_tab = 0x3ff98c70 ); -PROVIDE ( lld_pdu_llcp_pk_desc_tab = 0x3ff98b68 ); -PROVIDE ( lld_pdu_tx_flush_list = 0x4004a760 ); -PROVIDE ( lld_pdu_pack = 0x4004ab14 ); -PROVIDE ( LLM_AA_CT1 = 0x3ff98d8a ); -PROVIDE ( LLM_AA_CT2 = 0x3ff98d88 ); -PROVIDE ( llm_default_handler = 0x3ff98d80 ); -PROVIDE ( llm_default_state_tab_p_get = 0x4004e718 ); -PROVIDE ( llm_hci_cmd_handler_tab_p_get = 0x4004c920 ); -PROVIDE ( llm_le_env = 0x3ffb976c ); -PROVIDE ( llm_local_cmds = 0x3ff98d38 ); -PROVIDE ( llm_local_data_len_values = 0x3ff98d1c ); -PROVIDE ( llm_local_le_feats = 0x3ff98d30 ); -PROVIDE ( llm_local_le_states = 0x3ff98d28 ); -PROVIDE ( llm_state = 0x3ffb985c ); -PROVIDE ( lm_default_handler = 0x3ff990e0 ); -PROVIDE ( lm_default_state_tab_p_get = 0x40054268 ); -PROVIDE ( lm_env = 0x3ffb9860 ); -PROVIDE ( lm_hci_cmd_handler_tab_p_get = 0x4005425c ); -PROVIDE ( lm_local_supp_feats = 0x3ff990ee ); -PROVIDE ( lm_n_page_tab = 0x3ff990e8 ); -PROVIDE ( lmp_desc_tab = 0x3ff96e6c ); -PROVIDE ( lmp_ext_desc_tab = 0x3ff96d9c ); -PROVIDE ( lm_state = 0x3ffb9a1c ); -PROVIDE ( __locale_charset = 0x40059540 ); -PROVIDE ( __locale_cjk_lang = 0x40059558 ); -PROVIDE ( localeconv = 0x4005957c ); -PROVIDE ( _localeconv_r = 0x40059560 ); -PROVIDE ( __locale_mb_cur_max = 0x40059548 ); -PROVIDE ( __locale_msgcharset = 0x40059550 ); -PROVIDE ( localtime = 0x400595dc ); -PROVIDE ( localtime_r = 0x400595fc ); -PROVIDE ( _lock_acquire = 0x4000be14 ); -PROVIDE ( _lock_acquire_recursive = 0x4000be28 ); -PROVIDE ( _lock_close = 0x4000bdec ); -PROVIDE ( _lock_close_recursive = 0x4000be00 ); -PROVIDE ( _lock_init = 0x4000bdc4 ); -PROVIDE ( _lock_init_recursive = 0x4000bdd8 ); -PROVIDE ( _lock_release = 0x4000be64 ); -PROVIDE ( _lock_release_recursive = 0x4000be78 ); -PROVIDE ( _lock_try_acquire = 0x4000be3c ); -PROVIDE ( _lock_try_acquire_recursive = 0x4000be50 ); -PROVIDE ( longjmp = 0x400562cc ); -PROVIDE ( _lseek_r = 0x4000bd8c ); -PROVIDE ( malloc = 0x4000bea0 ); -PROVIDE ( _malloc_r = 0x4000bbb4 ); -PROVIDE ( maxSecretKey_256 = 0x3ff97448 ); -PROVIDE ( __mb_cur_max = 0x3ff96530 ); -PROVIDE ( MD5Final = 0x4005db1c ); -PROVIDE ( MD5Init = 0x4005da7c ); -PROVIDE ( MD5Update = 0x4005da9c ); -PROVIDE ( md5_vector = 0x4005db80 ); -PROVIDE ( memccpy = 0x4000c220 ); -PROVIDE ( memchr = 0x4000c244 ); -PROVIDE ( memcmp = 0x4000c260 ); -PROVIDE ( memcpy = 0x4000c2c8 ); -PROVIDE ( MemDwnLdStartMsgProc = 0x40008948 ); -PROVIDE ( MemDwnLdStopReqMsgProc = 0x400089dc ); -PROVIDE ( memmove = 0x4000c3c0 ); -PROVIDE ( MemPacketSendReqMsgProc = 0x40008978 ); -PROVIDE ( memrchr = 0x4000c400 ); -PROVIDE ( memset = 0x4000c44c ); -PROVIDE ( mktime = 0x4005a5e8 ); -PROVIDE ( mmu_init = 0x400095a4 ); -PROVIDE ( __month_lengths = 0x3ff9609c ); -PROVIDE ( MultiplyBigHexByUint32_256 = 0x40016214 ); -PROVIDE ( MultiplyBigHexModP256 = 0x400160b8 ); -PROVIDE ( MultiplyByU32ModP256 = 0x40015fdc ); -PROVIDE ( multofup = 0x4000ab8c ); -PROVIDE ( mz_adler32 = 0x4005edbc ); -PROVIDE ( mz_crc32 = 0x4005ee88 ); -PROVIDE ( mz_free = 0x4005eed4 ); -PROVIDE ( _NMIExceptionVector = 0x400002c0 ); -PROVIDE ( notEqual256 = 0x40015b04 ); -PROVIDE ( one_bits = 0x3ff971f8 ); -PROVIDE ( open = 0x4000178c ); -PROVIDE ( _open_r = 0x4000bd54 ); -PROVIDE ( pbkdf2_sha1 = 0x40060ba4 ); -PROVIDE ( phy_get_romfuncs = 0x40004100 ); -PROVIDE ( __powisf2 = 0x4006389c ); -PROVIDE ( _Pri_4_HandlerAddress = 0x3ffe0648 ); -PROVIDE ( _Pri_5_HandlerAddress = 0x3ffe064c ); -PROVIDE ( printf = 0x40056978 ); -PROVIDE ( _printf_common = 0x40057338 ); -PROVIDE ( _printf_float = 0x4000befc ); -PROVIDE ( _printf_i = 0x40057404 ); -PROVIDE ( _printf_r = 0x40056944 ); -PROVIDE ( qsort = 0x40056424 ); -PROVIDE ( _raise_r = 0x4000bc70 ); -PROVIDE ( rand = 0x40001058 ); -PROVIDE ( rand_r = 0x400010d4 ); -PROVIDE ( r_btdm_option_data = 0x3ffae6e0 ); -PROVIDE ( r_bt_util_buf_acl_rx_alloc = 0x40010218 ); -PROVIDE ( r_bt_util_buf_acl_rx_free = 0x40010234 ); -PROVIDE ( r_bt_util_buf_acl_tx_alloc = 0x40010268 ); -PROVIDE ( r_bt_util_buf_acl_tx_free = 0x40010280 ); -PROVIDE ( r_bt_util_buf_init = 0x400100e4 ); -PROVIDE ( r_bt_util_buf_lmp_tx_alloc = 0x400101d0 ); -PROVIDE ( r_bt_util_buf_lmp_tx_free = 0x400101ec ); -PROVIDE ( r_bt_util_buf_sync_clear = 0x400103c8 ); -PROVIDE ( r_bt_util_buf_sync_init = 0x400102c4 ); -PROVIDE ( r_bt_util_buf_sync_rx_alloc = 0x40010468 ); -PROVIDE ( r_bt_util_buf_sync_rx_free = 0x4001049c ); -PROVIDE ( r_bt_util_buf_sync_tx_alloc = 0x400103ec ); -PROVIDE ( r_bt_util_buf_sync_tx_free = 0x40010428 ); -PROVIDE ( rc4_skip = 0x40060928 ); -PROVIDE ( r_co_bdaddr_compare = 0x40014324 ); -PROVIDE ( r_co_bytes_to_string = 0x400142e4 ); -PROVIDE ( r_co_list_check_size_available = 0x400142c4 ); -PROVIDE ( r_co_list_extract = 0x4001404c ); -PROVIDE ( r_co_list_extract_after = 0x40014118 ); -PROVIDE ( r_co_list_find = 0x4001419c ); -PROVIDE ( r_co_list_init = 0x40013f14 ); -PROVIDE ( r_co_list_insert_after = 0x40014254 ); -PROVIDE ( r_co_list_insert_before = 0x40014200 ); -PROVIDE ( r_co_list_merge = 0x400141bc ); -PROVIDE ( r_co_list_pool_init = 0x40013f30 ); -PROVIDE ( r_co_list_pop_front = 0x40014028 ); -PROVIDE ( r_co_list_push_back = 0x40013fb8 ); -PROVIDE ( r_co_list_push_front = 0x40013ff4 ); -PROVIDE ( r_co_list_size = 0x400142ac ); -PROVIDE ( r_co_nb_good_channels = 0x40014360 ); -PROVIDE ( r_co_slot_to_duration = 0x40014348 ); -PROVIDE ( RcvMsg = 0x4000954c ); -PROVIDE ( r_dbg_init = 0x40014394 ); -PROVIDE ( r_dbg_platform_reset_complete = 0x400143d0 ); -PROVIDE ( r_dbg_swdiag_init = 0x40014470 ); -PROVIDE ( r_dbg_swdiag_read = 0x400144a4 ); -PROVIDE ( r_dbg_swdiag_write = 0x400144d0 ); -PROVIDE ( r_E1 = 0x400108e8 ); -PROVIDE ( r_E21 = 0x40010968 ); -PROVIDE ( r_E22 = 0x400109b4 ); -PROVIDE ( r_E3 = 0x40010a58 ); -PROVIDE ( lm_n192_mod_mul = 0x40011dc0 ); -PROVIDE ( lm_n192_mod_add = 0x40011e9c ); -PROVIDE ( lm_n192_mod_sub = 0x40011eec ); -PROVIDE ( r_ea_alarm_clear = 0x40015ab4 ); -PROVIDE ( r_ea_alarm_set = 0x40015a10 ); -PROVIDE ( read = 0x400017dc ); -PROVIDE ( _read_r = 0x4000bda8 ); -PROVIDE ( r_ea_elt_cancel = 0x400150d0 ); -PROVIDE ( r_ea_elt_create = 0x40015264 ); -PROVIDE ( r_ea_elt_insert = 0x400152a8 ); -PROVIDE ( r_ea_elt_remove = 0x400154f0 ); -PROVIDE ( r_ea_finetimer_isr = 0x400155d4 ); -PROVIDE ( r_ea_init = 0x40015228 ); -PROVIDE ( r_ea_interval_create = 0x4001555c ); -PROVIDE ( r_ea_interval_delete = 0x400155a8 ); -PROVIDE ( r_ea_interval_duration_req = 0x4001597c ); -PROVIDE ( r_ea_interval_insert = 0x4001557c ); -PROVIDE ( r_ea_interval_remove = 0x40015590 ); -PROVIDE ( realloc = 0x4000becc ); -PROVIDE ( _realloc_r = 0x4000bbe0 ); -PROVIDE ( ea_conflict_check = 0x40014e9c ); -PROVIDE ( ea_prog_timer = 0x40014f88 ); -PROVIDE ( r_ea_offset_req = 0x40015748 ); -PROVIDE ( r_ea_sleep_check = 0x40015928 ); -PROVIDE ( r_ea_sw_isr = 0x40015724 ); -PROVIDE ( r_ea_time_get_halfslot_rounded = 0x40015894 ); -PROVIDE ( r_ea_time_get_slot_rounded = 0x400158d4 ); -PROVIDE ( r_ecc_abort_key256_generation = 0x40017070 ); -PROVIDE ( r_ecc_generate_key256 = 0x40016e00 ); -PROVIDE ( r_ecc_gen_new_public_key = 0x400170c0 ); -PROVIDE ( r_ecc_gen_new_secret_key = 0x400170e4 ); -PROVIDE ( r_ecc_get_debug_Keys = 0x40017224 ); -PROVIDE ( r_ecc_init = 0x40016dbc ); -PROVIDE ( ecc_point_multiplication_uint8_256 = 0x40016804 ); -PROVIDE ( RecvBuff = 0x3ffe009c ); -PROVIDE ( recv_packet = 0x40009424 ); -PROVIDE ( r_em_buf_init = 0x4001729c ); -PROVIDE ( r_em_buf_rx_buff_addr_get = 0x400173e8 ); -PROVIDE ( r_em_buf_rx_free = 0x400173c4 ); -PROVIDE ( r_em_buf_tx_buff_addr_get = 0x40017404 ); -PROVIDE ( r_em_buf_tx_free = 0x4001741c ); -PROVIDE ( _rename_r = 0x4000bc28 ); -PROVIDE ( _ResetHandler = 0x40000450 ); -PROVIDE ( _ResetVector = 0x40000400 ); -PROVIDE ( r_F1_256 = 0x400133e4 ); -PROVIDE ( r_F2_256 = 0x40013568 ); -PROVIDE ( r_F3_256 = 0x40013664 ); -PROVIDE ( RFPLL_ICP_TABLE = 0x3ffb8b7c ); -PROVIDE ( r_G_256 = 0x40013470 ); -PROVIDE ( r_H3 = 0x40013760 ); -PROVIDE ( r_H4 = 0x40013830 ); -PROVIDE ( r_h4tl_init = 0x40017878 ); -PROVIDE ( r_h4tl_start = 0x40017924 ); -PROVIDE ( r_h4tl_stop = 0x40017934 ); -PROVIDE ( r_h4tl_write = 0x400178d0 ); -PROVIDE ( r_H5 = 0x400138dc ); -PROVIDE ( r_hashConcat = 0x40013a38 ); -PROVIDE ( r_hci_acl_tx_data_alloc = 0x4001951c ); -PROVIDE ( r_hci_acl_tx_data_received = 0x40019654 ); -PROVIDE ( r_hci_bt_acl_bdaddr_register = 0x40018900 ); -PROVIDE ( r_hci_bt_acl_bdaddr_unregister = 0x400189ac ); -PROVIDE ( r_hci_bt_acl_conhdl_register = 0x4001895c ); -PROVIDE ( r_hci_cmd_get_max_param_size = 0x400192d0 ); -PROVIDE ( r_hci_cmd_received = 0x400192f8 ); -PROVIDE ( r_hci_evt_filter_add = 0x40018a64 ); -PROVIDE ( r_hci_evt_mask_set = 0x400189e4 ); -PROVIDE ( r_hci_fc_acl_buf_size_set = 0x40017988 ); -PROVIDE ( r_hci_fc_acl_en = 0x400179d8 ); -PROVIDE ( r_hci_fc_acl_packet_sent = 0x40017a3c ); -PROVIDE ( r_hci_fc_check_host_available_nb_acl_packets = 0x40017aa4 ); -PROVIDE ( r_hci_fc_check_host_available_nb_sync_packets = 0x40017ac8 ); -PROVIDE ( r_hci_fc_host_nb_acl_pkts_complete = 0x40017a6c ); -PROVIDE ( r_hci_fc_host_nb_sync_pkts_complete = 0x40017a88 ); -PROVIDE ( r_hci_fc_init = 0x40017974 ); -PROVIDE ( r_hci_fc_sync_buf_size_set = 0x400179b0 ); -PROVIDE ( r_hci_fc_sync_en = 0x40017a30 ); -PROVIDE ( r_hci_fc_sync_packet_sent = 0x40017a54 ); -PROVIDE ( r_hci_init = 0x40018538 ); -PROVIDE ( r_hci_look_for_cmd_desc = 0x40018454 ); -PROVIDE ( r_hci_look_for_dbg_evt_desc = 0x400184c4 ); -PROVIDE ( r_hci_look_for_evt_desc = 0x400184a0 ); -PROVIDE ( r_hci_look_for_le_evt_desc = 0x400184e0 ); -PROVIDE ( r_hci_reset = 0x4001856c ); -PROVIDE ( r_hci_send_2_host = 0x400185bc ); -PROVIDE ( r_hci_sync_tx_data_alloc = 0x40019754 ); -PROVIDE ( r_hci_sync_tx_data_received = 0x400197c0 ); -PROVIDE ( r_hci_tl_init = 0x40019290 ); -PROVIDE ( r_hci_tl_send = 0x40019228 ); -PROVIDE ( r_hci_util_pack = 0x40019874 ); -PROVIDE ( r_hci_util_unpack = 0x40019998 ); -PROVIDE ( r_hci_voice_settings_get = 0x40018bdc ); -PROVIDE ( r_hci_voice_settings_set = 0x40018be8 ); -PROVIDE ( r_HMAC = 0x40013968 ); -PROVIDE ( r_import_rf_phy_func = 0x3ffb8354 ); -PROVIDE ( r_import_rf_phy_func_p = 0x3ffafd64 ); -PROVIDE ( r_ip_funcs = 0x3ffae710 ); -PROVIDE ( r_ip_funcs_p = 0x3ffae70c ); -PROVIDE ( r_ke_check_malloc = 0x40019de0 ); -PROVIDE ( r_ke_event_callback_set = 0x40019ba8 ); -PROVIDE ( r_ke_event_clear = 0x40019c2c ); -PROVIDE ( r_ke_event_flush = 0x40019ccc ); -PROVIDE ( r_ke_event_get = 0x40019c78 ); -PROVIDE ( r_ke_event_get_all = 0x40019cc0 ); -PROVIDE ( r_ke_event_init = 0x40019b90 ); -PROVIDE ( r_ke_event_schedule = 0x40019cdc ); -PROVIDE ( r_ke_event_set = 0x40019be0 ); -PROVIDE ( r_ke_flush = 0x4001a374 ); -PROVIDE ( r_ke_free = 0x4001a014 ); -PROVIDE ( r_ke_get_max_mem_usage = 0x4001a1c8 ); -PROVIDE ( r_ke_get_mem_usage = 0x4001a1a0 ); -PROVIDE ( r_ke_init = 0x4001a318 ); -PROVIDE ( r_ke_is_free = 0x4001a184 ); -PROVIDE ( r_ke_malloc = 0x40019eb4 ); -PROVIDE ( r_ke_mem_init = 0x40019d3c ); -PROVIDE ( r_ke_mem_is_empty = 0x40019d8c ); -PROVIDE ( r_ke_msg_alloc = 0x4001a1e0 ); -PROVIDE ( r_ke_msg_dest_id_get = 0x4001a2e0 ); -PROVIDE ( r_ke_msg_discard = 0x4001a850 ); -PROVIDE ( r_ke_msg_forward = 0x4001a290 ); -PROVIDE ( r_ke_msg_forward_new_id = 0x4001a2ac ); -PROVIDE ( r_ke_msg_free = 0x4001a2cc ); -PROVIDE ( r_ke_msg_in_queue = 0x4001a2f8 ); -PROVIDE ( r_ke_msg_save = 0x4001a858 ); -PROVIDE ( r_ke_msg_send = 0x4001a234 ); -PROVIDE ( r_ke_msg_send_basic = 0x4001a26c ); -PROVIDE ( r_ke_msg_src_id_get = 0x4001a2ec ); -PROVIDE ( r_ke_queue_extract = 0x40055fd0 ); -PROVIDE ( r_ke_queue_insert = 0x40056020 ); -PROVIDE ( r_ke_sleep_check = 0x4001a3d8 ); -PROVIDE ( r_ke_state_get = 0x4001a7d8 ); -PROVIDE ( r_ke_state_set = 0x4001a6fc ); -PROVIDE ( r_ke_stats_get = 0x4001a3f0 ); -PROVIDE ( r_ke_task_check = 0x4001a8a4 ); -PROVIDE ( r_ke_task_create = 0x4001a674 ); -PROVIDE ( r_ke_task_delete = 0x4001a6c0 ); -PROVIDE ( r_ke_task_init = 0x4001a650 ); -PROVIDE ( r_ke_task_msg_flush = 0x4001a860 ); -PROVIDE ( r_ke_timer_active = 0x4001ac08 ); -PROVIDE ( r_ke_timer_adjust_all = 0x4001ac30 ); -PROVIDE ( r_ke_timer_clear = 0x4001ab90 ); -PROVIDE ( r_ke_timer_init = 0x4001aa9c ); -PROVIDE ( r_ke_timer_set = 0x4001aac0 ); -PROVIDE ( r_ke_timer_sleep_check = 0x4001ac50 ); -PROVIDE ( r_KPrimC = 0x40010ad4 ); -PROVIDE ( r_lb_clk_adj_activate = 0x4001ae70 ); -PROVIDE ( r_lb_clk_adj_id_get = 0x4001af14 ); -PROVIDE ( r_lb_clk_adj_period_update = 0x4001af20 ); -PROVIDE ( r_lb_init = 0x4001acd4 ); -PROVIDE ( r_lb_mst_key = 0x4001afc0 ); -PROVIDE ( r_lb_mst_key_cmp = 0x4001af74 ); -PROVIDE ( r_lb_mst_key_restart_enc = 0x4001b0d4 ); -PROVIDE ( r_lb_mst_start_act_bcst_enc = 0x4001b198 ); -PROVIDE ( r_lb_mst_stop_act_bcst_enc = 0x4001b24c ); -PROVIDE ( r_lb_reset = 0x4001ad38 ); -PROVIDE ( r_lb_send_lmp = 0x4001adbc ); -PROVIDE ( r_lb_send_pdu_clk_adj = 0x4001af3c ); -PROVIDE ( r_lb_util_get_csb_mode = 0x4001ada4 ); -PROVIDE ( r_lb_util_get_nb_broadcast = 0x4001ad80 ); -PROVIDE ( r_lb_util_get_res_lt_addr = 0x4001ad98 ); -PROVIDE ( r_lb_util_set_nb_broadcast = 0x4001ad8c ); -PROVIDE ( r_lc_afh_set = 0x4001cc74 ); -PROVIDE ( r_lc_afh_start = 0x4001d240 ); -PROVIDE ( r_lc_auth_cmp = 0x4001cd54 ); -PROVIDE ( r_lc_calc_link_key = 0x4001ce7c ); -PROVIDE ( r_lc_chg_pkt_type_cmp = 0x4001d038 ); -PROVIDE ( r_lc_chg_pkt_type_cont = 0x4001cfbc ); -PROVIDE ( r_lc_chg_pkt_type_retry = 0x4001d0ac ); -PROVIDE ( r_lc_chk_to = 0x4001d2a8 ); -PROVIDE ( r_lc_cmd_stat_send = 0x4001c914 ); -PROVIDE ( r_lc_comb_key_svr = 0x4001d30c ); -PROVIDE ( r_lc_con_cmp = 0x4001d44c ); -PROVIDE ( r_lc_con_cmp_evt_send = 0x4001d4fc ); -PROVIDE ( r_lc_conn_seq_done = 0x40021334 ); -PROVIDE ( r_lc_detach = 0x4002037c ); -PROVIDE ( r_lc_dhkey = 0x4001d564 ); -PROVIDE ( r_lc_enc_cmp = 0x4001d8bc ); -PROVIDE ( r_lc_enc_key_refresh = 0x4001d720 ); -PROVIDE ( r_lc_end_chk_colli = 0x4001d858 ); -PROVIDE ( r_lc_end_of_sniff_nego = 0x4001d9a4 ); -PROVIDE ( r_lc_enter_sniff_mode = 0x4001ddb8 ); -PROVIDE ( r_lc_epr_change_lk = 0x4001db38 ); -PROVIDE ( r_lc_epr_cmp = 0x4001da88 ); -PROVIDE ( r_lc_epr_resp = 0x4001e0b4 ); -PROVIDE ( r_lc_epr_rsw_cmp = 0x4001dd40 ); -PROVIDE ( r_lc_ext_feat = 0x40020d6c ); -PROVIDE ( r_lc_feat = 0x40020984 ); -PROVIDE ( r_lc_hl_connect = 0x400209e8 ); -PROVIDE ( r_lc_init = 0x4001c948 ); -PROVIDE ( r_lc_init_calc_f3 = 0x4001deb0 ); -PROVIDE ( r_lc_initiator_epr = 0x4001e064 ); -PROVIDE ( r_lc_init_passkey_loop = 0x4001dfc0 ); -PROVIDE ( r_lc_init_start_mutual_auth = 0x4001df60 ); -PROVIDE ( r_lc_key_exch_end = 0x4001e140 ); -PROVIDE ( r_lc_legacy_pair = 0x4001e1c0 ); -PROVIDE ( r_lc_local_switch = 0x4001e22c ); -PROVIDE ( r_lc_local_trans_mode = 0x4001e2e4 ); -PROVIDE ( r_lc_local_untrans_mode = 0x4001e3a0 ); -PROVIDE ( r_lc_loc_auth = 0x40020ecc ); -PROVIDE ( r_lc_locepr_lkref = 0x4001d648 ); -PROVIDE ( r_lc_locepr_rsw = 0x4001d5d0 ); -PROVIDE ( r_lc_loc_sniff = 0x40020a6c ); -PROVIDE ( r_lc_max_slot_mgt = 0x4001e410 ); -PROVIDE ( r_lc_mst_key = 0x4001e7c0 ); -PROVIDE ( r_lc_mst_qos_done = 0x4001ea80 ); -PROVIDE ( r_lc_mst_send_mst_key = 0x4001e8f4 ); -PROVIDE ( r_lc_mutual_auth_end = 0x4001e670 ); -PROVIDE ( r_lc_mutual_auth_end2 = 0x4001e4f4 ); -PROVIDE ( r_lc_packet_type = 0x40021038 ); -PROVIDE ( r_lc_pair = 0x40020ddc ); -PROVIDE ( r_lc_pairing_cont = 0x4001eafc ); -PROVIDE ( r_lc_passkey_comm = 0x4001ed20 ); -PROVIDE ( r_lc_prepare_all_links_for_clk_adj = 0x40021430 ); -PROVIDE ( r_lc_proc_rcv_dhkey = 0x4001edec ); -PROVIDE ( r_lc_ptt = 0x4001ee2c ); -PROVIDE ( r_lc_ptt_cmp = 0x4001eeec ); -PROVIDE ( r_lc_qos_setup = 0x4001ef50 ); -PROVIDE ( r_lc_rd_rem_name = 0x4001efd0 ); -PROVIDE ( r_lc_release = 0x4001f8a8 ); -PROVIDE ( r_lc_rem_enc = 0x4001f124 ); -PROVIDE ( r_lc_rem_name_cont = 0x4001f290 ); -PROVIDE ( r_lc_rem_nego_trans_mode = 0x4001f1b4 ); -PROVIDE ( r_lc_rem_sniff = 0x40020ca4 ); -PROVIDE ( r_lc_rem_sniff_sub_rate = 0x40020b10 ); -PROVIDE ( r_lc_rem_switch = 0x4001f070 ); -PROVIDE ( r_lc_rem_trans_mode = 0x4001f314 ); -PROVIDE ( r_lc_rem_unsniff = 0x400207a0 ); -PROVIDE ( r_lc_rem_untrans_mode = 0x4001f36c ); -PROVIDE ( r_lc_reset = 0x4001c99c ); -PROVIDE ( r_lc_resp_auth = 0x4001f518 ); -PROVIDE ( r_lc_resp_calc_f3 = 0x4001f710 ); -PROVIDE ( r_lc_resp_num_comp = 0x40020074 ); -PROVIDE ( r_lc_resp_oob_nonce = 0x4001f694 ); -PROVIDE ( r_lc_resp_oob_wait_nonce = 0x4001f66c ); -PROVIDE ( r_lc_resp_pair = 0x400208a4 ); -PROVIDE ( r_lc_resp_sec_auth = 0x4001f4a0 ); -PROVIDE ( r_lc_resp_wait_dhkey_cont = 0x4001f86c ); -PROVIDE ( r_lc_restart_enc = 0x4001f8ec ); -PROVIDE ( r_lc_restart_enc_cont = 0x4001f940 ); -PROVIDE ( r_lc_restore_afh_reporting = 0x4001f028 ); -PROVIDE ( r_lc_restore_to = 0x4001f9e0 ); -PROVIDE ( r_lc_ret_sniff_max_slot_chg = 0x4001fa30 ); -PROVIDE ( r_lc_rsw_clean_up = 0x4001dc70 ); -PROVIDE ( r_lc_rsw_done = 0x4001db94 ); -PROVIDE ( r_lc_sco_baseband_ack = 0x40022b00 ); -PROVIDE ( r_lc_sco_detach = 0x40021e40 ); -PROVIDE ( r_lc_sco_host_accept = 0x40022118 ); -PROVIDE ( r_lc_sco_host_reject = 0x400222b8 ); -PROVIDE ( r_lc_sco_host_request = 0x40021f4c ); -PROVIDE ( r_lc_sco_host_request_disc = 0x4002235c ); -PROVIDE ( r_lc_sco_init = 0x40021dc8 ); -PROVIDE ( r_lc_sco_peer_accept = 0x40022780 ); -PROVIDE ( r_lc_sco_peer_accept_disc = 0x40022a08 ); -PROVIDE ( r_lc_sco_peer_reject = 0x40022824 ); -PROVIDE ( r_lc_sco_peer_reject_disc = 0x40022a8c ); -PROVIDE ( r_lc_sco_peer_request = 0x4002240c ); -PROVIDE ( r_lc_sco_peer_request_disc = 0x400228ec ); -PROVIDE ( r_lc_sco_release = 0x40021eec ); -PROVIDE ( r_lc_sco_reset = 0x40021dfc ); -PROVIDE ( r_lc_sco_timeout = 0x40022bd4 ); -PROVIDE ( r_lc_sec_auth_compute_sres = 0x4001f3ec ); -PROVIDE ( r_lc_semi_key_cmp = 0x40020294 ); -PROVIDE ( r_lc_send_enc_chg_evt = 0x4002134c ); -PROVIDE ( r_lc_send_enc_mode = 0x40020220 ); -PROVIDE ( r_lc_send_lmp = 0x4001c1a8 ); -PROVIDE ( r_lc_send_pdu_acc = 0x4001c21c ); -PROVIDE ( r_lc_send_pdu_acc_ext4 = 0x4001c240 ); -PROVIDE ( r_lc_send_pdu_au_rand = 0x4001c308 ); -PROVIDE ( r_lc_send_pdu_auto_rate = 0x4001c5d0 ); -PROVIDE ( r_lc_send_pdu_clk_adj_ack = 0x4001c46c ); -PROVIDE ( r_lc_send_pdu_clk_adj_req = 0x4001c494 ); -PROVIDE ( r_lc_send_pdu_comb_key = 0x4001c368 ); -PROVIDE ( r_lc_send_pdu_dhkey_chk = 0x4001c8e8 ); -PROVIDE ( r_lc_send_pdu_encaps_head = 0x4001c440 ); -PROVIDE ( r_lc_send_pdu_encaps_payl = 0x4001c410 ); -PROVIDE ( r_lc_send_pdu_enc_key_sz_req = 0x4001c670 ); -PROVIDE ( r_lc_send_pdu_esco_lk_rem_req = 0x4001c5a8 ); -PROVIDE ( r_lc_send_pdu_feats_ext_req = 0x4001c6ec ); -PROVIDE ( r_lc_send_pdu_feats_res = 0x4001c694 ); -PROVIDE ( r_lc_send_pdu_in_rand = 0x4001c338 ); -PROVIDE ( r_lc_send_pdu_io_cap_res = 0x4001c72c ); -PROVIDE ( r_lc_send_pdu_lsto = 0x4001c64c ); -PROVIDE ( r_lc_send_pdu_max_slot = 0x4001c3c8 ); -PROVIDE ( r_lc_send_pdu_max_slot_req = 0x4001c3ec ); -PROVIDE ( r_lc_send_pdu_not_acc = 0x4001c26c ); -PROVIDE ( r_lc_send_pdu_not_acc_ext4 = 0x4001c294 ); -PROVIDE ( r_lc_send_pdu_num_comp_fail = 0x4001c770 ); -PROVIDE ( r_lc_send_pdu_pause_enc_aes_req = 0x4001c794 ); -PROVIDE ( r_lc_send_pdu_paus_enc_req = 0x4001c7c0 ); -PROVIDE ( r_lc_send_pdu_ptt_req = 0x4001c4c0 ); -PROVIDE ( r_lc_send_pdu_qos_req = 0x4001c82c ); -PROVIDE ( r_lc_send_pdu_resu_enc_req = 0x4001c7e4 ); -PROVIDE ( r_lc_send_pdu_sco_lk_rem_req = 0x4001c580 ); -PROVIDE ( r_lc_send_pdu_set_afh = 0x4001c2c8 ); -PROVIDE ( r_lc_send_pdu_setup_cmp = 0x4001c808 ); -PROVIDE ( r_lc_send_pdu_slot_off = 0x4001c854 ); -PROVIDE ( r_lc_send_pdu_sniff_req = 0x4001c5f0 ); -PROVIDE ( r_lc_send_pdu_sp_cfm = 0x4001c518 ); -PROVIDE ( r_lc_send_pdu_sp_nb = 0x4001c4e8 ); -PROVIDE ( r_lc_send_pdu_sres = 0x4001c548 ); -PROVIDE ( r_lc_send_pdu_tim_acc = 0x4001c6cc ); -PROVIDE ( r_lc_send_pdu_unit_key = 0x4001c398 ); -PROVIDE ( r_lc_send_pdu_unsniff_req = 0x4001c894 ); -PROVIDE ( r_lc_send_pdu_vers_req = 0x4001c8b4 ); -PROVIDE ( r_lc_skip_hl_oob_req = 0x400201bc ); -PROVIDE ( r_lc_sniff_init = 0x40022cac ); -PROVIDE ( r_lc_sniff_max_slot_chg = 0x40020590 ); -PROVIDE ( r_lc_sniff_reset = 0x40022cc8 ); -PROVIDE ( r_lc_sniff_slot_unchange = 0x40021100 ); -PROVIDE ( r_lc_sniff_sub_mode = 0x400204fc ); -PROVIDE ( r_lc_sp_end = 0x400213a8 ); -PROVIDE ( r_lc_sp_fail = 0x40020470 ); -PROVIDE ( r_lc_sp_oob_tid_fail = 0x400204cc ); -PROVIDE ( r_lc_ssr_nego = 0x4002125c ); -PROVIDE ( r_lc_start = 0x4001ca28 ); -PROVIDE ( r_lc_start_enc = 0x4001fb28 ); -PROVIDE ( r_lc_start_enc_key_size = 0x4001fd9c ); -PROVIDE ( r_lc_start_key_exch = 0x4001fe10 ); -PROVIDE ( r_lc_start_lmp_to = 0x4001fae8 ); -PROVIDE ( r_lc_start_oob = 0x4001fffc ); -PROVIDE ( r_lc_start_passkey = 0x4001feac ); -PROVIDE ( r_lc_start_passkey_loop = 0x4001ff88 ); -PROVIDE ( r_lc_stop_afh_report = 0x40020184 ); -PROVIDE ( r_lc_stop_enc = 0x40020110 ); -PROVIDE ( r_lc_switch_cmp = 0x40020448 ); -PROVIDE ( r_lc_unit_key_svr = 0x400206d8 ); -PROVIDE ( r_lc_unsniff = 0x40020c50 ); -PROVIDE ( r_lc_unsniff_cmp = 0x40020810 ); -PROVIDE ( r_lc_unsniff_cont = 0x40020750 ); -PROVIDE ( r_lc_upd_to = 0x4002065c ); -PROVIDE ( r_lc_util_convert_pref_rate_to_packet_type = 0x4002f9b0 ); -PROVIDE ( r_lc_util_get_max_packet_size = 0x4002f4ac ); -PROVIDE ( r_lc_util_get_offset_clke = 0x4002f538 ); -PROVIDE ( r_lc_util_get_offset_clkn = 0x4002f51c ); -PROVIDE ( r_lc_util_set_loc_trans_coll = 0x4002f500 ); -PROVIDE ( r_lc_version = 0x40020a30 ); -PROVIDE ( lc_set_encap_pdu_data_p192 = 0x4002e4c8 ); -PROVIDE ( lc_set_encap_pdu_data_p256 = 0x4002e454 ); -PROVIDE ( lm_get_auth_method = 0x40023420 ); -PROVIDE ( lmp_accepted_ext_handler = 0x40027290 ); -PROVIDE ( lmp_not_accepted_ext_handler = 0x40029c54 ); -PROVIDE ( lmp_clk_adj_handler = 0x40027468 ); -PROVIDE ( lmp_clk_adj_ack_handler = 0x400274f4 ); -PROVIDE ( lm_get_auth_method = 0x40023420 ); -PROVIDE ( lmp_accepted_ext_handler = 0x40027290 ); -PROVIDE ( lmp_not_accepted_ext_handler = 0x40029c54 ); -PROVIDE ( lmp_clk_adj_handler = 0x40027468 ); -PROVIDE ( lmp_clk_adj_ack_handler = 0x400274f4 ); -PROVIDE ( lmp_clk_adj_req_handler = 0x4002751c ); -PROVIDE ( lmp_feats_res_ext_handler = 0x4002cac4 ); -PROVIDE ( lmp_feats_req_ext_handler = 0x4002ccb0 ); -PROVIDE ( lmp_pkt_type_tbl_req_handler = 0x40027574 ); -PROVIDE ( lmp_esco_link_req_handler = 0x40027610 ); -PROVIDE ( lmp_rmv_esco_link_req_handler = 0x400276e8 ); -PROVIDE ( lmp_ch_class_req_handler = 0x40027730 ); -PROVIDE ( lmp_ch_class_handler = 0x4002ca18 ); -PROVIDE ( lmp_ssr_req_handler = 0x4002780c ); -PROVIDE ( lmp_ssr_res_handler = 0x40027900 ); -PROVIDE ( lmp_pause_enc_aes_req_handler = 0x400279a4 ); -PROVIDE ( lmp_pause_enc_req_handler = 0x4002df90 ); -PROVIDE ( lmp_resume_enc_req_handler = 0x4002e084 ); -PROVIDE ( lmp_num_comparison_fail_handler = 0x40027a74 ); -PROVIDE ( lmp_passkey_fail_handler = 0x40027aec ); -PROVIDE ( lmp_keypress_notif_handler = 0x4002c5c8 ); -PROVIDE ( lmp_pwr_ctrl_req_handler = 0x400263bc ); -PROVIDE ( lmp_pwr_ctrl_res_handler = 0x40026480 ); -PROVIDE ( lmp_auto_rate_handler = 0x40026548 ); -PROVIDE ( lmp_pref_rate_handler = 0x4002657c ); -PROVIDE ( lmp_name_req_handler = 0x40025050 ); -PROVIDE ( lmp_name_res_handler = 0x400250bc ); -PROVIDE ( lmp_not_accepted_handler = 0x400251d0 ); -PROVIDE ( lmp_accepted_handler = 0x4002e894 ); -PROVIDE ( lmp_clk_off_req_handler = 0x40025a44 ); -PROVIDE ( lmp_clk_off_res_handler = 0x40025ab8 ); -PROVIDE ( lmp_detach_handler = 0x40025b74 ); -PROVIDE ( lmp_tempkey_handler = 0x4002b6b0 ); -PROVIDE ( lmp_temprand_handler = 0x4002b74c ); -PROVIDE ( lmp_sres_handler = 0x4002b840 ); -PROVIDE ( lmp_aurand_handler = 0x4002bda0 ); -PROVIDE ( lmp_unitkey_handler = 0x4002c13c ); -PROVIDE ( lmp_combkey_handler = 0x4002c234 ); -PROVIDE ( lmp_inrand_handler = 0x4002c414 ); -PROVIDE ( lmp_oob_fail_handler = 0x40027b84 ); -PROVIDE ( lmp_ping_req_handler = 0x40027c08 ); -PROVIDE ( lmp_ping_res_handler = 0x40027c5c ); -PROVIDE ( lmp_enc_mode_req_handler = 0x40025c60 ); -PROVIDE ( lmp_enc_key_size_req_handler = 0x40025e54 ); -PROVIDE ( lmp_switch_req_handler = 0x40025f84 ); -PROVIDE ( lmp_start_enc_req_handler = 0x4002e124 ); -PROVIDE ( lmp_stop_enc_req_handler = 0x4002de30 ); -PROVIDE ( lmp_sniff_req_handler = 0x400260c8 ); -PROVIDE ( lmp_unsniff_req_handler = 0x400261e0 ); -PROVIDE ( lmp_incr_pwr_req_handler = 0x4002629c ); -PROVIDE ( lmp_decr_pwr_req_handler = 0x400262f8 ); -PROVIDE ( lmp_max_pwr_handler = 0x40026354 ); -PROVIDE ( lmp_min_pwr_handler = 0x40026388 ); -PROVIDE ( lmp_ver_req_handler = 0x400265f0 ); -PROVIDE ( lmp_ver_res_handler = 0x40026670 ); -PROVIDE ( lmp_qos_handler = 0x40026790 ); -PROVIDE ( lmp_qos_req_handler = 0x40026844 ); -PROVIDE ( lmp_sco_link_req_handler = 0x40026930 ); -PROVIDE ( lmp_rmv_sco_link_req_handler = 0x40026a10 ); -PROVIDE ( lmp_max_slot_handler = 0x40026a54 ); -PROVIDE ( lmp_max_slot_req_handler = 0x40026aac ); -PROVIDE ( lmp_timing_accu_req_handler = 0x40026b54 ); -PROVIDE ( lmp_timing_accu_res_handler = 0x40026bcc ); -PROVIDE ( lmp_setup_cmp_handler = 0x40026c84 ); -PROVIDE ( lmp_feats_res_handler = 0x4002b548 ); -PROVIDE ( lmp_feats_req_handler = 0x4002b620 ); -PROVIDE ( lmp_host_con_req_handler = 0x4002b3d8 ); -PROVIDE ( lmp_use_semi_perm_key_handler = 0x4002b4c4 ); -PROVIDE ( lmp_slot_off_handler = 0x40026cc8 ); -PROVIDE ( lmp_page_mode_req_handler = 0x40026d0c ); -PROVIDE ( lmp_page_scan_mode_req_handler = 0x40026d4c ); -PROVIDE ( lmp_supv_to_handler = 0x40026d94 ); -PROVIDE ( lmp_test_activate_handler = 0x40026e7c ); -PROVIDE ( lmp_test_ctrl_handler = 0x40026ee4 ); -PROVIDE ( lmp_enc_key_size_mask_req_handler = 0x40027038 ); -PROVIDE ( lmp_enc_key_size_mask_res_handler = 0x400270a4 ); -PROVIDE ( lmp_set_afh_handler = 0x4002b2e4 ); -PROVIDE ( lmp_encaps_hdr_handler = 0x40027120 ); -PROVIDE ( lmp_encaps_payl_handler = 0x4002e590 ); -PROVIDE ( lmp_sp_nb_handler = 0x4002acf0 ); -PROVIDE ( lmp_sp_cfm_handler = 0x4002b170 ); -PROVIDE ( lmp_dhkey_chk_handler = 0x4002ab48 ); -PROVIDE ( lmp_pause_enc_aes_req_handler = 0x400279a4 ); -PROVIDE ( lmp_io_cap_res_handler = 0x4002c670 ); -PROVIDE ( lmp_io_cap_req_handler = 0x4002c7a4 ); -PROVIDE ( lc_cmd_cmp_bd_addr_send = 0x4002cec4 ); -PROVIDE ( ld_acl_tx_packet_type_select = 0x4002fb40 ); -PROVIDE ( ld_acl_sched = 0x40033268 ); -PROVIDE ( ld_acl_sniff_sched = 0x4003340c ); -PROVIDE ( ld_acl_rx = 0x4003274c ); -PROVIDE ( ld_acl_tx = 0x4002ffdc ); -PROVIDE ( ld_acl_rx_sync = 0x4002fbec ); -PROVIDE ( ld_acl_rx_sync2 = 0x4002fd8c ); -PROVIDE ( ld_acl_rx_no_sync = 0x4002fe78 ); -PROVIDE ( ld_acl_clk_isr = 0x40030cf8 ); -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_acl_sco_rsvd_check = 0x4002fa94 ); -PROVIDE ( ld_acl_sniff_frm_cbk = 0x4003482c ); -PROVIDE ( ld_inq_end = 0x4003ab48 ); -PROVIDE ( ld_inq_sched = 0x4003aba4 ); -PROVIDE ( ld_inq_frm_cbk = 0x4003ae4c ); -PROVIDE ( ld_pscan_frm_cbk = 0x4003ebe4 ); -PROVIDE ( r_ld_acl_active_hop_types_get = 0x40036e10 ); -PROVIDE ( r_ld_acl_afh_confirm = 0x40036d40 ); -PROVIDE ( r_ld_acl_afh_prepare = 0x40036c84 ); -PROVIDE ( r_ld_acl_afh_set = 0x40036b60 ); -PROVIDE ( r_ld_acl_allowed_tx_packet_types_set = 0x40036810 ); -PROVIDE ( r_ld_acl_bcst_rx_dec = 0x40036394 ); -PROVIDE ( r_ld_acl_bit_off_get = 0x40036b18 ); -PROVIDE ( r_ld_acl_clk_adj_set = 0x40036a00 ); -PROVIDE ( r_ld_acl_clk_off_get = 0x40036b00 ); -PROVIDE ( r_ld_acl_clk_set = 0x40036950 ); -PROVIDE ( r_ld_acl_clock_offset_get = 0x400364c0 ); -PROVIDE ( r_ld_acl_current_tx_power_get = 0x400368f0 ); -PROVIDE ( r_ld_acl_data_flush = 0x400357bc ); -PROVIDE ( r_ld_acl_data_tx = 0x4003544c ); -PROVIDE ( r_ld_acl_edr_set = 0x4003678c ); -PROVIDE ( r_ld_acl_enc_key_load = 0x40036404 ); -PROVIDE ( r_ld_acl_flow_off = 0x40035400 ); -PROVIDE ( r_ld_acl_flow_on = 0x4003541c ); -PROVIDE ( r_ld_acl_flush_timeout_get = 0x40035f9c ); -PROVIDE ( r_ld_acl_flush_timeout_set = 0x40035fe0 ); -PROVIDE ( r_ld_acl_init = 0x40034d08 ); -PROVIDE ( r_ld_acl_lmp_flush = 0x40035d80 ); -PROVIDE ( r_ld_acl_lmp_tx = 0x40035b34 ); -PROVIDE ( r_ld_acl_lsto_get = 0x400366b4 ); -PROVIDE ( r_ld_acl_lsto_set = 0x400366f8 ); -PROVIDE ( r_ld_acl_reset = 0x40034d24 ); -PROVIDE ( r_ld_acl_role_get = 0x40036b30 ); -PROVIDE ( r_ld_acl_rssi_delta_get = 0x40037028 ); -PROVIDE ( r_ld_acl_rsw_req = 0x40035e74 ); -PROVIDE ( r_ld_acl_rx_enc = 0x40036344 ); -PROVIDE ( r_ld_acl_rx_max_slot_get = 0x40036e58 ); -PROVIDE ( r_ld_acl_rx_max_slot_set = 0x40036ea0 ); -PROVIDE ( r_ld_acl_slot_offset_get = 0x4003653c ); -PROVIDE ( r_ld_acl_slot_offset_set = 0x40036658 ); -PROVIDE ( r_ld_acl_sniff = 0x4003617c ); -PROVIDE ( r_ld_acl_sniff_trans = 0x400360a8 ); -PROVIDE ( r_ld_acl_ssr_set = 0x40036274 ); -PROVIDE ( r_ld_acl_start = 0x40034ddc ); -PROVIDE ( r_ld_acl_stop = 0x4003532c ); -PROVIDE ( r_ld_acl_test_mode_set = 0x40036f24 ); -PROVIDE ( r_ld_acl_timing_accuracy_set = 0x4003673c ); -PROVIDE ( r_ld_acl_t_poll_get = 0x40036024 ); -PROVIDE ( r_ld_acl_t_poll_set = 0x40036068 ); -PROVIDE ( r_ld_acl_tx_enc = 0x400362f8 ); -PROVIDE ( ld_acl_frm_cbk = 0x40034414 ); -PROVIDE ( ld_acl_rsw_end = 0x40032bc0 ); -PROVIDE ( ld_acl_end = 0x40033140 ); -PROVIDE ( ld_acl_resched = 0x40033814 ); -PROVIDE ( ld_acl_test_mode_update = 0x40032050 ); -PROVIDE ( r_ld_acl_unsniff = 0x400361e0 ); -PROVIDE ( r_ld_active_check = 0x4003cac4 ); -PROVIDE ( r_ld_afh_ch_assess_data_get = 0x4003caec ); -PROVIDE ( r_ld_bcst_acl_data_tx = 0x40038d3c ); -PROVIDE ( r_ld_bcst_acl_init = 0x40038bd0 ); -PROVIDE ( r_ld_bcst_acl_reset = 0x40038bdc ); -PROVIDE ( r_ld_bcst_acl_start = 0x4003882c ); -PROVIDE ( r_ld_bcst_afh_update = 0x40038f3c ); -PROVIDE ( r_ld_bcst_enc_key_load = 0x4003906c ); -PROVIDE ( r_ld_bcst_lmp_tx = 0x40038bf8 ); -PROVIDE ( r_ld_bcst_tx_enc = 0x40038ff8 ); -PROVIDE ( r_ld_bd_addr_get = 0x4003ca20 ); -PROVIDE ( r_ld_channel_assess = 0x4003c184 ); -PROVIDE ( r_ld_class_of_dev_get = 0x4003ca34 ); -PROVIDE ( r_ld_class_of_dev_set = 0x4003ca50 ); -PROVIDE ( r_ld_csb_rx_afh_update = 0x40039af4 ); -PROVIDE ( r_ld_csb_rx_init = 0x40039690 ); -PROVIDE ( r_ld_csb_rx_reset = 0x4003969c ); -PROVIDE ( r_ld_csb_rx_start = 0x4003972c ); -PROVIDE ( r_ld_csb_rx_stop = 0x40039bb8 ); -PROVIDE ( r_ld_csb_tx_afh_update = 0x4003a5fc ); -PROVIDE ( r_ld_csb_tx_clr_data = 0x4003a71c ); -PROVIDE ( r_ld_csb_tx_dis = 0x4003a5e8 ); -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 ( r_ld_fm_clk_isr = 0x4003a7a8 ); -PROVIDE ( r_ld_fm_frame_isr = 0x4003a82c ); -PROVIDE ( r_ld_fm_init = 0x4003a760 ); -PROVIDE ( r_ld_fm_prog_check = 0x4003ab28 ); -PROVIDE ( r_ld_fm_prog_disable = 0x4003a984 ); -PROVIDE ( r_ld_fm_prog_enable = 0x4003a944 ); -PROVIDE ( r_ld_fm_prog_push = 0x4003a9d4 ); -PROVIDE ( r_ld_fm_reset = 0x4003a794 ); -PROVIDE ( r_ld_fm_rx_isr = 0x4003a7f4 ); -PROVIDE ( r_ld_fm_sket_isr = 0x4003a8a4 ); -PROVIDE ( r_ld_init = 0x4003c294 ); -PROVIDE ( r_ld_inq_init = 0x4003b15c ); -PROVIDE ( r_ld_inq_reset = 0x4003b168 ); -PROVIDE ( r_ld_inq_start = 0x4003b1f0 ); -PROVIDE ( r_ld_inq_stop = 0x4003b4f0 ); -PROVIDE ( r_ld_iscan_eir_get = 0x4003c118 ); -PROVIDE ( r_ld_iscan_eir_set = 0x4003bfa0 ); -PROVIDE ( r_ld_iscan_init = 0x4003b9f0 ); -PROVIDE ( r_ld_iscan_reset = 0x4003ba14 ); -PROVIDE ( r_ld_iscan_restart = 0x4003ba44 ); -PROVIDE ( r_ld_iscan_start = 0x4003bb28 ); -PROVIDE ( r_ld_iscan_stop = 0x4003bf1c ); -PROVIDE ( r_ld_iscan_tx_pwr_get = 0x4003c138 ); -PROVIDE ( r_ld_page_init = 0x4003d808 ); -PROVIDE ( r_ld_page_reset = 0x4003d814 ); -PROVIDE ( r_ld_page_start = 0x4003d848 ); -PROVIDE ( r_ld_page_stop = 0x4003da54 ); -PROVIDE ( r_ld_pca_coarse_clock_adjust = 0x4003e324 ); -PROVIDE ( r_ld_pca_init = 0x4003deb4 ); -PROVIDE ( r_ld_pca_initiate_clock_dragging = 0x4003e4ac ); -PROVIDE ( r_ld_pca_local_config = 0x4003df6c ); -PROVIDE ( r_ld_pca_mws_frame_sync = 0x4003e104 ); -PROVIDE ( r_ld_pca_mws_moment_offset_gt = 0x4003e278 ); -PROVIDE ( r_ld_pca_mws_moment_offset_lt = 0x4003e280 ); -PROVIDE ( r_ld_pca_reporting_enable = 0x4003e018 ); -PROVIDE ( r_ld_pca_reset = 0x4003df0c ); -PROVIDE ( r_ld_pca_update_target_offset = 0x4003e050 ); -PROVIDE ( r_ld_pscan_evt_handler = 0x4003f238 ); -PROVIDE ( r_ld_pscan_init = 0x4003f474 ); -PROVIDE ( r_ld_pscan_reset = 0x4003f498 ); -PROVIDE ( r_ld_pscan_restart = 0x4003f4b8 ); -PROVIDE ( r_ld_pscan_start = 0x4003f514 ); -PROVIDE ( r_ld_pscan_stop = 0x4003f618 ); -PROVIDE ( r_ld_read_clock = 0x4003c9e4 ); -PROVIDE ( r_ld_reset = 0x4003c714 ); -PROVIDE ( r_ld_sched_acl_add = 0x4003f978 ); -PROVIDE ( r_ld_sched_acl_remove = 0x4003f99c ); -PROVIDE ( r_ld_sched_compute = 0x4003f6f8 ); -PROVIDE ( r_ld_sched_init = 0x4003f7ac ); -PROVIDE ( r_ld_sched_inq_add = 0x4003f8a8 ); -PROVIDE ( r_ld_sched_inq_remove = 0x4003f8d0 ); -PROVIDE ( r_ld_sched_iscan_add = 0x4003f7e8 ); -PROVIDE ( r_ld_sched_iscan_remove = 0x4003f808 ); -PROVIDE ( r_ld_sched_page_add = 0x4003f910 ); -PROVIDE ( r_ld_sched_page_remove = 0x4003f938 ); -PROVIDE ( r_ld_sched_pscan_add = 0x4003f828 ); -PROVIDE ( r_ld_sched_pscan_remove = 0x4003f848 ); -PROVIDE ( r_ld_sched_reset = 0x4003f7d4 ); -PROVIDE ( r_ld_sched_sco_add = 0x4003fa4c ); -PROVIDE ( r_ld_sched_sco_remove = 0x4003fa9c ); -PROVIDE ( r_ld_sched_sniff_add = 0x4003f9c4 ); -PROVIDE ( r_ld_sched_sniff_remove = 0x4003fa0c ); -PROVIDE ( r_ld_sched_sscan_add = 0x4003f868 ); -PROVIDE ( r_ld_sched_sscan_remove = 0x4003f888 ); -PROVIDE ( r_ld_sco_audio_isr = 0x40037cc8 ); -PROVIDE ( r_ld_sco_data_tx = 0x40037ee8 ); -PROVIDE ( r_ld_sco_start = 0x40037110 ); -PROVIDE ( r_ld_sco_stop = 0x40037c40 ); -PROVIDE ( r_ld_sco_update = 0x40037a74 ); -PROVIDE ( r_ld_sscan_activated = 0x4004031c ); -PROVIDE ( r_ld_sscan_init = 0x400402f0 ); -PROVIDE ( r_ld_sscan_reset = 0x400402fc ); -PROVIDE ( r_ld_sscan_start = 0x40040384 ); -PROVIDE ( r_ld_strain_init = 0x400409f4 ); -PROVIDE ( r_ld_strain_reset = 0x40040a00 ); -PROVIDE ( r_ld_strain_start = 0x40040a8c ); -PROVIDE ( r_ld_strain_stop = 0x40040df0 ); -PROVIDE ( r_ld_timing_accuracy_get = 0x4003caac ); -PROVIDE ( r_ld_util_active_master_afh_map_get = 0x4004131c ); -PROVIDE ( r_ld_util_active_master_afh_map_set = 0x40041308 ); -PROVIDE ( r_ld_util_bch_create = 0x40040fcc ); -PROVIDE ( r_ld_util_fhs_pk = 0x400411c8 ); -PROVIDE ( r_ld_util_fhs_unpk = 0x40040e54 ); -PROVIDE ( r_ld_util_stp_pk = 0x400413f4 ); -PROVIDE ( r_ld_util_stp_unpk = 0x40041324 ); -PROVIDE ( r_ld_version_get = 0x4003ca6c ); -PROVIDE ( r_ld_wlcoex_set = 0x4003caf8 ); -PROVIDE ( r_llc_ch_assess_get_current_ch_map = 0x40041574 ); -PROVIDE ( r_llc_ch_assess_get_local_ch_map = 0x4004150c ); -PROVIDE ( r_llc_ch_assess_local = 0x40041494 ); -PROVIDE ( r_llc_ch_assess_merge_ch = 0x40041588 ); -PROVIDE ( r_llc_ch_assess_reass_ch = 0x400415c0 ); -PROVIDE ( r_llc_common_cmd_complete_send = 0x40044eac ); -PROVIDE ( r_llc_common_cmd_status_send = 0x40044ee0 ); -PROVIDE ( r_llc_common_enc_change_evt_send = 0x40044f6c ); -PROVIDE ( r_llc_common_enc_key_ref_comp_evt_send = 0x40044f38 ); -PROVIDE ( r_llc_common_flush_occurred_send = 0x40044f0c ); -PROVIDE ( r_llc_common_nb_of_pkt_comp_evt_send = 0x40045000 ); -PROVIDE ( r_llc_con_update_complete_send = 0x40044d68 ); -PROVIDE ( r_llc_con_update_finished = 0x4004518c ); -PROVIDE ( r_llc_con_update_ind = 0x40045038 ); -PROVIDE ( r_llc_discon_event_complete_send = 0x40044a30 ); -PROVIDE ( r_llc_end_evt_defer = 0x40046330 ); -PROVIDE ( r_llc_feats_rd_event_send = 0x40044e0c ); -PROVIDE ( r_llc_init = 0x40044778 ); -PROVIDE ( r_llc_le_con_cmp_evt_send = 0x40044a78 ); -PROVIDE ( r_llc_llcp_ch_map_update_pdu_send = 0x40043f94 ); -PROVIDE ( r_llc_llcp_con_param_req_pdu_send = 0x400442fc ); -PROVIDE ( r_llc_llcp_con_param_rsp_pdu_send = 0x40044358 ); -PROVIDE ( r_llc_llcp_con_update_pdu_send = 0x400442c4 ); -PROVIDE ( r_llc_llcp_enc_req_pdu_send = 0x40044064 ); -PROVIDE ( r_llc_llcp_enc_rsp_pdu_send = 0x40044160 ); -PROVIDE ( r_llc_llcp_feats_req_pdu_send = 0x400443b4 ); -PROVIDE ( r_llc_llcp_feats_rsp_pdu_send = 0x400443f0 ); -PROVIDE ( r_llc_llcp_get_autorize = 0x4004475c ); -PROVIDE ( r_llc_llcp_length_req_pdu_send = 0x40044574 ); -PROVIDE ( r_llc_llcp_length_rsp_pdu_send = 0x400445ac ); -PROVIDE ( r_llc_llcp_pause_enc_req_pdu_send = 0x40043fd8 ); -PROVIDE ( r_llc_llcp_pause_enc_rsp_pdu_send = 0x40044010 ); -PROVIDE ( r_llc_llcp_ping_req_pdu_send = 0x4004454c ); -PROVIDE ( r_llc_llcp_ping_rsp_pdu_send = 0x40044560 ); -PROVIDE ( r_llc_llcp_recv_handler = 0x40044678 ); -PROVIDE ( r_llc_llcp_reject_ind_pdu_send = 0x4004425c ); -PROVIDE ( r_llc_llcp_start_enc_req_pdu_send = 0x4004441c ); -PROVIDE ( r_llc_llcp_start_enc_rsp_pdu_send = 0x400441f8 ); -PROVIDE ( r_llc_llcp_terminate_ind_pdu_send = 0x400444b0 ); -PROVIDE ( r_llc_llcp_tester_send = 0x400445e4 ); -PROVIDE ( r_llc_llcp_unknown_rsp_send_pdu = 0x40044534 ); -PROVIDE ( r_llc_llcp_version_ind_pdu_send = 0x40043f6c ); -PROVIDE ( r_llc_lsto_con_update = 0x40045098 ); -PROVIDE ( r_llc_ltk_req_send = 0x40044dc0 ); -PROVIDE ( r_llc_map_update_finished = 0x40045260 ); -PROVIDE ( r_llc_map_update_ind = 0x400450f0 ); -PROVIDE ( r_llc_pdu_acl_tx_ack_defer = 0x400464dc ); -PROVIDE ( r_llc_pdu_defer = 0x40046528 ); -PROVIDE ( r_llc_pdu_llcp_tx_ack_defer = 0x400463ac ); -PROVIDE ( r_llc_reset = 0x400447b8 ); -PROVIDE ( r_llc_start = 0x400447f4 ); -PROVIDE ( r_llc_stop = 0x400449ac ); -PROVIDE ( r_llc_util_bw_mgt = 0x4004629c ); -PROVIDE ( r_llc_util_clear_operation_ptr = 0x40046234 ); -PROVIDE ( r_llc_util_dicon_procedure = 0x40046130 ); -PROVIDE ( r_llc_util_get_free_conhdl = 0x400460c8 ); -PROVIDE ( r_llc_util_get_nb_active_link = 0x40046100 ); -PROVIDE ( r_llc_util_set_auth_payl_to_margin = 0x400461f4 ); -PROVIDE ( r_llc_util_set_llcp_discard_enable = 0x400461c8 ); -PROVIDE ( r_llc_util_update_channel_map = 0x400461ac ); -PROVIDE ( r_llc_version_rd_event_send = 0x40044e60 ); -PROVIDE ( r_lld_adv_start = 0x40048b38 ); -PROVIDE ( r_lld_adv_stop = 0x40048ea0 ); -PROVIDE ( r_lld_ch_map_ind = 0x4004a2f4 ); -PROVIDE ( r_lld_con_param_req = 0x40049f0c ); -PROVIDE ( r_lld_con_param_rsp = 0x40049e00 ); -PROVIDE ( r_lld_con_start = 0x400491f8 ); -PROVIDE ( r_lld_con_stop = 0x40049fdc ); -PROVIDE ( r_lld_con_update_after_param_req = 0x40049bcc ); -PROVIDE ( r_lld_con_update_ind = 0x4004a30c ); -PROVIDE ( r_lld_con_update_req = 0x40049b60 ); -PROVIDE ( r_lld_core_reset = 0x40048a9c ); -PROVIDE ( r_lld_crypt_isr = 0x4004a324 ); -PROVIDE ( r_lld_evt_adv_create = 0x400481f4 ); -PROVIDE ( r_lld_evt_canceled = 0x400485c8 ); -PROVIDE ( r_lld_evt_channel_next = 0x40046aac ); -PROVIDE ( r_lld_evt_deffered_elt_handler = 0x400482bc ); -PROVIDE ( r_lld_evt_delete_elt_handler = 0x40046974 ); -PROVIDE ( r_lld_evt_delete_elt_push = 0x40046a3c ); -PROVIDE ( r_lld_evt_drift_compute = 0x40047670 ); -PROVIDE ( r_lld_evt_elt_delete = 0x40047538 ); -PROVIDE ( r_lld_evt_elt_insert = 0x400474c8 ); -PROVIDE ( r_lld_evt_end = 0x400483e8 ); -PROVIDE ( r_lld_evt_end_isr = 0x4004862c ); -PROVIDE ( r_lld_evt_init = 0x40046b3c ); -PROVIDE ( r_lld_evt_init_evt = 0x40046cd0 ); -PROVIDE ( r_lld_evt_move_to_master = 0x40047ba0 ); -PROVIDE ( r_lld_evt_move_to_slave = 0x40047e18 ); -PROVIDE ( r_lld_evt_prevent_stop = 0x40047adc ); -PROVIDE ( r_lld_evt_restart = 0x40046d50 ); -PROVIDE ( r_lld_evt_rx = 0x40048578 ); -PROVIDE ( r_lld_evt_rx_isr = 0x40048678 ); -PROVIDE ( r_lld_evt_scan_create = 0x40047ae8 ); -PROVIDE ( r_lld_evt_schedule = 0x40047908 ); -PROVIDE ( r_lld_evt_schedule_next = 0x400477dc ); -PROVIDE ( r_lld_evt_schedule_next_instant = 0x400476a8 ); -PROVIDE ( r_lld_evt_slave_update = 0x40048138 ); -PROVIDE ( r_lld_evt_update_create = 0x40047cd8 ); -PROVIDE ( r_lld_get_mode = 0x40049ff8 ); -PROVIDE ( r_lld_init = 0x4004873c ); -PROVIDE ( r_lld_move_to_master = 0x400499e0 ); -PROVIDE ( r_lld_move_to_slave = 0x4004a024 ); -PROVIDE ( r_lld_pdu_adv_pack = 0x4004b488 ); -PROVIDE ( r_lld_pdu_check = 0x4004ac34 ); -PROVIDE ( r_lld_pdu_data_send = 0x4004b018 ); -PROVIDE ( r_lld_pdu_data_tx_push = 0x4004aecc ); -PROVIDE ( r_lld_pdu_rx_handler = 0x4004b4d4 ); -PROVIDE ( r_lld_pdu_send_packet = 0x4004b774 ); -PROVIDE ( r_lld_pdu_tx_flush = 0x4004b414 ); -PROVIDE ( r_lld_pdu_tx_loop = 0x4004ae40 ); -PROVIDE ( r_lld_pdu_tx_prog = 0x4004b120 ); -PROVIDE ( r_lld_pdu_tx_push = 0x4004b080 ); -PROVIDE ( r_lld_ral_renew_req = 0x4004a73c ); -/**************************************************************************** - * boards/xtensa/elf32-core/scripts/esp32_rom.ld - ****************************************************************************/ - -PROVIDE ( r_lld_scan_start = 0x40048ee0 ); -PROVIDE ( r_lld_scan_stop = 0x40049190 ); -PROVIDE ( r_lld_test_mode_rx = 0x4004a540 ); -PROVIDE ( r_lld_test_mode_tx = 0x4004a350 ); -PROVIDE ( r_lld_test_stop = 0x4004a710 ); -PROVIDE ( r_lld_util_anchor_point_move = 0x4004bacc ); -PROVIDE ( r_lld_util_compute_ce_max = 0x4004bc0c ); -PROVIDE ( r_lld_util_connection_param_set = 0x4004ba40 ); -PROVIDE ( r_lld_util_dle_set_cs_fields = 0x4004ba90 ); -PROVIDE ( r_lld_util_eff_tx_time_set = 0x4004bd88 ); -PROVIDE ( r_lld_util_elt_programmed = 0x4004bce0 ); -PROVIDE ( r_lld_util_flush_list = 0x4004bbd8 ); -PROVIDE ( r_lld_util_freq2chnl = 0x4004b9e4 ); -PROVIDE ( r_lld_util_get_bd_address = 0x4004b8ac ); -PROVIDE ( r_lld_util_get_local_offset = 0x4004ba10 ); -PROVIDE ( r_lld_util_get_peer_offset = 0x4004ba24 ); -PROVIDE ( r_lld_util_get_tx_pkt_cnt = 0x4004bd80 ); -PROVIDE ( r_lld_util_instant_get = 0x4004b890 ); -PROVIDE ( r_lld_util_instant_ongoing = 0x4004bbfc ); -PROVIDE ( r_lld_util_priority_set = 0x4004bd10 ); -PROVIDE ( r_lld_util_priority_update = 0x4004bd78 ); -PROVIDE ( r_lld_util_ral_force_rpa_renew = 0x4004b980 ); -PROVIDE ( r_lld_util_set_bd_address = 0x4004b8f8 ); -PROVIDE ( r_lld_wlcoex_set = 0x4004bd98 ); -PROVIDE ( r_llm_ble_ready = 0x4004cc34 ); -PROVIDE ( r_llm_common_cmd_complete_send = 0x4004d288 ); -PROVIDE ( r_llm_common_cmd_status_send = 0x4004d2b4 ); -PROVIDE ( r_llm_con_req_ind = 0x4004cc54 ); -PROVIDE ( r_llm_con_req_tx_cfm = 0x4004d158 ); -PROVIDE ( r_llm_create_con = 0x4004de78 ); -PROVIDE ( r_llm_encryption_done = 0x4004dff8 ); -PROVIDE ( r_llm_encryption_start = 0x4004e128 ); -PROVIDE ( r_llm_end_evt_defer = 0x4004eb6c ); -PROVIDE ( r_llm_init = 0x4004c9f8 ); -PROVIDE ( r_llm_le_adv_report_ind = 0x4004cdf4 ); -PROVIDE ( r_llm_pdu_defer = 0x4004ec48 ); -PROVIDE ( r_llm_ral_clear = 0x4004e1fc ); -PROVIDE ( r_llm_ral_dev_add = 0x4004e23c ); -PROVIDE ( r_llm_ral_dev_rm = 0x4004e3bc ); -PROVIDE ( r_llm_ral_get_rpa = 0x4004e400 ); -PROVIDE ( r_llm_ral_set_timeout = 0x4004e4a0 ); -PROVIDE ( r_llm_ral_update = 0x4004e4f8 ); -PROVIDE ( r_llm_set_adv_data = 0x4004d960 ); -PROVIDE ( r_llm_set_adv_en = 0x4004d7ec ); -PROVIDE ( r_llm_set_adv_param = 0x4004d5f4 ); -PROVIDE ( r_llm_set_scan_en = 0x4004db64 ); -PROVIDE ( r_llm_set_scan_param = 0x4004dac8 ); -PROVIDE ( r_llm_set_scan_rsp_data = 0x4004da14 ); -PROVIDE ( r_llm_test_mode_start_rx = 0x4004d534 ); -PROVIDE ( r_llm_test_mode_start_tx = 0x4004d2fc ); -PROVIDE ( r_llm_util_adv_data_update = 0x4004e8fc ); -PROVIDE ( r_llm_util_apply_bd_addr = 0x4004e868 ); -PROVIDE ( r_llm_util_bd_addr_in_ral = 0x4004eb08 ); -PROVIDE ( r_llm_util_bd_addr_in_wl = 0x4004e788 ); -PROVIDE ( r_llm_util_bd_addr_wl_position = 0x4004e720 ); -PROVIDE ( r_llm_util_bl_add = 0x4004e9ac ); -PROVIDE ( r_llm_util_bl_check = 0x4004e930 ); -PROVIDE ( r_llm_util_bl_rem = 0x4004ea70 ); -PROVIDE ( r_llm_util_check_address_validity = 0x4004e7e4 ); -PROVIDE ( r_llm_util_check_evt_mask = 0x4004e8b0 ); -PROVIDE ( r_llm_util_check_map_validity = 0x4004e800 ); -PROVIDE ( r_llm_util_get_channel_map = 0x4004e8d4 ); -PROVIDE ( r_llm_util_get_supp_features = 0x4004e8e8 ); -PROVIDE ( r_llm_util_set_public_addr = 0x4004e89c ); -PROVIDE ( r_llm_wl_clr = 0x4004dc54 ); -PROVIDE ( r_llm_wl_dev_add = 0x4004dcc0 ); -PROVIDE ( r_llm_wl_dev_add_hdl = 0x4004dd38 ); -PROVIDE ( r_llm_wl_dev_rem = 0x4004dcfc ); -PROVIDE ( r_llm_wl_dev_rem_hdl = 0x4004dde0 ); -PROVIDE ( r_lm_acl_disc = 0x4004f148 ); -PROVIDE ( r_LM_AddSniff = 0x40022d20 ); -PROVIDE ( r_lm_add_sync = 0x40051358 ); -PROVIDE ( r_lm_afh_activate_timer = 0x4004f444 ); -PROVIDE ( r_lm_afh_ch_ass_en_get = 0x4004f3f8 ); -PROVIDE ( r_lm_afh_host_ch_class_get = 0x4004f410 ); -PROVIDE ( r_lm_afh_master_ch_map_get = 0x4004f43c ); -PROVIDE ( r_lm_afh_peer_ch_class_set = 0x4004f418 ); -PROVIDE ( r_lm_check_active_sync = 0x40051334 ); -PROVIDE ( r_LM_CheckEdrFeatureRequest = 0x4002f90c ); -PROVIDE ( r_LM_CheckSwitchInstant = 0x4002f8c0 ); -PROVIDE ( r_lm_check_sync_hl_rsp = 0x4005169c ); -PROVIDE ( r_lm_clk_adj_ack_pending_clear = 0x4004f514 ); -PROVIDE ( r_lm_clk_adj_instant_pending_set = 0x4004f4d8 ); -PROVIDE ( r_LM_ComputePacketType = 0x4002f554 ); -PROVIDE ( r_LM_ComputeSniffSubRate = 0x400233ac ); -PROVIDE ( r_lm_debug_key_compare_192 = 0x4004f3a8 ); -PROVIDE ( r_lm_debug_key_compare_256 = 0x4004f3d0 ); -PROVIDE ( r_lm_dhkey_calc_init = 0x40013234 ); -PROVIDE ( r_lm_dhkey_compare = 0x400132d8 ); -PROVIDE ( r_lm_dut_mode_en_get = 0x4004f3ec ); -PROVIDE ( r_LM_ExtractMaxEncKeySize = 0x4001aca4 ); -PROVIDE ( r_lm_f1 = 0x40012bb8 ); -PROVIDE ( r_lm_f2 = 0x40012cfc ); -PROVIDE ( r_lm_f3 = 0x40013050 ); -PROVIDE ( r_lm_g = 0x40012f90 ); -PROVIDE ( r_LM_GetAFHSwitchInstant = 0x4002f86c ); -PROVIDE ( r_lm_get_auth_en = 0x4004f1ac ); -PROVIDE ( r_lm_get_common_pkt_types = 0x4002fa1c ); -PROVIDE ( r_LM_GetConnectionAcceptTimeout = 0x4004f1f4 ); -PROVIDE ( r_LM_GetFeature = 0x4002f924 ); -PROVIDE ( r_LM_GetLinkTimeout = 0x400233ec ); -PROVIDE ( r_LM_GetLocalNameSeg = 0x4004f200 ); -PROVIDE ( r_lm_get_loopback_mode = 0x4004f248 ); -PROVIDE ( r_LM_GetMasterEncKeySize = 0x4001b29c ); -PROVIDE ( r_LM_GetMasterEncRand = 0x4001b288 ); -PROVIDE ( r_LM_GetMasterKey = 0x4001b260 ); -PROVIDE ( r_LM_GetMasterKeyRand = 0x4001b274 ); -PROVIDE ( r_lm_get_min_sync_intv = 0x400517a8 ); -PROVIDE ( r_lm_get_nb_acl = 0x4004ef9c ); -PROVIDE ( r_lm_get_nb_sync_link = 0x4005179c ); -PROVIDE ( r_lm_get_nonce = 0x400131c4 ); -PROVIDE ( r_lm_get_oob_local_commit = 0x4004f374 ); -PROVIDE ( r_lm_get_oob_local_data_192 = 0x4004f2d4 ); -PROVIDE ( r_lm_get_oob_local_data_256 = 0x4004f318 ); -PROVIDE ( r_LM_GetPINType = 0x4004f1e8 ); -PROVIDE ( r_lm_get_priv_key_192 = 0x4004f278 ); -PROVIDE ( r_lm_get_priv_key_256 = 0x4004f2b8 ); -PROVIDE ( r_lm_get_pub_key_192 = 0x4004f258 ); -PROVIDE ( r_lm_get_pub_key_256 = 0x4004f298 ); -PROVIDE ( r_LM_GetQoSParam = 0x4002f6e0 ); -PROVIDE ( r_lm_get_sec_con_host_supp = 0x4004f1d4 ); -PROVIDE ( r_LM_GetSniffSubratingParam = 0x4002325c ); -PROVIDE ( r_lm_get_sp_en = 0x4004f1c0 ); -PROVIDE ( r_LM_GetSwitchInstant = 0x4002f7f8 ); -PROVIDE ( r_lm_get_synchdl = 0x4005175c ); -PROVIDE ( r_lm_get_sync_param = 0x400503b4 ); -PROVIDE ( r_lm_init = 0x4004ed34 ); -PROVIDE ( r_lm_init_sync = 0x400512d8 ); -PROVIDE ( r_lm_is_acl_con = 0x4004f47c ); -PROVIDE ( r_lm_is_acl_con_role = 0x4004f49c ); -PROVIDE ( r_lm_is_clk_adj_ack_pending = 0x4004f4e8 ); -PROVIDE ( r_lm_is_clk_adj_instant_pending = 0x4004f4c8 ); -PROVIDE ( r_lm_local_ext_fr_configured = 0x4004f540 ); -PROVIDE ( r_lm_look_for_stored_link_key = 0x4002f948 ); -PROVIDE ( r_lm_look_for_sync = 0x40051774 ); -PROVIDE ( r_lm_lt_addr_alloc = 0x4004ef1c ); -PROVIDE ( r_lm_lt_addr_free = 0x4004ef74 ); -PROVIDE ( r_lm_lt_addr_reserve = 0x4004ef48 ); -PROVIDE ( r_LM_MakeCof = 0x4002f84c ); -PROVIDE ( r_LM_MakeRandVec = 0x400112d8 ); -PROVIDE ( r_lm_master_clk_adj_req_handler = 0x40054180 ); -PROVIDE ( r_LM_MaxSlot = 0x4002f694 ); -PROVIDE ( r_lm_modif_sync = 0x40051578 ); -PROVIDE ( r_lm_n_is_zero = 0x40012170 ); -PROVIDE ( r_lm_num_clk_adj_ack_pending_set = 0x4004f500 ); -PROVIDE ( r_lm_oob_f1 = 0x40012e54 ); -PROVIDE ( r_lm_pca_sscan_link_get = 0x4004f560 ); -PROVIDE ( r_lm_pca_sscan_link_set = 0x4004f550 ); -PROVIDE ( nvds_null_read = 0x400542a0 ); -PROVIDE ( nvds_null_write = 0x400542a8 ); -PROVIDE ( nvds_null_erase = 0x400542b0 ); -PROVIDE ( nvds_read = 0x400542c4 ); -PROVIDE ( nvds_write = 0x400542fc ); -PROVIDE ( nvds_erase = 0x40054334 ); -PROVIDE ( nvds_init_memory = 0x40054358 ); -PROVIDE ( r_lmp_pack = 0x4001135c ); -PROVIDE ( r_lmp_unpack = 0x4001149c ); -PROVIDE ( r_lm_read_features = 0x4004f0d8 ); -PROVIDE ( r_LM_RemoveSniff = 0x40023124 ); -PROVIDE ( r_LM_RemoveSniffSubrating = 0x400233c4 ); -PROVIDE ( r_lm_remove_sync = 0x400517c8 ); -PROVIDE ( r_lm_reset_sync = 0x40051304 ); -PROVIDE ( r_lm_role_switch_finished = 0x4004f028 ); -PROVIDE ( r_lm_role_switch_start = 0x4004efe0 ); -PROVIDE ( r_lm_sco_nego_end = 0x40051828 ); -PROVIDE ( r_LM_SniffSubrateNegoRequired = 0x40023334 ); -PROVIDE ( r_LM_SniffSubratingHlReq = 0x40023154 ); -PROVIDE ( r_LM_SniffSubratingPeerReq = 0x400231dc ); -PROVIDE ( r_lm_sp_debug_mode_get = 0x4004f398 ); -PROVIDE ( r_lm_sp_n192_convert_wnaf = 0x400123c0 ); -PROVIDE ( r_lm_sp_n_one = 0x400123a4 ); -PROVIDE ( r_lm_sp_p192_add = 0x40012828 ); -PROVIDE ( r_lm_sp_p192_dbl = 0x4001268c ); -PROVIDE ( r_lm_sp_p192_invert = 0x40012b6c ); -PROVIDE ( r_lm_sp_p192_point_jacobian_to_affine = 0x40012468 ); -PROVIDE ( r_lm_sp_p192_points_jacobian_to_affine = 0x400124e4 ); -PROVIDE ( r_lm_sp_p192_point_to_inf = 0x40012458 ); -PROVIDE ( r_lm_sp_pre_compute_points = 0x40012640 ); -PROVIDE ( r_lm_sp_sha256_calculate = 0x400121a0 ); -PROVIDE ( r_LM_SuppressAclPacket = 0x4002f658 ); -PROVIDE ( r_lm_sync_flow_ctrl_en_get = 0x4004f404 ); -PROVIDE ( r_LM_UpdateAclEdrPacketType = 0x4002f5d8 ); -PROVIDE ( r_LM_UpdateAclPacketType = 0x4002f584 ); -PROVIDE ( r_modules_funcs = 0x3ffafd6c ); -PROVIDE ( r_modules_funcs_p = 0x3ffafd68 ); -PROVIDE ( r_nvds_del = 0x400544c4 ); -PROVIDE ( r_nvds_get = 0x40054488 ); -PROVIDE ( r_nvds_init = 0x40054410 ); -PROVIDE ( r_nvds_lock = 0x400544fc ); -PROVIDE ( r_nvds_put = 0x40054534 ); -PROVIDE ( rom_abs_temp = 0x400054f0 ); -PROVIDE ( rom_bb_bss_bw_40_en = 0x4000401c ); -PROVIDE ( rom_bb_bss_cbw40_dig = 0x40003bac ); -PROVIDE ( rom_bb_rx_ht20_cen_bcov_en = 0x40003734 ); -PROVIDE ( rom_bb_tx_ht20_cen = 0x40003760 ); -PROVIDE ( rom_bb_wdg_test_en = 0x40003b70 ); -PROVIDE ( rom_cbw2040_cfg = 0x400040b0 ); -PROVIDE ( rom_check_noise_floor = 0x40003c78 ); -PROVIDE ( rom_chip_i2c_readReg = 0x40004110 ); -PROVIDE ( rom_chip_i2c_writeReg = 0x40004168 ); -PROVIDE ( rom_chip_v7_bt_init = 0x40004d8c ); -PROVIDE ( rom_chip_v7_rx_init = 0x40004cec ); -PROVIDE ( rom_chip_v7_rx_rifs_en = 0x40003d90 ); -PROVIDE ( rom_chip_v7_tx_init = 0x40004d18 ); -PROVIDE ( rom_clk_force_on_vit = 0x40003710 ); -PROVIDE ( rom_correct_rf_ana_gain = 0x400062a8 ); -PROVIDE ( rom_dc_iq_est = 0x400055c8 ); -PROVIDE ( rom_disable_agc = 0x40002fa4 ); -PROVIDE ( rom_enable_agc = 0x40002fcc ); -PROVIDE ( rom_en_pwdet = 0x4000506c ); -PROVIDE ( rom_gen_rx_gain_table = 0x40003e3c ); -PROVIDE ( rom_get_data_sat = 0x4000312c ); -PROVIDE ( rom_get_fm_sar_dout = 0x40005204 ); -PROVIDE ( rom_get_power_db = 0x40005fc8 ); -PROVIDE ( rom_get_pwctrl_correct = 0x400065d4 ); -PROVIDE ( rom_get_rfcal_rxiq_data = 0x40005bbc ); -PROVIDE ( rom_get_rf_gain_qdb = 0x40006290 ); -PROVIDE ( rom_get_sar_dout = 0x40006564 ); -PROVIDE ( rom_i2c_readreg = 0x40004148 ); -PROVIDE ( rom_i2c_readreg_Mask = 0x400041c0 ); -PROVIDE ( rom_i2c_writereg = 0x400041a4 ); -PROVIDE ( rom_i2c_writereg_Mask = 0x400041fc ); -PROVIDE ( rom_index_to_txbbgain = 0x40004df8 ); -PROVIDE ( rom_iq_est_disable = 0x40005590 ); -PROVIDE ( rom_iq_est_enable = 0x40005514 ); -PROVIDE ( rom_linear_to_db = 0x40005f64 ); -PROVIDE ( rom_loopback_mode_en = 0x400030f8 ); -PROVIDE ( rom_main = 0x400076c4 ); -PROVIDE ( rom_meas_tone_pwr_db = 0x40006004 ); -PROVIDE ( rom_mhz2ieee = 0x4000404c ); -PROVIDE ( rom_noise_floor_auto_set = 0x40003bdc ); -PROVIDE ( rom_pbus_debugmode = 0x40004458 ); -PROVIDE ( rom_pbus_force_mode = 0x40004270 ); -PROVIDE ( rom_pbus_force_test = 0x400043c0 ); -PROVIDE ( rom_pbus_rd = 0x40004414 ); -PROVIDE ( rom_pbus_rd_addr = 0x40004334 ); -PROVIDE ( rom_pbus_rd_shift = 0x40004374 ); -PROVIDE ( rom_pbus_rx_dco_cal = 0x40005620 ); -PROVIDE ( rom_pbus_set_dco = 0x40004638 ); -PROVIDE ( rom_pbus_set_rxgain = 0x40004480 ); -PROVIDE ( rom_pbus_workmode = 0x4000446c ); -PROVIDE ( rom_pbus_xpd_rx_off = 0x40004508 ); -PROVIDE ( rom_pbus_xpd_rx_on = 0x4000453c ); -PROVIDE ( rom_pbus_xpd_tx_off = 0x40004590 ); -PROVIDE ( rom_pbus_xpd_tx_on = 0x400045e0 ); -PROVIDE ( rom_phy_disable_agc = 0x40002f6c ); -PROVIDE ( rom_phy_disable_cca = 0x40003000 ); -PROVIDE ( rom_phy_enable_agc = 0x40002f88 ); -PROVIDE ( rom_phy_enable_cca = 0x4000302c ); -PROVIDE ( rom_phy_freq_correct = 0x40004b44 ); -PROVIDE ( rom_phyFuns = 0x3ffae0c0 ); -PROVIDE ( rom_phy_get_noisefloor = 0x40003c2c ); -PROVIDE ( rom_phy_get_vdd33 = 0x4000642c ); -PROVIDE ( rom_pow_usr = 0x40003044 ); -PROVIDE ( rom_read_sar_dout = 0x400051c0 ); -PROVIDE ( rom_restart_cal = 0x400046e0 ); -PROVIDE ( rom_rfcal_pwrctrl = 0x40006058 ); -PROVIDE ( rom_rfcal_rxiq = 0x40005b4c ); -PROVIDE ( rom_rfcal_txcap = 0x40005dec ); -PROVIDE ( rom_rfpll_reset = 0x40004680 ); -PROVIDE ( rom_rfpll_set_freq = 0x400047f8 ); -PROVIDE ( rom_rtc_mem_backup = 0x40003db4 ); -PROVIDE ( rom_rtc_mem_recovery = 0x40003df4 ); -PROVIDE ( rom_rx_gain_force = 0x4000351c ); -PROVIDE ( rom_rxiq_cover_mg_mp = 0x40005a68 ); -PROVIDE ( rom_rxiq_get_mis = 0x400058e4 ); -PROVIDE ( rom_rxiq_set_reg = 0x40005a00 ); -PROVIDE ( rom_set_cal_rxdc = 0x400030b8 ); -PROVIDE ( rom_set_chan_cal_interp = 0x40005ce0 ); -PROVIDE ( rom_set_channel_freq = 0x40004880 ); -PROVIDE ( rom_set_loopback_gain = 0x40003060 ); -PROVIDE ( rom_set_noise_floor = 0x40003d48 ); -PROVIDE ( rom_set_pbus_mem = 0x400031a4 ); -PROVIDE ( rom_set_rf_freq_offset = 0x40004ca8 ); -PROVIDE ( rom_set_rxclk_en = 0x40003594 ); -PROVIDE ( rom_set_txcap_reg = 0x40005d50 ); -PROVIDE ( rom_set_txclk_en = 0x40003564 ); -PROVIDE ( rom_spur_coef_cfg = 0x40003ac8 ); -PROVIDE ( rom_spur_reg_write_one_tone = 0x400037f0 ); -PROVIDE ( rom_start_tx_tone = 0x400036b4 ); -PROVIDE ( rom_start_tx_tone_step = 0x400035d0 ); -PROVIDE ( rom_stop_tx_tone = 0x40003f98 ); -PROVIDE ( _rom_store = 0x4000d66c ); -PROVIDE ( _rom_store_table = 0x4000d4f8 ); -PROVIDE ( rom_target_power_add_backoff = 0x40006268 ); -PROVIDE ( rom_tx_atten_set_interp = 0x400061cc ); -PROVIDE ( rom_txbbgain_to_index = 0x40004dc0 ); -PROVIDE ( rom_txcal_work_mode = 0x4000510c ); -PROVIDE ( rom_txdc_cal_init = 0x40004e10 ); -PROVIDE ( rom_txdc_cal_v70 = 0x40004ea4 ); -PROVIDE ( rom_txiq_cover = 0x4000538c ); -PROVIDE ( rom_txiq_get_mis_pwr = 0x400052dc ); -PROVIDE ( rom_txiq_set_reg = 0x40005154 ); -PROVIDE ( rom_tx_pwctrl_bg_init = 0x4000662c ); -PROVIDE ( rom_txtone_linear_pwr = 0x40005290 ); -PROVIDE ( rom_wait_rfpll_cal_end = 0x400047a8 ); -PROVIDE ( rom_write_gain_mem = 0x4000348c ); -PROVIDE ( rom_write_rfpll_sdm = 0x40004740 ); -PROVIDE ( roundup2 = 0x4000ab7c ); -PROVIDE ( r_plf_funcs_p = 0x3ffb8360 ); -PROVIDE ( r_rf_rw_bt_init = 0x40054868 ); -PROVIDE ( r_rf_rw_init = 0x40054b0c ); -PROVIDE ( r_rf_rw_le_init = 0x400549d0 ); -PROVIDE ( r_rwble_activity_ongoing_check = 0x40054d8c ); -PROVIDE ( r_rwble_init = 0x40054bf4 ); -PROVIDE ( r_rwble_isr = 0x40054e08 ); -PROVIDE ( r_rwble_reset = 0x40054ce8 ); -PROVIDE ( r_rwble_sleep_check = 0x40054d78 ); -PROVIDE ( r_rwble_version = 0x40054dac ); -PROVIDE ( r_rwbt_init = 0x40055160 ); -PROVIDE ( r_rwbt_isr = 0x40055248 ); -PROVIDE ( r_rwbt_reset = 0x400551bc ); -PROVIDE ( r_rwbt_sleep_check = 0x4005577c ); -PROVIDE ( r_rwbt_sleep_enter = 0x400557a4 ); -PROVIDE ( r_rwbt_sleep_wakeup = 0x400557fc ); -PROVIDE ( r_rwbt_sleep_wakeup_end = 0x400558cc ); -PROVIDE ( r_rwbt_version = 0x4005520c ); -PROVIDE ( r_rwip_assert_err = 0x40055f88 ); -PROVIDE ( r_rwip_check_wakeup_boundary = 0x400558fc ); -PROVIDE ( r_rwip_ext_wakeup_enable = 0x40055f3c ); -PROVIDE ( r_rwip_init = 0x4005595c ); -PROVIDE ( r_rwip_pca_clock_dragging_only = 0x40055f48 ); -PROVIDE ( r_rwip_prevent_sleep_clear = 0x40055ec8 ); -PROVIDE ( r_rwip_prevent_sleep_set = 0x40055e64 ); -PROVIDE ( r_rwip_reset = 0x40055ab8 ); -PROVIDE ( r_rwip_schedule = 0x40055b38 ); -PROVIDE ( r_rwip_sleep = 0x40055b5c ); -PROVIDE ( r_rwip_sleep_enable = 0x40055f30 ); -PROVIDE ( r_rwip_version = 0x40055b20 ); -PROVIDE ( r_rwip_wakeup = 0x40055dc4 ); -PROVIDE ( r_rwip_wakeup_delay_set = 0x40055e4c ); -PROVIDE ( r_rwip_wakeup_end = 0x40055e18 ); -PROVIDE ( r_rwip_wlcoex_set = 0x40055f60 ); -PROVIDE ( r_SHA_256 = 0x40013a90 ); -PROVIDE ( rtc_boot_control = 0x4000821c ); -PROVIDE ( rtc_get_reset_reason = 0x400081d4 ); -PROVIDE ( rtc_get_wakeup_cause = 0x400081f4 ); -PROVIDE ( rtc_select_apb_bridge = 0x40008288 ); -PROVIDE ( rwip_coex_cfg = 0x3ff9914c ); -PROVIDE ( rwip_priority = 0x3ff99159 ); -PROVIDE ( rwip_rf = 0x3ffbdb28 ); -PROVIDE ( rwip_rf_p_get = 0x400558f4 ); -PROVIDE ( r_XorKey = 0x400112c0 ); -PROVIDE ( sbrk = 0x400017f4 ); -PROVIDE ( _sbrk_r = 0x4000bce4 ); -PROVIDE ( scanf = 0x40058760 ); -PROVIDE ( _scanf_chars = 0x40058384 ); -PROVIDE ( _scanf_float = 0x4000bf18 ); -PROVIDE ( _scanf_i = 0x4005845c ); -PROVIDE ( _scanf_r = 0x4005879c ); -PROVIDE ( __sccl = 0x4000c498 ); -PROVIDE ( __sclose = 0x400011b8 ); -PROVIDE ( SelectSpiFunction = 0x40061f84 ); -PROVIDE ( SelectSpiQIO = 0x40061ddc ); -PROVIDE ( SendMsg = 0x40009384 ); -PROVIDE ( send_packet = 0x40009340 ); -PROVIDE ( __seofread = 0x40001148 ); -PROVIDE ( setjmp = 0x40056268 ); -PROVIDE ( setlocale = 0x40059568 ); -PROVIDE ( _setlocale_r = 0x4005950c ); -PROVIDE ( set_rtc_memory_crc = 0x40008208 ); -PROVIDE ( SetSpiDrvs = 0x40061e78 ); -PROVIDE ( __sf_fake_stderr = 0x3ff96458 ); -PROVIDE ( __sf_fake_stdin = 0x3ff96498 ); -PROVIDE ( __sf_fake_stdout = 0x3ff96478 ); -PROVIDE ( __sflush_r = 0x400591e0 ); -PROVIDE ( __sfmoreglue = 0x40001dc8 ); -PROVIDE ( __sfp = 0x40001e90 ); -PROVIDE ( __sfp_lock = 0x3ffae0ac ); -PROVIDE ( __sfp_lock_acquire = 0x40001e08 ); -PROVIDE ( __sfp_lock_release = 0x40001e14 ); -PROVIDE ( __sfputs_r = 0x40057790 ); -PROVIDE ( __sfvwrite_r = 0x4005893c ); -PROVIDE ( sha1_prf = 0x40060ae8 ); -PROVIDE ( sha1_vector = 0x40060b64 ); -PROVIDE ( sha256_prf = 0x40060d70 ); -PROVIDE ( sha256_vector = 0x40060e08 ); -PROVIDE ( sha_blk_bits = 0x3ff99290 ); -PROVIDE ( sha_blk_bits_bytes = 0x3ff99288 ); -PROVIDE ( sha_blk_hash_bytes = 0x3ff9928c ); -PROVIDE ( sig_matrix = 0x3ffae293 ); -PROVIDE ( __sinit = 0x40001e38 ); -PROVIDE ( __sinit_lock = 0x3ffae0a8 ); -PROVIDE ( __sinit_lock_acquire = 0x40001e20 ); -PROVIDE ( __sinit_lock_release = 0x40001e2c ); -PROVIDE ( sip_after_tx_complete = 0x4000b358 ); -PROVIDE ( sip_alloc_to_host_evt = 0x4000ab9c ); -PROVIDE ( sip_get_ptr = 0x4000b34c ); -PROVIDE ( sip_get_state = 0x4000ae2c ); -PROVIDE ( sip_init_attach = 0x4000ae58 ); -PROVIDE ( sip_install_rx_ctrl_cb = 0x4000ae10 ); -PROVIDE ( sip_install_rx_data_cb = 0x4000ae20 ); -PROVIDE ( sip_is_active = 0x4000b3c0 ); -PROVIDE ( sip_post_init = 0x4000aed8 ); -PROVIDE ( sip_reclaim_from_host_cmd = 0x4000adbc ); -PROVIDE ( sip_reclaim_tx_data_pkt = 0x4000ad5c ); -PROVIDE ( siprintf = 0x40056c08 ); -PROVIDE ( _siprintf_r = 0x40056bbc ); -PROVIDE ( sip_send = 0x4000af54 ); -PROVIDE ( sip_to_host_chain_append = 0x4000aef8 ); -PROVIDE ( sip_to_host_evt_send_done = 0x4000ac04 ); -PROVIDE ( siscanf = 0x400587d0 ); -PROVIDE ( _siscanf_r = 0x40058830 ); -PROVIDE ( slc_add_credits = 0x4000baf4 ); -PROVIDE ( slc_enable = 0x4000b64c ); -PROVIDE ( slc_from_host_chain_fetch = 0x4000b7e8 ); -PROVIDE ( slc_from_host_chain_recycle = 0x4000bb10 ); -PROVIDE ( slc_has_pkt_to_host = 0x4000b5fc ); -PROVIDE ( slc_init_attach = 0x4000b918 ); -PROVIDE ( slc_init_credit = 0x4000badc ); -PROVIDE ( slc_reattach = 0x4000b62c ); -PROVIDE ( slc_send_to_host_chain = 0x4000b6a0 ); -PROVIDE ( slc_set_host_io_max_window = 0x4000b89c ); -PROVIDE ( slc_to_host_chain_recycle = 0x4000b758 ); -PROVIDE ( __smakebuf_r = 0x40059108 ); -PROVIDE ( sniprintf = 0x40056b4c ); -PROVIDE ( _sniprintf_r = 0x40056ae4 ); -PROVIDE ( snprintf = 0x40056b4c ); -PROVIDE ( _snprintf_r = 0x40056ae4 ); -PROVIDE ( software_reset = 0x4000824c ); -PROVIDE ( software_reset_cpu = 0x40008264 ); -PROVIDE ( specialModP256 = 0x4001600c ); -PROVIDE ( spi_cache_sram_init = 0x400626e4 ); -PROVIDE ( SPIClkConfig = 0x40062bc8 ); -PROVIDE ( SPI_Common_Command = 0x4006246c ); -PROVIDE ( spi_dummy_len_fix = 0x40061d90 ); -PROVIDE ( SPI_Encrypt_Write = 0x40062e78 ); -PROVIDE ( SPIEraseArea = 0x400631ac ); -PROVIDE ( SPIEraseBlock = 0x40062c4c ); -PROVIDE ( SPIEraseChip = 0x40062c14 ); -PROVIDE ( SPIEraseSector = 0x40062ccc ); -PROVIDE ( spi_flash_attach = 0x40062a6c ); -PROVIDE ( SPILock = 0x400628f0 ); -PROVIDE ( SPIMasterReadModeCnfig = 0x40062b64 ); -PROVIDE ( spi_modes = 0x3ff99270 ); -PROVIDE ( SPIParamCfg = 0x40063238 ); -PROVIDE ( SPI_Prepare_Encrypt_Data = 0x40062e1c ); -PROVIDE ( SPIRead = 0x40062ed8 ); -PROVIDE ( SPIReadModeCnfig = 0x40062944 ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( SPI_read_status = 0x4006226c ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( SPI_read_status_high = 0x40062448 ); -PROVIDE ( SPIUnlock = 0x400628b0 ); -PROVIDE ( SPI_user_command_read = 0x400621b0 ); -PROVIDE ( spi_w25q16 = 0x3ffae270 ); -PROVIDE ( SPIWrite = 0x40062d50 ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( SPI_write_enable = 0x40062320 ); -PROVIDE ( SPI_Write_Encrypt_Disable = 0x40062e60 ); -PROVIDE ( SPI_Write_Encrypt_Enable = 0x40062df4 ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( SPI_write_status = 0x400622f0 ); -PROVIDE ( sprintf = 0x40056c08 ); -PROVIDE ( _sprintf_r = 0x40056bbc ); -PROVIDE ( __sprint_r = 0x400577e4 ); -PROVIDE ( srand = 0x40001004 ); -PROVIDE ( __sread = 0x40001118 ); -PROVIDE ( __srefill_r = 0x400593d4 ); -PROVIDE ( sscanf = 0x400587d0 ); -PROVIDE ( _sscanf_r = 0x40058830 ); -PROVIDE ( __sseek = 0x40001184 ); -PROVIDE ( __ssprint_r = 0x40056ff8 ); -PROVIDE ( __ssputs_r = 0x40056f2c ); -PROVIDE ( __ssrefill_r = 0x40057fec ); -PROVIDE ( __ssvfiscanf_r = 0x4005802c ); -PROVIDE ( __ssvfscanf_r = 0x4005802c ); -PROVIDE ( __stack = 0x3ffe3f20 ); -PROVIDE ( __stack_app = 0x3ffe7e30 ); -PROVIDE ( _stack_sentry = 0x3ffe1320 ); -PROVIDE ( _stack_sentry_app = 0x3ffe5230 ); -PROVIDE ( _start = 0x40000704 ); -PROVIDE ( start_tb_console = 0x4005a980 ); -PROVIDE ( _stat_r = 0x4000bcb4 ); -PROVIDE ( _stext = 0x40000560 ); -PROVIDE ( strcasecmp = 0x400011cc ); -PROVIDE ( strcasestr = 0x40001210 ); -PROVIDE ( strcat = 0x4000c518 ); -PROVIDE ( strchr = 0x4000c53c ); -PROVIDE ( strcmp = 0x40001274 ); -PROVIDE ( strcoll = 0x40001398 ); -PROVIDE ( strcpy = 0x400013ac ); -PROVIDE ( strcspn = 0x4000c558 ); -PROVIDE ( strdup = 0x4000143c ); -PROVIDE ( _strdup_r = 0x40001450 ); -PROVIDE ( strftime = 0x40059ab4 ); -PROVIDE ( strlcat = 0x40001470 ); -PROVIDE ( strlcpy = 0x4000c584 ); -PROVIDE ( strlen = 0x400014c0 ); -PROVIDE ( strlwr = 0x40001524 ); -PROVIDE ( strncasecmp = 0x40001550 ); -PROVIDE ( strncat = 0x4000c5c4 ); -PROVIDE ( strncmp = 0x4000c5f4 ); -PROVIDE ( strncpy = 0x400015d4 ); -PROVIDE ( strndup = 0x400016b0 ); -PROVIDE ( _strndup_r = 0x400016c4 ); -PROVIDE ( strnlen = 0x4000c628 ); -PROVIDE ( strrchr = 0x40001708 ); -PROVIDE ( strsep = 0x40001734 ); -PROVIDE ( strspn = 0x4000c648 ); -PROVIDE ( strstr = 0x4000c674 ); -PROVIDE ( __strtok_r = 0x4000c6a8 ); -PROVIDE ( strtok_r = 0x4000c70c ); -PROVIDE ( strtol = 0x4005681c ); -PROVIDE ( _strtol_r = 0x40056714 ); -PROVIDE ( strtoul = 0x4005692c ); -PROVIDE ( _strtoul_r = 0x40056834 ); -PROVIDE ( strupr = 0x4000174c ); -PROVIDE ( __submore = 0x40058f3c ); -PROVIDE ( SubtractBigHex256 = 0x40015bcc ); -PROVIDE ( SubtractBigHexMod256 = 0x40015e8c ); -PROVIDE ( SubtractBigHexUint32_256 = 0x40015f8c ); -PROVIDE ( SubtractFromSelfBigHex256 = 0x40015c20 ); -PROVIDE ( SubtractFromSelfBigHexSign256 = 0x40015dc8 ); -PROVIDE ( _sungetc_r = 0x40057f6c ); -PROVIDE ( _svfiprintf_r = 0x40057100 ); -PROVIDE ( __svfiscanf_r = 0x40057b08 ); -PROVIDE ( _svfprintf_r = 0x40057100 ); -PROVIDE ( __svfscanf = 0x40057f04 ); -PROVIDE ( __svfscanf_r = 0x40057b08 ); -PROVIDE ( __swbuf = 0x40058cb4 ); -PROVIDE ( __swbuf_r = 0x40058bec ); -PROVIDE ( __swrite = 0x40001150 ); -PROVIDE ( __swsetup_r = 0x40058cc8 ); -PROVIDE ( sw_to_hw = 0x3ffb8d40 ); -PROVIDE ( _SyscallException = 0x400007cf ); -PROVIDE ( syscall_table_ptr_app = 0x3ffae020 ); -PROVIDE ( syscall_table_ptr_pro = 0x3ffae024 ); -PROVIDE ( _system_r = 0x4000bc10 ); -PROVIDE ( tdefl_compress = 0x400600bc ); -PROVIDE ( tdefl_compress_buffer = 0x400607f4 ); -PROVIDE ( tdefl_compress_mem_to_mem = 0x40060900 ); -PROVIDE ( tdefl_compress_mem_to_output = 0x400608e0 ); -PROVIDE ( tdefl_get_adler32 = 0x400608d8 ); -PROVIDE ( tdefl_get_prev_return_status = 0x400608d0 ); -PROVIDE ( tdefl_init = 0x40060810 ); -PROVIDE ( tdefl_write_image_to_png_file_in_memory = 0x4006091c ); -PROVIDE ( tdefl_write_image_to_png_file_in_memory_ex = 0x40060910 ); -PROVIDE ( time = 0x40001844 ); -PROVIDE ( __time_load_locale = 0x4000183c ); -PROVIDE ( times = 0x40001808 ); -PROVIDE ( _times_r = 0x4000bc40 ); -PROVIDE ( _timezone = 0x3ffae0a0 ); -PROVIDE ( tinfl_decompress = 0x4005ef30 ); -PROVIDE ( tinfl_decompress_mem_to_callback = 0x40060090 ); -PROVIDE ( tinfl_decompress_mem_to_mem = 0x40060050 ); -PROVIDE ( toascii = 0x4000c720 ); -PROVIDE ( tolower = 0x40001868 ); -PROVIDE ( toupper = 0x40001884 ); -PROVIDE ( __tzcalc_limits = 0x400018a0 ); -PROVIDE ( __tz_lock = 0x40001a04 ); -PROVIDE ( _tzname = 0x3ffae030 ); -PROVIDE ( tzset = 0x40001a1c ); -PROVIDE ( _tzset_r = 0x40001a28 ); -PROVIDE ( __tz_lock_object = 0x3ffae080 ); -PROVIDE ( __tz_unlock = 0x40001a10 ); -PROVIDE ( uartAttach = 0x40008fd0 ); -PROVIDE ( uart_baudrate_detect = 0x40009034 ); -PROVIDE ( uart_buff_switch = 0x400093c0 ); -PROVIDE ( UartConnCheck = 0x40008738 ); -PROVIDE ( UartConnectProc = 0x40008a04 ); -PROVIDE ( UartDev = 0x3ffe019c ); -PROVIDE ( uart_div_modify = 0x400090cc ); -PROVIDE ( UartDwnLdProc = 0x40008ce8 ); -PROVIDE ( UartGetCmdLn = 0x40009564 ); -PROVIDE ( Uart_Init = 0x40009120 ); -PROVIDE ( UartRegReadProc = 0x40008a58 ); -PROVIDE ( UartRegWriteProc = 0x40008a14 ); -PROVIDE ( uart_rx_intr_handler = 0x40008f4c ); -PROVIDE ( uart_rx_one_char = 0x400092d0 ); -PROVIDE ( uart_rx_one_char_block = 0x400092a4 ); -PROVIDE ( uart_rx_readbuff = 0x40009394 ); -PROVIDE ( UartRxString = 0x400092fc ); -PROVIDE ( UartSetBaudProc = 0x40008aac ); -PROVIDE ( UartSpiAttachProc = 0x40008a6c ); -PROVIDE ( UartSpiReadProc = 0x40008a80 ); -PROVIDE ( uart_tx_flush = 0x40009258 ); -PROVIDE ( uart_tx_one_char = 0x40009200 ); -PROVIDE ( uart_tx_one_char2 = 0x4000922c ); -PROVIDE ( uart_tx_switch = 0x40009028 ); -PROVIDE ( uart_tx_wait_idle = 0x40009278 ); -PROVIDE ( ungetc = 0x400590f4 ); -PROVIDE ( _ungetc_r = 0x40058fa0 ); -PROVIDE ( _unlink_r = 0x4000bc84 ); -PROVIDE ( user_code_start = 0x3ffe0400 ); -PROVIDE ( _UserExceptionVector = 0x40000340 ); -PROVIDE ( utoa = 0x40056258 ); -PROVIDE ( __utoa = 0x400561f0 ); -PROVIDE ( vasiprintf = 0x40056eb8 ); -PROVIDE ( _vasiprintf_r = 0x40056e80 ); -PROVIDE ( vasniprintf = 0x40056e58 ); -PROVIDE ( _vasniprintf_r = 0x40056df8 ); -PROVIDE ( vasnprintf = 0x40056e58 ); -PROVIDE ( _vasnprintf_r = 0x40056df8 ); -PROVIDE ( vasprintf = 0x40056eb8 ); -PROVIDE ( _vasprintf_r = 0x40056e80 ); -PROVIDE ( VerifyFlashMd5Proc = 0x40008c44 ); -PROVIDE ( veryBigHexP256 = 0x3ff9736c ); -PROVIDE ( vfiprintf = 0x40057ae8 ); -PROVIDE ( _vfiprintf_r = 0x40057850 ); -PROVIDE ( vfiscanf = 0x40057eb8 ); -PROVIDE ( _vfiscanf_r = 0x40057f24 ); -PROVIDE ( vfprintf = 0x40057ae8 ); -PROVIDE ( _vfprintf_r = 0x40057850 ); -PROVIDE ( vfscanf = 0x40057eb8 ); -PROVIDE ( _vfscanf_r = 0x40057f24 ); -PROVIDE ( viprintf = 0x400569b4 ); -PROVIDE ( _viprintf_r = 0x400569e4 ); -PROVIDE ( viscanf = 0x40058698 ); -PROVIDE ( _viscanf_r = 0x400586c8 ); -PROVIDE ( vprintf = 0x400569b4 ); -PROVIDE ( _vprintf_r = 0x400569e4 ); -PROVIDE ( vscanf = 0x40058698 ); -PROVIDE ( _vscanf_r = 0x400586c8 ); -PROVIDE ( vsiprintf = 0x40056ac4 ); -PROVIDE ( _vsiprintf_r = 0x40056a90 ); -PROVIDE ( vsiscanf = 0x40058740 ); -PROVIDE ( _vsiscanf_r = 0x400586f8 ); -PROVIDE ( vsniprintf = 0x40056a68 ); -PROVIDE ( _vsniprintf_r = 0x40056a14 ); -PROVIDE ( vsnprintf = 0x40056a68 ); -PROVIDE ( _vsnprintf_r = 0x40056a14 ); -PROVIDE ( vsprintf = 0x40056ac4 ); -PROVIDE ( _vsprintf_r = 0x40056a90 ); -PROVIDE ( vsscanf = 0x40058740 ); -PROVIDE ( _vsscanf_r = 0x400586f8 ); -PROVIDE ( wcrtomb = 0x40058920 ); -PROVIDE ( _wcrtomb_r = 0x400588d8 ); -PROVIDE ( __wctomb = 0x3ff96540 ); -PROVIDE ( _wctomb_r = 0x40058f14 ); -PROVIDE ( _WindowOverflow12 = 0x40000100 ); -PROVIDE ( _WindowOverflow4 = 0x40000000 ); -PROVIDE ( _WindowOverflow8 = 0x40000080 ); -PROVIDE ( _WindowUnderflow12 = 0x40000140 ); -PROVIDE ( _WindowUnderflow4 = 0x40000040 ); -PROVIDE ( _WindowUnderflow8 = 0x400000c0 ); -PROVIDE ( write = 0x4000181c ); -PROVIDE ( _write_r = 0x4000bd70 ); -PROVIDE ( xthal_bcopy = 0x4000c098 ); -PROVIDE ( xthal_copy123 = 0x4000c124 ); -PROVIDE ( xthal_get_ccompare = 0x4000c078 ); -PROVIDE ( xthal_get_ccount = 0x4000c050 ); -PROVIDE ( xthal_get_interrupt = 0x4000c1e4 ); -PROVIDE ( xthal_get_intread = 0x4000c1e4 ); -PROVIDE ( Xthal_intlevel = 0x3ff9c2b4 ); -PROVIDE ( xthal_memcpy = 0x4000c0bc ); -PROVIDE ( xthal_set_ccompare = 0x4000c058 ); -PROVIDE ( xthal_set_intclear = 0x4000c1ec ); -PROVIDE ( _xtos_set_intlevel = 0x4000bfdc ); -PROVIDE ( g_ticks_per_us_pro = 0x3ffe01e0 ); -PROVIDE ( g_ticks_per_us_app = 0x3ffe40f0 ); -PROVIDE ( esp_rom_spiflash_config_clk = 0x40062bc8 ); -PROVIDE ( esp_rom_spiflash_config_param = 0x40063238 ); -PROVIDE ( esp_rom_spiflash_prepare_encrypted_data = 0x40062e1c ); -PROVIDE ( esp_rom_spiflash_read_user_cmd = 0x400621b0 ); -PROVIDE ( esp_rom_spiflash_select_qio_pins = 0x40061ddc ); -PROVIDE ( g_rom_spiflash_chip = 0x3ffae270 ); -PROVIDE ( hci_le_rd_rem_used_feats_cmd_handler = 0x400417b4 ); -PROVIDE ( llcp_length_req_handler = 0x40043808 ); -PROVIDE ( llcp_unknown_rsp_handler = 0x40043ba8 ); -PROVIDE ( llcp_channel_map_req_handler = 0x4004291c ); -PROVIDE ( llcp_con_up_req_handler = 0x400426f0 ); -PROVIDE ( _xtos_alloca_handler = 0x40000010 ); -PROVIDE ( _xtos_cause3_handler = 0x40000dd8 ); -PROVIDE ( _xtos_c_handler_table = 0x3ffe0548 ); -PROVIDE ( _xtos_c_wrapper_handler = 0x40000de8 ); -PROVIDE ( _xtos_enabled = 0x3ffe0650 ); -PROVIDE ( _xtos_exc_handler_table = 0x3ffe0448 ); -PROVIDE ( _xtos_interrupt_mask_table = 0x3ffe0758 ); -PROVIDE ( _xtos_interrupt_table = 0x3ffe0658 ); -PROVIDE ( _xtos_ints_off = 0x4000bfac ); -PROVIDE ( _xtos_ints_on = 0x4000bf88 ); -PROVIDE ( _xtos_intstruct = 0x3ffe0650 ); -PROVIDE ( _xtos_l1int_handler = 0x40000814 ); -PROVIDE ( _xtos_p_none = 0x4000bfd4 ); -PROVIDE ( _xtos_restore_intlevel = 0x40000928 ); -PROVIDE ( _xtos_return_from_exc = 0x4000c034 ); -PROVIDE ( _xtos_set_exception_handler = 0x4000074c ); -PROVIDE ( _xtos_set_interrupt_handler = 0x4000bf78 ); -PROVIDE ( _xtos_set_interrupt_handler_arg = 0x4000bf34 ); -PROVIDE ( _xtos_set_intlevel = 0x4000bfdc ); -PROVIDE ( _xtos_set_min_intlevel = 0x4000bff8 ); -PROVIDE ( _xtos_set_vpri = 0x40000934 ); -PROVIDE ( _xtos_syscall_handler = 0x40000790 ); -PROVIDE ( _xtos_unhandled_exception = 0x4000c024 ); -PROVIDE ( _xtos_unhandled_interrupt = 0x4000c01c ); -PROVIDE ( _xtos_vpri_enabled = 0x3ffe0654 ); -PROVIDE ( g_rom_flashchip = 0x3ffae270 ); -PROVIDE ( g_rom_spiflash_dummy_len_plus = 0x3ffae290 ); -PROVIDE ( esp_rom_spiflash_read_user_cmd = 0x400621b0 ); -PROVIDE ( esp_rom_spiflash_write_encrypted_enable = 0x40062df4 ); -PROVIDE ( esp_rom_spiflash_write_encrypted_disable = 0x40062e60 ); -PROVIDE ( esp_rom_spiflash_prepare_encrypted_data = 0x40062e1c ); - -PROVIDE ( esp_rom_printf = ets_printf ); -PROVIDE ( esp_rom_delay_us = ets_delay_us ); - -/* ESP32 ROM SPIFLASH functions */ - -PROVIDE ( esp_rom_spiflash_attach = 0x40062a6c ); -PROVIDE ( esp_rom_spiflash_config_readmode = 0x40062b64 ); -PROVIDE ( esp_rom_spiflash_enable_write = 0x40062320 ); -PROVIDE ( esp_rom_spiflash_erase_area = 0x400631ac ); -PROVIDE ( esp_rom_spiflash_erase_block = 0x40062c4c ); -PROVIDE ( esp_rom_spiflash_erase_chip = 0x40062c14 ); -PROVIDE ( esp_rom_spiflash_erase_sector = 0x40062ccc ); -PROVIDE ( esp_rom_spiflash_lock = 0x400628f0 ); -PROVIDE ( esp_rom_spiflash_read = 0x40062ed8 ); -PROVIDE ( esp_rom_spiflash_read_status = 0x4006226c ); -PROVIDE ( esp_rom_spiflash_read_statushigh = 0x40062448 ); -PROVIDE ( esp_rom_spiflash_write = 0x40062d50 ); -PROVIDE ( esp_rom_spiflash_write_encrypted = 0x40062e78 ); -PROVIDE ( esp_rom_spiflash_write_status = 0x400622f0 ); - -/* Following are static data, but can be used, not generated by script <<<<< btdm data */ - -PROVIDE ( hci_tl_env = 0x3ffb8154 ); -PROVIDE ( ld_acl_env = 0x3ffb8258 ); -PROVIDE ( ea_env = 0x3ffb80ec ); -PROVIDE ( lc_sco_data_path_config = 0x3ffb81f8 ); -PROVIDE ( lc_sco_env = 0x3ffb81fc ); -PROVIDE ( ld_active_ch_map = 0x3ffb8334 ); -PROVIDE ( ld_bcst_acl_env = 0x3ffb8274 ); -PROVIDE ( ld_csb_rx_env = 0x3ffb8278 ); -PROVIDE ( ld_csb_tx_env = 0x3ffb827c ); -PROVIDE ( ld_env = 0x3ffb9510 ); -PROVIDE ( ld_fm_env = 0x3ffb8284 ); -PROVIDE ( ld_inq_env = 0x3ffb82e4 ); -PROVIDE ( ld_iscan_env = 0x3ffb82e8 ); -PROVIDE ( ld_page_env = 0x3ffb82f0 ); -PROVIDE ( ld_pca_env = 0x3ffb82f4 ); -PROVIDE ( ld_pscan_env = 0x3ffb8308 ); -PROVIDE ( ld_sched_env = 0x3ffb830c ); -PROVIDE ( ld_sched_params = 0x3ffb96c0 ); -PROVIDE ( ld_sco_env = 0x3ffb824c ); -PROVIDE ( ld_sscan_env = 0x3ffb832c ); -PROVIDE ( ld_strain_env = 0x3ffb8330 ); -PROVIDE ( LM_Sniff = 0x3ffb8230 ); -PROVIDE ( LM_SniffSubRate = 0x3ffb8214 ); -PROVIDE ( prbs_64bytes = 0x3ff98992 ); -PROVIDE ( nvds_env = 0x3ffb8364 ); -PROVIDE ( nvds_magic_number = 0x3ff9912a ); -PROVIDE ( TASK_DESC_LLD = 0x3ff98b58 ); -/* Above are static data, but can be used, not generated by script >>>>> btdm data */ - diff --git a/boards/xtensa/esp32/common/scripts/mcuboot_sections.ld b/boards/xtensa/esp32/common/scripts/mcuboot_sections.ld index b9a850ff9c..da36517943 100644 --- a/boards/xtensa/esp32/common/scripts/mcuboot_sections.ld +++ b/boards/xtensa/esp32/common/scripts/mcuboot_sections.ld @@ -291,6 +291,14 @@ SECTIONS *(.fini.literal) *(.fini) *(.gnu.version) + + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram.*) + *(.wifiextrairam .wifiextrairam.*) + *(EXCLUDE_FILE(*libpp.a) .wifiorslpiram EXCLUDE_FILE(*libpp.a) .wifiorslpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram.*) + *(.wifislpiram .wifislpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram.*) + . = ALIGN(4); _text_end = ABSOLUTE(.); _etext = .; diff --git a/boards/xtensa/esp32/common/scripts/simple_boot_sections.ld b/boards/xtensa/esp32/common/scripts/simple_boot_sections.ld index b5225645fd..7506fd4397 100644 --- a/boards/xtensa/esp32/common/scripts/simple_boot_sections.ld +++ b/boards/xtensa/esp32/common/scripts/simple_boot_sections.ld @@ -502,6 +502,14 @@ SECTIONS *(.fini.literal) *(.fini) *(.gnu.version) + + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram.*) + *(.wifiextrairam .wifiextrairam.*) + *(EXCLUDE_FILE(*libpp.a) .wifiorslpiram EXCLUDE_FILE(*libpp.a) .wifiorslpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram.*) + *(.wifislpiram .wifislpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram.*) + . = ALIGN(4); . += 16; diff --git a/boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs b/boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs index 248d2224b5..c043fc9d0e 100644 --- a/boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/esp32-audio-kit/scripts/Make.defs b/boards/xtensa/esp32/esp32-audio-kit/scripts/Make.defs index 4a9390102f..e5e3f575db 100644 --- a/boards/xtensa/esp32/esp32-audio-kit/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-audio-kit/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs b/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs index 63d4efed6e..6942b430db 100644 --- a/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs b/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs index d3e7388c57..f13a7d0394 100644 --- a/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs b/boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs index bec8609932..dfa087c43a 100644 --- a/boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/esp32-pico-kit/scripts/Make.defs b/boards/xtensa/esp32/esp32-pico-kit/scripts/Make.defs index 855c037b91..d8d795d591 100644 --- a/boards/xtensa/esp32/esp32-pico-kit/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-pico-kit/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/esp32-sparrow-kit/scripts/Make.defs b/boards/xtensa/esp32/esp32-sparrow-kit/scripts/Make.defs index d0bb88c89c..f35032cc51 100644 --- a/boards/xtensa/esp32/esp32-sparrow-kit/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-sparrow-kit/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs b/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs index b45db06f8c..aabd1f8c31 100644 --- a/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/lilygo_tbeam_lora_gps/scripts/Make.defs b/boards/xtensa/esp32/lilygo_tbeam_lora_gps/scripts/Make.defs index 118e8b4ef9..1d6823408a 100644 --- a/boards/xtensa/esp32/lilygo_tbeam_lora_gps/scripts/Make.defs +++ b/boards/xtensa/esp32/lilygo_tbeam_lora_gps/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs b/boards/xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs index a7324aa8f4..5a7df8ac08 100644 --- a/boards/xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs +++ b/boards/xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs b/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs index c37b59878b..8bc3aba278 100644 --- a/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs +++ b/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32/ttgo_t_display_esp32/scripts/Make.defs b/boards/xtensa/esp32/ttgo_t_display_esp32/scripts/Make.defs index c0eb070a05..e4fa8c11c8 100644 --- a/boards/xtensa/esp32/ttgo_t_display_esp32/scripts/Make.defs +++ b/boards/xtensa/esp32/ttgo_t_display_esp32/scripts/Make.defs @@ -23,8 +23,6 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32/Config.mk include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld - # Pick the linker scripts from the board level if they exist, if not # pick the common linker scripts. diff --git a/boards/xtensa/esp32s2/common/scripts/esp32s2_aliases.ld b/boards/xtensa/esp32s2/common/scripts/esp32s2_aliases.ld new file mode 100644 index 0000000000..eb42321cea --- /dev/null +++ b/boards/xtensa/esp32s2/common/scripts/esp32s2_aliases.ld @@ -0,0 +1,36 @@ +/**************************************************************************** + * boards/xtensa/esp32s2/common/scripts/esp32s2_aliases.ld + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +#include + +/* Lower-case aliases for symbols not compliant to nxstyle */ + +PROVIDE( cache_allocate_sram = Cache_Allocate_SRAM ); +PROVIDE( cache_invalidate_icache_all = Cache_Invalidate_ICache_All ); +PROVIDE( cache_resume_dcache = Cache_Resume_DCache ); +PROVIDE( cache_resume_icache = Cache_Resume_ICache ); +PROVIDE( cache_resume_icache = Cache_Resume_ICache ); +PROVIDE( cache_set_icache_mode = Cache_Set_ICache_Mode ); +PROVIDE( cache_suspend_dcache = Cache_Suspend_DCache ); +PROVIDE( cache_suspend_icache = Cache_Suspend_ICache ); +PROVIDE( rom_i2c_readreg = rom_i2c_readReg ); +PROVIDE( rom_i2c_readreg_mask = rom_i2c_readReg_Mask ); +PROVIDE( rom_i2c_writereg = rom_i2c_writeReg ); +PROVIDE( rom_i2c_writereg_mask = rom_i2c_writeReg_Mask ); diff --git a/boards/xtensa/esp32s2/common/scripts/esp32s2_rom.ld b/boards/xtensa/esp32s2/common/scripts/esp32s2_rom.ld deleted file mode 100644 index 2e0471fd48..0000000000 --- a/boards/xtensa/esp32s2/common/scripts/esp32s2_rom.ld +++ /dev/null @@ -1,963 +0,0 @@ -/**************************************************************************** - * boards/xtensa/esp32s2/common/scripts/esp32s2_rom.ld - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. The - * ASF licenses this file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - ****************************************************************************/ - -/* ESP32-S2 ROM address table (except symbols from libgcc and libc) - * Generated for ROM with MD5sum: 0a2c7ec5109c17884606d23b47045796 - * - * These are all weak symbols that could be overwritten in ESP-IDF. - */ - -PROVIDE ( abort = 0x40019fb4 ); -PROVIDE ( acm_config_descr = 0x3ffaef0f ); -PROVIDE ( acm_usb_descriptors = 0x3ffaee68 ); -PROVIDE ( boot_prepare = 0x4000f348 ); -PROVIDE ( Cache_Address_Through_DCache = 0x400180f0 ); -PROVIDE ( Cache_Address_Through_ICache = 0x400180bc ); -PROVIDE ( cache_allocate_sram = 0x40018d6c ); -PROVIDE ( Cache_Clean_Addr = 0x40018370 ); -PROVIDE ( Cache_Clean_All = 0x40018438 ); -PROVIDE ( Cache_Clean_Items = 0x40018250 ); -PROVIDE ( Cache_Config_DCache_Autoload = 0x40018794 ); -PROVIDE ( Cache_Config_ICache_Autoload = 0x40018664 ); -PROVIDE ( Cache_Count_Flash_Pages = 0x40018f70 ); -PROVIDE ( cache_dbus_mmu_set = 0x40018eb0 ); -PROVIDE ( Cache_DCache_Preload_Done = 0x40018630 ); -PROVIDE ( Cache_Disable_DCache = 0x40018c68 ); -PROVIDE ( Cache_Disable_DCache_Autoload = 0x4001888c ); -PROVIDE ( Cache_Disable_DCache_PreLock = 0x40018a5c ); -PROVIDE ( Cache_Disable_ICache = 0x40018c2c ); -PROVIDE ( Cache_Disable_ICache_Autoload = 0x4001875c ); -PROVIDE ( Cache_Disable_ICache_PreLock = 0x4001892c ); -PROVIDE ( cache_enable_dcache = 0x40018d58 ); -PROVIDE ( Cache_Enable_DCache_Autoload = 0x40018874 ); -PROVIDE ( Cache_Enable_DCache_PreLock = 0x400189f0 ); -PROVIDE ( Cache_Enable_Defalut_DCache_Mode = 0x40018170 ); -PROVIDE ( Cache_Enable_ICache = 0x40018cf8 ); -PROVIDE ( Cache_Enable_ICache_Autoload = 0x40018744 ); -PROVIDE ( Cache_Enable_ICache_PreLock = 0x400188c0 ); -PROVIDE ( Cache_End_DCache_Preload = 0x40018644 ); -PROVIDE ( Cache_End_ICache_Preload = 0x400185b0 ); -PROVIDE ( Cache_Flash_To_SPIRAM_Copy = 0x40018fc4 ); -PROVIDE ( Cache_Get_DCache_Line_Size = 0x40017fd8 ); -PROVIDE ( Cache_Get_ICache_Line_Size = 0x40017fbc ); -PROVIDE ( Cache_Get_Memory_Addr = 0x4001929c ); -PROVIDE ( Cache_Get_Memory_BaseAddr = 0x40019244 ); -PROVIDE ( Cache_Get_Memory_value = 0x400192d8 ); -PROVIDE ( Cache_Get_Mode = 0x40017ff0 ); -PROVIDE ( Cache_Get_Virtual_Addr = 0x40019210 ); -PROVIDE ( cache_ibus_mmu_set = 0x40018df4 ); -PROVIDE ( Cache_ICache_Preload_Done = 0x4001859c ); -PROVIDE ( cache_invalidate_addr = 0x400182e4 ); -PROVIDE ( cache_invalidate_dcache_all = 0x4001842c ); -PROVIDE ( Cache_Invalidate_DCache_Items = 0x40018208 ); -PROVIDE ( cache_invalidate_icache_all = 0x40018420 ); -PROVIDE ( Cache_Invalidate_ICache_Items = 0x400181b8 ); -PROVIDE ( Cache_Lock_Addr = 0x40018b10 ); -PROVIDE ( Cache_Lock_DCache_Items = 0x40018a80 ); -PROVIDE ( Cache_Lock_ICache_Items = 0x40018950 ); -PROVIDE ( Cache_Mask_All = 0x40018458 ); -PROVIDE ( cache_memory_baseaddrs = 0x3ffaf020 ); -PROVIDE ( Cache_MMU_Init = 0x40018dd8 ); -PROVIDE ( cache_resume_dcache = 0x40018d3c ); -PROVIDE ( Cache_Resume_DCache_Autoload = 0x4001850c ); -PROVIDE ( cache_resume_icache = 0x40018cdc ); -PROVIDE ( Cache_Resume_ICache_Autoload = 0x400184c4 ); -PROVIDE ( cache_set_dcache_mode = 0x40018074 ); -PROVIDE ( Cache_Set_Default_Mode = 0x4001810c ); -PROVIDE ( cache_set_icache_mode = 0x4001803c ); -PROVIDE ( Cache_Start_DCache_Preload = 0x400185c4 ); -PROVIDE ( Cache_Start_ICache_Preload = 0x40018530 ); -PROVIDE ( cache_suspend_dcache = 0x40018d04 ); -PROVIDE ( Cache_Suspend_DCache_Autoload = 0x400184e0 ); -PROVIDE ( cache_suspend_icache = 0x40018ca4 ); -PROVIDE ( Cache_Suspend_ICache_Autoload = 0x40018498 ); -PROVIDE ( Cache_Travel_Tag_Memory = 0x4001908c ); -PROVIDE ( Cache_Unlock_Addr = 0x40018b9c ); -PROVIDE ( Cache_Unlock_DCache_Items = 0x40018ac8 ); -PROVIDE ( Cache_Unlock_ICache_Items = 0x40018998 ); -PROVIDE ( Cache_UnMask_Drom0 = 0x40018480 ); -PROVIDE ( cache_writeback_addr = 0x400183c8 ); -PROVIDE ( cache_writeback_all = 0x40018444 ); -PROVIDE ( Cache_WriteBack_Items = 0x40018298 ); -PROVIDE ( cacl_rtc_memory_crc = 0x4000ffa0 ); -PROVIDE ( cdc_acm_class_handle_req = 0x40013050 ); -PROVIDE ( cdc_acm_config = 0x3ffffa10 ); -PROVIDE ( cdc_acm_dev = 0x3ffffce8 ); -PROVIDE ( cdc_acm_fifo_fill = 0x4001318c ); -PROVIDE ( cdc_acm_fifo_read = 0x40013200 ); -PROVIDE ( cdc_acm_init = 0x40013144 ); -PROVIDE ( cdc_acm_irq_callback_set = 0x400132d4 ); -PROVIDE ( cdc_acm_irq_is_pending = 0x400132b0 ); -PROVIDE ( cdc_acm_irq_rx_disable = 0x40013290 ); -PROVIDE ( cdc_acm_irq_rx_enable = 0x40013284 ); -PROVIDE ( cdc_acm_irq_rx_ready = 0x4001329c ); -PROVIDE ( cdc_acm_irq_state_disable = 0x40013264 ); -PROVIDE ( cdc_acm_irq_state_enable = 0x40013258 ); -PROVIDE ( cdc_acm_irq_tx_disable = 0x4001324c ); -PROVIDE ( cdc_acm_irq_tx_enable = 0x40013240 ); -PROVIDE ( cdc_acm_irq_tx_ready = 0x40013270 ); -PROVIDE ( cdc_acm_line_ctrl_get = 0x40013330 ); -PROVIDE ( cdc_acm_line_ctrl_set = 0x400132dc ); -PROVIDE ( cdc_acm_poll_out = 0x40013360 ); -PROVIDE ( cdc_acm_rx_fifo_cnt = 0x400131ec ); -PROVIDE ( chip723_phyrom_version = 0x4000a8a8 ); -PROVIDE ( chip_usb_detach = 0x40013508 ); -PROVIDE ( chip_usb_dw_did_persist = 0x4001337c ); -PROVIDE ( chip_usb_dw_init = 0x400133bc ); -PROVIDE ( chip_usb_dw_prepare_persist = 0x40013588 ); -PROVIDE ( chip_usb_get_persist_flags = 0x400135d8 ); -PROVIDE ( chip_usb_set_persist_flags = 0x400135e8 ); -PROVIDE ( context = 0x3fffeb34 ); -PROVIDE ( cpio_destroy = 0x4001599c ); -PROVIDE ( cpio_done = 0x40015968 ); -PROVIDE ( cpio_feed = 0x40015668 ); -PROVIDE ( cpio_start = 0x4001561c ); -PROVIDE ( crc16_le = 0x40011a10 ); -PROVIDE ( crc32_le = 0x400119dc ); -PROVIDE ( crc8_le = 0x40011a4c ); -PROVIDE ( _cvt = 0x4000f9b8 ); -PROVIDE ( _data_end_all_pro = 0x3fffff98 ); -PROVIDE ( _data_end_c = 0x3ffffd80 ); -PROVIDE ( _data_end_ets = 0x3fffe710 ); -PROVIDE ( _data_end_ets_delay = 0x3ffffd74 ); -PROVIDE ( _data_end_ets_printf = 0x3ffffd5c ); -PROVIDE ( _data_end_newlib = 0x3ffffd74 ); -PROVIDE ( _data_end_phyrom = 0x3fffff98 ); -PROVIDE ( _data_end_sip = 0x3fffeb70 ); -PROVIDE ( _data_end_slc = 0x3fffeb70 ); -PROVIDE ( _data_end_spi_flash = 0x3ffffd54 ); -PROVIDE ( _data_end_spi_slave = 0x3fffeb30 ); -PROVIDE ( _data_end_uart = 0x3ffffcf4 ); -PROVIDE ( _data_end_usbdev = 0x3ffffa6c ); -PROVIDE ( _data_end_xtos = 0x3fffef88 ); -PROVIDE ( _data_start_all_pro = 0x3fffff98 ); -PROVIDE ( _data_start_c = 0x3ffffd7c ); -PROVIDE ( _data_start_ets = 0x3fffe710 ); -PROVIDE ( _data_start_ets_delay = 0x3ffffd70 ); -PROVIDE ( _data_start_ets_printf = 0x3ffffd5c ); -PROVIDE ( _data_start_newlib = 0x3ffffd74 ); -PROVIDE ( _data_start_phyrom = 0x3ffffd90 ); -PROVIDE ( _data_start_sip = 0x3fffeb70 ); -PROVIDE ( _data_start_slc = 0x3fffeb70 ); -PROVIDE ( _data_start_spi_flash = 0x3ffffd38 ); -PROVIDE ( _data_start_spi_slave = 0x3fffeb30 ); -PROVIDE ( _data_start_uart = 0x3ffffcf4 ); -PROVIDE ( _data_start_usbdev = 0x3ffffa10 ); -PROVIDE ( _data_start_xtos = 0x3fffeb70 ); -PROVIDE ( dbus_baseaddrs = 0x3ffaf030 ); -PROVIDE ( _DebugExceptionVector = 0x40000280 ); -PROVIDE ( _DebugExceptionVector_text_end = 0x4000028b ); -PROVIDE ( _DebugExceptionVector_text_start = 0x40000280 ); -PROVIDE ( __default_global_locale = 0x3ffac600 ); -PROVIDE ( dfu_class_handle_req = 0x400152f0 ); -PROVIDE ( dfu_config_descr = 0x3ffaeeb2 ); -PROVIDE ( dfu_cpio_callback = 0x4001360c ); -PROVIDE ( dfu_custom_handle_req = 0x40015568 ); -PROVIDE ( dfu_flash_attach = 0x40015a34 ); -PROVIDE ( dfu_flash_deinit = 0x400159b4 ); -PROVIDE ( dfu_flash_erase = 0x400159bc ); -PROVIDE ( dfu_flash_init = 0x400159a4 ); -PROVIDE ( dfu_flash_program = 0x400159d0 ); -PROVIDE ( dfu_flash_read = 0x40015a24 ); -PROVIDE ( dfu_status_cb = 0x40015514 ); -PROVIDE ( dfu_updater_begin = 0x40013858 ); -PROVIDE ( dfu_updater_clear_err = 0x40013810 ); -PROVIDE ( dfu_updater_enable = 0x40013828 ); -PROVIDE ( dfu_updater_end = 0x40013900 ); -PROVIDE ( dfu_updater_feed = 0x400138b4 ); -PROVIDE ( dfu_updater_flash_read = 0x400139e8 ); -PROVIDE ( dfu_updater_get_err = 0x400137fc ); -PROVIDE ( dfu_updater_set_raw_addr = 0x400139d4 ); -PROVIDE ( dfu_usb_descriptors = 0x3ffaee4c ); -PROVIDE ( dh_group14_generator = 0x3ffadfec ); -PROVIDE ( dh_group14_prime = 0x3ffadeec ); -PROVIDE ( dh_group15_generator = 0x3ffadeeb ); -PROVIDE ( dh_group15_prime = 0x3ffadd6b ); -PROVIDE ( dh_group16_generator = 0x3ffadd6a ); -PROVIDE ( dh_group16_prime = 0x3ffadb6a ); -PROVIDE ( dh_group17_generator = 0x3ffadb69 ); -PROVIDE ( dh_group17_prime = 0x3ffad869 ); -PROVIDE ( dh_group18_generator = 0x3ffad868 ); -PROVIDE ( dh_group18_prime = 0x3ffad468 ); -PROVIDE ( dh_group1_generator = 0x3ffae18f ); -PROVIDE ( dh_group1_prime = 0x3ffae12f ); -PROVIDE ( dh_group2_generator = 0x3ffae12e ); -PROVIDE ( dh_group2_prime = 0x3ffae0ae ); -PROVIDE ( dh_group5_generator = 0x3ffae0ad ); -PROVIDE ( dh_group5_prime = 0x3ffadfed ); -PROVIDE ( disable_default_watchdog = 0x4000f270 ); -PROVIDE ( Disable_QMode = 0x400166e0 ); -PROVIDE ( dmadesc_rx = 0x3fffeb4c ); -PROVIDE ( dmadesc_tx = 0x3fffeb40 ); -PROVIDE ( _DoubleExceptionVector = 0x400003c0 ); -PROVIDE ( _DoubleExceptionVector_text_end = 0x400003c6 ); -PROVIDE ( _DoubleExceptionVector_text_start = 0x400003c0 ); -PROVIDE ( _dram0_0_start = 0x3ffeab00 ); -PROVIDE ( _dram0_rtos_reserved_start = 0x3ffffa10 ); -PROVIDE ( dummy_len_plus = 0x3ffffd54 ); -PROVIDE ( Enable_QMode = 0x40016690 ); -PROVIDE ( esp_crc8 = 0x40011a78 ); -PROVIDE ( esp_rom_config_pad_power_select = 0x40016e58 ); -PROVIDE ( esp_rom_delay_us = ets_delay_us ); -PROVIDE ( esp_rom_opiflash_cache_mode_config = 0x40016754 ); -PROVIDE ( esp_rom_opiflash_exec_cmd = 0x40017e30 ); -PROVIDE ( esp_rom_opiflash_exit_continuous_read_mode = 0x40017ee8 ); -PROVIDE ( esp_rom_opiflash_mode_reset = 0x40017f90 ); -PROVIDE ( esp_rom_opiflash_pin_config = 0x400177f8 ); -PROVIDE ( esp_rom_opiflash_soft_reset = 0x40017f24 ); -PROVIDE ( esp_rom_spi_cmd_config = 0x40017c58 ); -PROVIDE ( esp_rom_spi_cmd_start = 0x40017ba8 ); -PROVIDE ( esp_rom_spi_flash_auto_sus_res = 0x400175e0 ); -PROVIDE ( esp_rom_spi_flash_auto_wait_idle = 0x4001751c ); -PROVIDE ( esp_rom_spi_flash_send_resume = 0x40017570 ); -PROVIDE ( esp_rom_spi_flash_update_id = 0x40016e44 ); -PROVIDE ( esp_rom_spi_reset_rw_mode = 0x40017984 ); -PROVIDE ( esp_rom_spi_set_dtr_swap_mode = 0x40017b60 ); -PROVIDE ( esp_rom_spi_set_op_mode = 0x400179e8 ); -PROVIDE ( esp_rom_efuse_get_flash_gpio_info = ets_efuse_get_spiconfig ); -PROVIDE ( esp_rom_efuse_get_flash_wp_gpio = ets_efuse_get_wp_pad ); -PROVIDE ( esp_rom_spiflash_select_qio_pins = SelectSpiQIO ); -PROVIDE ( _etext = 0x4001bed0 ); -PROVIDE ( ets_aes_block = 0x4000d610 ); -PROVIDE ( ets_aes_disable = 0x4000d4f8 ); -PROVIDE ( ets_aes_enable = 0x4000d4cc ); -PROVIDE ( ets_aes_set_endian = 0x4000d528 ); -PROVIDE ( ets_aes_setkey = 0x4000d594 ); -PROVIDE ( ets_aes_setkey_dec = 0x4000d5f0 ); -PROVIDE ( ets_aes_setkey_enc = 0x4000d5e0 ); -PROVIDE ( ets_bigint_disable = 0x4000d750 ); -PROVIDE ( ets_bigint_enable = 0x4000d708 ); -PROVIDE ( ets_bigint_getz = 0x4000d858 ); -PROVIDE ( ets_bigint_modexp = 0x4000d818 ); -PROVIDE ( ets_bigint_modmult = 0x4000d7f4 ); -PROVIDE ( ets_bigint_multiply = 0x4000d790 ); -PROVIDE ( ets_bigint_wait_finish = 0x4000d840 ); -PROVIDE ( ets_config_flash_by_image_hdr = 0x40010e40 ); -PROVIDE ( ets_delay_us = 0x4000d888 ); -PROVIDE ( ets_ds_disable = 0x4000d910 ); -PROVIDE ( ets_ds_enable = 0x4000d8e4 ); -PROVIDE ( ets_ds_encrypt_params = 0x4000da90 ); -PROVIDE ( ets_ds_finish_sign = 0x4000d9f8 ); -PROVIDE ( ets_ds_is_busy = 0x4000d93c ); -PROVIDE ( ets_ds_start_sign = 0x4000d96c ); -PROVIDE ( ets_efuse_cache_encryption_enabled = 0x4000e690 ); -PROVIDE ( ets_efuse_clear_program_registers = 0x4000e100 ); -PROVIDE ( ets_efuse_count_unused_key_blocks = 0x4000e2c4 ); -PROVIDE ( ets_efuse_download_modes_disabled = 0x4000e594 ); -PROVIDE ( ets_efuse_find_purpose = 0x4000e224 ); -PROVIDE ( ets_efuse_find_unused_key_block = 0x4000e2ac ); -PROVIDE ( ets_efuse_flash_opi_5pads_power_sel_vddspi = 0x4000e640 ); -PROVIDE ( ets_efuse_flash_opi_mode = 0x4000e650 ); -PROVIDE ( ets_efuse_force_send_resume = 0x4000e660 ); -PROVIDE ( ets_efuse_get_flash_delay_us = 0x4000e6d4 ); -PROVIDE ( ets_efuse_get_key_purpose = 0x4000e1b0 ); -PROVIDE ( ets_efuse_get_opiconfig = 0x4000e4fc ); -PROVIDE ( ets_efuse_get_read_register_address = 0x4000e18c ); -PROVIDE ( ets_efuse_get_spiconfig = 0x4000e4a0 ); -PROVIDE ( ets_efuse_get_uart_print_channel = 0x4000e5b4 ); -PROVIDE ( ets_efuse_get_uart_print_control = 0x4000e5a4 ); -PROVIDE ( ets_efuse_get_wp_pad = 0x4000e444 ); -PROVIDE ( ets_efuse_key_block_unused = 0x4000e250 ); -PROVIDE ( ets_efuse_legacy_spi_boot_mode_disabled = 0x4000e6b0 ); -PROVIDE ( ets_efuse_program = 0x4000e134 ); -PROVIDE ( ets_efuse_read = 0x4000e0c0 ); -PROVIDE ( ets_efuse_rs_calculate = 0x4000e6f8 ); -PROVIDE ( ets_efuse_secure_boot_aggressive_revoke_enabled = 0x4000e680 ); -PROVIDE ( ets_efuse_secure_boot_enabled = 0x4000e670 ); -PROVIDE ( ets_efuse_security_download_modes_enabled = 0x4000e5d4 ); -PROVIDE ( ets_efuse_set_timing = 0x4000df3c ); -PROVIDE ( ets_efuse_start = 0x4000e084 ); -PROVIDE ( ets_efuse_usb_download_mode_disabled = 0x4000e5f4 ); -PROVIDE ( ets_efuse_usb_force_nopersist = 0x4000e630 ); -PROVIDE ( ets_efuse_usb_module_disabled = 0x4000e5c4 ); -PROVIDE ( ets_efuse_usb_use_ext_phy = 0x4000e620 ); -PROVIDE ( ets_efuse_write_key = 0x4000e2f4 ); -PROVIDE ( ets_emsa_pss_verify = 0x40011818 ); -PROVIDE ( ets_get_apb_freq = 0x40010c58 ); -PROVIDE ( ets_get_cpu_frequency = 0x4000d8b0 ); -PROVIDE ( ets_get_printf_channel = 0x4000ff48 ); -PROVIDE ( ets_get_xtal_div = 0x40010bfc ); -PROVIDE ( ets_get_xtal_freq = 0x40010c38 ); -PROVIDE ( ets_hmac_calculate_downstream = 0x4000f120 ); -PROVIDE ( ets_hmac_calculate_message = 0x4000f020 ); -PROVIDE ( ets_hmac_disable = 0x4000eff4 ); -PROVIDE ( ets_hmac_enable = 0x4000efd8 ); -PROVIDE ( ets_hmac_invalidate_downstream = 0x4000f140 ); -PROVIDE ( ets_install_lock = 0x4000fea0 ); -PROVIDE ( ets_install_putc1 = 0x4000feb0 ); -PROVIDE ( ets_install_putc2 = 0x4000fed0 ); -PROVIDE ( ets_install_uart_printf = 0x4000fec0 ); -PROVIDE ( ets_intr_count = 0x3fffe710 ); -PROVIDE ( ets_intr_lock = 0x4000f168 ); -PROVIDE ( ets_intr_unlock = 0x4000f17c ); -PROVIDE ( ets_is_print_boot = 0x4000f2a0 ); -PROVIDE ( ets_isr_attach = 0x4000f1a4 ); -PROVIDE ( ets_isr_mask = 0x4000f1b4 ); -PROVIDE ( ets_isr_unmask = 0x4000f1c0 ); -PROVIDE ( ets_jtag_enable_temporarily = 0x4000e548 ); -PROVIDE ( ets_loader_map_range = 0x40010d4c ); -PROVIDE ( ets_mgf1_sha256 = 0x400117b0 ); -PROVIDE ( ets_printf = 0x4000fee0 ); -PROVIDE ( ets_printf_lock = 0x3ffffd64 ); -PROVIDE ( ets_printf_uart = 0x3ffffd5c ); -PROVIDE ( ets_printf_unlock = 0x3ffffd60 ); -PROVIDE ( ets_rsa_pss_verify = 0x4001191c ); -PROVIDE ( ets_run_flash_bootloader = 0x40010f58 ); -PROVIDE ( ets_secure_boot_read_key_digests = 0x400101ac ); -PROVIDE ( ets_secure_boot_revoke_public_key_digest = 0x4001025c ); -PROVIDE ( ets_secure_boot_verify_bootloader_with_keys = 0x40010444 ); -PROVIDE ( ets_secure_boot_verify_signature = 0x400102cc ); -PROVIDE ( ets_secure_boot_verify_stage_bootloader = 0x40010720 ); -PROVIDE ( ets_set_printf_channel = 0x4000ff3c ); -PROVIDE ( ets_set_user_start = 0x4000f25c ); -PROVIDE ( ets_set_xtal_div = 0x40010c18 ); -PROVIDE ( ets_sha_clone = 0x4001095c ); -PROVIDE ( ets_sha_disable = 0x400107b4 ); -PROVIDE ( ets_sha_enable = 0x40010788 ); -PROVIDE ( ets_sha_finish = 0x40010ab8 ); -PROVIDE ( ets_sha_get_state = 0x40010934 ); -PROVIDE ( ets_sha_init = 0x400107e0 ); -PROVIDE ( ets_sha_process = 0x40010988 ); -PROVIDE ( ets_sha_starts = 0x40010828 ); -PROVIDE ( ets_sha_update = 0x400109f8 ); -PROVIDE ( ets_startup_callback = 0x3fffe718 ); -PROVIDE ( ets_unpack_flash_code_legacy = 0x40011430 ); -PROVIDE ( ets_update_cpu_frequency = 0x4000d8a4 ); -PROVIDE ( ets_vprintf = 0x4000fa3c ); -PROVIDE ( ets_waiti0 = 0x4000f190 ); -PROVIDE ( ets_wdt_reset_cpu = 0x4001a82c ); -PROVIDE ( ets_write_char = 0x4000f974 ); -PROVIDE ( ets_write_char_uart = 0x4000f998 ); -PROVIDE ( exc_cause_table = 0x3ffacbe8 ); -PROVIDE ( FilePacketSendDeflatedReqMsgProc = 0x40011ed8 ); -PROVIDE ( FilePacketSendReqMsgProc = 0x40011bd8 ); -PROVIDE ( g_rom_flashchip = 0x3ffffd38 ); -PROVIDE ( FlashDwnLdDeflatedStartMsgProc = 0x40011e80 ); -PROVIDE ( FlashDwnLdParamCfgMsgProc = 0x40011cc0 ); -PROVIDE ( FlashDwnLdStartMsgProc = 0x40011b74 ); -PROVIDE ( FlashDwnLdStopDeflatedReqMsgProc = 0x40011fd8 ); -PROVIDE ( FlashDwnLdStopReqMsgProc = 0x40011c90 ); -PROVIDE ( general_device_descr = 0x3ffffa58 ); -PROVIDE ( _GeneralException = 0x400073cf ); -PROVIDE ( get_id = 0x4001610c ); -PROVIDE ( GetSecurityInfoProc = 0x40012098 ); -PROVIDE ( GetUartDevice = 0x40012f60 ); -PROVIDE ( __global_locale_ptr = 0x3ffffd7c ); -PROVIDE ( g_phyFuns = 0x3ffffd90 ); -PROVIDE ( g_phyFuns_instance = 0x3ffffd94 ); -PROVIDE ( gpio_input_get = 0x400193a0 ); -PROVIDE ( gpio_input_get_high = 0x400193b4 ); -PROVIDE ( gpio_matrix_in = 0x40019430 ); -PROVIDE ( gpio_matrix_out = 0x40019460 ); -PROVIDE ( gpio_output_disable = 0x400194dc ); -PROVIDE ( gpio_output_enable = 0x400194b0 ); -PROVIDE ( gpio_output_set = 0x4001933c ); -PROVIDE ( gpio_output_set_high = 0x40019374 ); -PROVIDE ( gpio_pad_hold = 0x40019654 ); -PROVIDE ( gpio_pad_input_disable = 0x400195f0 ); -PROVIDE ( gpio_pad_input_enable = 0x400195cc ); -PROVIDE ( gpio_pad_pulldown = 0x40019598 ); -PROVIDE ( gpio_pad_pullup = 0x40019564 ); -PROVIDE ( gpio_pad_select_gpio = 0x40019510 ); -PROVIDE ( gpio_pad_set_drv = 0x40019538 ); -PROVIDE ( gpio_pad_unhold = 0x4001961c ); -PROVIDE ( gpio_pin_wakeup_disable = 0x40019404 ); -PROVIDE ( gpio_pin_wakeup_enable = 0x400193c8 ); -PROVIDE ( g_shared_buffers = 0x3ffeab04 ); -PROVIDE ( g_ticks_per_us = 0x3ffffd70 ); -PROVIDE ( hmac_md5 = 0x40005490 ); -PROVIDE ( hmac_md5_vector = 0x400053a0 ); -PROVIDE ( ibus_baseaddrs = 0x3ffaf03c ); -PROVIDE ( intr_matrix_set = 0x4000f1d0 ); -PROVIDE ( _iram0_text_end = 0x40000540 ); -PROVIDE ( _iram0_text_start = 0x40000540 ); -PROVIDE ( _iram1_text_end = 0x60021100 ); -PROVIDE ( _iram1_text_start = 0x60021100 ); -PROVIDE ( _KernelExceptionVector = 0x40000300 ); -PROVIDE ( _KernelExceptionVector_text_end = 0x40000306 ); -PROVIDE ( _KernelExceptionVector_text_start = 0x40000300 ); -PROVIDE ( _Level2FromVector = 0x400074f8 ); -PROVIDE ( _Level2HandlerLabel = 0x00000000 ); -PROVIDE ( _Level2InterruptVector_text_end = 0x40000186 ); -PROVIDE ( _Level2InterruptVector_text_start = 0x40000180 ); -PROVIDE ( _Level2Vector = 0x40000180 ); -PROVIDE ( _Level3FromVector = 0x40007594 ); -PROVIDE ( _Level3HandlerLabel = 0x00000000 ); -PROVIDE ( _Level3InterruptVector_text_end = 0x400001c6 ); -PROVIDE ( _Level3InterruptVector_text_start = 0x400001c0 ); -PROVIDE ( _Level3Vector = 0x400001c0 ); -PROVIDE ( _Level4FromVector = 0x4000762c ); -PROVIDE ( _Level4HandlerLabel = 0x00000000 ); -PROVIDE ( _Level4InterruptVector_text_end = 0x40000206 ); -PROVIDE ( _Level4InterruptVector_text_start = 0x40000200 ); -PROVIDE ( _Level4Vector = 0x40000200 ); -PROVIDE ( _Level5FromVector = 0x4000775c ); -PROVIDE ( _Level5HandlerLabel = 0x00000000 ); -PROVIDE ( _Level5InterruptVector_text_end = 0x40000246 ); -PROVIDE ( _Level5InterruptVector_text_start = 0x40000240 ); -PROVIDE ( _Level5Vector = 0x40000240 ); -PROVIDE ( _LevelOneInterrupt = 0x4000740a ); -PROVIDE ( _lit4_end = 0x40000540 ); -PROVIDE ( _lit4_start = 0x40000540 ); -PROVIDE ( lldesc_build_chain = 0x4000907c ); -PROVIDE ( lldesc_num2link = 0x4000916c ); -PROVIDE ( lldesc_set_owner = 0x40009198 ); -PROVIDE ( lldesc_setup = 0x40019ed8 ); -PROVIDE ( main = 0x4000f6c4 ); -PROVIDE ( MD5Final = 0x4000530c ); -PROVIDE ( MD5Init = 0x4000526c ); -PROVIDE ( MD5Update = 0x4000528c ); -PROVIDE ( md5_vector = 0x40005374 ); -PROVIDE ( MemDwnLdStartMsgProc = 0x40011cec ); -PROVIDE ( MemDwnLdStopReqMsgProc = 0x40011d80 ); -PROVIDE ( _memmap_cacheattr_bp_allvalid = 0x22222222 ); -PROVIDE ( _memmap_cacheattr_bp_base = 0x00000220 ); -PROVIDE ( _memmap_cacheattr_bp_strict = 0xfffff22f ); -PROVIDE ( _memmap_cacheattr_bp_trapnull = 0x2222222f ); -PROVIDE ( _memmap_cacheattr_reset = 0x2222211f ); -PROVIDE ( _memmap_cacheattr_unused_mask = 0xfffff00f ); -PROVIDE ( _memmap_cacheattr_wb_allvalid = 0x22222112 ); -PROVIDE ( _memmap_cacheattr_wba_trapnull = 0x2222211f ); -PROVIDE ( _memmap_cacheattr_wb_base = 0x00000110 ); -PROVIDE ( _memmap_cacheattr_wbna_trapnull = 0x2222211f ); -PROVIDE ( _memmap_cacheattr_wb_strict = 0xfffff11f ); -PROVIDE ( _memmap_cacheattr_wb_trapnull = 0x2222211f ); -PROVIDE ( _memmap_cacheattr_wt_allvalid = 0x22222112 ); -PROVIDE ( _memmap_cacheattr_wt_base = 0x00000110 ); -PROVIDE ( _memmap_cacheattr_wt_strict = 0xfffff11f ); -PROVIDE ( _memmap_cacheattr_wt_trapnull = 0x2222211f ); -PROVIDE ( _memmap_vecbase_reset = 0x40000000 ); -PROVIDE ( MemPacketSendReqMsgProc = 0x40011d1c ); -PROVIDE ( multofup = 0x4001bce0 ); -PROVIDE ( must_reset = 0x3ffffcf4 ); -PROVIDE ( mz_adler32 = 0x40002e90 ); -PROVIDE ( mz_crc32 = 0x40002f58 ); -PROVIDE ( mz_free = 0x40002fa4 ); -PROVIDE ( _NMIExceptionVector = 0x400002c0 ); -PROVIDE ( _NMIExceptionVector_text_end = 0x400002c3 ); -PROVIDE ( _NMIExceptionVector_text_start = 0x400002c0 ); -PROVIDE ( __packed = 0x3ffffcec ); -PROVIDE ( phy_get_romfuncs = 0x4000a88c ); -PROVIDE ( _Pri_4_HandlerAddress = 0x3fffed78 ); -PROVIDE ( _Pri_5_HandlerAddress = 0x3fffed7c ); -PROVIDE ( pthread_setcancelstate = 0x40019fa8 ); -PROVIDE ( _putc1 = 0x3ffffd6c ); -PROVIDE ( _putc2 = 0x3ffffd68 ); -PROVIDE ( RcvMsg = 0x40012f10 ); -PROVIDE ( recv_packet = 0x40012de8 ); -PROVIDE ( _ResetHandler = 0x4000044c ); -PROVIDE ( _ResetVector = 0x40000400 ); -PROVIDE ( _ResetVector_literal_end = 0x40000540 ); -PROVIDE ( _ResetVector_literal_start = 0x40000540 ); -PROVIDE ( _ResetVector_text_end = 0x4000053d ); -PROVIDE ( _ResetVector_text_start = 0x40000400 ); -PROVIDE ( _rodata_end = 0x3ffaff2c ); -PROVIDE ( _rodata_start = 0x3ffac600 ); -PROVIDE ( rom_abs_temp = 0x4000c330 ); -PROVIDE ( rom_ant_btrx_cfg = 0x4000a0fc ); -PROVIDE ( rom_ant_bttx_cfg = 0x4000a0c0 ); -PROVIDE ( rom_ant_dft_cfg = 0x40009fc8 ); -PROVIDE ( rom_ant_wifirx_cfg = 0x4000a03c ); -PROVIDE ( rom_ant_wifitx_cfg = 0x40009ff8 ); -PROVIDE ( rom_bb_bss_cbw40_dig = 0x40009a84 ); -PROVIDE ( rom_bb_wdg_cfg = 0x40009eb8 ); -PROVIDE ( rom_bb_wdg_test_en = 0x40009a48 ); -PROVIDE ( rom_bb_wdt_get_status = 0x40009d18 ); -PROVIDE ( rom_bb_wdt_int_enable = 0x40009cd4 ); -PROVIDE ( rom_bb_wdt_rst_enable = 0x40009cb4 ); -PROVIDE ( rom_bb_wdt_timeout_clear = 0x40009cfc ); -PROVIDE ( rom_cbw2040_cfg = 0x4000a550 ); -PROVIDE ( rom_check_noise_floor = 0x40009b4c ); -PROVIDE ( rom_chip_i2c_readReg = 0x4000a8e4 ); -PROVIDE ( rom_chip_i2c_writeReg = 0x4000a960 ); -PROVIDE ( rom_correct_rf_ana_gain = 0x4000d2b4 ); -PROVIDE ( rom_dc_iq_est = 0x4000c414 ); -PROVIDE ( rom_disable_agc = 0x400091cc ); -PROVIDE ( rom_enable_agc = 0x400091e4 ); -PROVIDE ( rom_freq_get_i2c_data = 0x4000bb84 ); -PROVIDE ( rom_freq_i2c_set_wifi_data = 0x4000b948 ); -PROVIDE ( rom_freq_i2c_write_set = 0x4000b3bc ); -PROVIDE ( rom_gen_rx_gain_table = 0x4000a300 ); -PROVIDE ( rom_get_bbgain_db = 0x400094ec ); -PROVIDE ( rom_get_data_sat = 0x40009338 ); -PROVIDE ( rom_get_fm_sar_dout = 0x4000c024 ); -PROVIDE ( rom_get_i2c_read_mask = 0x4000a8c0 ); -PROVIDE ( rom_get_power_db = 0x4000ce28 ); -PROVIDE ( rom_get_pwctrl_correct = 0x4000d470 ); -PROVIDE ( rom_get_rfcal_rxiq_data = 0x4000cab0 ); -PROVIDE ( rom_get_rf_gain_qdb = 0x4000d29c ); -PROVIDE ( rom_get_sar_dout = 0x4000d400 ); -PROVIDE ( rom_i2c_clk_sel = 0x4000a788 ); -PROVIDE ( rom_i2c_readreg = 0x4000a940 ); -PROVIDE ( rom_i2c_readreg_mask = 0x4000a9c4 ); -PROVIDE ( rom_i2c_writereg = 0x4000a9a8 ); -PROVIDE ( rom_i2c_writereg_mask = 0x4000aa00 ); -PROVIDE ( rom_index_to_txbbgain = 0x4000bd10 ); -PROVIDE ( rom_iq_est_disable = 0x4000c3d8 ); -PROVIDE ( rom_iq_est_enable = 0x4000c358 ); -PROVIDE ( rom_linear_to_db = 0x4000cdbc ); -PROVIDE ( rom_loopback_mode_en = 0x40009304 ); -PROVIDE ( rom_mac_enable_bb = 0x40009e48 ); -PROVIDE ( rom_meas_tone_pwr_db = 0x4000ce64 ); -PROVIDE ( rom_mhz2ieee = 0x4000a4e8 ); -PROVIDE ( rom_noise_floor_auto_set = 0x40009ab4 ); -PROVIDE ( rom_pbus_debugmode = 0x4000ac70 ); -PROVIDE ( rom_pbus_force_mode = 0x4000aa6c ); -PROVIDE ( rom_pbus_force_test = 0x4000abd0 ); -PROVIDE ( rom_pbus_rd = 0x4000ac2c ); -PROVIDE ( rom_pbus_rd_addr = 0x4000ab34 ); -PROVIDE ( rom_pbus_rd_shift = 0x4000ab80 ); -PROVIDE ( rom_pbus_rx_dco_cal = 0x4000c49c ); -PROVIDE ( rom_pbus_set_dco = 0x4000ae2c ); -PROVIDE ( rom_pbus_set_rxgain = 0x4000ac98 ); -PROVIDE ( rom_pbus_workmode = 0x4000ac84 ); -PROVIDE ( rom_pbus_xpd_rx_off = 0x4000acfc ); -PROVIDE ( rom_pbus_xpd_rx_on = 0x4000ad30 ); -PROVIDE ( rom_pbus_xpd_tx_off = 0x4000ad84 ); -PROVIDE ( rom_pbus_xpd_tx_on = 0x4000add4 ); -PROVIDE ( rom_phy_ant_init = 0x40009f48 ); -PROVIDE ( rom_phy_byte_to_word = 0x40009d60 ); -PROVIDE ( rom_phy_chan_dump_cfg = 0x4000a180 ); -PROVIDE ( rom_phy_chan_filt_set = 0x4000a614 ); -PROVIDE ( rom_phy_close_pa = 0x4000a810 ); -PROVIDE ( rom_phy_disable_cca = 0x40009208 ); -PROVIDE ( rom_phy_disable_low_rate = 0x4000a2b8 ); -PROVIDE ( rom_phy_enable_cca = 0x40009234 ); -PROVIDE ( rom_phy_enable_low_rate = 0x4000a280 ); -PROVIDE ( rom_phy_freq_correct = 0x4000b0b4 ); -PROVIDE ( rom_phy_get_noisefloor = 0x40009b04 ); -PROVIDE ( rom_phy_get_rx_freq = 0x4000a6ac ); -PROVIDE ( rom_phy_get_tx_rate = 0x40009d50 ); -PROVIDE ( rom_phy_rx11blr_cfg = 0x40009c5c ); -PROVIDE ( rom_phy_rx_sense_set = 0x4000a704 ); -PROVIDE ( rom_phy_set_bbfreq_init = 0x4000d3d0 ); -PROVIDE ( rom_pll_correct_dcap = 0x4000bad4 ); -PROVIDE ( rom_pow_usr = 0x4000924c ); -PROVIDE ( rom_read_hw_noisefloor = 0x40009c38 ); -PROVIDE ( rom_read_sar_dout = 0x4000bfd4 ); -PROVIDE ( rom_restart_cal = 0x4000ae74 ); -PROVIDE ( rom_rfcal_pwrctrl = 0x4000d098 ); -PROVIDE ( rom_rfcal_rxiq = 0x4000ca3c ); -PROVIDE ( rom_rfcal_txcap = 0x4000ccac ); -PROVIDE ( rom_rfpll_set_freq = 0x4000afa4 ); -PROVIDE ( rom_rftx_init = 0x4000b24c ); -PROVIDE ( rom_rx_gain_force = 0x40009558 ); -PROVIDE ( rom_rxiq_cover_mg_mp = 0x4000c954 ); -PROVIDE ( rom_rxiq_get_mis = 0x4000c7d8 ); -PROVIDE ( rom_rxiq_set_reg = 0x4000c8ec ); -PROVIDE ( rom_set_cal_rxdc = 0x400092c4 ); -PROVIDE ( rom_set_cca = 0x4000a59c ); -PROVIDE ( rom_set_chan_cal_interp = 0x4000cba4 ); -PROVIDE ( rom_set_channel_freq = 0x4000b00c ); -PROVIDE ( rom_set_loopback_gain = 0x40009268 ); -PROVIDE ( rom_set_noise_floor = 0x40009bf4 ); -PROVIDE ( rom_set_pbus_mem = 0x40009380 ); -PROVIDE ( rom_set_rf_freq_offset = 0x4000b214 ); -PROVIDE ( rom_set_rxclk_en = 0x400095cc ); -PROVIDE ( rom_set_txcap_reg = 0x4000cc34 ); -PROVIDE ( rom_set_txclk_en = 0x4000959c ); -PROVIDE ( rom_set_tx_dig_gain = 0x40009514 ); -PROVIDE ( rom_set_xpd_sar = 0x40009f08 ); -PROVIDE ( rom_spur_cal = 0x4000a47c ); -PROVIDE ( rom_spur_reg_write_one_tone = 0x400097c4 ); -PROVIDE ( rom_start_tx_tone = 0x400096f0 ); -PROVIDE ( rom_start_tx_tone_step = 0x40009608 ); -PROVIDE ( rom_stop_tx_tone = 0x4000a428 ); -PROVIDE ( _rom_store = 0x4001bed0 ); -PROVIDE ( _rom_store_table = 0x4001bd64 ); -PROVIDE ( rom_target_power_add_backoff = 0x4000d278 ); -PROVIDE ( rom_txbbgain_to_index = 0x4000bce0 ); -PROVIDE ( rom_txcal_work_mode = 0x4000bf30 ); -PROVIDE ( rom_txdc_cal_init = 0x4000bd2c ); -PROVIDE ( rom_txdc_cal_v70 = 0x4000bdc0 ); -PROVIDE ( rom_txiq_cover = 0x4000c1ac ); -PROVIDE ( rom_txiq_get_mis_pwr = 0x4000c0f8 ); -PROVIDE ( rom_txiq_set_reg = 0x4000bf64 ); -PROVIDE ( rom_tx_paon_set = 0x40009db8 ); -PROVIDE ( rom_tx_pwr_backoff = 0x4000ceb8 ); -PROVIDE ( rom_txtone_linear_pwr = 0x4000c0b0 ); -PROVIDE ( rom_usb_dev = 0x3ffffb9c ); /* static "usb_dev" */ -PROVIDE ( rom_usb_dev_end = 0x3ffffc78 ); /* end of "usb_dev" */ -PROVIDE ( rom_usb_dw_ctrl = 0x3ffffa74 ); /* static "usb_dw_ctrl" */ -PROVIDE ( rom_usb_dw_ctrl_end = 0x3ffffb9c ); /* end of "usb_dw_ctrl" */ -PROVIDE ( rom_usb_curr_desc = 0x3ffffa54 ); /* static "s_curr_descr" */ -PROVIDE ( rom_wait_rfpll_cal_end = 0x4000af3c ); -PROVIDE ( rom_wifi_11g_rate_chg = 0x4000d260 ); -PROVIDE ( rom_wifi_rifs_mode_en = 0x40009d2c ); -PROVIDE ( rom_write_dac_gain2 = 0x4000a210 ); -PROVIDE ( rom_write_gain_mem = 0x400094bc ); -PROVIDE ( rom_write_pll_cap_mem = 0x4000ba58 ); -PROVIDE ( rom_write_rfpll_sdm = 0x4000aed4 ); -PROVIDE ( rom_wr_rf_freq_mem = 0x4000b2f0 ); -PROVIDE ( roundup2 = 0x4001bcd0 ); -PROVIDE ( rtc_boot_control = 0x4001002c ); -PROVIDE ( rtc_get_reset_reason = 0x4000ff58 ); -PROVIDE ( rtc_get_wakeup_cause = 0x4000ff7c ); -PROVIDE ( rtc_select_apb_bridge = 0x400100a0 ); -PROVIDE ( s_cdcacm_old_rts = 0x3ffffd34 ); -PROVIDE ( SelectSpiFunction = 0x40015d08 ); -PROVIDE ( SelectSpiQIO = 0x40015b88 ); -PROVIDE ( SendMsg = 0x40012d0c ); -PROVIDE ( send_packet = 0x40012cc8 ); -PROVIDE ( set_rtc_memory_crc = 0x40010010 ); -PROVIDE ( SetSpiDrvs = 0x40015c18 ); -PROVIDE ( __sfp_recursive_mutex = 0x3ffffd88 ); -PROVIDE ( sig_matrix = 0x3ffffd57 ); -PROVIDE ( __sinit_recursive_mutex = 0x3ffffd84 ); -PROVIDE ( software_reset = 0x40010068 ); -PROVIDE ( software_reset_cpu = 0x40010080 ); -PROVIDE ( SPI_block_erase = 0x4001623c ); -PROVIDE ( spi_cache_mode_switch = 0x40016a00 ); -PROVIDE ( SPI_chip_erase = 0x400161b8 ); -PROVIDE ( SPIClkConfig = 0x400170a0 ); -PROVIDE ( SPI_Common_Command = 0x400162e8 ); -PROVIDE ( spi_common_set_flash_cs_timing = 0x40016c0c ); -PROVIDE ( spi_dummy_len_fix = 0x40015b50 ); -PROVIDE ( SPI_Encrypt_Write = 0x400177e0 ); -PROVIDE ( SPI_Encrypt_Write_Dest = 0x400176cc ); -PROVIDE ( SPIEraseArea = 0x40017470 ); -PROVIDE ( SPIEraseBlock = 0x4001710c ); -PROVIDE ( SPIEraseChip = 0x400170ec ); -PROVIDE ( SPIEraseSector = 0x4001716c ); -PROVIDE ( esp_rom_spiflash_attach = 0x40017004 ); -PROVIDE ( spi_flash_boot_attach = 0x40016fc0 ); -PROVIDE ( spi_flash_check_suspend_cb = 0x3ffffd58 ); -PROVIDE ( SPI_flashchip_data = 0x3ffffd3c ); -PROVIDE ( spi_flash_set_check_suspend_cb = 0x40015b3c ); -PROVIDE ( SPI_init = 0x40016ce8 ); -PROVIDE ( SPILock = 0x40016ed4 ); -PROVIDE ( SPIMasterReadModeCnfig = 0x40017014 ); -PROVIDE ( SPI_page_program = 0x400165a8 ); -PROVIDE ( SPIParamCfg = 0x40017500 ); -PROVIDE ( SPIRead = 0x4001728c ); -PROVIDE ( SPI_read_data = 0x40015ed8 ); -PROVIDE ( SPIReadModeCnfig = 0x40016f1c ); -PROVIDE ( SPI_read_status = 0x40016084 ); -PROVIDE ( SPI_read_status_high = 0x40016284 ); -PROVIDE ( SPI_sector_erase = 0x400161ec ); -PROVIDE ( spi_slave_download = 0x4001998c ); -PROVIDE ( spi_slave_rom_check_conn = 0x40019724 ); -PROVIDE ( spi_slave_rom_init = 0x40019774 ); -PROVIDE ( spi_slave_rom_init_hw = 0x40019b5c ); -PROVIDE ( spi_slave_rom_intr_enable = 0x40019b3c ); -PROVIDE ( spi_slave_rom_rxdma_load = 0x40019da8 ); -PROVIDE ( spi_slave_rom_txdma_load = 0x40019e3c ); -PROVIDE ( SPIUnlock = 0x40016e88 ); -PROVIDE ( SPI_user_command_read = 0x40015fc8 ); -PROVIDE ( SPI_Wait_Idle = 0x40016680 ); -PROVIDE ( SPI_WakeUp = 0x400160f4 ); -PROVIDE ( SPIWrite = 0x400171cc ); -PROVIDE ( SPI_write_enable = 0x4001655c ); -PROVIDE ( SPI_Write_Encrypt_Disable = 0x40017694 ); -PROVIDE ( SPI_Write_Encrypt_Enable = 0x40017678 ); -PROVIDE ( SPI_write_status = 0x400162a4 ); -PROVIDE ( __stack = 0x3fffe710 ); -PROVIDE ( _stack_sentry = 0x3fffc410 ); -PROVIDE ( _start = 0x4000726c ); -PROVIDE ( _stext = 0x40007118 ); -PROVIDE ( string0_descr = 0x3ffaeeae ); -PROVIDE ( str_manu_descr = 0x3ffaee9a ); -PROVIDE ( str_prod_descr = 0x3ffaee88 ); -PROVIDE ( str_serial_descr = 0x3ffaee84 ); -PROVIDE ( rom_usb_osglue = 0x3ffffcdc ); -PROVIDE ( _SyscallException = 0x4000732a ); -PROVIDE ( syscall_table_ptr_pro = 0x3ffffd78 ); -PROVIDE ( tdefl_compress = 0x400041dc ); -PROVIDE ( tdefl_compress_buffer = 0x40004938 ); -PROVIDE ( tdefl_compress_mem_to_mem = 0x40004a50 ); -PROVIDE ( tdefl_compress_mem_to_output = 0x40004a30 ); -PROVIDE ( tdefl_get_adler32 = 0x40004a28 ); -PROVIDE ( tdefl_get_prev_return_status = 0x40004a20 ); -PROVIDE ( tdefl_init = 0x40004954 ); -PROVIDE ( tdefl_write_image_to_png_file_in_memory = 0x40004a64 ); -PROVIDE ( tdefl_write_image_to_png_file_in_memory_ex = 0x40004a58 ); -PROVIDE ( _text_end = 0x4001bed0 ); -PROVIDE ( _text_start = 0x40007118 ); -PROVIDE ( tinfl_decompress = 0x40003000 ); -PROVIDE ( tinfl_decompress_mem_to_callback = 0x400041a8 ); -PROVIDE ( tinfl_decompress_mem_to_mem = 0x40004168 ); -PROVIDE ( uart_acm_dev = 0x3ffffcf8 ); -PROVIDE ( uartAttach = 0x40012890 ); -PROVIDE ( uart_baudrate_detect = 0x400128f0 ); -PROVIDE ( uart_buff_switch = 0x40012d64 ); -PROVIDE ( UartConnCheck = 0x40011ab4 ); -PROVIDE ( UartConnectProc = 0x40011da8 ); -PROVIDE ( UartDev = 0x3ffffcfc ); -PROVIDE ( uart_div_modify = 0x40012984 ); -PROVIDE ( uart_div_reinit = 0x400129d0 ); -PROVIDE ( UartDwnLdProc = 0x400121ac ); -PROVIDE ( UartGetCmdLn = 0x40012f28 ); -PROVIDE ( Uart_Init = 0x40012a04 ); -PROVIDE ( Uart_Init_USB = 0x40012818 ); -PROVIDE ( UartRegReadProc = 0x40011df8 ); -PROVIDE ( UartRegWriteProc = 0x40011db8 ); -PROVIDE ( uart_rx_intr_handler = 0x40012690 ); -PROVIDE ( uart_rx_one_char = 0x40012bf0 ); -PROVIDE ( uart_rx_one_char_block = 0x40012b9c ); -PROVIDE ( uart_rx_readbuff = 0x40012d1c ); -PROVIDE ( UartRxString = 0x40012c84 ); -PROVIDE ( UartSecureDwnLdProc = 0x40012464 ); -PROVIDE ( UartSetBaudProc = 0x40011e54 ); -PROVIDE ( UartSpiAttachProc = 0x40011e0c ); -PROVIDE ( UartSpiReadProc = 0x40011e28 ); -PROVIDE ( uart_tx_flush = 0x40012b40 ); -PROVIDE ( uart_tx_one_char = 0x40012b10 ); -PROVIDE ( uart_tx_one_char2 = 0x40012b28 ); -PROVIDE ( uart_tx_switch = 0x400128e4 ); -PROVIDE ( uart_tx_wait_idle = 0x40012b6c ); -PROVIDE ( uart_usb_enable_reset_on_rts = 0x40012858 ); -PROVIDE ( Uart_USB_Send_Testament = 0x400127d8 ); -PROVIDE ( usb_cancel_transfer = 0x40015200 ); -PROVIDE ( usb_data_stuff = 0x3ffacc88 ); -PROVIDE ( usb_dc_attach = 0x40013ecc ); -PROVIDE ( usb_dc_check_poll_for_interrupts = 0x40014980 ); -PROVIDE ( usb_dc_detach = 0x40014010 ); -PROVIDE ( usb_dc_ep_check_cap = 0x40014094 ); -PROVIDE ( usb_dc_ep_clear_stall = 0x400142f0 ); -PROVIDE ( usb_dc_ep_configure = 0x400140d8 ); -PROVIDE ( usb_dc_ep_disable = 0x400144ec ); -PROVIDE ( usb_dc_ep_enable = 0x4001442c ); -PROVIDE ( usb_dc_ep_flush = 0x400145b8 ); -PROVIDE ( usb_dc_ep_halt = 0x4001435c ); -PROVIDE ( usb_dc_ep_is_stalled = 0x400143bc ); -PROVIDE ( usb_dc_ep_mps = 0x40014958 ); -PROVIDE ( usb_dc_ep_read = 0x400148d8 ); -PROVIDE ( usb_dc_ep_read_continue = 0x40014898 ); -PROVIDE ( usb_dc_ep_read_wait = 0x400147bc ); -PROVIDE ( usb_dc_ep_set_callback = 0x40014910 ); -PROVIDE ( usb_dc_ep_set_stall = 0x40014290 ); -PROVIDE ( usb_dc_ep_write = 0x40014684 ); -PROVIDE ( usb_dc_ep_write_would_block = 0x40014624 ); -PROVIDE ( usb_dc_prepare_persist = 0x40013bec ); -PROVIDE ( usb_dc_reset = 0x40014044 ); -PROVIDE ( usb_dc_set_address = 0x4001405c ); -PROVIDE ( usb_dc_set_status_callback = 0x4001494c ); -PROVIDE ( usb_deconfig = 0x40014fa8 ); -PROVIDE ( usb_dev_get_configuration = 0x40014f4c ); -PROVIDE ( usb_dev_resume = 0x40014f38 ); -PROVIDE ( usb_dfu_force_detach = 0x400155b0 ); -PROVIDE ( usb_dfu_init = 0x40015598 ); -PROVIDE ( usb_dfu_set_detach_cb = 0x400152dc ); -PROVIDE ( usb_disable = 0x40015058 ); -PROVIDE ( usb_dw_isr_handler = 0x40013c48 ); -PROVIDE ( usb_enable = 0x40014fc8 ); -PROVIDE ( usb_ep_clear_stall = 0x400150c8 ); -PROVIDE ( usb_ep_read_continue = 0x400150f0 ); -PROVIDE ( usb_ep_read_wait = 0x400150d8 ); -PROVIDE ( usb_ep_set_stall = 0x400150b8 ); -PROVIDE ( usb_get_descriptor = 0x400149c0 ); -PROVIDE ( usb_read = 0x400150a0 ); -PROVIDE ( usb_set_config = 0x40014f64 ); -PROVIDE ( usb_set_current_descriptor = 0x400149a8 ); -PROVIDE ( usb_transfer = 0x40015150 ); -PROVIDE ( usb_transfer_ep_callback = 0x40015100 ); -PROVIDE ( usb_transfer_sync = 0x40015250 ); -PROVIDE ( usb_write = 0x40015088 ); -PROVIDE ( usb_write_would_block = 0x40015078 ); -PROVIDE ( user_code_start = 0x3fffe714 ); -PROVIDE ( _UserExceptionVector = 0x40000340 ); -PROVIDE ( _UserExceptionVector_text_end = 0x40000357 ); -PROVIDE ( _UserExceptionVector_text_start = 0x40000340 ); -PROVIDE ( VerifyFlashMd5Proc = 0x40012004 ); -PROVIDE ( Wait_SPI_Idle = 0x40016188 ); -PROVIDE ( _WindowOverflow12 = 0x40000100 ); -PROVIDE ( _WindowOverflow4 = 0x40000000 ); -PROVIDE ( _WindowOverflow8 = 0x40000080 ); -PROVIDE ( _WindowUnderflow12 = 0x40000140 ); -PROVIDE ( _WindowUnderflow4 = 0x40000040 ); -PROVIDE ( _WindowUnderflow8 = 0x400000c0 ); -PROVIDE ( _WindowVectors_text_end = 0x40000170 ); -PROVIDE ( _WindowVectors_text_start = 0x40000000 ); -PROVIDE ( __XT_EXCEPTION_DESCS__ = 0x3ffaff2c ); -PROVIDE ( __XT_EXCEPTION_DESCS_END__ = 0x3ffaff2c ); -PROVIDE ( __XT_EXCEPTION_TABLE__ = 0x3ffafe3a ); -PROVIDE ( xthal_bcopy = 0x4001a918 ); -PROVIDE ( xthal_copy123 = 0x4001a9ac ); -PROVIDE ( xthal_get_ccompare = 0x4001aabc ); -PROVIDE ( xthal_get_ccount = 0x4001aa90 ); -PROVIDE ( xthal_get_interrupt = 0x4001aadc ); -PROVIDE ( Xthal_intlevel = 0x3ffaf06c ); -PROVIDE ( xthal_memcpy = 0x4001a93c ); -PROVIDE ( xthal_set_ccompare = 0x4001aa98 ); -PROVIDE ( xthal_set_intclear = 0x4001aae4 ); -PROVIDE ( xthals_hw_configid0 = 0xc2ecfafe ); -PROVIDE ( xthals_hw_configid1 = 0x224787b1 ); -PROVIDE ( xthals_release_major = 0x00002ee0 ); -PROVIDE ( xthals_release_minor = 0x00000009 ); -PROVIDE ( _xtos_alloca_handler = 0x40000010 ); -PROVIDE ( xtos_cause3_handler = 0x40007370 ); -PROVIDE ( xtos_c_handler_table = 0x3fffec78 ); -PROVIDE ( xtos_c_wrapper_handler = 0x40007380 ); -PROVIDE ( _xtos_enabled = 0x3fffed80 ); -PROVIDE ( xtos_exc_handler_table = 0x3fffeb78 ); -PROVIDE ( xtos_interrupt_mask_table = 0x3fffee88 ); -PROVIDE ( xtos_interrupt_table = 0x3fffed88 ); -PROVIDE ( _xtos_ints_off = 0x4001a3e0 ); -PROVIDE ( _xtos_ints_on = 0x4001a3bc ); -PROVIDE ( _xtos_intstruct = 0x3fffed80 ); -PROVIDE ( _xtos_l1int_handler = 0x400073ec ); -PROVIDE ( xtos_p_none = 0x4001a8a0 ); -PROVIDE ( _xtos_restore_intlevel = 0x400074cc ); -PROVIDE ( _xtos_return_from_exc = 0x4001a8a8 ); -PROVIDE ( _xtos_set_exception_handler = 0x400072b4 ); -PROVIDE ( _xtos_set_interrupt_handler = 0x4001a380 ); -PROVIDE ( _xtos_set_interrupt_handler_arg = 0x4001a344 ); -PROVIDE ( _xtos_set_intlevel = 0x4001a8c0 ); -PROVIDE ( _xtos_set_min_intlevel = 0x4001a8dc ); -PROVIDE ( _xtos_set_vpri = 0x400074d8 ); -PROVIDE ( _xtos_syscall_handler = 0x400072fc ); -PROVIDE ( xtos_unhandled_exception = 0x4001a900 ); -PROVIDE ( xtos_unhandled_interrupt = 0x4001a910 ); -PROVIDE ( _xtos_vectors_ref_ = 0x00000000 ); -PROVIDE ( _xtos_vpri_enabled = 0x3fffed84 ); -PROVIDE ( memchr = 0x4001ab24 ); -PROVIDE ( memcmp = 0x4001ab40 ); -PROVIDE ( memcpy = 0x4001aba8 ); -PROVIDE ( memmove = 0x4001acb0 ); -PROVIDE ( memrchr = 0x4001acec ); -PROVIDE ( memset = 0x4001ad3c ); -PROVIDE ( strchr = 0x4001adb0 ); -PROVIDE ( strcmp = 0x40007be4 ); -PROVIDE ( strcpy = 0x40007cfc ); -PROVIDE ( strlcpy = 0x4001adf8 ); -PROVIDE ( strncpy = 0x40007f20 ); -PROVIDE ( strlen = 0x40007e08 ); -PROVIDE ( strnlen = 0x4001ae9c ); - -/* Rename the SPI Flash data and functions. */ - -PROVIDE ( g_rom_spiflash_dummy_len_plus = dummy_len_plus); -PROVIDE ( g_spiflash_chip = SPI_flashchip_data ); -PROVIDE ( spi_flash_config_param = SPIParamCfg ); -PROVIDE ( spi_flash_read = SPIRead ); -PROVIDE ( spi_flash_read_status = SPI_read_status ); -PROVIDE ( spi_flash_read_statushigh = SPI_read_status_high ); -PROVIDE ( spi_flash_read_user_cmd = SPI_user_command_read ); -PROVIDE ( spi_flash_write = SPIWrite ); -PROVIDE ( spi_flash_write_encrypted_disable = SPI_Write_Encrypt_Disable ); -PROVIDE ( spi_flash_write_encrypted_enable = SPI_Write_Encrypt_Enable ); -PROVIDE ( spi_flash_config_clk = SPIClkConfig ); -PROVIDE ( spi_flash_select_qio_pins = SelectSpiQIO ); -PROVIDE ( spi_flash_unlock = SPIUnlock ); -PROVIDE ( spi_flash_erase_sector = SPIEraseSector ); -PROVIDE ( spi_flash_erase_block = SPIEraseBlock ); -PROVIDE ( spi_flash_wait_idle = SPI_Wait_Idle ); -PROVIDE ( spi_flash_config_readmode = SPIReadModeCnfig ); -PROVIDE ( spi_flash_erase_block = SPIEraseBlock ); -PROVIDE ( spi_flash_write_encrypted = SPI_Encrypt_Write ); - -/* Unlike other ROM functions which are exported using PROVIDE, which declares weak symbols, - * these libgcc functions are exported using assignment, which declare strong symbols. - * This is done so that ROM functions are always used instead of the ones provided by libgcc.a. - */ - -__absvdi2 = 0x40005ad8; -__absvsi2 = 0x40005ac4; -__adddf3 = 0x40008660; -__addsf3 = 0x400081b8; -__addvdi3 = 0x40008d90; -__addvsi3 = 0x40008d6c; -__ashldi3 = 0x4001b000; -__ashrdi3 = 0x4001b018; -__bswapdi2 = 0x40006d34; -__bswapsi2 = 0x40006d0c; -__clear_cache = 0x40005abc; -__clrsbdi2 = 0x40006da8; -__clrsbsi2 = 0x40006d90; -__clzdi2 = 0x4001b238; -__clzsi2 = 0x4001afd0; -__cmpdi2 = 0x40005a7c; -__ctzdi2 = 0x4001b24c; -__ctzsi2 = 0x4001afd8; -__divdc3 = 0x40006854; -__divdf3 = 0x40008a24; -__divdi3 = 0x4001b26c; -__divsc3 = 0x40006544; -__divsf3 = 0x4000841c; -__divsi3 = 0x4001afa0; -__eqdf2 = 0x40005904; -__eqsf2 = 0x400055d0; -__extendsfdf2 = 0x40008d08; -__ffsdi2 = 0x4001b214; -__ffssi2 = 0x4001afec; -__fixdfdi = 0x40008b98; -__fixdfsi = 0x40008b4c; -__fixsfdi = 0x4000851c; -__fixsfsi = 0x400084dc; -__fixunsdfsi = 0x40008c04; -__fixunssfdi = 0x400085d4; -__fixunssfsi = 0x4000857c; -__floatdidf = 0x4001b170; -__floatdisf = 0x4001b0a8; -__floatsidf = 0x4001b12c; -__floatsisf = 0x4001b058; -__floatundidf = 0x4001b160; -__floatundisf = 0x4001b098; -__floatunsidf = 0x4001b120; -__floatunsisf = 0x4001b04c; -__gcc_bcmp = 0x40006de0; -__gedf2 = 0x400059c4; -__gesf2 = 0x40005668; -__gtdf2 = 0x40005938; -__gtsf2 = 0x400055fc; -__ledf2 = 0x40005960; -__lesf2 = 0x4000561c; -__lshrdi3 = 0x4001b034; -__ltdf2 = 0x400059ec; -__ltsf2 = 0x40005688; -__moddi3 = 0x4001b534; -__modsi3 = 0x4001afa8; -__muldc3 = 0x40005f0c; -__muldf3 = 0x400057e8; -__muldi3 = 0x4001b1e4; -__mulsc3 = 0x40005ba4; -__mulsf3 = 0x40005524; -__mulsi3 = 0x4001af98; -__mulvdi3 = 0x40008e50; -__mulvsi3 = 0x40008e38; -__nedf2 = 0x40005904; -__negdf2 = 0x400056fc; -__negdi2 = 0x4001b1fc; -__negsf2 = 0x40008190; -__negvdi2 = 0x40008f6c; -__negvsi2 = 0x40008f4c; -__nesf2 = 0x400055d0; -__nsau_data = 0x3ffac870; -__paritysi2 = 0x40009038; -__popcountdi2 = 0x40008fe0; -__popcountsi2 = 0x40008fa8; -__popcount_tab = 0x3ffac870; -__powidf2 = 0x40005b40; -__powisf2 = 0x40005af8; -__subdf3 = 0x400087b4; -__subsf3 = 0x400082a0; -__subvdi3 = 0x40008df4; -__subvsi3 = 0x40008dd0; -__truncdfsf2 = 0x40008c64; -__ucmpdi2 = 0x40005a9c; -__udivdi3 = 0x4001b7dc; -__udivmoddi4 = 0x40006e20; -__udivsi3 = 0x4001afb0; -__udiv_w_sdiv = 0x40006e18; -__umoddi3 = 0x4001ba60; -__umodsi3 = 0x4001afb8; -__umulsidi3 = 0x4001afc0; -__unorddf2 = 0x40005a50; -__unordsf2 = 0x400056d4; diff --git a/boards/xtensa/esp32s2/esp32s2-kaluga-1/scripts/Make.defs b/boards/xtensa/esp32s2/esp32s2-kaluga-1/scripts/Make.defs index f230acf98e..abc9f12ed6 100644 --- a/boards/xtensa/esp32s2/esp32s2-kaluga-1/scripts/Make.defs +++ b/boards/xtensa/esp32s2/esp32s2-kaluga-1/scripts/Make.defs @@ -23,7 +23,7 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32s2/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_rom.ld +ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_aliases.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_peripherals.ld # Pick the linker scripts from the board level if they exist, if not diff --git a/boards/xtensa/esp32s2/esp32s2-saola-1/scripts/Make.defs b/boards/xtensa/esp32s2/esp32s2-saola-1/scripts/Make.defs index 567e3f81b7..20cf2e22a3 100644 --- a/boards/xtensa/esp32s2/esp32s2-saola-1/scripts/Make.defs +++ b/boards/xtensa/esp32s2/esp32s2-saola-1/scripts/Make.defs @@ -23,7 +23,7 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32s2/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_rom.ld +ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_aliases.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_peripherals.ld # Pick the linker scripts from the board level if they exist, if not diff --git a/boards/xtensa/esp32s2/franzininho-wifi/scripts/Make.defs b/boards/xtensa/esp32s2/franzininho-wifi/scripts/Make.defs index ac1095f0c1..bc8c2e1487 100644 --- a/boards/xtensa/esp32s2/franzininho-wifi/scripts/Make.defs +++ b/boards/xtensa/esp32s2/franzininho-wifi/scripts/Make.defs @@ -23,7 +23,7 @@ include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/esp32s2/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_rom.ld +ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_aliases.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s2_peripherals.ld # Pick the linker scripts from the board level if they exist, if not diff --git a/boards/xtensa/esp32s3/common/scripts/esp32s3_rom.ld b/boards/xtensa/esp32s3/common/scripts/esp32s3_rom.ld deleted file mode 100644 index 263b9c8874..0000000000 --- a/boards/xtensa/esp32s3/common/scripts/esp32s3_rom.ld +++ /dev/null @@ -1,2570 +0,0 @@ -/**************************************************************************** - * boards/xtensa/esp32s3/common/scripts/esp32s3_rom.ld - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. The - * ASF licenses this file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - ****************************************************************************/ - -/* ROM version variables for ESP32-S3. - * - * These addresses should be compatible with any ROM version for this chip. - * - * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. - */ -_rom_chip_id = 0x40000570; -_rom_eco_version = 0x40000574; - -/* 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 common - ***************************************/ - -/* Functions */ -rtc_get_reset_reason = 0x4000057c; -analog_super_wdt_reset_happened = 0x40000588; -jtag_cpu_reset_happened = 0x40000594; -rtc_get_wakeup_cause = 0x400005a0; -rtc_select_apb_bridge = 0x400005ac; -rtc_unhold_all_pads = 0x400005b8; -ets_is_print_boot = 0x400005c4; -ets_printf = 0x400005d0; -ets_install_putc1 = 0x400005dc; -ets_install_uart_printf = 0x400005e8; -ets_install_putc2 = 0x400005f4; -PROVIDE( ets_delay_us = 0x40000600 ); -ets_get_stack_info = 0x4000060c; -ets_install_lock = 0x40000618; -ets_backup_dma_copy = 0x40000624; -ets_apb_backup_init_lock_func = 0x40000630; -UartRxString = 0x4000063c; -uart_tx_one_char = 0x40000648; -uart_tx_one_char2 = 0x40000654; -uart_rx_one_char = 0x40000660; -uart_rx_one_char_block = 0x4000066c; -uart_rx_readbuff = 0x40000678; -uartAttach = 0x40000684; -uart_tx_flush = 0x40000690; -uart_tx_wait_idle = 0x4000069c; -uart_div_modify = 0x400006a8; -ets_write_char_uart = 0x400006b4; -uart_tx_switch = 0x400006c0; -multofup = 0x400006cc; -software_reset = 0x400006d8; -software_reset_cpu = 0x400006e4; -assist_debug_clock_enable = 0x400006f0; -assist_debug_record_enable = 0x400006fc; -clear_super_wdt_reset_flag = 0x40000708; -disable_default_watchdog = 0x40000714; -ets_set_appcpu_boot_addr = 0x40000720; -esp_rom_set_rtc_wake_addr = 0x4000072c; -esp_rom_get_rtc_wake_addr = 0x40000738; -send_packet = 0x40000744; -recv_packet = 0x40000750; -GetUartDevice = 0x4000075c; -UartDwnLdProc = 0x40000768; -Uart_Init = 0x40000774; -ets_set_user_start = 0x40000780; -/* Data (.data, .bss, .rodata) */ -ets_rom_layout_p = 0x3ff1fffc; -ets_ops_table_ptr = 0x3fcefffc; - -/*************************************** - Group miniz - ***************************************/ - -/* Functions */ -mz_adler32 = 0x4000078c; -mz_crc32 = 0x40000798; -mz_free = 0x400007a4; -tdefl_compress = 0x400007b0; -tdefl_compress_buffer = 0x400007bc; -tdefl_compress_mem_to_heap = 0x400007c8; -tdefl_compress_mem_to_mem = 0x400007d4; -tdefl_compress_mem_to_output = 0x400007e0; -tdefl_get_adler32 = 0x400007ec; -tdefl_get_prev_return_status = 0x400007f8; -tdefl_init = 0x40000804; -tdefl_write_image_to_png_file_in_memory = 0x40000810; -tdefl_write_image_to_png_file_in_memory_ex = 0x4000081c; -tinfl_decompress = 0x40000828; -tinfl_decompress_mem_to_callback = 0x40000834; -tinfl_decompress_mem_to_heap = 0x40000840; -tinfl_decompress_mem_to_mem = 0x4000084c; - -/*************************************** - Group tjpgd - ***************************************/ - -/* Functions */ -PROVIDE( jd_prepare = 0x40000858 ); -PROVIDE (jd_decomp = 0x40000864 ); - -/*************************************** - Group esp-dsp - ***************************************/ - -/* Data (.data, .bss, .rodata) */ -dsps_fft2r_w_table_fc32_1024 = 0x3fcefff8; - -/*************************************** - Group opi_flash - ***************************************/ - -/* Functions */ -PROVIDE( opi_flash_set_lock_func = 0x40000870 ); -PROVIDE( esp_rom_spi_cmd_config = 0x4000087c ); -PROVIDE( esp_rom_spi_cmd_start = 0x40000888 ); -PROVIDE( esp_rom_opiflash_pin_config = 0x40000894 ); -PROVIDE( esp_rom_spi_set_op_mode = 0x400008a0 ); -PROVIDE( esp_rom_opiflash_mode_reset = 0x400008ac ); -PROVIDE( esp_rom_opiflash_exec_cmd = 0x400008b8 ); -PROVIDE( esp_rom_opiflash_soft_reset = 0x400008c4 ); -PROVIDE( esp_rom_opiflash_read_id = 0x400008d0 ); -PROVIDE( esp_rom_opiflash_rdsr = 0x400008dc ); -PROVIDE( esp_rom_opiflash_wait_idle = 0x400008e8 ); -PROVIDE( esp_rom_opiflash_wren = 0x400008f4 ); -PROVIDE( esp_rom_opiflash_erase_sector = 0x40000900 ); -PROVIDE( esp_rom_opiflash_erase_block_64k = 0x4000090c ); -PROVIDE( esp_rom_opiflash_erase_area = 0x40000918 ); -PROVIDE( esp_rom_opiflash_read = 0x40000924 ); -PROVIDE( esp_rom_opiflash_write = 0x40000930 ); -PROVIDE( esp_rom_spi_set_dtr_swap_mode = 0x4000093c ); -PROVIDE( esp_rom_opiflash_exit_continuous_read_mode = 0x40000948 ); -PROVIDE( esp_rom_opiflash_legacy_driver_init = 0x40000954 ); -PROVIDE( esp_rom_opiflash_read_raw = 0x4004d9d4); -/* Data (.data, .bss, .rodata) */ -PROVIDE( rom_opiflash_cmd_def = 0x3fcefff4 ); -PROVIDE( rom_spi_usr_cmd_legacy_funcs = 0x3fcefff0 ); - -/*************************************** - Group spiflash_legacy - ***************************************/ - -/* Functions */ -PROVIDE( esp_rom_spiflash_wait_idle = 0x40000960 ); -PROVIDE( esp_rom_spiflash_write_encrypted = 0x4000096c ); -PROVIDE( esp_rom_spiflash_write_encrypted_dest = 0x40000978 ); -PROVIDE( esp_rom_spiflash_write_encrypted_enable = 0x40000984 ); -PROVIDE( esp_rom_spiflash_write_encrypted_disable = 0x40000990 ); -PROVIDE( esp_rom_spiflash_erase_chip = 0x4000099c ); -PROVIDE( _esp_rom_spiflash_erase_sector = 0x400009a8 ); -PROVIDE( _esp_rom_spiflash_erase_block = 0x400009b4 ); -PROVIDE( _esp_rom_spiflash_write = 0x400009c0 ); -PROVIDE( _esp_rom_spiflash_read = 0x400009cc ); -PROVIDE( _esp_rom_spiflash_unlock = 0x400009d8 ); -PROVIDE( _SPIEraseArea = 0x400009e4 ); -PROVIDE( _SPI_write_enable = 0x400009f0 ); -PROVIDE( esp_rom_spiflash_erase_sector = 0x400009fc ); -PROVIDE( esp_rom_spiflash_erase_block = 0x40000a08 ); -PROVIDE( esp_rom_spiflash_write = 0x40000a14 ); -PROVIDE( esp_rom_spiflash_read = 0x40000a20 ); -PROVIDE( esp_rom_spiflash_unlock = 0x40000a2c ); -PROVIDE( SPIEraseArea = 0x40000a38 ); -PROVIDE( SPI_write_enable = 0x40000a44 ); -PROVIDE( esp_rom_spiflash_config_param = 0x40000a50 ); -PROVIDE( esp_rom_spiflash_read_user_cmd = 0x40000a5c ); -PROVIDE( esp_rom_spiflash_select_qio_pins = 0x40000a68 ); -PROVIDE( esp_rom_spi_flash_auto_sus_res = 0x40000a74 ); -PROVIDE( esp_rom_spi_flash_send_resume = 0x40000a80 ); -PROVIDE( esp_rom_spi_flash_update_id = 0x40000a8c ); -PROVIDE( esp_rom_spiflash_config_clk = 0x40000a98 ); -PROVIDE( esp_rom_spiflash_config_readmode = 0x40000aa4 ); -PROVIDE( esp_rom_spiflash_read_status = 0x40000ab0 ); -PROVIDE( esp_rom_spiflash_read_statushigh = 0x40000abc ); -PROVIDE( esp_rom_spiflash_write_status = 0x40000ac8 ); -PROVIDE( esp_rom_opiflash_cache_mode_config = 0x40000ad4 ); -PROVIDE( esp_rom_spiflash_auto_wait_idle = 0x40000ae0 ); -PROVIDE( spi_flash_attach = 0x40000aec ); -PROVIDE( spi_flash_get_chip_size = 0x40000af8 ); -PROVIDE( spi_flash_guard_set = 0x40000b04 ); -PROVIDE( spi_flash_guard_get = 0x40000b10 ); -PROVIDE( spi_flash_write_config_set = 0x40000b1c ); -PROVIDE( spi_flash_write_config_get = 0x40000b28 ); -PROVIDE( spi_flash_safe_write_address_func_set = 0x40000b34 ); -PROVIDE( spi_flash_unlock = 0x40000b40 ); -PROVIDE( spi_flash_erase_range = 0x40000b4c ); -PROVIDE( spi_flash_erase_sector = 0x40000b58 ); -PROVIDE( spi_flash_write = 0x40000b64 ); -PROVIDE( spi_flash_read = 0x40000b70 ); -PROVIDE( spi_flash_write_encrypted = 0x40000b7c ); -PROVIDE( spi_flash_read_encrypted = 0x40000b88 ); -PROVIDE( spi_flash_mmap_os_func_set = 0x40000b94 ); -PROVIDE( spi_flash_mmap_page_num_init = 0x40000ba0 ); -PROVIDE( spi_flash_mmap = 0x40000bac ); -PROVIDE( spi_flash_mmap_pages = 0x40000bb8 ); -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_disable_cache = 0x40000c0c ); -PROVIDE( spi_flash_restore_cache = 0x40000c18 ); -PROVIDE( spi_flash_cache_enabled = 0x40000c24 ); -PROVIDE( spi_flash_enable_cache = 0x40000c30 ); -PROVIDE( spi_cache_mode_switch = 0x40000c3c ); -PROVIDE( spi_common_set_dummy_output = 0x40000c48 ); -PROVIDE( spi_common_set_flash_cs_timing = 0x40000c54 ); -PROVIDE( esp_rom_spi_set_address_bit_len = 0x40000c60 ); -PROVIDE( esp_enable_cache_flash_wrap = 0x40000c6c ); -PROVIDE( SPILock = 0x40000c78 ); -PROVIDE( SPIMasterReadModeCnfig = 0x40000c84 ); -PROVIDE( SPI_Common_Command = 0x40000c90 ); -PROVIDE( SPI_WakeUp = 0x40000c9c ); -PROVIDE( SPI_block_erase = 0x40000ca8 ); -PROVIDE( SPI_chip_erase = 0x40000cb4 ); -PROVIDE( SPI_init = 0x40000cc0 ); -PROVIDE( SPI_page_program = 0x40000ccc ); -PROVIDE( SPI_read_data = 0x40000cd8 ); -PROVIDE( SPI_sector_erase = 0x40000ce4 ); -PROVIDE( SelectSpiFunction = 0x40000cf0 ); -PROVIDE( SetSpiDrvs = 0x40000cfc ); -PROVIDE( Wait_SPI_Idle = 0x40000d08 ); -PROVIDE( spi_dummy_len_fix = 0x40000d14 ); -PROVIDE( Disable_QMode = 0x40000d20 ); -PROVIDE( Enable_QMode = 0x40000d2c ); -/* Data (.data, .bss, .rodata) */ -PROVIDE( rom_spiflash_legacy_funcs = 0x3fceffe8 ); -PROVIDE( rom_spiflash_legacy_data = 0x3fceffe4 ); -PROVIDE( g_flash_guard_ops = 0x3fceffec ); - -/*************************************** - Group hal_soc - ***************************************/ - -/* Functions */ -PROVIDE( spi_flash_hal_poll_cmd_done = 0x40000d38 ); -PROVIDE( spi_flash_hal_device_config = 0x40000d44 ); -PROVIDE( spi_flash_hal_configure_host_io_mode = 0x40000d50 ); -PROVIDE( spi_flash_hal_common_command = 0x40000d5c ); -PROVIDE( spi_flash_hal_read = 0x40000d68 ); -PROVIDE( spi_flash_hal_erase_chip = 0x40000d74 ); -PROVIDE( spi_flash_hal_erase_sector = 0x40000d80 ); -PROVIDE( spi_flash_hal_erase_block = 0x40000d8c ); -PROVIDE( spi_flash_hal_program_page = 0x40000d98 ); -PROVIDE( spi_flash_hal_set_write_protect = 0x40000da4 ); -PROVIDE( spi_flash_hal_host_idle = 0x40000db0 ); -PROVIDE( wdt_hal_init = 0x40000dbc ); -PROVIDE( wdt_hal_deinit = 0x40000dc8 ); -PROVIDE( wdt_hal_config_stage = 0x40000dd4 ); -PROVIDE( wdt_hal_write_protect_disable = 0x40000de0 ); -PROVIDE( wdt_hal_write_protect_enable = 0x40000dec ); -PROVIDE( wdt_hal_enable = 0x40000df8 ); -PROVIDE( wdt_hal_disable = 0x40000e04 ); -PROVIDE( wdt_hal_handle_intr = 0x40000e10 ); -PROVIDE( wdt_hal_feed = 0x40000e1c ); -PROVIDE( wdt_hal_set_flashboot_en = 0x40000e28 ); -PROVIDE( wdt_hal_is_enabled = 0x40000e34 ); -PROVIDE( systimer_hal_get_counter_value = 0x40000e40 ); -PROVIDE( systimer_hal_get_time = 0x40000e4c ); -PROVIDE( systimer_hal_set_alarm_target = 0x40000e58 ); -PROVIDE( systimer_hal_set_alarm_period = 0x40000e64 ); -PROVIDE( systimer_hal_get_alarm_value = 0x40000e70 ); -PROVIDE( systimer_hal_enable_alarm_int = 0x40000e7c ); -PROVIDE( systimer_hal_on_apb_freq_update = 0x40000e88 ); -PROVIDE( systimer_hal_counter_value_advance = 0x40000e94 ); -PROVIDE( systimer_hal_enable_counter = 0x40000ea0 ); -PROVIDE( systimer_hal_init = 0x40000eac ); -PROVIDE( systimer_hal_select_alarm_mode = 0x40000eb8 ); -PROVIDE( systimer_hal_connect_alarm_counter = 0x40000ec4 ); - -/*************************************** - Group spi_flash_chips - ***************************************/ - -/* Functions */ -PROVIDE( spi_flash_chip_generic_probe = 0x40000ed0 ); -PROVIDE( spi_flash_chip_generic_detect_size = 0x40000edc ); -PROVIDE( spi_flash_chip_generic_write = 0x40000ee8 ); -PROVIDE( spi_flash_chip_generic_write_encrypted = 0x40000ef4 ); -PROVIDE( spi_flash_chip_generic_set_write_protect = 0x40000f00 ); -PROVIDE( spi_flash_common_write_status_16b_wrsr = 0x40000f0c ); -PROVIDE( spi_flash_chip_generic_reset = 0x40000f18 ); -PROVIDE( spi_flash_chip_generic_erase_chip = 0x40000f24 ); -PROVIDE( spi_flash_chip_generic_erase_sector = 0x40000f30 ); -PROVIDE( spi_flash_chip_generic_erase_block = 0x40000f3c ); -PROVIDE( spi_flash_chip_generic_page_program = 0x40000f48 ); -PROVIDE( spi_flash_chip_generic_get_write_protect = 0x40000f54 ); -PROVIDE( spi_flash_common_read_status_16b_rdsr_rdsr2 = 0x40000f60 ); -PROVIDE( spi_flash_chip_generic_read_reg = 0x40000f6c ); -PROVIDE( spi_flash_chip_generic_yield = 0x40000f78 ); -PROVIDE( spi_flash_generic_wait_host_idle = 0x40000f84 ); -PROVIDE( spi_flash_chip_generic_wait_idle = 0x40000f90 ); -PROVIDE( spi_flash_chip_generic_config_host_io_mode = 0x40000f9c ); -PROVIDE( spi_flash_chip_generic_read = 0x40000fa8 ); -PROVIDE( spi_flash_common_read_status_8b_rdsr2 = 0x40000fb4 ); -PROVIDE( spi_flash_chip_generic_get_io_mode = 0x40000fc0 ); -PROVIDE( spi_flash_common_read_status_8b_rdsr = 0x40000fcc ); -PROVIDE( spi_flash_common_write_status_8b_wrsr = 0x40000fd8 ); -PROVIDE( spi_flash_common_write_status_8b_wrsr2 = 0x40000fe4 ); -PROVIDE( spi_flash_common_set_io_mode = 0x40000ff0 ); -PROVIDE( spi_flash_chip_generic_set_io_mode = 0x40000ffc ); -PROVIDE( spi_flash_chip_gd_get_io_mode = 0x40001008 ); -PROVIDE( spi_flash_chip_gd_probe = 0x40001014 ); -PROVIDE( spi_flash_chip_gd_set_io_mode = 0x40001020 ); -/* Data (.data, .bss, .rodata) */ -PROVIDE( spi_flash_chip_generic_config_data = 0x3fceffe0 ); - -/*************************************** - Group memspi_host - ***************************************/ - -/* Functions */ -PROVIDE( memspi_host_read_id_hs = 0x4000102c ); -PROVIDE( memspi_host_read_status_hs = 0x40001038 ); -PROVIDE( memspi_host_flush_cache = 0x40001044 ); -PROVIDE( memspi_host_erase_chip = 0x40001050 ); -PROVIDE( memspi_host_erase_sector = 0x4000105c ); -PROVIDE( memspi_host_erase_block = 0x40001068 ); -PROVIDE( memspi_host_program_page = 0x40001074 ); -PROVIDE( memspi_host_read = 0x40001080 ); -PROVIDE( memspi_host_set_write_protect = 0x4000108c ); -PROVIDE( memspi_host_set_max_read_len = 0x40001098 ); -PROVIDE( memspi_host_read_data_slicer = 0x400010a4 ); -PROVIDE( memspi_host_write_data_slicer = 0x400010b0 ); - -/*************************************** - Group esp_flash - ***************************************/ - -/* Functions */ -PROVIDE( esp_flash_chip_driver_initialized = 0x400010bc ); -PROVIDE( esp_flash_read_id = 0x400010c8 ); -PROVIDE( esp_flash_get_size = 0x400010d4 ); -PROVIDE( esp_flash_erase_chip = 0x400010e0 ); -PROVIDE( rom_esp_flash_erase_region = 0x400010ec ); -PROVIDE( esp_flash_get_chip_write_protect = 0x400010f8 ); -PROVIDE( esp_flash_set_chip_write_protect = 0x40001104 ); -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( esp_flash_read_encrypted = 0x40001158 ); -PROVIDE( esp_flash_get_io_mode = 0x40001164 ); -PROVIDE( esp_flash_set_io_mode = 0x40001170 ); -PROVIDE( spi_flash_boot_attach = 0x4000117c ); -PROVIDE( spi_flash_dump_counters = 0x40001188 ); -PROVIDE( spi_flash_get_counters = 0x40001194 ); -PROVIDE( spi_flash_op_counters_config = 0x400011a0 ); -PROVIDE( spi_flash_reset_counters = 0x400011ac ); -PROVIDE( esp_flash_read_chip_id = 0x400011b8 ); -PROVIDE( detect_spi_flash_chip = 0x400011c4 ); -PROVIDE( esp_rom_spiflash_write_disable = 0x400011d0 ); -/* Data (.data, .bss, .rodata) */ -PROVIDE( esp_flash_default_chip = 0x3fceffdc ); -PROVIDE( esp_flash_api_funcs = 0x3fceffd8 ); - -/*************************************** - Group cache - ***************************************/ - -/* Functions */ -PROVIDE( Cache_Get_ICache_Line_Size = 0x400015fc ); -PROVIDE( Cache_Get_DCache_Line_Size = 0x40001608 ); -PROVIDE( Cache_Get_Mode = 0x40001614 ); -PROVIDE( Cache_Set_ICache_Mode = 0x40001620 ); -PROVIDE( Cache_Set_DCache_Mode = 0x4000162c ); -PROVIDE( Cache_Address_Through_ICache = 0x40001638 ); -PROVIDE( Cache_Address_Through_DCache = 0x40001644 ); -PROVIDE( Cache_Set_Default_Mode = 0x40001650 ); -PROVIDE( Cache_Enable_Defalut_ICache_Mode = 0x4000165c ); -PROVIDE( ROM_Boot_Cache_Init = 0x40001668 ); -PROVIDE( Cache_Invalidate_ICache_Items = 0x40001674 ); -PROVIDE( Cache_Invalidate_DCache_Items = 0x40001680 ); -PROVIDE( Cache_Clean_Items = 0x4000168c ); -PROVIDE( Cache_WriteBack_Items = 0x40001698 ); -PROVIDE( Cache_Op_Addr = 0x400016a4 ); -PROVIDE( Cache_Invalidate_Addr = 0x400016b0 ); -PROVIDE( Cache_Clean_Addr = 0x400016bc ); -PROVIDE( Cache_WriteBack_Addr = 0x400016c8 ); -PROVIDE( Cache_Invalidate_ICache_All = 0x400016d4 ); -PROVIDE( Cache_Invalidate_DCache_All = 0x400016e0 ); -PROVIDE( Cache_Clean_All = 0x400016ec ); -PROVIDE( Cache_WriteBack_All = 0x400016f8 ); -PROVIDE( Cache_Mask_All = 0x40001704 ); -PROVIDE( Cache_UnMask_Dram0 = 0x40001710 ); -PROVIDE( Cache_Suspend_ICache_Autoload = 0x4000171c ); -PROVIDE( Cache_Resume_ICache_Autoload = 0x40001728 ); -PROVIDE( Cache_Suspend_DCache_Autoload = 0x40001734 ); -PROVIDE( Cache_Resume_DCache_Autoload = 0x40001740 ); -PROVIDE( Cache_Start_ICache_Preload = 0x4000174c ); -PROVIDE( Cache_ICache_Preload_Done = 0x40001758 ); -PROVIDE( Cache_End_ICache_Preload = 0x40001764 ); -PROVIDE( Cache_Start_DCache_Preload = 0x40001770 ); -PROVIDE( Cache_DCache_Preload_Done = 0x4000177c ); -PROVIDE( Cache_End_DCache_Preload = 0x40001788 ); -PROVIDE( Cache_Config_ICache_Autoload = 0x40001794 ); -PROVIDE( Cache_Config_ICache_Region_Autoload = 0x400017a0 ); -PROVIDE( Cache_Enable_ICache_Autoload = 0x400017ac ); -PROVIDE( Cache_Disable_ICache_Autoload = 0x400017b8 ); -PROVIDE( Cache_Config_DCache_Autoload = 0x400017c4 ); -PROVIDE( Cache_Config_DCache_Region_Autoload = 0x400017d0 ); -PROVIDE( Cache_Enable_DCache_Autoload = 0x400017dc ); -PROVIDE( Cache_Disable_DCache_Autoload = 0x400017e8 ); -PROVIDE( Cache_Enable_ICache_PreLock = 0x400017f4 ); -PROVIDE( Cache_Disable_ICache_PreLock = 0x40001800 ); -PROVIDE( Cache_Lock_ICache_Items = 0x4000180c ); -PROVIDE( Cache_Unlock_ICache_Items = 0x40001818 ); -PROVIDE( Cache_Enable_DCache_PreLock = 0x40001824 ); -PROVIDE( Cache_Disable_DCache_PreLock = 0x40001830 ); -PROVIDE( Cache_Lock_DCache_Items = 0x4000183c ); -PROVIDE( Cache_Unlock_DCache_Items = 0x40001848 ); -PROVIDE( Cache_Lock_Addr = 0x40001854 ); -PROVIDE( Cache_Unlock_Addr = 0x40001860 ); -PROVIDE( Cache_Disable_ICache = 0x4000186c ); -PROVIDE( Cache_Enable_ICache = 0x40001878 ); -PROVIDE( Cache_Disable_DCache = 0x40001884 ); -PROVIDE( Cache_Enable_DCache = 0x40001890 ); -PROVIDE( Cache_Suspend_ICache = 0x4000189c ); -PROVIDE( Cache_Resume_ICache = 0x400018a8 ); -PROVIDE( Cache_Suspend_DCache = 0x400018b4 ); -PROVIDE( Cache_Resume_DCache = 0x400018c0 ); -PROVIDE( Cache_Occupy_Items = 0x400018cc ); -PROVIDE( Cache_Occupy_Addr = 0x400018d8 ); -PROVIDE( Cache_Freeze_ICache_Enable = 0x400018e4 ); -PROVIDE( Cache_Freeze_ICache_Disable = 0x400018f0 ); -PROVIDE( Cache_Freeze_DCache_Enable = 0x400018fc ); -PROVIDE( Cache_Freeze_DCache_Disable = 0x40001908 ); -PROVIDE( Cache_Set_IDROM_MMU_Size = 0x40001914 ); -PROVIDE( flash2spiram_instruction_offset = 0x40001920 ); -PROVIDE( flash2spiram_rodata_offset = 0x4000192c ); -PROVIDE( flash_instr_rodata_start_page = 0x40001938 ); -PROVIDE( flash_instr_rodata_end_page = 0x40001944 ); -PROVIDE( Cache_Set_IDROM_MMU_Info = 0x40001950 ); -PROVIDE( Cache_Get_IROM_MMU_End = 0x4000195c ); -PROVIDE( Cache_Get_DROM_MMU_End = 0x40001968 ); -PROVIDE( Cache_Owner_Init = 0x40001974 ); -PROVIDE( Cache_Occupy_ICache_MEMORY = 0x40001980 ); -PROVIDE( Cache_Occupy_DCache_MEMORY = 0x4000198c ); -PROVIDE( Cache_MMU_Init = 0x40001998 ); -PROVIDE( Cache_Ibus_MMU_Set = 0x400019a4 ); -PROVIDE( Cache_Dbus_MMU_Set = 0x400019b0 ); -PROVIDE( Cache_Count_Flash_Pages = 0x400019bc ); -PROVIDE( Cache_Flash_To_SPIRAM_Copy = 0x400019c8 ); -PROVIDE( Cache_Travel_Tag_Memory = 0x400019d4 ); -PROVIDE( Cache_Travel_Tag_Memory2 = 0x400019e0 ); -PROVIDE( Cache_Get_Virtual_Addr = 0x400019ec ); -PROVIDE( Cache_Get_Memory_BaseAddr = 0x400019f8 ); -PROVIDE( Cache_Get_Memory_Addr = 0x40001a04 ); -PROVIDE( Cache_Get_Memory_value = 0x40001a10 ); -PROVIDE( rom_config_instruction_cache_mode = 0x40001a1c ); -PROVIDE( rom_config_data_cache_mode = 0x40001a28 ); -/* Data (.data, .bss, .rodata) */ -PROVIDE( rom_cache_op_cb = 0x3fceffc8 ); -PROVIDE( rom_cache_internal_table_ptr = 0x3fceffc4 ); - -/*************************************** - Group clock - ***************************************/ - -/* Functions */ -ets_get_apb_freq = 0x40001a34; -ets_get_cpu_frequency = 0x40001a40; -ets_update_cpu_frequency = 0x40001a4c; -ets_get_printf_channel = 0x40001a58; -ets_get_xtal_div = 0x40001a64; -ets_set_xtal_div = 0x40001a70; -ets_get_xtal_freq = 0x40001a7c; - -/*************************************** - Group gpio - ***************************************/ - -/* Functions */ -gpio_input_get = 0x40001a88; -gpio_matrix_in = 0x40001a94; -gpio_matrix_out = 0x40001aa0; -gpio_output_disable = 0x40001aac; -gpio_output_enable = 0x40001ab8; -gpio_output_set = 0x40001ac4; -gpio_pad_hold = 0x40001ad0; -gpio_pad_input_disable = 0x40001adc; -gpio_pad_input_enable = 0x40001ae8; -gpio_pad_pulldown = 0x40001af4; -gpio_pad_pullup = 0x40001b00; -gpio_pad_select_gpio = 0x40001b0c; -gpio_pad_set_drv = 0x40001b18; -gpio_pad_unhold = 0x40001b24; -gpio_pin_wakeup_disable = 0x40001b30; -gpio_pin_wakeup_enable = 0x40001b3c; -gpio_bypass_matrix_in = 0x40001b48; - -/*************************************** - Group interrupts - ***************************************/ - -/* Functions */ -intr_matrix_set = 0x40001b54; -ets_intr_lock = 0x40001b60; -ets_intr_unlock = 0x40001b6c; -ets_isr_attach = 0x40001b78; -ets_isr_mask = 0x40001b84; -ets_isr_unmask = 0x40001b90; - -/*************************************** - Group xtos - ***************************************/ - -/* Functions */ -xthal_bcopy = 0x40001b9c; -xthal_memcpy = 0x40001ba8; -xthal_get_ccompare = 0x40001bb4; -xthal_set_ccompare = 0x40001bc0; -xthal_get_ccount = 0x40001bcc; -xthal_get_interrupt = 0x40001bd8; -xthal_set_intclear = 0x40001be4; -_xtos_ints_off = 0x40001bf0; -_xtos_ints_on = 0x40001bfc; -_xtos_restore_intlevel = 0x40001c08; -_xtos_set_exception_handler = 0x40001c14; -_xtos_set_interrupt_handler = 0x40001c20; -_xtos_set_interrupt_handler_arg = 0x40001c2c; -_xtos_set_intlevel = 0x40001c38; -_xtos_set_vpri = 0x40001c44; - -/*************************************** - Group crypto - ***************************************/ - -/* Functions */ -md5_vector = 0x40001c50; -MD5Init = 0x40001c5c; -MD5Update = 0x40001c68; -MD5Final = 0x40001c74; -hmac_md5_vector = 0x40001c80; -hmac_md5 = 0x40001c8c; -crc32_le = 0x40001c98; -crc32_be = 0x40001ca4; -crc16_le = 0x40001cb0; -crc16_be = 0x40001cbc; -crc8_le = 0x40001cc8; -crc8_be = 0x40001cd4; -esp_crc8 = 0x40001ce0; -ets_sha_enable = 0x40001cec; -ets_sha_disable = 0x40001cf8; -ets_sha_get_state = 0x40001d04; -ets_sha_init = 0x40001d10; -ets_sha_process = 0x40001d1c; -ets_sha_starts = 0x40001d28; -ets_sha_update = 0x40001d34; -ets_sha_finish = 0x40001d40; -ets_sha_clone = 0x40001d4c; -ets_hmac_enable = 0x40001d58; -ets_hmac_disable = 0x40001d64; -ets_hmac_calculate_message = 0x40001d70; -ets_hmac_calculate_downstream = 0x40001d7c; -ets_hmac_invalidate_downstream = 0x40001d88; -ets_jtag_enable_temporarily = 0x40001d94; -ets_aes_enable = 0x40001da0; -ets_aes_disable = 0x40001dac; -ets_aes_setkey = 0x40001db8; -ets_aes_block = 0x40001dc4; -ets_bigint_enable = 0x40001dd0; -ets_bigint_disable = 0x40001ddc; -ets_bigint_multiply = 0x40001de8; -ets_bigint_modmult = 0x40001df4; -ets_bigint_modexp = 0x40001e00; -ets_bigint_wait_finish = 0x40001e0c; -ets_bigint_getz = 0x40001e18; -ets_ds_enable = 0x40001e24; -ets_ds_disable = 0x40001e30; -ets_ds_start_sign = 0x40001e3c; -ets_ds_is_busy = 0x40001e48; -ets_ds_finish_sign = 0x40001e54; -ets_ds_encrypt_params = 0x40001e60; -ets_aes_setkey_dec = 0x40001e6c; -ets_aes_setkey_enc = 0x40001e78; -ets_mgf1_sha256 = 0x40001e84; - -/*************************************** - Group efuse - ***************************************/ - -/* Functions */ -ets_efuse_read = 0x40001e90; -ets_efuse_program = 0x40001e9c; -ets_efuse_clear_program_registers = 0x40001ea8; -ets_efuse_write_key = 0x40001eb4; -ets_efuse_get_read_register_address = 0x40001ec0; -ets_efuse_get_key_purpose = 0x40001ecc; -ets_efuse_key_block_unused = 0x40001ed8; -ets_efuse_find_unused_key_block = 0x40001ee4; -ets_efuse_rs_calculate = 0x40001ef0; -ets_efuse_count_unused_key_blocks = 0x40001efc; -ets_efuse_secure_boot_enabled = 0x40001f08; -ets_efuse_secure_boot_aggressive_revoke_enabled = 0x40001f14; -ets_efuse_cache_encryption_enabled = 0x40001f20; -ets_efuse_download_modes_disabled = 0x40001f2c; -ets_efuse_find_purpose = 0x40001f38; -ets_efuse_flash_opi_5pads_power_sel_vddspi = 0x40001f44; -ets_efuse_force_send_resume = 0x40001f50; -ets_efuse_get_flash_delay_us = 0x40001f5c; -ets_efuse_get_mac = 0x40001f68; -ets_efuse_get_spiconfig = 0x40001f74; -ets_efuse_usb_print_is_disabled = 0x40001f80; -/*ets_efuse_get_uart_print_channel = 0x40001f8c;*/ -ets_efuse_usb_serial_jtag_print_is_disabled = 0x40001f8c; -ets_efuse_get_uart_print_control = 0x40001f98; -ets_efuse_get_wp_pad = 0x40001fa4; -ets_efuse_legacy_spi_boot_mode_disabled = 0x40001fb0; -ets_efuse_security_download_modes_enabled = 0x40001fbc; -ets_efuse_set_timing = 0x40001fc8; -ets_efuse_jtag_disabled = 0x40001fd4; -ets_efuse_usb_download_mode_disabled = 0x40001fe0; -ets_efuse_usb_module_disabled = 0x40001fec; -ets_efuse_usb_device_disabled = 0x40001ff8; -ets_efuse_flash_octal_mode = 0x40002004; -ets_efuse_ecc_en = 0x40002010; -ets_efuse_ecc_flash_page_size = 0x4000201c; -ets_efuse_ecc_16to17_mode = 0x40002028; - -/*************************************** - Group ecc - ***************************************/ - -/* Functions */ -ets_ecc_flash_enable = 0x40002034; -ets_ecc_flash_enable_all = 0x40002040; -ets_ecc_flash_disable = 0x4000204c; -ets_ecc_flash_disable_all = 0x40002058; -ets_ecc_get_flash_page_size = 0x40002064; -ets_ecc_set_flash_page_size = 0x40002070; -ets_ecc_set_flash_byte_mode = 0x4000207c; -ets_ecc_get_flash_byte_mode = 0x40002088; -ets_ecc_set_flash_range = 0x40002094; -ets_ecc_get_flash_range = 0x400020a0; -ets_ecc_sram_enable = 0x400020ac; -ets_ecc_sram_disable = 0x400020b8; -ets_ecc_sram_enable_all = 0x400020c4; -ets_ecc_sram_disable_all = 0x400020d0; -ets_ecc_get_sram_page_size = 0x400020dc; -ets_ecc_set_sram_page_size = 0x400020e8; -ets_ecc_get_sram_byte_mode = 0x400020f4; -ets_ecc_set_sram_byte_mode = 0x40002100; -ets_ecc_set_sram_range = 0x4000210c; -ets_ecc_get_sram_range = 0x40002118; -/* Data (.data, .bss, .rodata) */ -ets_ecc_table_ptr = 0x3fceffc0; - -/*************************************** - Group secureboot - ***************************************/ - -/* Functions */ -ets_emsa_pss_verify = 0x40002124; -ets_rsa_pss_verify = 0x40002130; -ets_secure_boot_verify_bootloader_with_keys = 0x4000213c; -ets_secure_boot_verify_signature = 0x40002148; -ets_secure_boot_read_key_digests = 0x40002154; -ets_secure_boot_revoke_public_key_digest = 0x40002160; - -/*************************************** - Group usb_uart - ***************************************/ - -/* Functions */ -PROVIDE( usb_uart_otg_rx_one_char = 0x400025a4 ); -PROVIDE( usb_uart_otg_rx_one_char_block = 0x400025b0 ); -PROVIDE( usb_uart_otg_tx_flush = 0x400025bc ); -PROVIDE( usb_uart_otg_tx_one_char = 0x400025c8 ); -PROVIDE( usb_uart_device_rx_one_char = 0x400025d4 ); -PROVIDE( usb_uart_device_rx_one_char_block = 0x400025e0 ); -PROVIDE( usb_uart_device_tx_flush = 0x400025ec ); -PROVIDE( usb_uart_device_tx_one_char = 0x400025f8 ); -PROVIDE( Uart_Init_USB = 0x40002604 ); -/* Data (.data, .bss, .rodata) */ -PROVIDE( uart_acm_dev = 0x3fceffbc ); -PROVIDE( g_uart_print = 0x3fceffb9 ); -PROVIDE( g_usb_print = 0x3fceffb8 ); - -/*************************************** - Group usb_module - ***************************************/ - -/* Functions */ -cdc_acm_class_handle_req = 0x40002610; -cdc_acm_init = 0x4000261c; -cdc_acm_fifo_fill = 0x40002628; -cdc_acm_rx_fifo_cnt = 0x40002634; -cdc_acm_fifo_read = 0x40002640; -cdc_acm_irq_tx_enable = 0x4000264c; -cdc_acm_irq_tx_disable = 0x40002658; -cdc_acm_irq_state_enable = 0x40002664; -cdc_acm_irq_state_disable = 0x40002670; -cdc_acm_irq_tx_ready = 0x4000267c; -cdc_acm_irq_rx_enable = 0x40002688; -cdc_acm_irq_rx_disable = 0x40002694; -cdc_acm_irq_rx_ready = 0x400026a0; -cdc_acm_irq_is_pending = 0x400026ac; -cdc_acm_irq_callback_set = 0x400026b8; -cdc_acm_line_ctrl_set = 0x400026c4; -cdc_acm_line_ctrl_get = 0x400026d0; -cdc_acm_poll_out = 0x400026dc; -chip_usb_dw_did_persist = 0x400026e8; -chip_usb_dw_init = 0x400026f4; -chip_usb_detach = 0x40002700; -chip_usb_dw_prepare_persist = 0x4000270c; -chip_usb_get_persist_flags = 0x40002718; -chip_usb_set_persist_flags = 0x40002724; -cpio_start = 0x40002730; -cpio_feed = 0x4000273c; -cpio_done = 0x40002748; -cpio_destroy = 0x40002754; -dfu_flash_init = 0x40002760; -dfu_flash_erase = 0x4000276c; -dfu_flash_program = 0x40002778; -dfu_flash_read = 0x40002784; -dfu_flash_attach = 0x40002790; -dfu_cpio_callback = 0x4000279c; -dfu_updater_get_err = 0x400027a8; -dfu_updater_clear_err = 0x400027b4; -dfu_updater_enable = 0x400027c0; -dfu_updater_begin = 0x400027cc; -dfu_updater_feed = 0x400027d8; -dfu_updater_end = 0x400027e4; -dfu_updater_set_raw_addr = 0x400027f0; -dfu_updater_flash_read = 0x400027fc; -usb_dc_prepare_persist = 0x40002808; -usb_dw_isr_handler = 0x40002814; -usb_dc_attach = 0x40002820; -usb_dc_detach = 0x4000282c; -usb_dc_reset = 0x40002838; -usb_dc_set_address = 0x40002844; -usb_dc_ep_check_cap = 0x40002850; -usb_dc_ep_configure = 0x4000285c; -usb_dc_ep_set_stall = 0x40002868; -usb_dc_ep_clear_stall = 0x40002874; -usb_dc_ep_halt = 0x40002880; -usb_dc_ep_is_stalled = 0x4000288c; -usb_dc_ep_enable = 0x40002898; -usb_dc_ep_disable = 0x400028a4; -usb_dc_ep_flush = 0x400028b0; -usb_dc_ep_write_would_block = 0x400028bc; -usb_dc_ep_write = 0x400028c8; -usb_dc_ep_read_wait = 0x400028d4; -usb_dc_ep_read_continue = 0x400028e0; -usb_dc_ep_read = 0x400028ec; -usb_dc_ep_set_callback = 0x400028f8; -usb_dc_set_status_callback = 0x40002904; -usb_dc_ep_mps = 0x40002910; -usb_dc_check_poll_for_interrupts = 0x4000291c; -mac_addr_to_serial_str_desc = 0x40002928; -usb_set_current_descriptor = 0x40002934; -usb_get_descriptor = 0x40002940; -usb_dev_resume = 0x4000294c; -usb_dev_get_configuration = 0x40002958; -usb_set_config = 0x40002964; -usb_deconfig = 0x40002970; -usb_enable = 0x4000297c; -usb_disable = 0x40002988; -usb_write_would_block = 0x40002994; -usb_write = 0x400029a0; -usb_read = 0x400029ac; -usb_ep_set_stall = 0x400029b8; -usb_ep_clear_stall = 0x400029c4; -usb_ep_read_wait = 0x400029d0; -usb_ep_read_continue = 0x400029dc; -usb_transfer_ep_callback = 0x400029e8; -usb_transfer = 0x400029f4; -usb_cancel_transfer = 0x40002a00; -usb_transfer_sync = 0x40002a0c; -usb_dfu_set_detach_cb = 0x40002a18; -dfu_class_handle_req = 0x40002a24; -dfu_status_cb = 0x40002a30; -dfu_custom_handle_req = 0x40002a3c; -usb_dfu_init = 0x40002a48; -usb_dfu_force_detach = 0x40002a54; -usb_dev_deinit = 0x40002a60; -usb_dw_ctrl_deinit = 0x40002a6c; -/* Data (.data, .bss, .rodata) */ -s_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_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; -/* Data (.data, .bss, .rodata) */ -bt_rf_coex_cfg_p = 0x3fceffa8; -bt_rf_coex_hooks_p = 0x3fceffa4; -btdm_env_p = 0x3fceffa0; -g_rw_controller_task_handle = 0x3fceff9c; -g_rw_init_sem = 0x3fceff98; -g_rw_schd_queue = 0x3fceff94; -lld_init_env = 0x3fceff90; -lld_rpa_renew_env = 0x3fceff8c; -lld_scan_env = 0x3fceff88; -lld_scan_sync_env = 0x3fceff84; -lld_test_env = 0x3fceff80; -p_ble_util_buf_env = 0x3fceff7c; -p_lld_env = 0x3fceff78; -p_llm_env = 0x3fceff74; -r_h4tl_eif_p = 0x3fceff70; -r_hli_funcs_p = 0x3fceff6c; -r_ip_funcs_p = 0x3fceff68; -r_modules_funcs_p = 0x3fceff64; -r_osi_funcs_p = 0x3fceff60; -r_plf_funcs_p = 0x3fceff5c; -vhci_env_p = 0x3fceff58; -aa_gen = 0x3fceff54; -aes_env = 0x3fceff48; -bt_rf_coex_cfg_cb = 0x3fcefef8; -btdm_pwr_state = 0x3fcefef4; -btdm_slp_err = 0x3fcefef0; -ecc_env = 0x3fcefee8; -esp_handler = 0x3fcefee0; -esp_vendor_cmd = 0x3fcefed8; -g_adv_delay_dis = 0x3fcefed4; -g_conflict_elt = 0x3fcefed0; -g_eif_api = 0x3fcefec0; -g_event_empty = 0x3fcefeb4; -g_llc_state = 0x3fcefeaa; -g_llm_state = 0x3fcefea9; -g_max_evt_env = 0x3fcefea7; -g_misc_state = 0x3fcefea6; -g_rma_rule_db = 0x3fcefe8a; -g_rtp_rule_db = 0x3fcefe6e; -g_scan_forever = 0x3fcefe6d; -g_time_msb = 0x3fcefe6c; -h4tl_env = 0x3fcefe44; -hci_env = 0x3fcefe21; -hci_ext_host = 0x3fcefe20; -hci_fc_env = 0x3fcefe18; -hci_tl_env = 0x3fcefdec; -ke_env = 0x3fcefdbc; -ke_event_env = 0x3fcefd7c; -ke_task_env = 0x3fcefd00; -llc_env = 0x3fcefcd8; -lld_adv_env = 0x3fcefcb0; -lld_con_env = 0x3fcefc88; -lld_exp_sync_pos_tab = 0x3fcefc80; -lld_per_adv_env = 0x3fcefc58; -lld_sync_env = 0x3fcefc30; -llm_le_adv_flow_env = 0x3fcefc24; -rw_sleep_enable = 0x3fcefc20; -rwble_env = 0x3fcefc18; -rwip_env = 0x3fcefbfc; -rwip_param = 0x3fcefbf0; -rwip_prog_delay = 0x3fcefbec; -rwip_rf = 0x3fcefbb4; -sch_alarm_env = 0x3fcefbac; -sch_arb_env = 0x3fcefb98; -sch_plan_env = 0x3fcefb90; -sch_prog_env = 0x3fcefa8c; -sch_slice_env = 0x3fcefa2c; -sch_slice_params = 0x3fcefa24; -timer_env = 0x3fcefa1c; -unloaded_area = 0x3fcefa18; -vshci_state = 0x3fcefa14; -TASK_DESC_LLC = 0x3fcefa08; -TASK_DESC_LLM = 0x3fcef9fc; -TASK_DESC_VSHCI = 0x3fcef9f0; -co_default_bdaddr = 0x3fcef9e8; -dbg_assert_block = 0x3fcef9e4; -g_bt_plf_log_level = 0x3fcef9e0; -hci_cmd_desc_tab_vs_esp = 0x3fcef9bc; -hci_command_handler_tab_esp = 0x3fcef9a4; -privacy_en = 0x3fcef9a0; -sdk_cfg_priv_opts = 0x3fcef958; -BasePoint_x_256 = 0x3ff1ffdc; -BasePoint_y_256 = 0x3ff1ffbc; -DebugE256PublicKey_x = 0x3ff1ff9c; -DebugE256PublicKey_y = 0x3ff1ff7c; -DebugE256SecretKey = 0x3ff1ff5c; -ECC_4Win_Look_up_table = 0x3ff1f7a0; -LLM_AA_CT1 = 0x3ff1f79a; -LLM_AA_CT2 = 0x3ff1f798; -RF_TX_PW_CONV_TBL = 0x3ff1f790; -TASK_DESC_MISC = 0x3ff1f784; -adv_evt_prop2type = 0x3ff1f766; -adv_evt_type2prop = 0x3ff1f761; -aes_cmac_zero = 0x3ff1f751; -aes_k2_salt = 0x3ff1f741; -aes_k3_id64 = 0x3ff1f73c; -aes_k3_salt = 0x3ff1f72c; -aes_k4_id6 = 0x3ff1f728; -aes_k4_salt = 0x3ff1f718; -bigHexP256 = 0x3ff1f6ec; -byte_tx_time = 0x3ff1f6e2; -co_null_bdaddr = 0x3ff1f6dc; -co_phy_mask_to_rate = 0x3ff1f6d7; -co_phy_mask_to_value = 0x3ff1f6d2; -co_phy_to_rate = 0x3ff1f6ce; -co_phy_value_to_mask = 0x3ff1f6ca; -co_rate_to_byte_dur_us = 0x3ff1f6c5; -co_rate_to_phy = 0x3ff1f6c0; -co_rate_to_phy_mask = 0x3ff1f6bc; -co_sca2ppm = 0x3ff1f6ac; -coef_B = 0x3ff1f680; -connect_req_dur_tab = 0x3ff1f678; -ecc_Jacobian_InfinityPoint256 = 0x3ff1f5f4; -em_base_reg_lut = 0x3ff1f526; -fixed_tx_time = 0x3ff1f51e; -h4tl_msgtype2hdrlen = 0x3ff1f518; -hci_cmd_desc_root_tab = 0x3ff1f4e8; -hci_cmd_desc_tab_ctrl_bb = 0x3ff1f47c; -hci_cmd_desc_tab_info_par = 0x3ff1f44c; -hci_cmd_desc_tab_le = 0x3ff1f0b0; -hci_cmd_desc_tab_lk_ctrl = 0x3ff1f098; -hci_cmd_desc_tab_stat_par = 0x3ff1f08c; -hci_cmd_desc_tab_vs = 0x3ff1f050; -hci_evt_desc_tab = 0x3ff1f008; -hci_evt_le_desc_tab = 0x3ff1ef68; -hci_evt_le_desc_tab_esp = 0x3ff1ef60; -hci_rsvd_evt_msk = 0x3ff1ef57; -lld_aux_phy_to_rate = 0x3ff1ef54; -lld_init_max_aux_dur_tab = 0x3ff1ef4c; -lld_scan_map_legacy_pdu_to_evt_type = 0x3ff1ef44; -lld_scan_max_aux_dur_tab = 0x3ff1ef3c; -lld_sync_max_aux_dur_tab = 0x3ff1ef34; -llm_local_le_feats = 0x3ff1ef2c; -llm_local_le_states = 0x3ff1ef24; -llm_local_supp_cmds = 0x3ff1eefc; -maxSecretKey_256 = 0x3ff1eedc; -max_data_tx_time = 0x3ff1eed4; -one_bits = 0x3ff1eec3; -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_start_hook = 0x40001c74; -*/ -r_lld_scan_process_pkt_rx_ext_adv_hook = 0x40001c78; -r_lld_scan_sched_hook = 0x40001c7c; -/* -r_lld_adv_start_hook = 0x40001c80; -*/ -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_start_hook = 0x40001ca8; -*/ -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_start_hook = 0x40001cb8; -*/ -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 - ***************************************/ - -/* Functions */ -esp_pp_rom_version_get = 0x40005250; -RC_GetBlockAckTime = 0x4000525c; -ebuf_list_remove = 0x40005268; -esf_buf_alloc = 0x40005274; -esf_buf_alloc_dynamic = 0x40005280; -/*esf_buf_recycle = 0x4000528c;*/ -GetAccess = 0x40005298; -hal_mac_is_low_rate_enabled = 0x400052a4; -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_interface_enabled = 0x400052ec; -is_lmac_idle = 0x400052f8; -lmacAdjustTimestamp = 0x40005304; -lmacDiscardAgedMSDU = 0x40005310; -lmacDiscardMSDU = 0x4000531c; -lmacEndFrameExchangeSequence = 0x40005328; -lmacIsIdle = 0x40005334; -lmacIsLongFrame = 0x40005340; -lmacMSDUAged = 0x4000534c; -lmacPostTxComplete = 0x40005358; -lmacProcessAllTxTimeout = 0x40005364; -lmacProcessCollisions = 0x40005370; -lmacProcessRxSucData = 0x4000537c; -lmacReachLongLimit = 0x40005388; -lmacReachShortLimit = 0x40005394; -lmacRecycleMPDU = 0x400053a0; -lmacRxDone = 0x400053ac; -lmacSetTxFrame = 0x400053b8; -lmacTxDone = 0x400053c4; -/*lmacTxFrame = 0x400053d0;*/ -mac_tx_set_duration = 0x400053dc; -/* mac_tx_set_htsig = 0x400053e8;*/ -mac_tx_set_plcp0 = 0x400053f4; -/* mac_tx_set_plcp1 = 0x40005400;*/ -mac_tx_set_plcp2 = 0x4000540c; -pm_check_state = 0x40005418; -pm_disable_dream_timer = 0x40005424; -pm_disable_sleep_delay_timer = 0x40005430; -pm_dream = 0x4000543c; -pm_mac_wakeup = 0x40005448; -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_is_waked = 0x4000549c; -pm_keep_alive = 0x400054a8; -/* pm_on_beacon_rx = 0x400054b4; */ -pm_on_data_rx = 0x400054c0; -pm_on_tbtt = 0x400054cc; -/* pm_parse_beacon = 0x400054d8;*/ -/* pm_process_tim = 0x400054e4; */ -/*pm_rx_beacon_process = 0x400054f0;*/ -/* pm_rx_data_process = 0x400054fc; */ -/*pm_sleep = 0x40005508;*/ -pm_sleep_for = 0x40005514; -/* pm_tbtt_process = 0x40005520; */ -ppAMPDU2Normal = 0x4000552c; -ppAssembleAMPDU = 0x40005538; -ppCalFrameTimes = 0x40005544; -ppCalSubFrameLength = 0x40005550; -ppCalTxAMPDULength = 0x4000555c; -ppCheckTxAMPDUlength = 0x40005568; -ppDequeueRxq_Locked = 0x40005574; -ppDequeueTxQ = 0x40005580; -ppEmptyDelimiterLength = 0x4000558c; -ppEnqueueRxq = 0x40005598; -ppEnqueueTxDone = 0x400055a4; -ppGetTxQFirstAvail_Locked = 0x400055b0; -ppGetTxframe = 0x400055bc; -/*ppMapTxQueue = 0x400055c8;*/ -ppProcessRxPktHdr = 0x400055e0; -ppProcessTxQ = 0x400055ec; -ppRecordBarRRC = 0x400055f8; -lmacRequestTxopQueue = 0x40005604; -lmacReleaseTxopQueue = 0x40005610; -ppRecycleAmpdu = 0x4000561c; -ppRecycleRxPkt = 0x40005628; -ppResortTxAMPDU = 0x40005634; -ppResumeTxAMPDU = 0x40005640; -/* ppRxFragmentProc = 0x4000564c; */ -ppRxPkt = 0x40005658; -ppRxProtoProc = 0x40005664; -ppSearchTxQueue = 0x40005670; -ppSearchTxframe = 0x4000567c; -ppSelectNextQueue = 0x40005688; -ppSubFromAMPDU = 0x40005694; -/* ppTask = 0x400056a0; */ -ppTxPkt = 0x400056ac; -ppTxProtoProc = 0x400056b8; -ppTxqUpdateBitmap = 0x400056c4; -pp_coex_tx_request = 0x400056d0; -pp_hdrsize = 0x400056dc; -pp_post = 0x400056e8; -pp_process_hmac_waiting_txq = 0x400056f4; -rcGetAmpduSched = 0x40005700; -rcUpdateRxDone = 0x4000570c; -rc_get_trc = 0x40005718; -rc_get_trc_by_index = 0x40005724; -rcAmpduLowerRate = 0x40005730; -rcampduuprate = 0x4000573c; -rcClearCurAMPDUSched = 0x40005748; -rcClearCurSched = 0x40005754; -rcClearCurStat = 0x40005760; -rcGetSched = 0x4000576c; -rcLowerSched = 0x40005778; -rcSetTxAmpduLimit = 0x40005784; -/* rcTxUpdatePer = 0x40005790;*/ -rcUpdateAckSnr = 0x4000579c; -rcUpdateRate = 0x400057a8; -/* rcUpdateTxDone = 0x400057b4; */ -rcUpdateTxDoneAmpdu2 = 0x400057c0; -rcUpSched = 0x400057cc; -rssi_margin = 0x400057d8; -rx11NRate2AMPDULimit = 0x400057e4; -TRC_AMPDU_PER_DOWN_THRESHOLD = 0x400057f0; -TRC_AMPDU_PER_UP_THRESHOLD = 0x400057fc; -trc_calc_duration = 0x40005808; -trc_isTxAmpduOperational = 0x40005814; -trc_onAmpduOp = 0x40005820; -TRC_PER_IS_GOOD = 0x4000582c; -trc_SetTxAmpduState = 0x40005838; -trc_tid_isTxAmpduOperational = 0x40005844; -trcAmpduSetState = 0x40005850; -wDevCheckBlockError = 0x4000585c; -wDev_AppendRxBlocks = 0x40005868; -wDev_DiscardFrame = 0x40005874; -wDev_GetNoiseFloor = 0x40005880; -wDev_IndicateAmpdu = 0x4000588c; -wDev_IndicateFrame = 0x40005898; -wdev_bank_store = 0x400058a4; -wdev_bank_load = 0x400058b0; -wdev_mac_reg_load = 0x400058bc; -wdev_mac_reg_store = 0x400058c8; -wdev_mac_special_reg_load = 0x400058d4; -wdev_mac_special_reg_store = 0x400058e0; -wdev_mac_wakeup = 0x400058ec; -wdev_mac_sleep = 0x400058f8; -hal_mac_is_dma_enable = 0x40005904; -/* wDev_ProcessFiq = 0x40005910; */ -wDev_ProcessRxSucData = 0x4000591c; -wdevProcessRxSucDataAll = 0x40005928; -wdev_csi_len_align = 0x40005934; -ppDequeueTxDone_Locked = 0x40005940; -/*ppProcTxDone = 0x4000594c;*/ -/*pm_tx_data_done_process = 0x40005958;*/ -config_is_cache_tx_buf_enabled = 0x40005964; -ppMapWaitTxq = 0x40005970; -ppProcessWaitingQueue = 0x4000597c; -ppDisableQueue = 0x40005988; -pm_allow_tx = 0x40005994; -wdev_is_data_in_rxlist = 0x400059a0; -ppProcTxCallback = 0x400059ac; -/* Data (.data, .bss, .rodata) */ -our_instances_ptr = 0x3ff1ee58; -pTxRx = 0x3fcef954; -lmacConfMib_ptr = 0x3fcef950; -our_wait_eb = 0x3fcef94c; -our_tx_eb = 0x3fcef948; -pp_wdev_funcs = 0x3fcef944; -g_osi_funcs_p = 0x3fcef940; -wDevCtrl_ptr = 0x3fcef93c; -g_wdev_last_desc_reset_ptr = 0x3ff1ee54; -wDevMacSleep_ptr = 0x3fcef938; -g_lmac_cnt_ptr = 0x3fcef934; -our_controls_ptr = 0x3ff1ee50; -pp_sig_cnt_ptr = 0x3fcef930; -g_eb_list_desc_ptr = 0x3fcef92c; -s_fragment_ptr = 0x3fcef928; -if_ctrl_ptr = 0x3fcef924; -g_intr_lock_mux = 0x3fcef920; -g_wifi_global_lock = 0x3fcef91c; -s_wifi_queue = 0x3fcef918; -pp_task_hdl = 0x3fcef914; -s_pp_task_create_sem = 0x3fcef910; -s_pp_task_del_sem = 0x3fcef90c; -g_wifi_menuconfig_ptr = 0x3fcef908; -xphyQueue = 0x3fcef904; -ap_no_lr_ptr = 0x3fcef900; -rc11BSchedTbl_ptr = 0x3fcef8fc; -rc11NSchedTbl_ptr = 0x3fcef8f8; -rcLoRaSchedTbl_ptr = 0x3fcef8f4; -BasicOFDMSched_ptr = 0x3fcef8f0; -trc_ctl_ptr = 0x3fcef8ec; -g_pm_cnt_ptr = 0x3fcef8e8; -g_pm_ptr = 0x3fcef8e4; -g_pm_cfg_ptr = 0x3fcef8e0; -g_esp_mesh_quick_funcs_ptr = 0x3fcef8dc; -g_txop_queue_status_ptr = 0x3fcef8d8; -g_mac_sleep_en_ptr = 0x3fcef8d4; -g_mesh_is_root_ptr = 0x3fcef8d0; -g_mesh_topology_ptr = 0x3fcef8cc; -g_mesh_init_ps_type_ptr = 0x3fcef8c8; -g_mesh_is_started_ptr = 0x3fcef8c4; -g_config_func = 0x3fcef8c0; -g_net80211_tx_func = 0x3fcef8bc; -g_timer_func = 0x3fcef8b8; -s_michael_mic_failure_cb = 0x3fcef8b4; -wifi_sta_rx_probe_req = 0x3fcef8b0; -g_tx_done_cb_func = 0x3fcef8ac; -g_per_conn_trc = 0x3fcef860; -s_encap_amsdu_func = 0x3fcef85c; - - -/*************************************** - Group rom_net80211 - ***************************************/ - -/* Functions */ -esp_net80211_rom_version_get = 0x400059b8; -ampdu_dispatch = 0x400059c4; -ampdu_dispatch_all = 0x400059d0; -ampdu_dispatch_as_many_as_possible = 0x400059dc; -ampdu_dispatch_movement = 0x400059e8; -ampdu_dispatch_upto = 0x400059f4; -chm_is_at_home_channel = 0x40005a00; -cnx_node_is_existing = 0x40005a0c; -cnx_node_search = 0x40005a18; -ic_ebuf_recycle_rx = 0x40005a24; -ic_ebuf_recycle_tx = 0x40005a30; -ic_reset_rx_ba = 0x40005a3c; -ieee80211_align_eb = 0x40005a48; -ieee80211_ampdu_reorder = 0x40005a54; -ieee80211_ampdu_start_age_timer = 0x40005a60; -/* ieee80211_encap_esfbuf = 0x40005a6c; */ -ieee80211_is_tx_allowed = 0x40005a78; -ieee80211_output_pending_eb = 0x40005a84; -ieee80211_output_process = 0x40005a90; -ieee80211_set_tx_desc = 0x40005a9c; -/*sta_input = 0x40005aa8;*/ -wifi_get_macaddr = 0x40005ab4; -wifi_rf_phy_disable = 0x40005ac0; -wifi_rf_phy_enable = 0x40005acc; -ic_ebuf_alloc = 0x40005ad8; -ieee80211_classify = 0x40005ae4; -ieee80211_copy_eb_header = 0x40005af0; -ieee80211_recycle_cache_eb = 0x40005afc; -ieee80211_search_node = 0x40005b08; -roundup2 = 0x40005b14; -ieee80211_crypto_encap = 0x40005b20; -/* ieee80211_crypto_decap = 0x40005b2c; */ -/* ieee80211_decap = 0x40005b38; */ -ieee80211_set_tx_pti = 0x40005b44; -wifi_is_started = 0x40005b50; -ieee80211_gettid = 0x40005b5c; -/* Data (.data, .bss, .rodata) */ -net80211_funcs = 0x3fcef858; -g_scan = 0x3fcef854; -g_chm = 0x3fcef850; -g_ic_ptr = 0x3fcef84c; -g_hmac_cnt_ptr = 0x3fcef848; -g_tx_cacheq_ptr = 0x3fcef844; -s_netstack_free = 0x3fcef840; -mesh_rxcb = 0x3fcef83c; -sta_rxcb = 0x3fcef838; - - -/*************************************** - Group rom_coexist - ***************************************/ - -/* Functions */ -esp_coex_rom_version_get = 0x40005b68; -coex_bt_release = 0x40005b74; -coex_bt_request = 0x40005b80; -coex_core_ble_conn_dyn_prio_get = 0x40005b8c; -coex_core_event_duration_get = 0x40005b98; -coex_core_pti_get = 0x40005ba4; -coex_core_release = 0x40005bb0; -coex_core_request = 0x40005bbc; -coex_core_status_get = 0x40005bc8; -/*coex_core_timer_idx_get = 0x40005bd4;*/ -coex_event_duration_get = 0x40005be0; -coex_hw_timer_disable = 0x40005bec; -coex_hw_timer_enable = 0x40005bf8; -coex_hw_timer_set = 0x40005c04; -coex_schm_interval_set = 0x40005c10; -coex_schm_lock = 0x40005c1c; -coex_schm_unlock = 0x40005c28; -coex_status_get = 0x40005c34; -coex_wifi_release = 0x40005c40; -esp_coex_ble_conn_dynamic_prio_get = 0x40005c4c; -/* Data (.data, .bss, .rodata) */ -coex_env_ptr = 0x3fcef834; -coex_pti_tab_ptr = 0x3fcef830; -coex_schm_env_ptr = 0x3fcef82c; -coexist_funcs = 0x3fcef828; -g_coa_funcs_p = 0x3fcef824; -g_coex_param_ptr = 0x3fcef820; - - -/*************************************** - Group rom_phy - ***************************************/ - -/* Functions */ -phy_get_romfuncs = 0x40005c58; -rom_abs_temp = 0x40005c64; -rom_bb_bss_cbw40_dig = 0x40005c70; -rom_bb_wdg_test_en = 0x40005c7c; -rom_bb_wdt_get_status = 0x40005c88; -rom_bb_wdt_int_enable = 0x40005c94; -rom_bb_wdt_rst_enable = 0x40005ca0; -rom_bb_wdt_timeout_clear = 0x40005cac; -rom_cbw2040_cfg = 0x40005cb8; -rom_check_noise_floor = 0x40005cc4; -rom_chip_i2c_readReg = 0x40005cd0; -rom_chip_i2c_writeReg = 0x40005cdc; -rom_dc_iq_est = 0x40005ce8; -rom_disable_agc = 0x40005cf4; -rom_en_pwdet = 0x40005d00; -rom_enable_agc = 0x40005d0c; -rom_get_bbgain_db = 0x40005d18; -rom_get_data_sat = 0x40005d24; -rom_get_i2c_read_mask = 0x40005d30; -rom_get_pwctrl_correct = 0x40005d3c; -rom_i2c_readReg = 0x40005d48; -rom_i2c_readReg_Mask = 0x40005d54; -rom_i2c_writeReg = 0x40005d60; -rom_i2c_writeReg_Mask = 0x40005d6c; -rom_index_to_txbbgain = 0x40005d78; -rom_iq_est_disable = 0x40005d84; -rom_iq_est_enable = 0x40005d90; -rom_linear_to_db = 0x40005d9c; -rom_loopback_mode_en = 0x40005da8; -rom_mhz2ieee = 0x40005db4; -rom_noise_floor_auto_set = 0x40005dc0; -rom_pbus_debugmode = 0x40005dcc; -rom_pbus_force_mode = 0x40005dd8; -rom_pbus_force_test = 0x40005de4; -rom_pbus_rd = 0x40005df0; -rom_pbus_rd_addr = 0x40005dfc; -rom_pbus_rd_shift = 0x40005e08; -rom_pbus_set_dco = 0x40005e14; -rom_pbus_set_rxgain = 0x40005e20; -rom_pbus_workmode = 0x40005e2c; -rom_pbus_xpd_rx_off = 0x40005e38; -rom_pbus_xpd_rx_on = 0x40005e44; -rom_pbus_xpd_tx_off = 0x40005e50; -rom_pbus_xpd_tx_on = 0x40005e5c; -rom_phy_byte_to_word = 0x40005e68; -rom_phy_disable_cca = 0x40005e74; -rom_phy_enable_cca = 0x40005e80; -rom_phy_get_noisefloor = 0x40005e8c; -rom_phy_get_rx_freq = 0x40005e98; -rom_phy_set_bbfreq_init = 0x40005ea4; -rom_pow_usr = 0x40005eb0; -rom_pwdet_sar2_init = 0x40005ebc; -rom_read_hw_noisefloor = 0x40005ec8; -rom_read_sar_dout = 0x40005ed4; -rom_set_cal_rxdc = 0x40005ee0; -rom_set_chan_cal_interp = 0x40005eec; -rom_set_loopback_gain = 0x40005ef8; -rom_set_noise_floor = 0x40005f04; -rom_set_rxclk_en = 0x40005f10; -rom_set_tx_dig_gain = 0x40005f1c; -rom_set_txcap_reg = 0x40005f28; -rom_set_txclk_en = 0x40005f34; -rom_spur_cal = 0x40005f40; -rom_spur_reg_write_one_tone = 0x40005f4c; -rom_target_power_add_backoff = 0x40005f58; -rom_tx_pwctrl_bg_init = 0x40005f64; -rom_txbbgain_to_index = 0x40005f70; -rom_wifi_11g_rate_chg = 0x40005f7c; -rom_write_gain_mem = 0x40005f88; -chip728_phyrom_version = 0x40005f94; -rom_disable_wifi_agc = 0x40005fa0; -rom_enable_wifi_agc = 0x40005fac; -rom_bt_index_to_bb = 0x40005fb8; -rom_bt_bb_to_index = 0x40005fc4; -rom_spur_coef_cfg = 0x40005fd0; -rom_bb_bss_cbw40 = 0x40005fdc; -rom_set_cca = 0x40005fe8; -rom_tx_paon_set = 0x40005ff4; -rom_i2cmst_reg_init = 0x40006000; -rom_iq_corr_enable = 0x4000600c; -rom_fe_reg_init = 0x40006018; -rom_agc_reg_init = 0x40006024; -rom_bb_reg_init = 0x40006030; -rom_mac_enable_bb = 0x4000603c; -rom_bb_wdg_cfg = 0x40006048; -rom_force_txon = 0x40006054; -rom_fe_txrx_reset = 0x40006060; -rom_set_rx_comp = 0x4000606c; -rom_set_pbus_reg = 0x40006078; -rom_write_chan_freq = 0x40006084; -rom_phy_xpd_rf = 0x40006090; -rom_set_xpd_sar = 0x4000609c; -rom_get_target_power_offset = 0x400060a8; -rom_write_txrate_power_offset = 0x400060b4; -rom_get_rate_fcc_index = 0x400060c0; -rom_get_rate_target_power = 0x400060cc; -rom_pkdet_vol_start = 0x400060d8; -rom_read_sar2_code = 0x400060e4; -rom_get_sar2_vol = 0x400060f0; -rom_get_pll_vol = 0x400060fc; -rom_get_phy_target_power = 0x40006108; -rom_temp_to_power = 0x40006114; -rom_phy_track_pll_cap = 0x40006120; -rom_phy_pwdet_always_en = 0x4000612c; -rom_phy_pwdet_onetime_en = 0x40006138; -rom_get_i2c_mst0_mask = 0x40006144; -rom_get_i2c_hostid = 0x40006150; -rom_enter_critical_phy = 0x4000615c; -rom_exit_critical_phy = 0x40006168; -rom_chip_i2c_readReg_org = 0x40006174; -rom_i2c_paral_set_mst0 = 0x40006180; -rom_i2c_paral_set_read = 0x4000618c; -rom_i2c_paral_read = 0x40006198; -rom_i2c_paral_write = 0x400061a4; -rom_i2c_paral_write_num = 0x400061b0; -rom_i2c_paral_write_mask = 0x400061bc; -rom_bb_bss_cbw40_ana = 0x400061c8; -rom_chan_to_freq = 0x400061d4; -rom_open_i2c_xpd = 0x400061e0; -rom_dac_rate_set = 0x400061ec; -rom_tsens_read_init = 0x400061f8; -rom_tsens_code_read = 0x40006204; -rom_tsens_index_to_dac = 0x40006210; -rom_tsens_index_to_offset = 0x4000621c; -rom_tsens_dac_cal = 0x40006228; -rom_code_to_temp = 0x40006234; -rom_write_pll_cap_mem = 0x40006240; -rom_pll_correct_dcap = 0x4000624c; -rom_phy_en_hw_set_freq = 0x40006258; -rom_phy_dis_hw_set_freq = 0x40006264; -rom_pll_vol_cal = 0x40006270; -rom_wrtie_pll_cap = 0x4000627c; -rom_set_tx_gain_mem = 0x40006288; -rom_bt_tx_dig_gain = 0x40006294; -rom_bt_get_tx_gain = 0x400062a0; -rom_get_chan_target_power = 0x400062ac; -rom_get_tx_gain_value = 0x400062b8; -rom_wifi_tx_dig_gain = 0x400062c4; -rom_wifi_get_tx_gain = 0x400062d0; -rom_fe_i2c_reg_renew = 0x400062dc; -rom_wifi_agc_sat_gain = 0x400062e8; -rom_i2c_master_reset = 0x400062f4; -rom_bt_filter_reg = 0x40006300; -rom_phy_bbpll_cal = 0x4000630c; -rom_i2c_sar2_init_code = 0x40006318; -rom_phy_param_addr = 0x40006324; -rom_phy_reg_init = 0x40006330; -rom_set_chan_reg = 0x4000633c; -rom_phy_wakeup_init = 0x40006348; -rom_phy_i2c_init1 = 0x40006354; -rom_tsens_temp_read = 0x40006360; -rom_bt_track_pll_cap = 0x4000636c; -rom_wifi_track_pll_cap = 0x40006378; -rom_wifi_set_tx_gain = 0x40006384; -rom_txpwr_cal_track = 0x40006390; -rom_tx_pwctrl_background = 0x4000639c; -rom_bt_set_tx_gain = 0x400063a8; -rom_noise_check_loop = 0x400063b4; -rom_phy_close_rf = 0x400063c0; -rom_phy_xpd_tsens = 0x400063cc; -rom_phy_freq_mem_backup = 0x400063d8; -rom_phy_ant_init = 0x400063e4; -rom_bt_track_tx_power = 0x400063f0; -rom_wifi_track_tx_power = 0x400063fc; -rom_phy_dig_reg_backup = 0x40006408; -chip728_phyrom_version_num = 0x40006414; -rom_mac_tx_chan_offset = 0x40006420; -rom_rx_gain_force = 0x4000642c; -/* Data (.data, .bss, .rodata) */ -phy_param_rom = 0x3fcef81c; - -PROVIDE ( esp_rom_tjpgd_decomp = 0x40000864 ); -PROVIDE ( esp_rom_tjpgd_prepare = 0x40000858 ); - -/*************************************** - Group libgcc - ***************************************/ - -/* Functions */ -__absvdi2 = 0x4000216c; -__absvsi2 = 0x40002178; -__adddf3 = 0x40002184; -__addsf3 = 0x40002190; -__addvdi3 = 0x4000219c; -__addvsi3 = 0x400021a8; -__ashldi3 = 0x400021b4; -__ashrdi3 = 0x400021c0; -__bswapdi2 = 0x400021cc; -__bswapsi2 = 0x400021d8; -__clear_cache = 0x400021e4; -__clrsbdi2 = 0x400021f0; -__clrsbsi2 = 0x400021fc; -__clzdi2 = 0x40002208; -__clzsi2 = 0x40002214; -__cmpdi2 = 0x40002220; -__ctzdi2 = 0x4000222c; -__ctzsi2 = 0x40002238; -__divdc3 = 0x40002244; -__divdf3 = 0x40002250; -__divdi3 = 0x4000225c; -__divsc3 = 0x40002268; -__divsf3 = 0x40002274; -__divsi3 = 0x40002280; -__eqdf2 = 0x4000228c; -__eqsf2 = 0x40002298; -__extendsfdf2 = 0x400022a4; -__ffsdi2 = 0x400022b0; -__ffssi2 = 0x400022bc; -__fixdfdi = 0x400022c8; -__fixdfsi = 0x400022d4; -__fixsfdi = 0x400022e0; -__fixsfsi = 0x400022ec; -__fixunsdfsi = 0x400022f8; -__fixunssfdi = 0x40002304; -__fixunssfsi = 0x40002310; -__floatdidf = 0x4000231c; -__floatdisf = 0x40002328; -__floatsidf = 0x40002334; -__floatsisf = 0x40002340; -__floatundidf = 0x4000234c; -__floatundisf = 0x40002358; -__floatunsidf = 0x40002364; -__floatunsisf = 0x40002370; -__gcc_bcmp = 0x4000237c; -__gedf2 = 0x40002388; -__gesf2 = 0x40002394; -__gtdf2 = 0x400023a0; -__gtsf2 = 0x400023ac; -__ledf2 = 0x400023b8; -__lesf2 = 0x400023c4; -__lshrdi3 = 0x400023d0; -__ltdf2 = 0x400023dc; -__ltsf2 = 0x400023e8; -__moddi3 = 0x400023f4; -__modsi3 = 0x40002400; -__muldc3 = 0x4000240c; -__muldf3 = 0x40002418; -__muldi3 = 0x40002424; -__mulsc3 = 0x40002430; -__mulsf3 = 0x4000243c; -__mulsi3 = 0x40002448; -__mulvdi3 = 0x40002454; -__mulvsi3 = 0x40002460; -__nedf2 = 0x4000246c; -__negdf2 = 0x40002478; -__negdi2 = 0x40002484; -__negsf2 = 0x40002490; -__negvdi2 = 0x4000249c; -__negvsi2 = 0x400024a8; -__nesf2 = 0x400024b4; -__paritysi2 = 0x400024c0; -__popcountdi2 = 0x400024cc; -__popcountsi2 = 0x400024d8; -__powidf2 = 0x400024e4; -__powisf2 = 0x400024f0; -__subdf3 = 0x400024fc; -__subsf3 = 0x40002508; -__subvdi3 = 0x40002514; -__subvsi3 = 0x40002520; -__truncdfsf2 = 0x4000252c; -__ucmpdi2 = 0x40002538; -__udivdi3 = 0x40002544; -__udivmoddi4 = 0x40002550; -__udivsi3 = 0x4000255c; -__udiv_w_sdiv = 0x40002568; -__umoddi3 = 0x40002574; -__umodsi3 = 0x40002580; -__unorddf2 = 0x4000258c; -__unordsf2 = 0x40002598; - -/*************************************** - Group newlib - ***************************************/ - -/* Functions */ -esp_rom_newlib_init_common_mutexes = 0x400011dc; -PROVIDE ( memset = 0x400011e8 ); -PROVIDE ( memcpy = 0x400011f4 ); -PROVIDE ( memmove = 0x40001200 ); -PROVIDE ( memcmp = 0x4000120c ); -PROVIDE ( strcpy = 0x40001218 ); -PROVIDE ( strncpy = 0x40001224 ); -PROVIDE ( strcmp = 0x40001230 ); -PROVIDE ( strncmp = 0x4000123c ); -PROVIDE ( strlen = 0x40001248 ); -PROVIDE ( strstr = 0x40001254 ); -PROVIDE ( bzero = 0x40001260 ); -PROVIDE ( _isatty_r = 0x4000126c ); -PROVIDE ( sbrk = 0x40001278 ); -PROVIDE ( isalnum = 0x40001284 ); -PROVIDE ( isalpha = 0x40001290 ); -PROVIDE ( isascii = 0x4000129c ); -PROVIDE ( isblank = 0x400012a8 ); -PROVIDE ( iscntrl = 0x400012b4 ); -PROVIDE ( isdigit = 0x400012c0 ); -PROVIDE ( islower = 0x400012cc ); -PROVIDE ( isgraph = 0x400012d8 ); -PROVIDE ( isprint = 0x400012e4 ); -PROVIDE ( ispunct = 0x400012f0 ); -PROVIDE ( isspace = 0x400012fc ); -PROVIDE ( isupper = 0x40001308 ); -PROVIDE ( toupper = 0x40001314 ); -PROVIDE ( tolower = 0x40001320 ); -PROVIDE ( toascii = 0x4000132c ); -PROVIDE ( memccpy = 0x40001338 ); -PROVIDE ( memchr = 0x40001344 ); -PROVIDE ( memrchr = 0x40001350 ); -PROVIDE ( strcasecmp = 0x4000135c ); -PROVIDE ( strcasestr = 0x40001368 ); -PROVIDE ( strcat = 0x40001374 ); -PROVIDE ( strdup = 0x40001380 ); -PROVIDE ( strchr = 0x4000138c ); -PROVIDE ( strcspn = 0x40001398 ); -PROVIDE ( strcoll = 0x400013a4 ); -PROVIDE ( strlcat = 0x400013b0 ); -PROVIDE ( strlcpy = 0x400013bc ); -PROVIDE ( strlwr = 0x400013c8 ); -PROVIDE ( strncasecmp = 0x400013d4 ); -PROVIDE ( strncat = 0x400013e0 ); -PROVIDE ( strndup = 0x400013ec ); -PROVIDE ( strnlen = 0x400013f8 ); -PROVIDE ( strrchr = 0x40001404 ); -PROVIDE ( strsep = 0x40001410 ); -PROVIDE ( strspn = 0x4000141c ); -PROVIDE ( strtok_r = 0x40001428 ); -PROVIDE ( strupr = 0x40001434 ); -PROVIDE ( longjmp = 0x40001440 ); -PROVIDE ( setjmp = 0x4000144c ); -PROVIDE ( abs = 0x40001458 ); -PROVIDE ( div = 0x40001464 ); -PROVIDE ( labs = 0x40001470 ); -PROVIDE ( ldiv = 0x4000147c ); -PROVIDE ( qsort = 0x40001488 ); -PROVIDE ( rand_r = 0x40001494 ); -PROVIDE ( rand = 0x400014a0 ); -PROVIDE ( srand = 0x400014ac ); -PROVIDE ( utoa = 0x400014b8 ); -PROVIDE ( itoa = 0x400014c4 ); -PROVIDE ( atoi = 0x400014d0 ); -PROVIDE ( atol = 0x400014dc ); -PROVIDE ( strtol = 0x400014e8 ); -PROVIDE ( strtoul = 0x400014f4 ); -PROVIDE ( fflush = 0x40001500 ); -PROVIDE( _fflush_r = 0x4000150c ); -PROVIDE( _fwalk = 0x40001518 ); -PROVIDE( _fwalk_reent = 0x40001524 ); -PROVIDE( __smakebuf_r = 0x40001530 ); -PROVIDE( __swhatbuf_r = 0x4000153c ); -PROVIDE( __swbuf_r = 0x40001548 ); -PROVIDE( __swbuf = 0x40001554 ); -PROVIDE( __swsetup_r = 0x40001560 ); -/* Data (.data, .bss, .rodata) */ -PROVIDE( syscall_table_ptr = 0x3fceffd4 ); -PROVIDE( _global_impure_ptr = 0x3fceffd0 ); - -/*************************************** - Group newlib_nano_format - ***************************************/ - -/* Functions */ -PROVIDE( __sprint_r = 0x4000156c ); -PROVIDE( _fiprintf_r = 0x40001578 ); -PROVIDE( _fprintf_r = 0x40001584 ); -PROVIDE( _printf_common = 0x40001590 ); -PROVIDE( _printf_i = 0x4000159c ); -PROVIDE( _vfiprintf_r = 0x400015a8 ); -PROVIDE( _vfprintf_r = 0x400015b4 ); -PROVIDE( fiprintf = 0x400015c0 ); -PROVIDE( fprintf = 0x400015cc ); -PROVIDE( printf = 0x400015d8 ); -PROVIDE( vfiprintf = 0x400015e4 ); -PROVIDE( vfprintf = 0x400015f0 ); diff --git a/boards/xtensa/esp32s3/common/scripts/esp32s3_rom_api.ld b/boards/xtensa/esp32s3/common/scripts/esp32s3_rom_api.ld deleted file mode 100644 index 18172254ef..0000000000 --- a/boards/xtensa/esp32s3/common/scripts/esp32s3_rom_api.ld +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** - * boards/xtensa/esp32s3/common/scripts/esp32s3_peripherals.ld - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. The - * ASF licenses this file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - ****************************************************************************/ - -/* ROM APIs */ - -PROVIDE ( esp_rom_crc32_le = crc32_le ); -PROVIDE ( esp_rom_crc16_le = crc16_le ); -PROVIDE ( esp_rom_crc8_le = crc8_le ); -PROVIDE ( esp_rom_crc32_be = crc32_be ); -PROVIDE ( esp_rom_crc16_be = crc16_be ); -PROVIDE ( esp_rom_crc8_be = crc8_be ); - -PROVIDE ( esp_rom_gpio_pad_select_gpio = gpio_pad_select_gpio ); -PROVIDE ( esp_rom_gpio_pad_pullup_only = gpio_pad_pullup ); -PROVIDE ( esp_rom_gpio_pad_set_drv = gpio_pad_set_drv ); -PROVIDE ( esp_rom_gpio_pad_unhold = gpio_pad_unhold ); -PROVIDE ( esp_rom_gpio_connect_in_signal = gpio_matrix_in ); -PROVIDE ( esp_rom_gpio_connect_out_signal = gpio_matrix_out ); - -PROVIDE ( esp_rom_efuse_mac_address_crc8 = esp_crc8 ); -PROVIDE ( esp_rom_efuse_get_flash_gpio_info = ets_efuse_get_spiconfig ); -PROVIDE ( esp_rom_efuse_get_flash_wp_gpio = ets_efuse_get_wp_pad ); -PROVIDE ( esp_rom_efuse_is_secure_boot_enabled = ets_efuse_secure_boot_enabled ); - -PROVIDE ( esp_rom_uart_flush_tx = uart_tx_flush ); -PROVIDE ( esp_rom_uart_tx_one_char = uart_tx_one_char ); -PROVIDE ( esp_rom_uart_tx_wait_idle = uart_tx_wait_idle ); -PROVIDE ( esp_rom_uart_rx_one_char = uart_rx_one_char ); -PROVIDE ( esp_rom_uart_rx_string = UartRxString ); -PROVIDE ( esp_rom_uart_set_as_console = uart_tx_switch ); -PROVIDE ( esp_rom_uart_usb_acm_init = Uart_Init_USB ); -PROVIDE ( esp_rom_uart_putc = ets_write_char_uart ); - -PROVIDE ( esp_rom_md5_init = MD5Init ); -PROVIDE ( esp_rom_md5_update = MD5Update ); -PROVIDE ( esp_rom_md5_final = MD5Final ); - -PROVIDE ( esp_rom_software_reset_system = software_reset ); -PROVIDE ( esp_rom_software_reset_cpu = software_reset_cpu ); - -PROVIDE ( esp_rom_printf = ets_printf ); -PROVIDE ( esp_rom_delay_us = ets_delay_us ); -PROVIDE ( esp_rom_install_uart_printf = ets_install_uart_printf ); -PROVIDE ( esp_rom_get_reset_reason = rtc_get_reset_reason ); -PROVIDE ( esp_rom_route_intr_matrix = intr_matrix_set ); -PROVIDE ( esp_rom_get_cpu_ticks_per_us = ets_get_cpu_frequency ); - -PROVIDE ( esp_rom_spiflash_attach = spi_flash_attach ); -PROVIDE ( esp_rom_spiflash_clear_bp = esp_rom_spiflash_unlock ); -PROVIDE ( esp_rom_spiflash_write_enable = SPI_write_enable); -PROVIDE ( esp_rom_spiflash_erase_area = SPIEraseArea ); - -PROVIDE ( esp_rom_spiflash_fix_dummylen = spi_dummy_len_fix ); -PROVIDE ( esp_rom_spiflash_set_drvs = SetSpiDrvs); -PROVIDE ( esp_rom_spiflash_select_padsfunc = SelectSpiFunction ); -PROVIDE ( esp_rom_spiflash_common_cmd = SPI_Common_Command ); - -PROVIDE ( esp_rom_regi2c_read = rom_i2c_readReg ); -PROVIDE ( esp_rom_regi2c_read_mask = rom_i2c_readReg_Mask ); -PROVIDE ( esp_rom_regi2c_write = rom_i2c_writeReg ); -PROVIDE ( esp_rom_regi2c_write_mask = rom_i2c_writeReg_Mask ); \ No newline at end of file diff --git a/boards/xtensa/esp32s3/common/scripts/kernel-space.ld b/boards/xtensa/esp32s3/common/scripts/kernel-space.ld index e08c2bca08..80a70b1bf1 100644 --- a/boards/xtensa/esp32s3/common/scripts/kernel-space.ld +++ b/boards/xtensa/esp32s3/common/scripts/kernel-space.ld @@ -106,6 +106,8 @@ SECTIONS esp32s3_userspace.*(.literal .text .literal.* .text.*) *librtc.a:(.literal .text .literal.* .text.*) *libkarch.a:esp32s3_spiflash.*(.literal .text .literal.* .text.*) + *libkarch.a:cache_hal.*(.literal .text .literal.* .text.*) + *libkarch.a:esp_rom_cache_esp32s2_esp32s3.*(.literal .text .literal.* .text.*) *libkarch.a:xtensa_cpupause.*(.literal .text .literal.* .text.*) *libkarch.a:xtensa_copystate.*(.literal .text .literal.* .text.*) *libkarch.a:xtensa_interruptcontext.*(.literal .text .literal.* .text.*) diff --git a/boards/xtensa/esp32s3/common/scripts/legacy_sections.ld b/boards/xtensa/esp32s3/common/scripts/legacy_sections.ld index 0b1626ed35..927545e781 100644 --- a/boards/xtensa/esp32s3/common/scripts/legacy_sections.ld +++ b/boards/xtensa/esp32s3/common/scripts/legacy_sections.ld @@ -141,6 +141,8 @@ SECTIONS defined(CONFIG_ESP32S3_SPIRAM)) *libc.a:lib_stackchk.*(.literal .text .literal.* .text.*) #endif + *libarch.a:*cache_hal.*(.text .text.* .literal .literal.*) + *libarch.a:*esp_rom_cache_esp32s2_esp32s3.*(.literal .text .literal.* .text.*) *(.wifirxiram .wifirxiram.*) *(.wifi0iram .wifi0iram.*) @@ -225,6 +227,7 @@ SECTIONS *libphy.a:(.rodata .rodata.*) *libarch.a:xtensa_context.*(.rodata .rodata.*) + *libarch.a:*cache_hal.*(.rodata .rodata.*) #if defined(CONFIG_STACK_CANARIES) && \ (defined(CONFIG_ESP32S3_SPIFLASH) || \ defined(CONFIG_ESP32S3_SPIRAM)) @@ -250,6 +253,13 @@ SECTIONS *(.fini) *(.gnu.version) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram.*) + *(.wifiextrairam .wifiextrairam.*) + *(EXCLUDE_FILE(*libpp.a) .wifiorslpiram EXCLUDE_FILE(*libpp.a) .wifiorslpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram.*) + *(.wifislpiram .wifislpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram.*) + /* CPU will try to prefetch up to 16 bytes of instructions. * This means that any configuration (e.g. MMU, PMS) must allow * safe access to up to 16 bytes after the last real instruction, add diff --git a/boards/xtensa/esp32s3/common/scripts/mcuboot_sections.ld b/boards/xtensa/esp32s3/common/scripts/mcuboot_sections.ld index 8c94e326ce..3eaea7a3fd 100644 --- a/boards/xtensa/esp32s3/common/scripts/mcuboot_sections.ld +++ b/boards/xtensa/esp32s3/common/scripts/mcuboot_sections.ld @@ -421,6 +421,13 @@ SECTIONS *(.fini) *(.gnu.version) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram.*) + *(.wifiextrairam .wifiextrairam.*) + *(EXCLUDE_FILE(*libpp.a) .wifiorslpiram EXCLUDE_FILE(*libpp.a) .wifiorslpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram.*) + *(.wifislpiram .wifislpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram.*) + /* CPU will try to prefetch up to 16 bytes of instructions. * This means that any configuration (e.g. MMU, PMS) must allow * safe access to up to 16 bytes after the last real instruction, add diff --git a/boards/xtensa/esp32s3/common/scripts/protected_memory.ld b/boards/xtensa/esp32s3/common/scripts/protected_memory.ld index 896d87ab42..16ee5a5919 100644 --- a/boards/xtensa/esp32s3/common/scripts/protected_memory.ld +++ b/boards/xtensa/esp32s3/common/scripts/protected_memory.ld @@ -80,7 +80,7 @@ MEMORY /* Instruction RAM */ UIRAM (RWX) : org = SRAM_IRAM_ORG, len = 16K - KIRAM (RWX) : org = ORIGIN(UIRAM) + LENGTH(UIRAM), len = 32K + KIRAM (RWX) : org = ORIGIN(UIRAM) + LENGTH(UIRAM), len = 48K /* Flash mapped instruction data. */ diff --git a/boards/xtensa/esp32s3/common/scripts/simple_boot_sections.ld b/boards/xtensa/esp32s3/common/scripts/simple_boot_sections.ld index 00b84578bb..09b8c3c179 100644 --- a/boards/xtensa/esp32s3/common/scripts/simple_boot_sections.ld +++ b/boards/xtensa/esp32s3/common/scripts/simple_boot_sections.ld @@ -199,6 +199,7 @@ SECTIONS *libarch.a:*log_noos.*(.text .text.* .literal .literal.*) *libarch.a:*cpu_region_protect.*(.text .text.* .literal .literal.*) *libarch.a:*mspi_timing_tuning.*(.text .text.* .literal .literal.*) + *libarch.a:*esp_rom_cache_esp32s2_esp32s3.*(.literal .text .literal.* .text.*) *libc.a:*lib_instrument.*(.text .text.* .literal .literal.*) @@ -485,6 +486,13 @@ SECTIONS *(.fini) *(.gnu.version) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram.*) + *(.wifiextrairam .wifiextrairam.*) + *(EXCLUDE_FILE(*libpp.a) .wifiorslpiram EXCLUDE_FILE(*libpp.a) .wifiorslpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram.*) + *(.wifislpiram .wifislpiram.*) + *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram.*) + /* CPU will try to prefetch up to 16 bytes of instructions. * This means that any configuration (e.g. MMU, PMS) must allow * safe access to up to 16 bytes after the last real instruction, add diff --git a/boards/xtensa/esp32s3/esp32s3-box/scripts/Make.defs b/boards/xtensa/esp32s3/esp32s3-box/scripts/Make.defs index 9fb14d9885..0b0764bb11 100644 --- a/boards/xtensa/esp32s3/esp32s3-box/scripts/Make.defs +++ b/boards/xtensa/esp32s3/esp32s3-box/scripts/Make.defs @@ -24,8 +24,6 @@ include $(TOPDIR)/tools/esp32s3/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_peripherals.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_api.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_aliases.ld # Pick the linker scripts from the board level if they exist, if not diff --git a/boards/xtensa/esp32s3/esp32s3-devkit/configs/sta_softap/defconfig b/boards/xtensa/esp32s3/esp32s3-devkit/configs/sta_softap/defconfig index 48de649fa1..4eb8656c2c 100644 --- a/boards/xtensa/esp32s3/esp32s3-devkit/configs/sta_softap/defconfig +++ b/boards/xtensa/esp32s3/esp32s3-devkit/configs/sta_softap/defconfig @@ -26,12 +26,14 @@ CONFIG_BUILTIN=y CONFIG_DEFAULT_TASK_STACKSIZE=4096 CONFIG_DRIVERS_IEEE80211=y CONFIG_DRIVERS_WIRELESS=y +CONFIG_ESP32S3_MERGE_BINS=y CONFIG_ESP32S3_RT_TIMER_TASK_STACK_SIZE=4096 CONFIG_ESP32S3_SPIFLASH=y CONFIG_ESP32S3_SPIFLASH_SPIFFS=y CONFIG_ESP32S3_UART0=y CONFIG_ESP32S3_WIFI=y CONFIG_ESP32S3_WIFI_STATION_SOFTAP=y +CONFIG_ESP_WPA_DEBUG_PRINT=y CONFIG_EXAMPLES_DHCPD=y CONFIG_EXAMPLES_RANDOM=y CONFIG_FS_PROCFS=y diff --git a/boards/xtensa/esp32s3/esp32s3-devkit/scripts/Make.defs b/boards/xtensa/esp32s3/esp32s3-devkit/scripts/Make.defs index 9d7ea3f173..050b603218 100644 --- a/boards/xtensa/esp32s3/esp32s3-devkit/scripts/Make.defs +++ b/boards/xtensa/esp32s3/esp32s3-devkit/scripts/Make.defs @@ -24,8 +24,6 @@ include $(TOPDIR)/tools/esp32s3/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_peripherals.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_api.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_aliases.ld # Pick the linker scripts from the board level if they exist, if not diff --git a/boards/xtensa/esp32s3/esp32s3-eye/scripts/Make.defs b/boards/xtensa/esp32s3/esp32s3-eye/scripts/Make.defs index 48aebb5325..3f356bfe08 100644 --- a/boards/xtensa/esp32s3/esp32s3-eye/scripts/Make.defs +++ b/boards/xtensa/esp32s3/esp32s3-eye/scripts/Make.defs @@ -24,8 +24,6 @@ include $(TOPDIR)/tools/esp32s3/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_peripherals.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_api.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_aliases.ld # Pick the linker scripts from the board level if they exist, if not diff --git a/boards/xtensa/esp32s3/esp32s3-korvo-2/scripts/Make.defs b/boards/xtensa/esp32s3/esp32s3-korvo-2/scripts/Make.defs index 0c03b2e27d..56c7ea045c 100644 --- a/boards/xtensa/esp32s3/esp32s3-korvo-2/scripts/Make.defs +++ b/boards/xtensa/esp32s3/esp32s3-korvo-2/scripts/Make.defs @@ -24,8 +24,6 @@ include $(TOPDIR)/tools/esp32s3/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_peripherals.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_api.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_aliases.ld # Pick the linker scripts from the board level if they exist, if not diff --git a/boards/xtensa/esp32s3/esp32s3-lcd-ev/scripts/Make.defs b/boards/xtensa/esp32s3/esp32s3-lcd-ev/scripts/Make.defs index 4ac4c56471..cd0ec96572 100644 --- a/boards/xtensa/esp32s3/esp32s3-lcd-ev/scripts/Make.defs +++ b/boards/xtensa/esp32s3/esp32s3-lcd-ev/scripts/Make.defs @@ -24,8 +24,6 @@ include $(TOPDIR)/tools/esp32s3/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_peripherals.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_api.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_aliases.ld # Pick the linker scripts from the board level if they exist, if not diff --git a/boards/xtensa/esp32s3/esp32s3-meadow/scripts/Make.defs b/boards/xtensa/esp32s3/esp32s3-meadow/scripts/Make.defs index b3d65c6cb8..334e408d60 100644 --- a/boards/xtensa/esp32s3/esp32s3-meadow/scripts/Make.defs +++ b/boards/xtensa/esp32s3/esp32s3-meadow/scripts/Make.defs @@ -24,8 +24,6 @@ include $(TOPDIR)/tools/esp32s3/Config.mk include $(TOPDIR)/arch/xtensa/src/lx7/Toolchain.defs ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_peripherals.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom.ld -ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_api.ld ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32s3_rom_aliases.ld # Pick the linker scripts from the board level if they exist, if not