diff --git a/components/bootloader/subproject/CMakeLists.txt b/components/bootloader/subproject/CMakeLists.txt index aec2c7c0f0..8fb9509cee 100644 --- a/components/bootloader/subproject/CMakeLists.txt +++ b/components/bootloader/subproject/CMakeLists.txt @@ -69,8 +69,8 @@ idf_build_set_property(__OUTPUT_SDKCONFIG 0) # Define a property for the default linker script set(LD_DEFAULT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/main/ld/${IDF_TARGET}") project(bootloader) -if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) - target_linker_script("__idf_main" INTERFACE "${LD_DEFAULT_PATH}/bootloader.rev3.ld.in") +if(CONFIG_ESP32P4_SELECTS_REV_LESS_V3) + target_linker_script("__idf_main" INTERFACE "${LD_DEFAULT_PATH}/bootloader.rev0_2.ld.in") else() target_linker_script("__idf_main" INTERFACE "${LD_DEFAULT_PATH}/bootloader.ld.in") endif() diff --git a/components/bootloader/subproject/main/ld/esp32p4/bootloader.ld.in b/components/bootloader/subproject/main/ld/esp32p4/bootloader.ld.in index 7837346e9d..8bf17b9974 100644 --- a/components/bootloader/subproject/main/ld/esp32p4/bootloader.ld.in +++ b/components/bootloader/subproject/main/ld/esp32p4/bootloader.ld.in @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -24,7 +24,7 @@ */ /* These lengths can be adjusted, if necessary: */ -bootloader_usable_dram_end = 0x4ff3abd0; +bootloader_usable_dram_end = 0x4ffbcfc0; bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */ bootloader_dram_seg_len = 0x5000; bootloader_iram_loader_seg_len = 0x7000; @@ -49,7 +49,7 @@ MEMORY * 2. Update the value in this assert. * 3. Update SRAM_DRAM_END in components/esp_system/ld/esp32p4/memory.ld.in to the same value. */ -ASSERT(bootloader_iram_loader_seg_start == 0x4FF2CBD0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END"); +ASSERT(bootloader_iram_loader_seg_start == 0x4FFAEFC0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END"); /* Default entry point: */ ENTRY(call_start_cpu0); @@ -89,10 +89,12 @@ SECTIONS *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*) *libhal.a:cache_hal.*(.literal .text .literal.* .text.*) *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*) + *libesp_hal_wdt.a:wdt_hal_iram.*(.literal .text .literal.* .text.*) *libesp_hal_security.a:huk_hal.*(.literal .text .literal.* .text.*) *libesp_hal_security.a:key_mgr_hal.*(.literal .text .literal.* .text.*) + *libesp_security.a:esp_key_mgr.*(.literal .text .literal.* .text.*) *libesp_security.a:esp_crypto_periph_clk.*(.literal .text .literal.* .text.*) - *libesp_hal_wdt.a:wdt_hal_iram.*(.literal .text .literal.* .text.*) + *libesp_security.a:esp_crypto_lock.*(.literal .text .literal.* .text.*) *libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*) *libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*) *libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*) @@ -282,9 +284,6 @@ SECTIONS */ .noload 0 (INFO) : { - /* Reserve first 4 bytes as zero for vars pointed to NULL */ - . = 0; - LONG(0); _noload_keep_in_elf_start = ABSOLUTE(.); KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*)) _noload_keep_in_elf_end = ABSOLUTE(.); @@ -295,38 +294,38 @@ SECTIONS /** * Appendix: Memory Usage of ROM bootloader * - * 0x4ff296b8 ------------------> _dram0_0_start - * | | - * | | - * | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h - * | | - * | | - * 0x4ff3afc0 ------------------> __stack_sentry - * | | - * | | 2. Startup pro cpu stack (freed when IDF app is running) - * | | - * 0x4ff3cfc0 ------------------> __stack (pro cpu) - * | | - * | | Startup app cpu stack - * | | - * 0x4ff3efc0 ------------------> __stack_app (app cpu) - * | | - * | | - * | | 3. Shared memory only used in startup code or nonos/early boot* - * | | (can be freed when IDF runs) - * | | - * | | - * 0x4ff3fba4 ------------------> _dram0_rtos_reserved_start - * | | - * | | - * | | 4. Shared memory used in startup code and when IDF runs - * | | - * | | - * 0x4ff3ff94 ------------------> _dram0_rtos_reserved_end - * | | - * 0x4ff3ffc8 ------------------> _data_start_interface - * | | - * | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible) - * | | - * 0x4ff40000 ------------------> _data_end_interface + * 0x4ffa96b8 ------------------> _dram0_0_start + * | | + * | | + * | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h + * | | + * | | + * 0x4ffbafc0 ------------------> __stack_sentry + * | | + * | | 2. Startup pro cpu stack (freed when IDF app is running) + * | | + * 0x4ffbcfc0 ------------------> __stack (pro cpu) + * | | + * | | Startup app cpu stack + * | | + * 0x4ffbefc0 ------------------> __stack_app (app cpu) + * | | + * | | + * | | 3. Shared memory only used in startup code or nonos/early boot* + * | | (can be freed when IDF runs) + * | | + * | | + * 0x4ffbfbb0 ------------------> _dram0_rtos_reserved_start + * | | + * | | + * | | 4. Shared memory used in startup code and when IDF runs + * | | + * | | + * 0x4ffbffa4 ------------------> _dram0_rtos_reserved_end + * | | + * 0x4ffbffc8 ------------------> _data_start_interface + * | | + * | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible) + * | | + * 0x4ffc0000 ------------------> _data_end_interface */ diff --git a/components/bootloader/subproject/main/ld/esp32p4/bootloader.rev3.ld.in b/components/bootloader/subproject/main/ld/esp32p4/bootloader.rev0_2.ld.in similarity index 84% rename from components/bootloader/subproject/main/ld/esp32p4/bootloader.rev3.ld.in rename to components/bootloader/subproject/main/ld/esp32p4/bootloader.rev0_2.ld.in index 8bf17b9974..7837346e9d 100644 --- a/components/bootloader/subproject/main/ld/esp32p4/bootloader.rev3.ld.in +++ b/components/bootloader/subproject/main/ld/esp32p4/bootloader.rev0_2.ld.in @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -24,7 +24,7 @@ */ /* These lengths can be adjusted, if necessary: */ -bootloader_usable_dram_end = 0x4ffbcfc0; +bootloader_usable_dram_end = 0x4ff3abd0; bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */ bootloader_dram_seg_len = 0x5000; bootloader_iram_loader_seg_len = 0x7000; @@ -49,7 +49,7 @@ MEMORY * 2. Update the value in this assert. * 3. Update SRAM_DRAM_END in components/esp_system/ld/esp32p4/memory.ld.in to the same value. */ -ASSERT(bootloader_iram_loader_seg_start == 0x4FFAEFC0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END"); +ASSERT(bootloader_iram_loader_seg_start == 0x4FF2CBD0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END"); /* Default entry point: */ ENTRY(call_start_cpu0); @@ -89,12 +89,10 @@ SECTIONS *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*) *libhal.a:cache_hal.*(.literal .text .literal.* .text.*) *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*) - *libesp_hal_wdt.a:wdt_hal_iram.*(.literal .text .literal.* .text.*) *libesp_hal_security.a:huk_hal.*(.literal .text .literal.* .text.*) *libesp_hal_security.a:key_mgr_hal.*(.literal .text .literal.* .text.*) - *libesp_security.a:esp_key_mgr.*(.literal .text .literal.* .text.*) *libesp_security.a:esp_crypto_periph_clk.*(.literal .text .literal.* .text.*) - *libesp_security.a:esp_crypto_lock.*(.literal .text .literal.* .text.*) + *libesp_hal_wdt.a:wdt_hal_iram.*(.literal .text .literal.* .text.*) *libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*) *libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*) *libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*) @@ -284,6 +282,9 @@ SECTIONS */ .noload 0 (INFO) : { + /* Reserve first 4 bytes as zero for vars pointed to NULL */ + . = 0; + LONG(0); _noload_keep_in_elf_start = ABSOLUTE(.); KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*)) _noload_keep_in_elf_end = ABSOLUTE(.); @@ -294,38 +295,38 @@ SECTIONS /** * Appendix: Memory Usage of ROM bootloader * - * 0x4ffa96b8 ------------------> _dram0_0_start - * | | - * | | - * | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h - * | | - * | | - * 0x4ffbafc0 ------------------> __stack_sentry - * | | - * | | 2. Startup pro cpu stack (freed when IDF app is running) - * | | - * 0x4ffbcfc0 ------------------> __stack (pro cpu) - * | | - * | | Startup app cpu stack - * | | - * 0x4ffbefc0 ------------------> __stack_app (app cpu) - * | | - * | | - * | | 3. Shared memory only used in startup code or nonos/early boot* - * | | (can be freed when IDF runs) - * | | - * | | - * 0x4ffbfbb0 ------------------> _dram0_rtos_reserved_start - * | | - * | | - * | | 4. Shared memory used in startup code and when IDF runs - * | | - * | | - * 0x4ffbffa4 ------------------> _dram0_rtos_reserved_end - * | | - * 0x4ffbffc8 ------------------> _data_start_interface - * | | - * | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible) - * | | - * 0x4ffc0000 ------------------> _data_end_interface + * 0x4ff296b8 ------------------> _dram0_0_start + * | | + * | | + * | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h + * | | + * | | + * 0x4ff3afc0 ------------------> __stack_sentry + * | | + * | | 2. Startup pro cpu stack (freed when IDF app is running) + * | | + * 0x4ff3cfc0 ------------------> __stack (pro cpu) + * | | + * | | Startup app cpu stack + * | | + * 0x4ff3efc0 ------------------> __stack_app (app cpu) + * | | + * | | + * | | 3. Shared memory only used in startup code or nonos/early boot* + * | | (can be freed when IDF runs) + * | | + * | | + * 0x4ff3fba4 ------------------> _dram0_rtos_reserved_start + * | | + * | | + * | | 4. Shared memory used in startup code and when IDF runs + * | | + * | | + * 0x4ff3ff94 ------------------> _dram0_rtos_reserved_end + * | | + * 0x4ff3ffc8 ------------------> _data_start_interface + * | | + * | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible) + * | | + * 0x4ff40000 ------------------> _data_end_interface */ diff --git a/components/esp_hw_support/port/esp32p4/Kconfig.hw_support b/components/esp_hw_support/port/esp32p4/Kconfig.hw_support index 9236f41d8c..8208113c3c 100644 --- a/components/esp_hw_support/port/esp32p4/Kconfig.hw_support +++ b/components/esp_hw_support/port/esp32p4/Kconfig.hw_support @@ -12,7 +12,6 @@ config ESP32P4_SELECTS_REV_LESS_V3 choice ESP32P4_REV_MIN prompt "Minimum Supported ESP32-P4 Revision" - default ESP32P4_REV_MIN_300 if IDF_CI_BUILD default ESP32P4_REV_MIN_301 help Required minimum chip revision. ESP-IDF will check for it and diff --git a/components/esp_rom/CMakeLists.txt b/components/esp_rom/CMakeLists.txt index e218b18d1f..0b264900a8 100644 --- a/components/esp_rom/CMakeLists.txt +++ b/components/esp_rom/CMakeLists.txt @@ -93,8 +93,8 @@ if(target STREQUAL "linux") target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-integer-overflow -Wno-shift-count-overflow) endif() else() - if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) - target_linker_script(${COMPONENT_LIB} INTERFACE "${target_folder}/${ld_folder}/${target}.rom.eco5.ld") + if(CONFIG_ESP32P4_SELECTS_REV_LESS_V3) + target_linker_script(${COMPONENT_LIB} INTERFACE "${target_folder}/${ld_folder}/${target}.rom.eco0_4.ld") else() target_linker_script(${COMPONENT_LIB} INTERFACE "${target_folder}/${ld_folder}/${target}.rom.ld") endif() @@ -106,14 +106,14 @@ else() endif() if(CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB) - if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) - rom_linker_script("eco5.libgcc") + if(CONFIG_ESP32P4_SELECTS_REV_LESS_V3) + rom_linker_script("eco0_4.libgcc") else() rom_linker_script("libgcc") endif() else() - if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) - rom_linker_script("eco5.rvfp") + if(CONFIG_ESP32P4_SELECTS_REV_LESS_V3) + rom_linker_script("eco0_4.rvfp") else() rom_linker_script("rvfp") endif() @@ -151,8 +151,8 @@ if(BOOTLOADER_BUILD) if(target STREQUAL "esp32" OR target STREQUAL "esp32s2") rom_linker_script("libc-funcs") else() - if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) - rom_linker_script("eco5.libc") + if(CONFIG_ESP32P4_SELECTS_REV_LESS_V3) + rom_linker_script("eco0_4.libc") else() rom_linker_script("libc") endif() @@ -161,8 +161,8 @@ if(BOOTLOADER_BUILD) rom_linker_script("libc-suboptimal_for_misaligned_mem") endif() if(CONFIG_LIBC_NEWLIB) - if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) - rom_linker_script("eco5.newlib") + if(CONFIG_ESP32P4_SELECTS_REV_LESS_V3) + rom_linker_script("eco0_4.newlib") else() rom_linker_script("newlib") endif() @@ -316,10 +316,11 @@ else() # Regular app build endif() endif() + if(CONFIG_ESP_ROM_HAS_NEWLIB AND NOT target STREQUAL "esp32" AND NOT target STREQUAL "esp32s2") # ESP32 and S2 are a bit different, keep them as special cases in the target specific include section - if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) - rom_linker_script("eco5.libc") + if(CONFIG_ESP32P4_SELECTS_REV_LESS_V3) + rom_linker_script("eco0_4.libc") else() rom_linker_script("libc") endif() @@ -327,8 +328,8 @@ else() # Regular app build rom_linker_script("libc-suboptimal_for_misaligned_mem") endif() if(CONFIG_LIBC_NEWLIB) - if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) - rom_linker_script("eco5.newlib") + if(CONFIG_ESP32P4_SELECTS_REV_LESS_V3) + rom_linker_script("eco0_4.newlib") else() rom_linker_script("newlib") endif() diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.ld similarity index 54% rename from components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.ld rename to components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.ld index eb227ead1d..428f076109 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.ld @@ -1,14 +1,14 @@ /* - * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ /* ROM function interface esp32p4.rom.ld for esp32p4 * * - * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum 56d78222be1daa0502090a078288f4d5 + * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum f6516bd9708d890f63db87f8aed53ca7 * - * Compatible with ROM where ECO version equal or greater to 5. + * Compatible with ROM where ECO version equal or greater to 0. * * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. */ @@ -64,8 +64,8 @@ Uart_Init = 0x4fc000c0; ets_set_user_start = 0x4fc000c4; /* Data (.data, .bss, .rodata) */ ets_rom_layout_p = 0x4fc1fffc; -ets_ops_table_ptr = 0x4ffbfff4; -g_saved_pc = 0x4ffbfff8; +ets_ops_table_ptr = 0x4ff3fff4; +g_saved_pc = 0x4ff3fff8; /*************************************** @@ -165,9 +165,9 @@ spi_flash_guard_set = 0x4fc001f0; spi_flash_guard_get = 0x4fc001f4; spi_flash_read_encrypted = 0x4fc001f8; /* Data (.data, .bss, .rodata) */ -rom_spiflash_legacy_funcs = 0x4ffbffec; -rom_spiflash_legacy_data = 0x4ffbffe8; -g_flash_guard_ops = 0x4ffbfff0; +rom_spiflash_legacy_funcs = 0x4ff3ffec; +rom_spiflash_legacy_data = 0x4ff3ffe8; +g_flash_guard_ops = 0x4ff3fff0; /*************************************** @@ -266,17 +266,20 @@ Cache_PSRAM_MMU_Set = 0x4fc00520; Cache_PSRAM_MMU_Set_Secure = 0x4fc00524; Cache_Count_Flash_Pages = 0x4fc00528; Cache_Flash_To_SPIRAM_Copy = 0x4fc0052c; -Cache_Set_IDROM_MMU_Size = 0x4fc00530; -flash2spiram_instruction_offset = 0x4fc00534; -flash2spiram_rodata_offset = 0x4fc00538; -flash_instr_rodata_start_page = 0x4fc0053c; -flash_instr_rodata_end_page = 0x4fc00540; -Cache_Set_IDROM_MMU_Info = 0x4fc00544; -Cache_Get_IROM_MMU_End = 0x4fc00548; -Cache_Get_DROM_MMU_End = 0x4fc0054c; +Cache_Travel_Tag_Memory = 0x4fc00530; +Cache_Travel_Tag_Memory2 = 0x4fc00534; +Cache_Get_Virtual_Addr = 0x4fc00538; +Cache_Set_IDROM_MMU_Size = 0x4fc0053c; +flash2spiram_instruction_offset = 0x4fc00540; +flash2spiram_rodata_offset = 0x4fc00544; +flash_instr_rodata_start_page = 0x4fc00548; +flash_instr_rodata_end_page = 0x4fc0054c; +Cache_Set_IDROM_MMU_Info = 0x4fc00550; +Cache_Get_IROM_MMU_End = 0x4fc00554; +Cache_Get_DROM_MMU_End = 0x4fc00558; /* Data (.data, .bss, .rodata) */ -rom_cache_op_cb = 0x4ffbffdc; -rom_cache_internal_table_ptr = 0x4ffbffd8; +rom_cache_op_cb = 0x4ff3ffdc; +rom_cache_internal_table_ptr = 0x4ff3ffd8; /*************************************** @@ -284,8 +287,8 @@ rom_cache_internal_table_ptr = 0x4ffbffd8; ***************************************/ /* Functions */ -ets_clk_get_xtal_freq = 0x4fc00550; -ets_clk_get_cpu_freq = 0x4fc00554; +ets_clk_get_xtal_freq = 0x4fc0055c; +ets_clk_get_cpu_freq = 0x4fc00560; /*************************************** @@ -293,27 +296,27 @@ ets_clk_get_cpu_freq = 0x4fc00554; ***************************************/ /* Functions */ -rom_gpio_set_output_level = 0x4fc00558; -rom_gpio_get_input_level = 0x4fc0055c; -rom_gpio_matrix_in = 0x4fc00560; -rom_gpio_matrix_out = 0x4fc00564; -rom_gpio_bypass_matrix_in = 0x4fc00568; -rom_gpio_output_disable = 0x4fc0056c; -rom_gpio_output_enable = 0x4fc00570; -rom_gpio_pad_input_disable = 0x4fc00574; -rom_gpio_pad_input_enable = 0x4fc00578; -rom_gpio_pad_pulldown = 0x4fc0057c; -rom_gpio_pad_pullup = 0x4fc00580; -rom_gpio_pad_select_gpio = 0x4fc00584; -rom_gpio_pad_set_drv = 0x4fc00588; -rom_gpio_pad_unhold = 0x4fc0058c; -rom_gpio_pad_hold = 0x4fc00590; -rom_gpio_lppad_select_mux = 0x4fc00594; -rom_gpio_ded_pad_set_drv = 0x4fc00598; -rom_gpio_ded_pad_pullup = 0x4fc0059c; -rom_gpio_ded_pad_pulldown = 0x4fc005a0; -rom_gpio_ded_pad_hold = 0x4fc005a4; -rom_gpio_ded_pad_unhold = 0x4fc005a8; +rom_gpio_set_output_level = 0x4fc00564; +rom_gpio_get_input_level = 0x4fc00568; +rom_gpio_matrix_in = 0x4fc0056c; +rom_gpio_matrix_out = 0x4fc00570; +rom_gpio_bypass_matrix_in = 0x4fc00574; +rom_gpio_output_disable = 0x4fc00578; +rom_gpio_output_enable = 0x4fc0057c; +rom_gpio_pad_input_disable = 0x4fc00580; +rom_gpio_pad_input_enable = 0x4fc00584; +rom_gpio_pad_pulldown = 0x4fc00588; +rom_gpio_pad_pullup = 0x4fc0058c; +rom_gpio_pad_select_gpio = 0x4fc00590; +rom_gpio_pad_set_drv = 0x4fc00594; +rom_gpio_pad_unhold = 0x4fc00598; +rom_gpio_pad_hold = 0x4fc0059c; +rom_gpio_lppad_select_mux = 0x4fc005a0; +rom_gpio_ded_pad_set_drv = 0x4fc005a4; +rom_gpio_ded_pad_pullup = 0x4fc005a8; +rom_gpio_ded_pad_pulldown = 0x4fc005ac; +rom_gpio_ded_pad_hold = 0x4fc005b0; +rom_gpio_ded_pad_unhold = 0x4fc005b4; /*************************************** @@ -321,18 +324,17 @@ rom_gpio_ded_pad_unhold = 0x4fc005a8; ***************************************/ /* Functions */ -esprv_intc_int_set_priority = 0x4fc005ac; -esprv_intc_int_set_threshold = 0x4fc005b0; -esprv_intc_int_enable = 0x4fc005b4; -esprv_intc_int_disable = 0x4fc005b8; -esprv_intc_int_set_type = 0x4fc005bc; -PROVIDE( intr_handler_set = 0x4fc005c0 ); -intr_matrix_set = 0x4fc005c4; -ets_intr_lock = 0x4fc005c8; -ets_intr_unlock = 0x4fc005cc; -ets_isr_attach = 0x4fc005d0; -ets_isr_mask = 0x4fc005d4; -ets_isr_unmask = 0x4fc005d8; +esprv_intc_int_set_priority = 0x4fc005b8; +esprv_intc_int_set_threshold = 0x4fc005bc; +esprv_intc_int_enable = 0x4fc005c0; +esprv_intc_int_disable = 0x4fc005c4; +PROVIDE( intr_handler_set = 0x4fc005cc ); +intr_matrix_set = 0x4fc005d0; +ets_intr_lock = 0x4fc005d4; +ets_intr_unlock = 0x4fc005d8; +ets_isr_attach = 0x4fc005dc; +ets_isr_mask = 0x4fc005e0; +ets_isr_unmask = 0x4fc005e4; /*************************************** @@ -340,52 +342,52 @@ ets_isr_unmask = 0x4fc005d8; ***************************************/ /* Functions */ -md5_vector = 0x4fc005dc; -MD5Init = 0x4fc005e0; -MD5Update = 0x4fc005e4; -MD5Final = 0x4fc005e8; -crc32_le = 0x4fc005ec; -crc16_le = 0x4fc005f0; -crc8_le = 0x4fc005f4; -crc32_be = 0x4fc005f8; -crc16_be = 0x4fc005fc; -crc8_be = 0x4fc00600; -esp_crc8 = 0x4fc00604; -ets_sha_enable = 0x4fc00608; -ets_sha_disable = 0x4fc0060c; -ets_sha_get_state = 0x4fc00610; -ets_sha_init = 0x4fc00614; -ets_sha_process = 0x4fc00618; -ets_sha_starts = 0x4fc0061c; -ets_sha_update = 0x4fc00620; -ets_sha_finish = 0x4fc00624; -ets_sha_clone = 0x4fc00628; -ets_hmac_enable = 0x4fc0062c; -ets_hmac_disable = 0x4fc00630; -ets_hmac_calculate_message = 0x4fc00634; -ets_hmac_calculate_downstream = 0x4fc00638; -ets_hmac_invalidate_downstream = 0x4fc0063c; -ets_jtag_enable_temporarily = 0x4fc00640; -ets_aes_enable = 0x4fc00644; -ets_aes_disable = 0x4fc00648; -ets_aes_setkey = 0x4fc0064c; -ets_aes_block = 0x4fc00650; -ets_aes_setkey_dec = 0x4fc00654; -ets_aes_setkey_enc = 0x4fc00658; -ets_bigint_enable = 0x4fc0065c; -ets_bigint_disable = 0x4fc00660; -ets_bigint_multiply = 0x4fc00664; -ets_bigint_modmult = 0x4fc00668; -ets_bigint_modexp = 0x4fc0066c; -ets_bigint_wait_finish = 0x4fc00670; -ets_bigint_getz = 0x4fc00674; -ets_ds_enable = 0x4fc00678; -ets_ds_disable = 0x4fc0067c; -ets_ds_start_sign = 0x4fc00680; -ets_ds_is_busy = 0x4fc00684; -ets_ds_finish_sign = 0x4fc00688; -ets_ds_encrypt_params = 0x4fc0068c; -ets_mgf1_sha256 = 0x4fc00690; +md5_vector = 0x4fc005e8; +MD5Init = 0x4fc005ec; +MD5Update = 0x4fc005f0; +MD5Final = 0x4fc005f4; +crc32_le = 0x4fc005f8; +crc16_le = 0x4fc005fc; +crc8_le = 0x4fc00600; +crc32_be = 0x4fc00604; +crc16_be = 0x4fc00608; +crc8_be = 0x4fc0060c; +esp_crc8 = 0x4fc00610; +ets_sha_enable = 0x4fc00614; +ets_sha_disable = 0x4fc00618; +ets_sha_get_state = 0x4fc0061c; +ets_sha_init = 0x4fc00620; +ets_sha_process = 0x4fc00624; +ets_sha_starts = 0x4fc00628; +ets_sha_update = 0x4fc0062c; +ets_sha_finish = 0x4fc00630; +ets_sha_clone = 0x4fc00634; +ets_hmac_enable = 0x4fc00638; +ets_hmac_disable = 0x4fc0063c; +ets_hmac_calculate_message = 0x4fc00640; +ets_hmac_calculate_downstream = 0x4fc00644; +ets_hmac_invalidate_downstream = 0x4fc00648; +ets_jtag_enable_temporarily = 0x4fc0064c; +ets_aes_enable = 0x4fc00650; +ets_aes_disable = 0x4fc00654; +ets_aes_setkey = 0x4fc00658; +ets_aes_block = 0x4fc0065c; +ets_aes_setkey_dec = 0x4fc00660; +ets_aes_setkey_enc = 0x4fc00664; +ets_bigint_enable = 0x4fc00668; +ets_bigint_disable = 0x4fc0066c; +ets_bigint_multiply = 0x4fc00670; +ets_bigint_modmult = 0x4fc00674; +ets_bigint_modexp = 0x4fc00678; +ets_bigint_wait_finish = 0x4fc0067c; +ets_bigint_getz = 0x4fc00680; +ets_ds_enable = 0x4fc00684; +ets_ds_disable = 0x4fc00688; +ets_ds_start_sign = 0x4fc0068c; +ets_ds_is_busy = 0x4fc00690; +ets_ds_finish_sign = 0x4fc00694; +ets_ds_encrypt_params = 0x4fc00698; +ets_mgf1_sha256 = 0x4fc0069c; /* Data (.data, .bss, .rodata) */ crc32_le_table_ptr = 0x4fc1fff8; crc16_le_table_ptr = 0x4fc1fff4; @@ -400,35 +402,35 @@ crc8_be_table_ptr = 0x4fc1ffe4; ***************************************/ /* Functions */ -ets_efuse_read = 0x4fc00694; -ets_efuse_program = 0x4fc00698; -ets_efuse_clear_program_registers = 0x4fc0069c; -ets_efuse_write_key = 0x4fc006a0; -ets_efuse_get_read_register_address = 0x4fc006a4; -ets_efuse_get_key_purpose = 0x4fc006a8; -ets_efuse_key_block_unused = 0x4fc006ac; -ets_efuse_find_unused_key_block = 0x4fc006b0; -ets_efuse_rs_calculate = 0x4fc006b4; -ets_efuse_count_unused_key_blocks = 0x4fc006b8; -ets_efuse_secure_boot_enabled = 0x4fc006bc; -ets_efuse_secure_boot_aggressive_revoke_enabled = 0x4fc006c0; -ets_efuse_cache_encryption_enabled = 0x4fc006c4; -ets_efuse_download_modes_disabled = 0x4fc006c8; -ets_efuse_find_purpose = 0x4fc006cc; -ets_efuse_force_send_resume = 0x4fc006d0; -ets_efuse_get_flash_delay_us = 0x4fc006d4; -ets_efuse_get_uart_print_control = 0x4fc006d8; -ets_efuse_direct_boot_mode_disabled = 0x4fc006dc; -ets_efuse_security_download_modes_enabled = 0x4fc006e0; -ets_efuse_jtag_disabled = 0x4fc006e4; -ets_efuse_usb_print_is_disabled = 0x4fc006e8; -ets_efuse_usb_download_mode_disabled = 0x4fc006ec; -ets_efuse_usb_device_disabled = 0x4fc006f0; -ets_efuse_get_km_huk_gen_state = 0x4fc006f4; -ets_efuse_get_km_deploy_only_once = 0x4fc006f8; -ets_efuse_get_force_use_km_key = 0x4fc006fc; -ets_efuse_xts_key_length_256 = 0x4fc00700; -ets_efuse_get_km_key_lock = 0x4fc00704; +ets_efuse_read = 0x4fc006a0; +ets_efuse_program = 0x4fc006a4; +ets_efuse_clear_program_registers = 0x4fc006a8; +ets_efuse_write_key = 0x4fc006ac; +ets_efuse_get_read_register_address = 0x4fc006b0; +ets_efuse_get_key_purpose = 0x4fc006b4; +ets_efuse_key_block_unused = 0x4fc006b8; +ets_efuse_find_unused_key_block = 0x4fc006bc; +ets_efuse_rs_calculate = 0x4fc006c0; +ets_efuse_count_unused_key_blocks = 0x4fc006c4; +ets_efuse_secure_boot_enabled = 0x4fc006c8; +ets_efuse_secure_boot_aggressive_revoke_enabled = 0x4fc006cc; +ets_efuse_cache_encryption_enabled = 0x4fc006d0; +ets_efuse_download_modes_disabled = 0x4fc006d4; +ets_efuse_find_purpose = 0x4fc006d8; +ets_efuse_force_send_resume = 0x4fc006dc; +ets_efuse_get_flash_delay_us = 0x4fc006e0; +ets_efuse_get_uart_print_control = 0x4fc006e4; +ets_efuse_direct_boot_mode_disabled = 0x4fc006e8; +ets_efuse_security_download_modes_enabled = 0x4fc006ec; +ets_efuse_jtag_disabled = 0x4fc006f0; +ets_efuse_usb_print_is_disabled = 0x4fc006f4; +ets_efuse_usb_download_mode_disabled = 0x4fc006f8; +ets_efuse_usb_device_disabled = 0x4fc006fc; +ets_efuse_get_km_huk_gen_state = 0x4fc00700; +ets_efuse_get_km_deploy_only_once = 0x4fc00704; +ets_efuse_get_force_use_km_key = 0x4fc00708; +ets_efuse_xts_key_length_256 = 0x4fc0070c; +ets_efuse_get_km_key_lock = 0x4fc00710; /*************************************** @@ -436,9 +438,9 @@ ets_efuse_get_km_key_lock = 0x4fc00704; ***************************************/ /* Functions */ -esp_rom_check_recover_key = 0x4fc00708; -esp_rom_km_huk_conf = 0x4fc0070c; -esp_rom_km_huk_risk = 0x4fc00710; +esp_rom_check_recover_key = 0x4fc00714; +esp_rom_km_huk_conf = 0x4fc00718; +esp_rom_km_huk_risk = 0x4fc0071c; /*************************************** @@ -446,13 +448,13 @@ esp_rom_km_huk_risk = 0x4fc00710; ***************************************/ /* Functions */ -ets_emsa_pss_verify = 0x4fc00714; -ets_rsa_pss_verify = 0x4fc00718; -ets_ecdsa_verify = 0x4fc0071c; -ets_secure_boot_verify_bootloader_with_keys = 0x4fc00720; -ets_secure_boot_verify_signature = 0x4fc00724; -ets_secure_boot_read_key_digests = 0x4fc00728; -ets_secure_boot_revoke_public_key_digest = 0x4fc0072c; +ets_emsa_pss_verify = 0x4fc00720; +ets_rsa_pss_verify = 0x4fc00724; +ets_ecdsa_verify = 0x4fc00728; +ets_secure_boot_verify_bootloader_with_keys = 0x4fc0072c; +ets_secure_boot_verify_signature = 0x4fc00730; +ets_secure_boot_read_key_digests = 0x4fc00734; +ets_secure_boot_revoke_public_key_digest = 0x4fc00738; /*************************************** @@ -460,10 +462,10 @@ ets_secure_boot_revoke_public_key_digest = 0x4fc0072c; ***************************************/ /* Functions */ -usb_serial_device_rx_one_char = 0x4fc008a4; -usb_serial_device_rx_one_char_block = 0x4fc008a8; -usb_serial_device_tx_flush = 0x4fc008ac; -usb_serial_device_tx_one_char = 0x4fc008b0; +usb_serial_device_rx_one_char = 0x4fc008b0; +usb_serial_device_rx_one_char_block = 0x4fc008b4; +usb_serial_device_tx_flush = 0x4fc008b8; +usb_serial_device_tx_one_char = 0x4fc008bc; /*************************************** @@ -471,13 +473,13 @@ usb_serial_device_tx_one_char = 0x4fc008b0; ***************************************/ /* Functions */ -Uart_Init_USB = 0x4fc008b4; -usb_serial_otg_rx_one_char = 0x4fc008b8; -usb_serial_otg_rx_one_char_block = 0x4fc008bc; -usb_serial_otg_tx_flush = 0x4fc008c0; -usb_serial_otg_tx_one_char = 0x4fc008c4; +Uart_Init_USB = 0x4fc008c0; +usb_serial_otg_rx_one_char = 0x4fc008c4; +usb_serial_otg_rx_one_char_block = 0x4fc008c8; +usb_serial_otg_tx_flush = 0x4fc008cc; +usb_serial_otg_tx_one_char = 0x4fc008d0; /* Data (.data, .bss, .rodata) */ -uart_acm_dev = 0x4ffbffd4; +uart_acm_dev = 0x4ff3ffd4; /*************************************** @@ -485,108 +487,99 @@ uart_acm_dev = 0x4ffbffd4; ***************************************/ /* Functions */ -cdc_acm_class_handle_req = 0x4fc008c8; -cdc_acm_init = 0x4fc008cc; -cdc_acm_fifo_fill = 0x4fc008d0; -cdc_acm_rx_fifo_cnt = 0x4fc008d4; -cdc_acm_fifo_read = 0x4fc008d8; -cdc_acm_irq_tx_enable = 0x4fc008dc; -cdc_acm_irq_tx_disable = 0x4fc008e0; -cdc_acm_irq_state_enable = 0x4fc008e4; -cdc_acm_irq_state_disable = 0x4fc008e8; -cdc_acm_irq_tx_ready = 0x4fc008ec; -cdc_acm_irq_rx_enable = 0x4fc008f0; -cdc_acm_irq_rx_disable = 0x4fc008f4; -cdc_acm_irq_rx_ready = 0x4fc008f8; -cdc_acm_irq_is_pending = 0x4fc008fc; -cdc_acm_irq_callback_set = 0x4fc00900; -cdc_acm_line_ctrl_set = 0x4fc00904; -cdc_acm_line_ctrl_get = 0x4fc00908; -cdc_acm_poll_out = 0x4fc0090c; -chip_usb_dw_did_persist = 0x4fc00910; -chip_usb_dw_init = 0x4fc00914; -chip_usb_detach = 0x4fc00918; -chip_usb_dw_prepare_persist = 0x4fc0091c; -chip_usb_get_persist_flags = 0x4fc00920; -chip_usb_set_persist_flags = 0x4fc00924; -cpio_start = 0x4fc00928; -cpio_feed = 0x4fc0092c; -cpio_done = 0x4fc00930; -cpio_destroy = 0x4fc00934; -dfu_flash_init = 0x4fc00938; -dfu_flash_erase = 0x4fc0093c; -dfu_flash_program = 0x4fc00940; -dfu_flash_read = 0x4fc00944; -dfu_flash_attach = 0x4fc00948; -dfu_cpio_callback = 0x4fc0094c; -dfu_updater_get_err = 0x4fc00950; -dfu_updater_clear_err = 0x4fc00954; -dfu_updater_enable = 0x4fc00958; -dfu_updater_begin = 0x4fc0095c; -dfu_updater_feed = 0x4fc00960; -dfu_updater_end = 0x4fc00964; -dfu_updater_set_raw_addr = 0x4fc00968; -dfu_updater_flash_read = 0x4fc0096c; -usb_dc_prepare_persist = 0x4fc00970; -usb_dw_isr_handler = 0x4fc00974; -usb_dc_attach = 0x4fc00978; -usb_dc_detach = 0x4fc0097c; -usb_dc_reset = 0x4fc00980; -usb_dc_set_address = 0x4fc00984; -usb_dc_ep_check_cap = 0x4fc00988; -usb_dc_ep_configure = 0x4fc0098c; -usb_dc_ep_set_stall = 0x4fc00990; -usb_dc_ep_clear_stall = 0x4fc00994; -usb_dc_ep_halt = 0x4fc00998; -usb_dc_ep_is_stalled = 0x4fc0099c; -usb_dc_ep_enable = 0x4fc009a0; -usb_dc_ep_disable = 0x4fc009a4; -usb_dc_ep_flush = 0x4fc009a8; -usb_dc_ep_write_would_block = 0x4fc009ac; -usb_dc_ep_write = 0x4fc009b0; -usb_dc_ep_read_wait = 0x4fc009b4; -usb_dc_ep_read_continue = 0x4fc009b8; -usb_dc_ep_read = 0x4fc009bc; -usb_dc_ep_set_callback = 0x4fc009c0; -usb_dc_set_status_callback = 0x4fc009c4; -usb_dc_ep_mps = 0x4fc009c8; -usb_dc_check_poll_for_interrupts = 0x4fc009cc; -mac_addr_to_serial_str_desc = 0x4fc009d0; -usb_set_current_descriptor = 0x4fc009d4; -usb_get_descriptor = 0x4fc009d8; -usb_dev_resume = 0x4fc009dc; -usb_dev_get_configuration = 0x4fc009e0; -usb_set_config = 0x4fc009e4; -usb_deconfig = 0x4fc009e8; -usb_enable = 0x4fc009ec; -usb_disable = 0x4fc009f0; -usb_write_would_block = 0x4fc009f4; -usb_write = 0x4fc009f8; -usb_read = 0x4fc009fc; -usb_ep_set_stall = 0x4fc00a00; -usb_ep_clear_stall = 0x4fc00a04; -usb_ep_read_wait = 0x4fc00a08; -usb_ep_read_continue = 0x4fc00a0c; -usb_transfer_ep_callback = 0x4fc00a10; -usb_transfer = 0x4fc00a14; -usb_cancel_transfer = 0x4fc00a18; -usb_transfer_sync = 0x4fc00a1c; -usb_dfu_set_detach_cb = 0x4fc00a20; -dfu_class_handle_req = 0x4fc00a24; -dfu_status_cb = 0x4fc00a28; -dfu_custom_handle_req = 0x4fc00a2c; -usb_dfu_init = 0x4fc00a30; -usb_dfu_force_detach = 0x4fc00a34; -usb_dev_deinit = 0x4fc00a38; -usb_dw_ctrl_deinit = 0x4fc00a3c; +cdc_acm_class_handle_req = 0x4fc008d4; +cdc_acm_init = 0x4fc008d8; +cdc_acm_fifo_fill = 0x4fc008dc; +cdc_acm_rx_fifo_cnt = 0x4fc008e0; +cdc_acm_fifo_read = 0x4fc008e4; +cdc_acm_irq_tx_enable = 0x4fc008e8; +cdc_acm_irq_tx_disable = 0x4fc008ec; +cdc_acm_irq_state_enable = 0x4fc008f0; +cdc_acm_irq_state_disable = 0x4fc008f4; +cdc_acm_irq_tx_ready = 0x4fc008f8; +cdc_acm_irq_rx_enable = 0x4fc008fc; +cdc_acm_irq_rx_disable = 0x4fc00900; +cdc_acm_irq_rx_ready = 0x4fc00904; +cdc_acm_irq_is_pending = 0x4fc00908; +cdc_acm_irq_callback_set = 0x4fc0090c; +cdc_acm_line_ctrl_set = 0x4fc00910; +cdc_acm_line_ctrl_get = 0x4fc00914; +cdc_acm_poll_out = 0x4fc00918; +chip_usb_dw_did_persist = 0x4fc0091c; +chip_usb_dw_init = 0x4fc00920; +chip_usb_detach = 0x4fc00924; +chip_usb_dw_prepare_persist = 0x4fc00928; +chip_usb_get_persist_flags = 0x4fc0092c; +chip_usb_set_persist_flags = 0x4fc00930; +cpio_start = 0x4fc00934; +cpio_feed = 0x4fc00938; +cpio_done = 0x4fc0093c; +cpio_destroy = 0x4fc00940; +dfu_flash_init = 0x4fc00944; +dfu_flash_erase = 0x4fc00948; +dfu_flash_program = 0x4fc0094c; +dfu_flash_read = 0x4fc00950; +dfu_flash_attach = 0x4fc00954; +dfu_cpio_callback = 0x4fc00958; +dfu_updater_get_err = 0x4fc0095c; +dfu_updater_clear_err = 0x4fc00960; +dfu_updater_enable = 0x4fc00964; +dfu_updater_begin = 0x4fc00968; +dfu_updater_feed = 0x4fc0096c; +dfu_updater_end = 0x4fc00970; +dfu_updater_set_raw_addr = 0x4fc00974; +dfu_updater_flash_read = 0x4fc00978; +usb_dc_prepare_persist = 0x4fc0097c; +usb_dw_isr_handler = 0x4fc00980; +usb_dc_attach = 0x4fc00984; +usb_dc_detach = 0x4fc00988; +usb_dc_reset = 0x4fc0098c; +usb_dc_set_address = 0x4fc00990; +usb_dc_ep_check_cap = 0x4fc00994; +usb_dc_ep_configure = 0x4fc00998; +usb_dc_ep_set_stall = 0x4fc0099c; +usb_dc_ep_clear_stall = 0x4fc009a0; +usb_dc_ep_halt = 0x4fc009a4; +usb_dc_ep_is_stalled = 0x4fc009a8; +usb_dc_ep_enable = 0x4fc009ac; +usb_dc_ep_disable = 0x4fc009b0; +usb_dc_ep_flush = 0x4fc009b4; +usb_dc_ep_write_would_block = 0x4fc009b8; +usb_dc_ep_write = 0x4fc009bc; +usb_dc_ep_read_wait = 0x4fc009c0; +usb_dc_ep_read_continue = 0x4fc009c4; +usb_dc_ep_read = 0x4fc009c8; +usb_dc_ep_set_callback = 0x4fc009cc; +usb_dc_set_status_callback = 0x4fc009d0; +usb_dc_ep_mps = 0x4fc009d4; +usb_dc_check_poll_for_interrupts = 0x4fc009d8; +mac_addr_to_serial_str_desc = 0x4fc009dc; +usb_set_current_descriptor = 0x4fc009e0; +usb_get_descriptor = 0x4fc009e4; +usb_dev_resume = 0x4fc009e8; +usb_dev_get_configuration = 0x4fc009ec; +usb_set_config = 0x4fc009f0; +usb_deconfig = 0x4fc009f4; +usb_enable = 0x4fc009f8; +usb_disable = 0x4fc009fc; +usb_write_would_block = 0x4fc00a00; +usb_write = 0x4fc00a04; +usb_read = 0x4fc00a08; +usb_ep_set_stall = 0x4fc00a0c; +usb_ep_clear_stall = 0x4fc00a10; +usb_ep_read_wait = 0x4fc00a14; +usb_ep_read_continue = 0x4fc00a18; +usb_transfer_ep_callback = 0x4fc00a1c; +usb_transfer = 0x4fc00a20; +usb_cancel_transfer = 0x4fc00a24; +usb_transfer_sync = 0x4fc00a28; +usb_dfu_set_detach_cb = 0x4fc00a2c; +dfu_class_handle_req = 0x4fc00a30; +dfu_status_cb = 0x4fc00a34; +dfu_custom_handle_req = 0x4fc00a38; +usb_dfu_init = 0x4fc00a3c; +usb_dfu_force_detach = 0x4fc00a40; +usb_dev_deinit = 0x4fc00a44; +usb_dw_ctrl_deinit = 0x4fc00a48; /* Data (.data, .bss, .rodata) */ -s_usb_osglue = 0x4ffbffc8; - - -/*************************************** - Group recovery_bootloader - ***************************************/ - -/* Functions */ -ets_get_bootloader_offset = 0x4fc00a40; -ets_set_bootloader_offset = 0x4fc00a44; +s_usb_osglue = 0x4ff3ffc8; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.libc.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.libc.ld similarity index 67% rename from components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.libc.ld rename to components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.libc.ld index 62230dc8eb..f38b60c22f 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.libc.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.libc.ld @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -9,41 +9,28 @@ strlen = 0x4fc00288; strstr = 0x4fc0028c; bzero = 0x4fc00290; sbrk = 0x4fc00298; -isalnum = 0x4fc0029c; -isalpha = 0x4fc002a0; isascii = 0x4fc002a4; isblank = 0x4fc002a8; iscntrl = 0x4fc002ac; -isdigit = 0x4fc002b0; -islower = 0x4fc002b4; isgraph = 0x4fc002b8; isprint = 0x4fc002bc; ispunct = 0x4fc002c0; -isspace = 0x4fc002c4; -isupper = 0x4fc002c8; -toupper = 0x4fc002cc; -tolower = 0x4fc002d0; toascii = 0x4fc002d4; memccpy = 0x4fc002d8; memchr = 0x4fc002dc; memrchr = 0x4fc002e0; -strcasecmp = 0x4fc002e4; strcasestr = 0x4fc002e8; strcat = 0x4fc002ec; strchr = 0x4fc002f4; strcspn = 0x4fc002f8; -strcoll = 0x4fc002fc; strlcat = 0x4fc00300; strlcpy = 0x4fc00304; -strlwr = 0x4fc00308; -strncasecmp = 0x4fc0030c; strncat = 0x4fc00310; strnlen = 0x4fc00318; strrchr = 0x4fc0031c; strsep = 0x4fc00320; strspn = 0x4fc00324; strtok_r = 0x4fc00328; -strupr = 0x4fc0032c; longjmp = 0x4fc00330; setjmp = 0x4fc00334; abs = 0x4fc00338; @@ -54,5 +41,5 @@ qsort = 0x4fc00348; utoa = 0x4fc00358; itoa = 0x4fc0035c; /* Data (.data, .bss, .rodata) */ -syscall_table_ptr = 0x4ffbffe4; -_global_impure_ptr = 0x4ffbffe0; +syscall_table_ptr = 0x4ff3ffe4; +_global_impure_ptr = 0x4ff3ffe0; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.libgcc.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.libgcc.ld new file mode 100644 index 0000000000..3b969ade5a --- /dev/null +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.libgcc.ld @@ -0,0 +1,95 @@ +/* + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +/* ROM function interface esp32p4.rom.libgcc.ld for esp32p4 + * + * + * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum f6516bd9708d890f63db87f8aed53ca7 + * + * Compatible with ROM where ECO version equal or greater to 0. + * + * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. + */ + +/*************************************** + Group libgccdf + ***************************************/ + +/* Functions */ +__absvdi2 = 0x4fc0073c; +__absvsi2 = 0x4fc00740; +__adddf3 = 0x4fc00744; +__addvdi3 = 0x4fc00748; +__addvsi3 = 0x4fc0074c; +__ashldi3 = 0x4fc00750; +__ashrdi3 = 0x4fc00754; +__bswapdi2 = 0x4fc00758; +__bswapsi2 = 0x4fc0075c; +__clear_cache = 0x4fc00760; +__clrsbdi2 = 0x4fc00764; +__clrsbsi2 = 0x4fc00768; +__clzdi2 = 0x4fc0076c; +__clzsi2 = 0x4fc00770; +__cmpdi2 = 0x4fc00774; +__ctzdi2 = 0x4fc00778; +__ctzsi2 = 0x4fc0077c; +__divdc3 = 0x4fc00780; +__divdf3 = 0x4fc00784; +__divdi3 = 0x4fc00788; +__divsc3 = 0x4fc0078c; +__divsi3 = 0x4fc00790; +__eqdf2 = 0x4fc00794; +__extendsfdf2 = 0x4fc00798; +__ffsdi2 = 0x4fc0079c; +__ffssi2 = 0x4fc007a0; +__fixdfdi = 0x4fc007a4; +__fixdfsi = 0x4fc007a8; +__fixsfdi = 0x4fc007ac; +__fixunsdfsi = 0x4fc007b0; +__fixunssfdi = 0x4fc007b4; +__fixunssfsi = 0x4fc007b8; +__floatdidf = 0x4fc007bc; +__floatdisf = 0x4fc007c0; +__floatsidf = 0x4fc007c4; +__floatundidf = 0x4fc007c8; +__floatundisf = 0x4fc007cc; +__floatunsidf = 0x4fc007d0; +__gcc_bcmp = 0x4fc007d4; +__gedf2 = 0x4fc007d8; +__gtdf2 = 0x4fc007dc; +__ledf2 = 0x4fc007e0; +__lshrdi3 = 0x4fc007e4; +__ltdf2 = 0x4fc007e8; +__moddi3 = 0x4fc007ec; +__modsi3 = 0x4fc007f0; +__muldc3 = 0x4fc007f4; +__muldf3 = 0x4fc007f8; +__muldi3 = 0x4fc007fc; +__mulsc3 = 0x4fc00800; +__mulsi3 = 0x4fc00804; +__mulvdi3 = 0x4fc00808; +__mulvsi3 = 0x4fc0080c; +__nedf2 = 0x4fc00810; +__negdf2 = 0x4fc00814; +__negdi2 = 0x4fc00818; +__negvdi2 = 0x4fc0081c; +__negvsi2 = 0x4fc00820; +__paritysi2 = 0x4fc00824; +__popcountdi2 = 0x4fc00828; +__popcountsi2 = 0x4fc0082c; +__powidf2 = 0x4fc00830; +__subdf3 = 0x4fc00834; +__subvdi3 = 0x4fc00838; +__subvsi3 = 0x4fc0083c; +__ucmpdi2 = 0x4fc00840; +__udivdi3 = 0x4fc00844; +__udivmoddi4 = 0x4fc00848; +__udivsi3 = 0x4fc0084c; +__udiv_w_sdiv = 0x4fc00850; +__umoddi3 = 0x4fc00854; +__umodsi3 = 0x4fc00858; +__unorddf2 = 0x4fc0085c; +__extenddftf2 = 0x4fc00860; +__trunctfdf2 = 0x4fc00864; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.newlib.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.newlib.ld similarity index 66% rename from components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.newlib.ld rename to components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.newlib.ld index 827507e6e4..369d1c01fe 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.newlib.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.newlib.ld @@ -1,14 +1,14 @@ /* - * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ /* ROM function interface esp32p4.rom.newlib.ld for esp32p4 * * - * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum 56d78222be1daa0502090a078288f4d5 + * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum f6516bd9708d890f63db87f8aed53ca7 * - * Compatible with ROM where ECO version equal or greater to 5. + * Compatible with ROM where ECO version equal or greater to 0. * * THIS FILE WAS AUTOMATICALLY GENERATED. !!! BUT EDITED !!! * The file was originally generated for use with newlib, but it was split into @@ -39,3 +39,16 @@ __swhatbuf_r = 0x4fc00384; __swbuf_r = 0x4fc00388; __swbuf = 0x4fc0038c; __swsetup_r = 0x4fc00390; +toupper = 0x4fc002cc; +tolower = 0x4fc002d0; +isalnum = 0x4fc0029c; +isalpha = 0x4fc002a0; +isdigit = 0x4fc002b0; +islower = 0x4fc002b4; +isspace = 0x4fc002c4; +isupper = 0x4fc002c8; +strcasecmp = 0x4fc002e4; +strcoll = 0x4fc002fc; +strlwr = 0x4fc00308; +strncasecmp = 0x4fc0030c; +strupr = 0x4fc0032c; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.rvfp.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.rvfp.ld new file mode 100644 index 0000000000..bb28d14191 --- /dev/null +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco0_4.rvfp.ld @@ -0,0 +1,116 @@ +/* + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +/* ROM function interface esp32p4.rom.rvfp.ld for esp32p4 + * + * + * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum f6516bd9708d890f63db87f8aed53ca7 + * + * Compatible with ROM where ECO version equal or greater to 0. + * + * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. + */ + +/*************************************** + Group rvfplibdf + ***************************************/ +/* + * These functions cannot work when compiling with floating point ABI + * implementation assumes argument is passed in a0, but floats will be passed + * in the floating point registers instead + * + * __fixsfdi = 0x4fc00878; + * __fixunssfdi = 0x4fc00880; + */ + +/* Functions */ +__adddf3 = 0x4fc00868; +__eqdf2 = 0x4fc0086c; +__fixdfdi = 0x4fc00870; +__fixdfsi = 0x4fc00874; +__fixunsdfsi = 0x4fc0087c; +__floatdidf = 0x4fc00884; +__floatsidf = 0x4fc00888; +__floatundidf = 0x4fc0088c; +__floatunsidf = 0x4fc00890; +__gedf2 = 0x4fc00894; +__gtdf2 = 0x4fc00898; +__ledf2 = 0x4fc0089c; +__ltdf2 = 0x4fc008a0; +__muldf3 = 0x4fc008a4; +__nedf2 = 0x4fc008a8; +__subdf3 = 0x4fc008ac; + +/*************************************** + Group libgcc +***************************************/ + +/* Not part of the original ROM interface, but RVFP versions cannot work with float-abi */ +__fixsfdi = 0x4fc007ac; +__fixunssfdi = 0x4fc007b4; + +/* Functions */ +__absvdi2 = 0x4fc0073c; +__absvsi2 = 0x4fc00740; +__addvdi3 = 0x4fc00748; +__addvsi3 = 0x4fc0074c; +__ashldi3 = 0x4fc00750; +__ashrdi3 = 0x4fc00754; +__bswapdi2 = 0x4fc00758; +__bswapsi2 = 0x4fc0075c; +__clear_cache = 0x4fc00760; +__clrsbdi2 = 0x4fc00764; +__clrsbsi2 = 0x4fc00768; +__clzdi2 = 0x4fc0076c; +__clzsi2 = 0x4fc00770; +__cmpdi2 = 0x4fc00774; +__ctzdi2 = 0x4fc00778; +__ctzsi2 = 0x4fc0077c; +__divdc3 = 0x4fc00780; +__divdf3 = 0x4fc00784; +__divdi3 = 0x4fc00788; +__divsc3 = 0x4fc0078c; +__divsi3 = 0x4fc00790; +__extendsfdf2 = 0x4fc00798; +__ffsdi2 = 0x4fc0079c; +__ffssi2 = 0x4fc007a0; +__fixunssfsi = 0x4fc007b8; +__floatdisf = 0x4fc007c0; +__floatundisf = 0x4fc007cc; +__gcc_bcmp = 0x4fc007d4; +__lshrdi3 = 0x4fc007e4; +__moddi3 = 0x4fc007ec; +__modsi3 = 0x4fc007f0; +__muldc3 = 0x4fc007f4; +__muldi3 = 0x4fc007fc; +__mulsc3 = 0x4fc00800; +__mulsi3 = 0x4fc00804; +__mulvdi3 = 0x4fc00808; +__mulvsi3 = 0x4fc0080c; +__negdf2 = 0x4fc00814; +__negdi2 = 0x4fc00818; +__negvdi2 = 0x4fc0081c; +__negvsi2 = 0x4fc00820; +__paritysi2 = 0x4fc00824; +__popcountdi2 = 0x4fc00828; +__popcountsi2 = 0x4fc0082c; +__powidf2 = 0x4fc00830; +__subvdi3 = 0x4fc00838; +__subvsi3 = 0x4fc0083c; +__ucmpdi2 = 0x4fc00840; +__udivdi3 = 0x4fc00844; +__udivmoddi4 = 0x4fc00848; +__udivsi3 = 0x4fc0084c; +__udiv_w_sdiv = 0x4fc00850; +__umoddi3 = 0x4fc00854; +__umodsi3 = 0x4fc00858; +__unorddf2 = 0x4fc0085c; +__extenddftf2 = 0x4fc00860; +__trunctfdf2 = 0x4fc00864; +/*************************************** + Group libgcc +***************************************/ + +/* Functions */ diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.libgcc.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.libgcc.ld deleted file mode 100644 index 7dcac301e9..0000000000 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.libgcc.ld +++ /dev/null @@ -1,95 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -/* ROM function interface esp32p4.rom.libgcc.ld for esp32p4 - * - * - * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum 56d78222be1daa0502090a078288f4d5 - * - * Compatible with ROM where ECO version equal or greater to 5. - * - * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. - */ - -/*************************************** - Group libgccdf - ***************************************/ - -/* Functions */ -__absvdi2 = 0x4fc00730; -__absvsi2 = 0x4fc00734; -__adddf3 = 0x4fc00738; -__addvdi3 = 0x4fc0073c; -__addvsi3 = 0x4fc00740; -__ashldi3 = 0x4fc00744; -__ashrdi3 = 0x4fc00748; -__bswapdi2 = 0x4fc0074c; -__bswapsi2 = 0x4fc00750; -__clear_cache = 0x4fc00754; -__clrsbdi2 = 0x4fc00758; -__clrsbsi2 = 0x4fc0075c; -__clzdi2 = 0x4fc00760; -__clzsi2 = 0x4fc00764; -__cmpdi2 = 0x4fc00768; -__ctzdi2 = 0x4fc0076c; -__ctzsi2 = 0x4fc00770; -__divdc3 = 0x4fc00774; -__divdf3 = 0x4fc00778; -__divdi3 = 0x4fc0077c; -__divsc3 = 0x4fc00780; -__divsi3 = 0x4fc00784; -__eqdf2 = 0x4fc00788; -__extendsfdf2 = 0x4fc0078c; -__ffsdi2 = 0x4fc00790; -__ffssi2 = 0x4fc00794; -__fixdfdi = 0x4fc00798; -__fixdfsi = 0x4fc0079c; -__fixsfdi = 0x4fc007a0; -__fixunsdfsi = 0x4fc007a4; -__fixunssfdi = 0x4fc007a8; -__fixunssfsi = 0x4fc007ac; -__floatdidf = 0x4fc007b0; -__floatdisf = 0x4fc007b4; -__floatsidf = 0x4fc007b8; -__floatundidf = 0x4fc007bc; -__floatundisf = 0x4fc007c0; -__floatunsidf = 0x4fc007c4; -__gcc_bcmp = 0x4fc007c8; -__gedf2 = 0x4fc007cc; -__gtdf2 = 0x4fc007d0; -__ledf2 = 0x4fc007d4; -__lshrdi3 = 0x4fc007d8; -__ltdf2 = 0x4fc007dc; -__moddi3 = 0x4fc007e0; -__modsi3 = 0x4fc007e4; -__muldc3 = 0x4fc007e8; -__muldf3 = 0x4fc007ec; -__muldi3 = 0x4fc007f0; -__mulsc3 = 0x4fc007f4; -__mulsi3 = 0x4fc007f8; -__mulvdi3 = 0x4fc007fc; -__mulvsi3 = 0x4fc00800; -__nedf2 = 0x4fc00804; -__negdf2 = 0x4fc00808; -__negdi2 = 0x4fc0080c; -__negvdi2 = 0x4fc00810; -__negvsi2 = 0x4fc00814; -__paritysi2 = 0x4fc00818; -__popcountdi2 = 0x4fc0081c; -__popcountsi2 = 0x4fc00820; -__powidf2 = 0x4fc00824; -__subdf3 = 0x4fc00828; -__subvdi3 = 0x4fc0082c; -__subvsi3 = 0x4fc00830; -__ucmpdi2 = 0x4fc00834; -__udivdi3 = 0x4fc00838; -__udivmoddi4 = 0x4fc0083c; -__udivsi3 = 0x4fc00840; -__udiv_w_sdiv = 0x4fc00844; -__umoddi3 = 0x4fc00848; -__umodsi3 = 0x4fc0084c; -__unorddf2 = 0x4fc00850; -__extenddftf2 = 0x4fc00854; -__trunctfdf2 = 0x4fc00858; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.rvfp.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.rvfp.ld deleted file mode 100644 index 05749d8a4d..0000000000 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.eco5.rvfp.ld +++ /dev/null @@ -1,101 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -/* ROM function interface esp32p4.rom.rvfp.ld for esp32p4 - * - * - * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum 56d78222be1daa0502090a078288f4d5 - * - * Compatible with ROM where ECO version equal or greater to 5. - * - * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. - */ - -/*************************************** - Group rvfplibdf - ***************************************/ - -/* Functions */ -__adddf3 = 0x4fc0085c; -__eqdf2 = 0x4fc00860; -__fixdfdi = 0x4fc00864; -__fixdfsi = 0x4fc00868; -__fixunsdfsi = 0x4fc00870; -__floatdidf = 0x4fc00878; -__floatsidf = 0x4fc0087c; -__floatundidf = 0x4fc00880; -__floatunsidf = 0x4fc00884; -__gedf2 = 0x4fc00888; -__gtdf2 = 0x4fc0088c; -__ledf2 = 0x4fc00890; -__ltdf2 = 0x4fc00894; -__muldf3 = 0x4fc00898; -__nedf2 = 0x4fc0089c; -__subdf3 = 0x4fc008a0; - -/*************************************** - Group libgcc -***************************************/ - -/* Functions */ -__absvdi2 = 0x4fc00730; -__absvsi2 = 0x4fc00734; -__addvdi3 = 0x4fc0073c; -__addvsi3 = 0x4fc00740; -__ashldi3 = 0x4fc00744; -__ashrdi3 = 0x4fc00748; -__bswapdi2 = 0x4fc0074c; -__bswapsi2 = 0x4fc00750; -__clear_cache = 0x4fc00754; -__clrsbdi2 = 0x4fc00758; -__clrsbsi2 = 0x4fc0075c; -__clzdi2 = 0x4fc00760; -__clzsi2 = 0x4fc00764; -__cmpdi2 = 0x4fc00768; -__ctzdi2 = 0x4fc0076c; -__ctzsi2 = 0x4fc00770; -__divdc3 = 0x4fc00774; -__divdf3 = 0x4fc00778; -__divdi3 = 0x4fc0077c; -__divsc3 = 0x4fc00780; -__divsi3 = 0x4fc00784; -__extendsfdf2 = 0x4fc0078c; -__ffsdi2 = 0x4fc00790; -__ffssi2 = 0x4fc00794; -__fixsfdi = 0x4fc007a0; -__fixunssfdi = 0x4fc007a8; -__fixunssfsi = 0x4fc007ac; -__floatdisf = 0x4fc007b4; -__floatundisf = 0x4fc007c0; -__gcc_bcmp = 0x4fc007c8; -__lshrdi3 = 0x4fc007d8; -__moddi3 = 0x4fc007e0; -__modsi3 = 0x4fc007e4; -__muldc3 = 0x4fc007e8; -__muldi3 = 0x4fc007f0; -__mulsc3 = 0x4fc007f4; -__mulsi3 = 0x4fc007f8; -__mulvdi3 = 0x4fc007fc; -__mulvsi3 = 0x4fc00800; -__negdf2 = 0x4fc00808; -__negdi2 = 0x4fc0080c; -__negvdi2 = 0x4fc00810; -__negvsi2 = 0x4fc00814; -__paritysi2 = 0x4fc00818; -__popcountdi2 = 0x4fc0081c; -__popcountsi2 = 0x4fc00820; -__powidf2 = 0x4fc00824; -__subvdi3 = 0x4fc0082c; -__subvsi3 = 0x4fc00830; -__ucmpdi2 = 0x4fc00834; -__udivdi3 = 0x4fc00838; -__udivmoddi4 = 0x4fc0083c; -__udivsi3 = 0x4fc00840; -__udiv_w_sdiv = 0x4fc00844; -__umoddi3 = 0x4fc00848; -__umodsi3 = 0x4fc0084c; -__unorddf2 = 0x4fc00850; -__extenddftf2 = 0x4fc00854; -__trunctfdf2 = 0x4fc00858; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.ld index 428f076109..eb227ead1d 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.ld @@ -1,14 +1,14 @@ /* - * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ /* ROM function interface esp32p4.rom.ld for esp32p4 * * - * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum f6516bd9708d890f63db87f8aed53ca7 + * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum 56d78222be1daa0502090a078288f4d5 * - * Compatible with ROM where ECO version equal or greater to 0. + * Compatible with ROM where ECO version equal or greater to 5. * * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. */ @@ -64,8 +64,8 @@ Uart_Init = 0x4fc000c0; ets_set_user_start = 0x4fc000c4; /* Data (.data, .bss, .rodata) */ ets_rom_layout_p = 0x4fc1fffc; -ets_ops_table_ptr = 0x4ff3fff4; -g_saved_pc = 0x4ff3fff8; +ets_ops_table_ptr = 0x4ffbfff4; +g_saved_pc = 0x4ffbfff8; /*************************************** @@ -165,9 +165,9 @@ spi_flash_guard_set = 0x4fc001f0; spi_flash_guard_get = 0x4fc001f4; spi_flash_read_encrypted = 0x4fc001f8; /* Data (.data, .bss, .rodata) */ -rom_spiflash_legacy_funcs = 0x4ff3ffec; -rom_spiflash_legacy_data = 0x4ff3ffe8; -g_flash_guard_ops = 0x4ff3fff0; +rom_spiflash_legacy_funcs = 0x4ffbffec; +rom_spiflash_legacy_data = 0x4ffbffe8; +g_flash_guard_ops = 0x4ffbfff0; /*************************************** @@ -266,20 +266,17 @@ Cache_PSRAM_MMU_Set = 0x4fc00520; Cache_PSRAM_MMU_Set_Secure = 0x4fc00524; Cache_Count_Flash_Pages = 0x4fc00528; Cache_Flash_To_SPIRAM_Copy = 0x4fc0052c; -Cache_Travel_Tag_Memory = 0x4fc00530; -Cache_Travel_Tag_Memory2 = 0x4fc00534; -Cache_Get_Virtual_Addr = 0x4fc00538; -Cache_Set_IDROM_MMU_Size = 0x4fc0053c; -flash2spiram_instruction_offset = 0x4fc00540; -flash2spiram_rodata_offset = 0x4fc00544; -flash_instr_rodata_start_page = 0x4fc00548; -flash_instr_rodata_end_page = 0x4fc0054c; -Cache_Set_IDROM_MMU_Info = 0x4fc00550; -Cache_Get_IROM_MMU_End = 0x4fc00554; -Cache_Get_DROM_MMU_End = 0x4fc00558; +Cache_Set_IDROM_MMU_Size = 0x4fc00530; +flash2spiram_instruction_offset = 0x4fc00534; +flash2spiram_rodata_offset = 0x4fc00538; +flash_instr_rodata_start_page = 0x4fc0053c; +flash_instr_rodata_end_page = 0x4fc00540; +Cache_Set_IDROM_MMU_Info = 0x4fc00544; +Cache_Get_IROM_MMU_End = 0x4fc00548; +Cache_Get_DROM_MMU_End = 0x4fc0054c; /* Data (.data, .bss, .rodata) */ -rom_cache_op_cb = 0x4ff3ffdc; -rom_cache_internal_table_ptr = 0x4ff3ffd8; +rom_cache_op_cb = 0x4ffbffdc; +rom_cache_internal_table_ptr = 0x4ffbffd8; /*************************************** @@ -287,8 +284,8 @@ rom_cache_internal_table_ptr = 0x4ff3ffd8; ***************************************/ /* Functions */ -ets_clk_get_xtal_freq = 0x4fc0055c; -ets_clk_get_cpu_freq = 0x4fc00560; +ets_clk_get_xtal_freq = 0x4fc00550; +ets_clk_get_cpu_freq = 0x4fc00554; /*************************************** @@ -296,27 +293,27 @@ ets_clk_get_cpu_freq = 0x4fc00560; ***************************************/ /* Functions */ -rom_gpio_set_output_level = 0x4fc00564; -rom_gpio_get_input_level = 0x4fc00568; -rom_gpio_matrix_in = 0x4fc0056c; -rom_gpio_matrix_out = 0x4fc00570; -rom_gpio_bypass_matrix_in = 0x4fc00574; -rom_gpio_output_disable = 0x4fc00578; -rom_gpio_output_enable = 0x4fc0057c; -rom_gpio_pad_input_disable = 0x4fc00580; -rom_gpio_pad_input_enable = 0x4fc00584; -rom_gpio_pad_pulldown = 0x4fc00588; -rom_gpio_pad_pullup = 0x4fc0058c; -rom_gpio_pad_select_gpio = 0x4fc00590; -rom_gpio_pad_set_drv = 0x4fc00594; -rom_gpio_pad_unhold = 0x4fc00598; -rom_gpio_pad_hold = 0x4fc0059c; -rom_gpio_lppad_select_mux = 0x4fc005a0; -rom_gpio_ded_pad_set_drv = 0x4fc005a4; -rom_gpio_ded_pad_pullup = 0x4fc005a8; -rom_gpio_ded_pad_pulldown = 0x4fc005ac; -rom_gpio_ded_pad_hold = 0x4fc005b0; -rom_gpio_ded_pad_unhold = 0x4fc005b4; +rom_gpio_set_output_level = 0x4fc00558; +rom_gpio_get_input_level = 0x4fc0055c; +rom_gpio_matrix_in = 0x4fc00560; +rom_gpio_matrix_out = 0x4fc00564; +rom_gpio_bypass_matrix_in = 0x4fc00568; +rom_gpio_output_disable = 0x4fc0056c; +rom_gpio_output_enable = 0x4fc00570; +rom_gpio_pad_input_disable = 0x4fc00574; +rom_gpio_pad_input_enable = 0x4fc00578; +rom_gpio_pad_pulldown = 0x4fc0057c; +rom_gpio_pad_pullup = 0x4fc00580; +rom_gpio_pad_select_gpio = 0x4fc00584; +rom_gpio_pad_set_drv = 0x4fc00588; +rom_gpio_pad_unhold = 0x4fc0058c; +rom_gpio_pad_hold = 0x4fc00590; +rom_gpio_lppad_select_mux = 0x4fc00594; +rom_gpio_ded_pad_set_drv = 0x4fc00598; +rom_gpio_ded_pad_pullup = 0x4fc0059c; +rom_gpio_ded_pad_pulldown = 0x4fc005a0; +rom_gpio_ded_pad_hold = 0x4fc005a4; +rom_gpio_ded_pad_unhold = 0x4fc005a8; /*************************************** @@ -324,17 +321,18 @@ rom_gpio_ded_pad_unhold = 0x4fc005b4; ***************************************/ /* Functions */ -esprv_intc_int_set_priority = 0x4fc005b8; -esprv_intc_int_set_threshold = 0x4fc005bc; -esprv_intc_int_enable = 0x4fc005c0; -esprv_intc_int_disable = 0x4fc005c4; -PROVIDE( intr_handler_set = 0x4fc005cc ); -intr_matrix_set = 0x4fc005d0; -ets_intr_lock = 0x4fc005d4; -ets_intr_unlock = 0x4fc005d8; -ets_isr_attach = 0x4fc005dc; -ets_isr_mask = 0x4fc005e0; -ets_isr_unmask = 0x4fc005e4; +esprv_intc_int_set_priority = 0x4fc005ac; +esprv_intc_int_set_threshold = 0x4fc005b0; +esprv_intc_int_enable = 0x4fc005b4; +esprv_intc_int_disable = 0x4fc005b8; +esprv_intc_int_set_type = 0x4fc005bc; +PROVIDE( intr_handler_set = 0x4fc005c0 ); +intr_matrix_set = 0x4fc005c4; +ets_intr_lock = 0x4fc005c8; +ets_intr_unlock = 0x4fc005cc; +ets_isr_attach = 0x4fc005d0; +ets_isr_mask = 0x4fc005d4; +ets_isr_unmask = 0x4fc005d8; /*************************************** @@ -342,52 +340,52 @@ ets_isr_unmask = 0x4fc005e4; ***************************************/ /* Functions */ -md5_vector = 0x4fc005e8; -MD5Init = 0x4fc005ec; -MD5Update = 0x4fc005f0; -MD5Final = 0x4fc005f4; -crc32_le = 0x4fc005f8; -crc16_le = 0x4fc005fc; -crc8_le = 0x4fc00600; -crc32_be = 0x4fc00604; -crc16_be = 0x4fc00608; -crc8_be = 0x4fc0060c; -esp_crc8 = 0x4fc00610; -ets_sha_enable = 0x4fc00614; -ets_sha_disable = 0x4fc00618; -ets_sha_get_state = 0x4fc0061c; -ets_sha_init = 0x4fc00620; -ets_sha_process = 0x4fc00624; -ets_sha_starts = 0x4fc00628; -ets_sha_update = 0x4fc0062c; -ets_sha_finish = 0x4fc00630; -ets_sha_clone = 0x4fc00634; -ets_hmac_enable = 0x4fc00638; -ets_hmac_disable = 0x4fc0063c; -ets_hmac_calculate_message = 0x4fc00640; -ets_hmac_calculate_downstream = 0x4fc00644; -ets_hmac_invalidate_downstream = 0x4fc00648; -ets_jtag_enable_temporarily = 0x4fc0064c; -ets_aes_enable = 0x4fc00650; -ets_aes_disable = 0x4fc00654; -ets_aes_setkey = 0x4fc00658; -ets_aes_block = 0x4fc0065c; -ets_aes_setkey_dec = 0x4fc00660; -ets_aes_setkey_enc = 0x4fc00664; -ets_bigint_enable = 0x4fc00668; -ets_bigint_disable = 0x4fc0066c; -ets_bigint_multiply = 0x4fc00670; -ets_bigint_modmult = 0x4fc00674; -ets_bigint_modexp = 0x4fc00678; -ets_bigint_wait_finish = 0x4fc0067c; -ets_bigint_getz = 0x4fc00680; -ets_ds_enable = 0x4fc00684; -ets_ds_disable = 0x4fc00688; -ets_ds_start_sign = 0x4fc0068c; -ets_ds_is_busy = 0x4fc00690; -ets_ds_finish_sign = 0x4fc00694; -ets_ds_encrypt_params = 0x4fc00698; -ets_mgf1_sha256 = 0x4fc0069c; +md5_vector = 0x4fc005dc; +MD5Init = 0x4fc005e0; +MD5Update = 0x4fc005e4; +MD5Final = 0x4fc005e8; +crc32_le = 0x4fc005ec; +crc16_le = 0x4fc005f0; +crc8_le = 0x4fc005f4; +crc32_be = 0x4fc005f8; +crc16_be = 0x4fc005fc; +crc8_be = 0x4fc00600; +esp_crc8 = 0x4fc00604; +ets_sha_enable = 0x4fc00608; +ets_sha_disable = 0x4fc0060c; +ets_sha_get_state = 0x4fc00610; +ets_sha_init = 0x4fc00614; +ets_sha_process = 0x4fc00618; +ets_sha_starts = 0x4fc0061c; +ets_sha_update = 0x4fc00620; +ets_sha_finish = 0x4fc00624; +ets_sha_clone = 0x4fc00628; +ets_hmac_enable = 0x4fc0062c; +ets_hmac_disable = 0x4fc00630; +ets_hmac_calculate_message = 0x4fc00634; +ets_hmac_calculate_downstream = 0x4fc00638; +ets_hmac_invalidate_downstream = 0x4fc0063c; +ets_jtag_enable_temporarily = 0x4fc00640; +ets_aes_enable = 0x4fc00644; +ets_aes_disable = 0x4fc00648; +ets_aes_setkey = 0x4fc0064c; +ets_aes_block = 0x4fc00650; +ets_aes_setkey_dec = 0x4fc00654; +ets_aes_setkey_enc = 0x4fc00658; +ets_bigint_enable = 0x4fc0065c; +ets_bigint_disable = 0x4fc00660; +ets_bigint_multiply = 0x4fc00664; +ets_bigint_modmult = 0x4fc00668; +ets_bigint_modexp = 0x4fc0066c; +ets_bigint_wait_finish = 0x4fc00670; +ets_bigint_getz = 0x4fc00674; +ets_ds_enable = 0x4fc00678; +ets_ds_disable = 0x4fc0067c; +ets_ds_start_sign = 0x4fc00680; +ets_ds_is_busy = 0x4fc00684; +ets_ds_finish_sign = 0x4fc00688; +ets_ds_encrypt_params = 0x4fc0068c; +ets_mgf1_sha256 = 0x4fc00690; /* Data (.data, .bss, .rodata) */ crc32_le_table_ptr = 0x4fc1fff8; crc16_le_table_ptr = 0x4fc1fff4; @@ -402,35 +400,35 @@ crc8_be_table_ptr = 0x4fc1ffe4; ***************************************/ /* Functions */ -ets_efuse_read = 0x4fc006a0; -ets_efuse_program = 0x4fc006a4; -ets_efuse_clear_program_registers = 0x4fc006a8; -ets_efuse_write_key = 0x4fc006ac; -ets_efuse_get_read_register_address = 0x4fc006b0; -ets_efuse_get_key_purpose = 0x4fc006b4; -ets_efuse_key_block_unused = 0x4fc006b8; -ets_efuse_find_unused_key_block = 0x4fc006bc; -ets_efuse_rs_calculate = 0x4fc006c0; -ets_efuse_count_unused_key_blocks = 0x4fc006c4; -ets_efuse_secure_boot_enabled = 0x4fc006c8; -ets_efuse_secure_boot_aggressive_revoke_enabled = 0x4fc006cc; -ets_efuse_cache_encryption_enabled = 0x4fc006d0; -ets_efuse_download_modes_disabled = 0x4fc006d4; -ets_efuse_find_purpose = 0x4fc006d8; -ets_efuse_force_send_resume = 0x4fc006dc; -ets_efuse_get_flash_delay_us = 0x4fc006e0; -ets_efuse_get_uart_print_control = 0x4fc006e4; -ets_efuse_direct_boot_mode_disabled = 0x4fc006e8; -ets_efuse_security_download_modes_enabled = 0x4fc006ec; -ets_efuse_jtag_disabled = 0x4fc006f0; -ets_efuse_usb_print_is_disabled = 0x4fc006f4; -ets_efuse_usb_download_mode_disabled = 0x4fc006f8; -ets_efuse_usb_device_disabled = 0x4fc006fc; -ets_efuse_get_km_huk_gen_state = 0x4fc00700; -ets_efuse_get_km_deploy_only_once = 0x4fc00704; -ets_efuse_get_force_use_km_key = 0x4fc00708; -ets_efuse_xts_key_length_256 = 0x4fc0070c; -ets_efuse_get_km_key_lock = 0x4fc00710; +ets_efuse_read = 0x4fc00694; +ets_efuse_program = 0x4fc00698; +ets_efuse_clear_program_registers = 0x4fc0069c; +ets_efuse_write_key = 0x4fc006a0; +ets_efuse_get_read_register_address = 0x4fc006a4; +ets_efuse_get_key_purpose = 0x4fc006a8; +ets_efuse_key_block_unused = 0x4fc006ac; +ets_efuse_find_unused_key_block = 0x4fc006b0; +ets_efuse_rs_calculate = 0x4fc006b4; +ets_efuse_count_unused_key_blocks = 0x4fc006b8; +ets_efuse_secure_boot_enabled = 0x4fc006bc; +ets_efuse_secure_boot_aggressive_revoke_enabled = 0x4fc006c0; +ets_efuse_cache_encryption_enabled = 0x4fc006c4; +ets_efuse_download_modes_disabled = 0x4fc006c8; +ets_efuse_find_purpose = 0x4fc006cc; +ets_efuse_force_send_resume = 0x4fc006d0; +ets_efuse_get_flash_delay_us = 0x4fc006d4; +ets_efuse_get_uart_print_control = 0x4fc006d8; +ets_efuse_direct_boot_mode_disabled = 0x4fc006dc; +ets_efuse_security_download_modes_enabled = 0x4fc006e0; +ets_efuse_jtag_disabled = 0x4fc006e4; +ets_efuse_usb_print_is_disabled = 0x4fc006e8; +ets_efuse_usb_download_mode_disabled = 0x4fc006ec; +ets_efuse_usb_device_disabled = 0x4fc006f0; +ets_efuse_get_km_huk_gen_state = 0x4fc006f4; +ets_efuse_get_km_deploy_only_once = 0x4fc006f8; +ets_efuse_get_force_use_km_key = 0x4fc006fc; +ets_efuse_xts_key_length_256 = 0x4fc00700; +ets_efuse_get_km_key_lock = 0x4fc00704; /*************************************** @@ -438,9 +436,9 @@ ets_efuse_get_km_key_lock = 0x4fc00710; ***************************************/ /* Functions */ -esp_rom_check_recover_key = 0x4fc00714; -esp_rom_km_huk_conf = 0x4fc00718; -esp_rom_km_huk_risk = 0x4fc0071c; +esp_rom_check_recover_key = 0x4fc00708; +esp_rom_km_huk_conf = 0x4fc0070c; +esp_rom_km_huk_risk = 0x4fc00710; /*************************************** @@ -448,13 +446,13 @@ esp_rom_km_huk_risk = 0x4fc0071c; ***************************************/ /* Functions */ -ets_emsa_pss_verify = 0x4fc00720; -ets_rsa_pss_verify = 0x4fc00724; -ets_ecdsa_verify = 0x4fc00728; -ets_secure_boot_verify_bootloader_with_keys = 0x4fc0072c; -ets_secure_boot_verify_signature = 0x4fc00730; -ets_secure_boot_read_key_digests = 0x4fc00734; -ets_secure_boot_revoke_public_key_digest = 0x4fc00738; +ets_emsa_pss_verify = 0x4fc00714; +ets_rsa_pss_verify = 0x4fc00718; +ets_ecdsa_verify = 0x4fc0071c; +ets_secure_boot_verify_bootloader_with_keys = 0x4fc00720; +ets_secure_boot_verify_signature = 0x4fc00724; +ets_secure_boot_read_key_digests = 0x4fc00728; +ets_secure_boot_revoke_public_key_digest = 0x4fc0072c; /*************************************** @@ -462,10 +460,10 @@ ets_secure_boot_revoke_public_key_digest = 0x4fc00738; ***************************************/ /* Functions */ -usb_serial_device_rx_one_char = 0x4fc008b0; -usb_serial_device_rx_one_char_block = 0x4fc008b4; -usb_serial_device_tx_flush = 0x4fc008b8; -usb_serial_device_tx_one_char = 0x4fc008bc; +usb_serial_device_rx_one_char = 0x4fc008a4; +usb_serial_device_rx_one_char_block = 0x4fc008a8; +usb_serial_device_tx_flush = 0x4fc008ac; +usb_serial_device_tx_one_char = 0x4fc008b0; /*************************************** @@ -473,13 +471,13 @@ usb_serial_device_tx_one_char = 0x4fc008bc; ***************************************/ /* Functions */ -Uart_Init_USB = 0x4fc008c0; -usb_serial_otg_rx_one_char = 0x4fc008c4; -usb_serial_otg_rx_one_char_block = 0x4fc008c8; -usb_serial_otg_tx_flush = 0x4fc008cc; -usb_serial_otg_tx_one_char = 0x4fc008d0; +Uart_Init_USB = 0x4fc008b4; +usb_serial_otg_rx_one_char = 0x4fc008b8; +usb_serial_otg_rx_one_char_block = 0x4fc008bc; +usb_serial_otg_tx_flush = 0x4fc008c0; +usb_serial_otg_tx_one_char = 0x4fc008c4; /* Data (.data, .bss, .rodata) */ -uart_acm_dev = 0x4ff3ffd4; +uart_acm_dev = 0x4ffbffd4; /*************************************** @@ -487,99 +485,108 @@ uart_acm_dev = 0x4ff3ffd4; ***************************************/ /* Functions */ -cdc_acm_class_handle_req = 0x4fc008d4; -cdc_acm_init = 0x4fc008d8; -cdc_acm_fifo_fill = 0x4fc008dc; -cdc_acm_rx_fifo_cnt = 0x4fc008e0; -cdc_acm_fifo_read = 0x4fc008e4; -cdc_acm_irq_tx_enable = 0x4fc008e8; -cdc_acm_irq_tx_disable = 0x4fc008ec; -cdc_acm_irq_state_enable = 0x4fc008f0; -cdc_acm_irq_state_disable = 0x4fc008f4; -cdc_acm_irq_tx_ready = 0x4fc008f8; -cdc_acm_irq_rx_enable = 0x4fc008fc; -cdc_acm_irq_rx_disable = 0x4fc00900; -cdc_acm_irq_rx_ready = 0x4fc00904; -cdc_acm_irq_is_pending = 0x4fc00908; -cdc_acm_irq_callback_set = 0x4fc0090c; -cdc_acm_line_ctrl_set = 0x4fc00910; -cdc_acm_line_ctrl_get = 0x4fc00914; -cdc_acm_poll_out = 0x4fc00918; -chip_usb_dw_did_persist = 0x4fc0091c; -chip_usb_dw_init = 0x4fc00920; -chip_usb_detach = 0x4fc00924; -chip_usb_dw_prepare_persist = 0x4fc00928; -chip_usb_get_persist_flags = 0x4fc0092c; -chip_usb_set_persist_flags = 0x4fc00930; -cpio_start = 0x4fc00934; -cpio_feed = 0x4fc00938; -cpio_done = 0x4fc0093c; -cpio_destroy = 0x4fc00940; -dfu_flash_init = 0x4fc00944; -dfu_flash_erase = 0x4fc00948; -dfu_flash_program = 0x4fc0094c; -dfu_flash_read = 0x4fc00950; -dfu_flash_attach = 0x4fc00954; -dfu_cpio_callback = 0x4fc00958; -dfu_updater_get_err = 0x4fc0095c; -dfu_updater_clear_err = 0x4fc00960; -dfu_updater_enable = 0x4fc00964; -dfu_updater_begin = 0x4fc00968; -dfu_updater_feed = 0x4fc0096c; -dfu_updater_end = 0x4fc00970; -dfu_updater_set_raw_addr = 0x4fc00974; -dfu_updater_flash_read = 0x4fc00978; -usb_dc_prepare_persist = 0x4fc0097c; -usb_dw_isr_handler = 0x4fc00980; -usb_dc_attach = 0x4fc00984; -usb_dc_detach = 0x4fc00988; -usb_dc_reset = 0x4fc0098c; -usb_dc_set_address = 0x4fc00990; -usb_dc_ep_check_cap = 0x4fc00994; -usb_dc_ep_configure = 0x4fc00998; -usb_dc_ep_set_stall = 0x4fc0099c; -usb_dc_ep_clear_stall = 0x4fc009a0; -usb_dc_ep_halt = 0x4fc009a4; -usb_dc_ep_is_stalled = 0x4fc009a8; -usb_dc_ep_enable = 0x4fc009ac; -usb_dc_ep_disable = 0x4fc009b0; -usb_dc_ep_flush = 0x4fc009b4; -usb_dc_ep_write_would_block = 0x4fc009b8; -usb_dc_ep_write = 0x4fc009bc; -usb_dc_ep_read_wait = 0x4fc009c0; -usb_dc_ep_read_continue = 0x4fc009c4; -usb_dc_ep_read = 0x4fc009c8; -usb_dc_ep_set_callback = 0x4fc009cc; -usb_dc_set_status_callback = 0x4fc009d0; -usb_dc_ep_mps = 0x4fc009d4; -usb_dc_check_poll_for_interrupts = 0x4fc009d8; -mac_addr_to_serial_str_desc = 0x4fc009dc; -usb_set_current_descriptor = 0x4fc009e0; -usb_get_descriptor = 0x4fc009e4; -usb_dev_resume = 0x4fc009e8; -usb_dev_get_configuration = 0x4fc009ec; -usb_set_config = 0x4fc009f0; -usb_deconfig = 0x4fc009f4; -usb_enable = 0x4fc009f8; -usb_disable = 0x4fc009fc; -usb_write_would_block = 0x4fc00a00; -usb_write = 0x4fc00a04; -usb_read = 0x4fc00a08; -usb_ep_set_stall = 0x4fc00a0c; -usb_ep_clear_stall = 0x4fc00a10; -usb_ep_read_wait = 0x4fc00a14; -usb_ep_read_continue = 0x4fc00a18; -usb_transfer_ep_callback = 0x4fc00a1c; -usb_transfer = 0x4fc00a20; -usb_cancel_transfer = 0x4fc00a24; -usb_transfer_sync = 0x4fc00a28; -usb_dfu_set_detach_cb = 0x4fc00a2c; -dfu_class_handle_req = 0x4fc00a30; -dfu_status_cb = 0x4fc00a34; -dfu_custom_handle_req = 0x4fc00a38; -usb_dfu_init = 0x4fc00a3c; -usb_dfu_force_detach = 0x4fc00a40; -usb_dev_deinit = 0x4fc00a44; -usb_dw_ctrl_deinit = 0x4fc00a48; +cdc_acm_class_handle_req = 0x4fc008c8; +cdc_acm_init = 0x4fc008cc; +cdc_acm_fifo_fill = 0x4fc008d0; +cdc_acm_rx_fifo_cnt = 0x4fc008d4; +cdc_acm_fifo_read = 0x4fc008d8; +cdc_acm_irq_tx_enable = 0x4fc008dc; +cdc_acm_irq_tx_disable = 0x4fc008e0; +cdc_acm_irq_state_enable = 0x4fc008e4; +cdc_acm_irq_state_disable = 0x4fc008e8; +cdc_acm_irq_tx_ready = 0x4fc008ec; +cdc_acm_irq_rx_enable = 0x4fc008f0; +cdc_acm_irq_rx_disable = 0x4fc008f4; +cdc_acm_irq_rx_ready = 0x4fc008f8; +cdc_acm_irq_is_pending = 0x4fc008fc; +cdc_acm_irq_callback_set = 0x4fc00900; +cdc_acm_line_ctrl_set = 0x4fc00904; +cdc_acm_line_ctrl_get = 0x4fc00908; +cdc_acm_poll_out = 0x4fc0090c; +chip_usb_dw_did_persist = 0x4fc00910; +chip_usb_dw_init = 0x4fc00914; +chip_usb_detach = 0x4fc00918; +chip_usb_dw_prepare_persist = 0x4fc0091c; +chip_usb_get_persist_flags = 0x4fc00920; +chip_usb_set_persist_flags = 0x4fc00924; +cpio_start = 0x4fc00928; +cpio_feed = 0x4fc0092c; +cpio_done = 0x4fc00930; +cpio_destroy = 0x4fc00934; +dfu_flash_init = 0x4fc00938; +dfu_flash_erase = 0x4fc0093c; +dfu_flash_program = 0x4fc00940; +dfu_flash_read = 0x4fc00944; +dfu_flash_attach = 0x4fc00948; +dfu_cpio_callback = 0x4fc0094c; +dfu_updater_get_err = 0x4fc00950; +dfu_updater_clear_err = 0x4fc00954; +dfu_updater_enable = 0x4fc00958; +dfu_updater_begin = 0x4fc0095c; +dfu_updater_feed = 0x4fc00960; +dfu_updater_end = 0x4fc00964; +dfu_updater_set_raw_addr = 0x4fc00968; +dfu_updater_flash_read = 0x4fc0096c; +usb_dc_prepare_persist = 0x4fc00970; +usb_dw_isr_handler = 0x4fc00974; +usb_dc_attach = 0x4fc00978; +usb_dc_detach = 0x4fc0097c; +usb_dc_reset = 0x4fc00980; +usb_dc_set_address = 0x4fc00984; +usb_dc_ep_check_cap = 0x4fc00988; +usb_dc_ep_configure = 0x4fc0098c; +usb_dc_ep_set_stall = 0x4fc00990; +usb_dc_ep_clear_stall = 0x4fc00994; +usb_dc_ep_halt = 0x4fc00998; +usb_dc_ep_is_stalled = 0x4fc0099c; +usb_dc_ep_enable = 0x4fc009a0; +usb_dc_ep_disable = 0x4fc009a4; +usb_dc_ep_flush = 0x4fc009a8; +usb_dc_ep_write_would_block = 0x4fc009ac; +usb_dc_ep_write = 0x4fc009b0; +usb_dc_ep_read_wait = 0x4fc009b4; +usb_dc_ep_read_continue = 0x4fc009b8; +usb_dc_ep_read = 0x4fc009bc; +usb_dc_ep_set_callback = 0x4fc009c0; +usb_dc_set_status_callback = 0x4fc009c4; +usb_dc_ep_mps = 0x4fc009c8; +usb_dc_check_poll_for_interrupts = 0x4fc009cc; +mac_addr_to_serial_str_desc = 0x4fc009d0; +usb_set_current_descriptor = 0x4fc009d4; +usb_get_descriptor = 0x4fc009d8; +usb_dev_resume = 0x4fc009dc; +usb_dev_get_configuration = 0x4fc009e0; +usb_set_config = 0x4fc009e4; +usb_deconfig = 0x4fc009e8; +usb_enable = 0x4fc009ec; +usb_disable = 0x4fc009f0; +usb_write_would_block = 0x4fc009f4; +usb_write = 0x4fc009f8; +usb_read = 0x4fc009fc; +usb_ep_set_stall = 0x4fc00a00; +usb_ep_clear_stall = 0x4fc00a04; +usb_ep_read_wait = 0x4fc00a08; +usb_ep_read_continue = 0x4fc00a0c; +usb_transfer_ep_callback = 0x4fc00a10; +usb_transfer = 0x4fc00a14; +usb_cancel_transfer = 0x4fc00a18; +usb_transfer_sync = 0x4fc00a1c; +usb_dfu_set_detach_cb = 0x4fc00a20; +dfu_class_handle_req = 0x4fc00a24; +dfu_status_cb = 0x4fc00a28; +dfu_custom_handle_req = 0x4fc00a2c; +usb_dfu_init = 0x4fc00a30; +usb_dfu_force_detach = 0x4fc00a34; +usb_dev_deinit = 0x4fc00a38; +usb_dw_ctrl_deinit = 0x4fc00a3c; /* Data (.data, .bss, .rodata) */ -s_usb_osglue = 0x4ff3ffc8; +s_usb_osglue = 0x4ffbffc8; + + +/*************************************** + Group recovery_bootloader + ***************************************/ + +/* Functions */ +ets_get_bootloader_offset = 0x4fc00a40; +ets_set_bootloader_offset = 0x4fc00a44; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.libc.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.libc.ld index f38b60c22f..62230dc8eb 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.libc.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.libc.ld @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -9,28 +9,41 @@ strlen = 0x4fc00288; strstr = 0x4fc0028c; bzero = 0x4fc00290; sbrk = 0x4fc00298; +isalnum = 0x4fc0029c; +isalpha = 0x4fc002a0; isascii = 0x4fc002a4; isblank = 0x4fc002a8; iscntrl = 0x4fc002ac; +isdigit = 0x4fc002b0; +islower = 0x4fc002b4; isgraph = 0x4fc002b8; isprint = 0x4fc002bc; ispunct = 0x4fc002c0; +isspace = 0x4fc002c4; +isupper = 0x4fc002c8; +toupper = 0x4fc002cc; +tolower = 0x4fc002d0; toascii = 0x4fc002d4; memccpy = 0x4fc002d8; memchr = 0x4fc002dc; memrchr = 0x4fc002e0; +strcasecmp = 0x4fc002e4; strcasestr = 0x4fc002e8; strcat = 0x4fc002ec; strchr = 0x4fc002f4; strcspn = 0x4fc002f8; +strcoll = 0x4fc002fc; strlcat = 0x4fc00300; strlcpy = 0x4fc00304; +strlwr = 0x4fc00308; +strncasecmp = 0x4fc0030c; strncat = 0x4fc00310; strnlen = 0x4fc00318; strrchr = 0x4fc0031c; strsep = 0x4fc00320; strspn = 0x4fc00324; strtok_r = 0x4fc00328; +strupr = 0x4fc0032c; longjmp = 0x4fc00330; setjmp = 0x4fc00334; abs = 0x4fc00338; @@ -41,5 +54,5 @@ qsort = 0x4fc00348; utoa = 0x4fc00358; itoa = 0x4fc0035c; /* Data (.data, .bss, .rodata) */ -syscall_table_ptr = 0x4ff3ffe4; -_global_impure_ptr = 0x4ff3ffe0; +syscall_table_ptr = 0x4ffbffe4; +_global_impure_ptr = 0x4ffbffe0; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.libgcc.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.libgcc.ld index 3b969ade5a..7dcac301e9 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.libgcc.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.libgcc.ld @@ -1,14 +1,14 @@ /* - * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ /* ROM function interface esp32p4.rom.libgcc.ld for esp32p4 * * - * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum f6516bd9708d890f63db87f8aed53ca7 + * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum 56d78222be1daa0502090a078288f4d5 * - * Compatible with ROM where ECO version equal or greater to 0. + * Compatible with ROM where ECO version equal or greater to 5. * * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. */ @@ -18,78 +18,78 @@ ***************************************/ /* Functions */ -__absvdi2 = 0x4fc0073c; -__absvsi2 = 0x4fc00740; -__adddf3 = 0x4fc00744; -__addvdi3 = 0x4fc00748; -__addvsi3 = 0x4fc0074c; -__ashldi3 = 0x4fc00750; -__ashrdi3 = 0x4fc00754; -__bswapdi2 = 0x4fc00758; -__bswapsi2 = 0x4fc0075c; -__clear_cache = 0x4fc00760; -__clrsbdi2 = 0x4fc00764; -__clrsbsi2 = 0x4fc00768; -__clzdi2 = 0x4fc0076c; -__clzsi2 = 0x4fc00770; -__cmpdi2 = 0x4fc00774; -__ctzdi2 = 0x4fc00778; -__ctzsi2 = 0x4fc0077c; -__divdc3 = 0x4fc00780; -__divdf3 = 0x4fc00784; -__divdi3 = 0x4fc00788; -__divsc3 = 0x4fc0078c; -__divsi3 = 0x4fc00790; -__eqdf2 = 0x4fc00794; -__extendsfdf2 = 0x4fc00798; -__ffsdi2 = 0x4fc0079c; -__ffssi2 = 0x4fc007a0; -__fixdfdi = 0x4fc007a4; -__fixdfsi = 0x4fc007a8; -__fixsfdi = 0x4fc007ac; -__fixunsdfsi = 0x4fc007b0; -__fixunssfdi = 0x4fc007b4; -__fixunssfsi = 0x4fc007b8; -__floatdidf = 0x4fc007bc; -__floatdisf = 0x4fc007c0; -__floatsidf = 0x4fc007c4; -__floatundidf = 0x4fc007c8; -__floatundisf = 0x4fc007cc; -__floatunsidf = 0x4fc007d0; -__gcc_bcmp = 0x4fc007d4; -__gedf2 = 0x4fc007d8; -__gtdf2 = 0x4fc007dc; -__ledf2 = 0x4fc007e0; -__lshrdi3 = 0x4fc007e4; -__ltdf2 = 0x4fc007e8; -__moddi3 = 0x4fc007ec; -__modsi3 = 0x4fc007f0; -__muldc3 = 0x4fc007f4; -__muldf3 = 0x4fc007f8; -__muldi3 = 0x4fc007fc; -__mulsc3 = 0x4fc00800; -__mulsi3 = 0x4fc00804; -__mulvdi3 = 0x4fc00808; -__mulvsi3 = 0x4fc0080c; -__nedf2 = 0x4fc00810; -__negdf2 = 0x4fc00814; -__negdi2 = 0x4fc00818; -__negvdi2 = 0x4fc0081c; -__negvsi2 = 0x4fc00820; -__paritysi2 = 0x4fc00824; -__popcountdi2 = 0x4fc00828; -__popcountsi2 = 0x4fc0082c; -__powidf2 = 0x4fc00830; -__subdf3 = 0x4fc00834; -__subvdi3 = 0x4fc00838; -__subvsi3 = 0x4fc0083c; -__ucmpdi2 = 0x4fc00840; -__udivdi3 = 0x4fc00844; -__udivmoddi4 = 0x4fc00848; -__udivsi3 = 0x4fc0084c; -__udiv_w_sdiv = 0x4fc00850; -__umoddi3 = 0x4fc00854; -__umodsi3 = 0x4fc00858; -__unorddf2 = 0x4fc0085c; -__extenddftf2 = 0x4fc00860; -__trunctfdf2 = 0x4fc00864; +__absvdi2 = 0x4fc00730; +__absvsi2 = 0x4fc00734; +__adddf3 = 0x4fc00738; +__addvdi3 = 0x4fc0073c; +__addvsi3 = 0x4fc00740; +__ashldi3 = 0x4fc00744; +__ashrdi3 = 0x4fc00748; +__bswapdi2 = 0x4fc0074c; +__bswapsi2 = 0x4fc00750; +__clear_cache = 0x4fc00754; +__clrsbdi2 = 0x4fc00758; +__clrsbsi2 = 0x4fc0075c; +__clzdi2 = 0x4fc00760; +__clzsi2 = 0x4fc00764; +__cmpdi2 = 0x4fc00768; +__ctzdi2 = 0x4fc0076c; +__ctzsi2 = 0x4fc00770; +__divdc3 = 0x4fc00774; +__divdf3 = 0x4fc00778; +__divdi3 = 0x4fc0077c; +__divsc3 = 0x4fc00780; +__divsi3 = 0x4fc00784; +__eqdf2 = 0x4fc00788; +__extendsfdf2 = 0x4fc0078c; +__ffsdi2 = 0x4fc00790; +__ffssi2 = 0x4fc00794; +__fixdfdi = 0x4fc00798; +__fixdfsi = 0x4fc0079c; +__fixsfdi = 0x4fc007a0; +__fixunsdfsi = 0x4fc007a4; +__fixunssfdi = 0x4fc007a8; +__fixunssfsi = 0x4fc007ac; +__floatdidf = 0x4fc007b0; +__floatdisf = 0x4fc007b4; +__floatsidf = 0x4fc007b8; +__floatundidf = 0x4fc007bc; +__floatundisf = 0x4fc007c0; +__floatunsidf = 0x4fc007c4; +__gcc_bcmp = 0x4fc007c8; +__gedf2 = 0x4fc007cc; +__gtdf2 = 0x4fc007d0; +__ledf2 = 0x4fc007d4; +__lshrdi3 = 0x4fc007d8; +__ltdf2 = 0x4fc007dc; +__moddi3 = 0x4fc007e0; +__modsi3 = 0x4fc007e4; +__muldc3 = 0x4fc007e8; +__muldf3 = 0x4fc007ec; +__muldi3 = 0x4fc007f0; +__mulsc3 = 0x4fc007f4; +__mulsi3 = 0x4fc007f8; +__mulvdi3 = 0x4fc007fc; +__mulvsi3 = 0x4fc00800; +__nedf2 = 0x4fc00804; +__negdf2 = 0x4fc00808; +__negdi2 = 0x4fc0080c; +__negvdi2 = 0x4fc00810; +__negvsi2 = 0x4fc00814; +__paritysi2 = 0x4fc00818; +__popcountdi2 = 0x4fc0081c; +__popcountsi2 = 0x4fc00820; +__powidf2 = 0x4fc00824; +__subdf3 = 0x4fc00828; +__subvdi3 = 0x4fc0082c; +__subvsi3 = 0x4fc00830; +__ucmpdi2 = 0x4fc00834; +__udivdi3 = 0x4fc00838; +__udivmoddi4 = 0x4fc0083c; +__udivsi3 = 0x4fc00840; +__udiv_w_sdiv = 0x4fc00844; +__umoddi3 = 0x4fc00848; +__umodsi3 = 0x4fc0084c; +__unorddf2 = 0x4fc00850; +__extenddftf2 = 0x4fc00854; +__trunctfdf2 = 0x4fc00858; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.newlib.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.newlib.ld index 369d1c01fe..827507e6e4 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.newlib.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.newlib.ld @@ -1,14 +1,14 @@ /* - * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ /* ROM function interface esp32p4.rom.newlib.ld for esp32p4 * * - * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum f6516bd9708d890f63db87f8aed53ca7 + * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum 56d78222be1daa0502090a078288f4d5 * - * Compatible with ROM where ECO version equal or greater to 0. + * Compatible with ROM where ECO version equal or greater to 5. * * THIS FILE WAS AUTOMATICALLY GENERATED. !!! BUT EDITED !!! * The file was originally generated for use with newlib, but it was split into @@ -39,16 +39,3 @@ __swhatbuf_r = 0x4fc00384; __swbuf_r = 0x4fc00388; __swbuf = 0x4fc0038c; __swsetup_r = 0x4fc00390; -toupper = 0x4fc002cc; -tolower = 0x4fc002d0; -isalnum = 0x4fc0029c; -isalpha = 0x4fc002a0; -isdigit = 0x4fc002b0; -islower = 0x4fc002b4; -isspace = 0x4fc002c4; -isupper = 0x4fc002c8; -strcasecmp = 0x4fc002e4; -strcoll = 0x4fc002fc; -strlwr = 0x4fc00308; -strncasecmp = 0x4fc0030c; -strupr = 0x4fc0032c; diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld index bb28d14191..05749d8a4d 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld @@ -1,14 +1,14 @@ /* - * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ /* ROM function interface esp32p4.rom.rvfp.ld for esp32p4 * * - * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum f6516bd9708d890f63db87f8aed53ca7 + * Generated from ./target/esp32p4/interface-esp32p4.yml md5sum 56d78222be1daa0502090a078288f4d5 * - * Compatible with ROM where ECO version equal or greater to 0. + * Compatible with ROM where ECO version equal or greater to 5. * * THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. */ @@ -16,101 +16,86 @@ /*************************************** Group rvfplibdf ***************************************/ -/* - * These functions cannot work when compiling with floating point ABI - * implementation assumes argument is passed in a0, but floats will be passed - * in the floating point registers instead - * - * __fixsfdi = 0x4fc00878; - * __fixunssfdi = 0x4fc00880; - */ /* Functions */ -__adddf3 = 0x4fc00868; -__eqdf2 = 0x4fc0086c; -__fixdfdi = 0x4fc00870; -__fixdfsi = 0x4fc00874; -__fixunsdfsi = 0x4fc0087c; -__floatdidf = 0x4fc00884; -__floatsidf = 0x4fc00888; -__floatundidf = 0x4fc0088c; -__floatunsidf = 0x4fc00890; -__gedf2 = 0x4fc00894; -__gtdf2 = 0x4fc00898; -__ledf2 = 0x4fc0089c; -__ltdf2 = 0x4fc008a0; -__muldf3 = 0x4fc008a4; -__nedf2 = 0x4fc008a8; -__subdf3 = 0x4fc008ac; +__adddf3 = 0x4fc0085c; +__eqdf2 = 0x4fc00860; +__fixdfdi = 0x4fc00864; +__fixdfsi = 0x4fc00868; +__fixunsdfsi = 0x4fc00870; +__floatdidf = 0x4fc00878; +__floatsidf = 0x4fc0087c; +__floatundidf = 0x4fc00880; +__floatunsidf = 0x4fc00884; +__gedf2 = 0x4fc00888; +__gtdf2 = 0x4fc0088c; +__ledf2 = 0x4fc00890; +__ltdf2 = 0x4fc00894; +__muldf3 = 0x4fc00898; +__nedf2 = 0x4fc0089c; +__subdf3 = 0x4fc008a0; /*************************************** Group libgcc ***************************************/ -/* Not part of the original ROM interface, but RVFP versions cannot work with float-abi */ -__fixsfdi = 0x4fc007ac; -__fixunssfdi = 0x4fc007b4; - -/* Functions */ -__absvdi2 = 0x4fc0073c; -__absvsi2 = 0x4fc00740; -__addvdi3 = 0x4fc00748; -__addvsi3 = 0x4fc0074c; -__ashldi3 = 0x4fc00750; -__ashrdi3 = 0x4fc00754; -__bswapdi2 = 0x4fc00758; -__bswapsi2 = 0x4fc0075c; -__clear_cache = 0x4fc00760; -__clrsbdi2 = 0x4fc00764; -__clrsbsi2 = 0x4fc00768; -__clzdi2 = 0x4fc0076c; -__clzsi2 = 0x4fc00770; -__cmpdi2 = 0x4fc00774; -__ctzdi2 = 0x4fc00778; -__ctzsi2 = 0x4fc0077c; -__divdc3 = 0x4fc00780; -__divdf3 = 0x4fc00784; -__divdi3 = 0x4fc00788; -__divsc3 = 0x4fc0078c; -__divsi3 = 0x4fc00790; -__extendsfdf2 = 0x4fc00798; -__ffsdi2 = 0x4fc0079c; -__ffssi2 = 0x4fc007a0; -__fixunssfsi = 0x4fc007b8; -__floatdisf = 0x4fc007c0; -__floatundisf = 0x4fc007cc; -__gcc_bcmp = 0x4fc007d4; -__lshrdi3 = 0x4fc007e4; -__moddi3 = 0x4fc007ec; -__modsi3 = 0x4fc007f0; -__muldc3 = 0x4fc007f4; -__muldi3 = 0x4fc007fc; -__mulsc3 = 0x4fc00800; -__mulsi3 = 0x4fc00804; -__mulvdi3 = 0x4fc00808; -__mulvsi3 = 0x4fc0080c; -__negdf2 = 0x4fc00814; -__negdi2 = 0x4fc00818; -__negvdi2 = 0x4fc0081c; -__negvsi2 = 0x4fc00820; -__paritysi2 = 0x4fc00824; -__popcountdi2 = 0x4fc00828; -__popcountsi2 = 0x4fc0082c; -__powidf2 = 0x4fc00830; -__subvdi3 = 0x4fc00838; -__subvsi3 = 0x4fc0083c; -__ucmpdi2 = 0x4fc00840; -__udivdi3 = 0x4fc00844; -__udivmoddi4 = 0x4fc00848; -__udivsi3 = 0x4fc0084c; -__udiv_w_sdiv = 0x4fc00850; -__umoddi3 = 0x4fc00854; -__umodsi3 = 0x4fc00858; -__unorddf2 = 0x4fc0085c; -__extenddftf2 = 0x4fc00860; -__trunctfdf2 = 0x4fc00864; -/*************************************** - Group libgcc -***************************************/ - /* Functions */ +__absvdi2 = 0x4fc00730; +__absvsi2 = 0x4fc00734; +__addvdi3 = 0x4fc0073c; +__addvsi3 = 0x4fc00740; +__ashldi3 = 0x4fc00744; +__ashrdi3 = 0x4fc00748; +__bswapdi2 = 0x4fc0074c; +__bswapsi2 = 0x4fc00750; +__clear_cache = 0x4fc00754; +__clrsbdi2 = 0x4fc00758; +__clrsbsi2 = 0x4fc0075c; +__clzdi2 = 0x4fc00760; +__clzsi2 = 0x4fc00764; +__cmpdi2 = 0x4fc00768; +__ctzdi2 = 0x4fc0076c; +__ctzsi2 = 0x4fc00770; +__divdc3 = 0x4fc00774; +__divdf3 = 0x4fc00778; +__divdi3 = 0x4fc0077c; +__divsc3 = 0x4fc00780; +__divsi3 = 0x4fc00784; +__extendsfdf2 = 0x4fc0078c; +__ffsdi2 = 0x4fc00790; +__ffssi2 = 0x4fc00794; +__fixsfdi = 0x4fc007a0; +__fixunssfdi = 0x4fc007a8; +__fixunssfsi = 0x4fc007ac; +__floatdisf = 0x4fc007b4; +__floatundisf = 0x4fc007c0; +__gcc_bcmp = 0x4fc007c8; +__lshrdi3 = 0x4fc007d8; +__moddi3 = 0x4fc007e0; +__modsi3 = 0x4fc007e4; +__muldc3 = 0x4fc007e8; +__muldi3 = 0x4fc007f0; +__mulsc3 = 0x4fc007f4; +__mulsi3 = 0x4fc007f8; +__mulvdi3 = 0x4fc007fc; +__mulvsi3 = 0x4fc00800; +__negdf2 = 0x4fc00808; +__negdi2 = 0x4fc0080c; +__negvdi2 = 0x4fc00810; +__negvsi2 = 0x4fc00814; +__paritysi2 = 0x4fc00818; +__popcountdi2 = 0x4fc0081c; +__popcountsi2 = 0x4fc00820; +__powidf2 = 0x4fc00824; +__subvdi3 = 0x4fc0082c; +__subvsi3 = 0x4fc00830; +__ucmpdi2 = 0x4fc00834; +__udivdi3 = 0x4fc00838; +__udivmoddi4 = 0x4fc0083c; +__udivsi3 = 0x4fc00840; +__udiv_w_sdiv = 0x4fc00844; +__umoddi3 = 0x4fc00848; +__umodsi3 = 0x4fc0084c; +__unorddf2 = 0x4fc00850; +__extenddftf2 = 0x4fc00854; +__trunctfdf2 = 0x4fc00858;