This is an automated email from the ASF dual-hosted git repository.
xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 1c0794c435a boards/xtensa/esp32: rework linker scripts for legacy
esp-idf format
1c0794c435a is described below
commit 1c0794c435ac07f15f8650e01e51ada114668168
Author: Laczen JMS <[email protected]>
AuthorDate: Fri Oct 16 10:44:19 2026 +0200
boards/xtensa/esp32: rework linker scripts for legacy esp-idf format
Integrate the esp-idf format into the esp32_sections and flat_memory
scripts.
Update all esp32 boards to include the change.
Signed-off-by: Laczen JMS <[email protected]>
---
.../xtensa/esp32/common/scripts/esp32_sections.ld | 312 +++++++--------
boards/xtensa/esp32/common/scripts/flat_memory.ld | 2 +-
.../xtensa/esp32/common/scripts/legacy_sections.ld | 437 ---------------------
.../xtensa/esp32/esp32-2432S028/scripts/Make.defs | 16 +-
.../xtensa/esp32/esp32-audio-kit/scripts/Make.defs | 12 +-
.../xtensa/esp32/esp32-devkitc/scripts/Make.defs | 11 +-
.../esp32/esp32-ethernet-kit/scripts/Make.defs | 12 +-
boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs | 12 +-
.../xtensa/esp32/esp32-pico-kit/scripts/Make.defs | 12 +-
.../esp32/esp32-sparrow-kit/scripts/Make.defs | 12 +-
.../esp32/esp32-wrover-kit/scripts/Make.defs | 12 +-
.../esp32/heltec_wifi_lora32/scripts/Make.defs | 14 +-
.../esp32/lilygo_tbeam_lora_gps/scripts/Make.defs | 12 +-
.../xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs | 12 +-
.../xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs | 12 +-
.../esp32/ttgo_t_display_esp32/scripts/Make.defs | 12 +-
16 files changed, 217 insertions(+), 695 deletions(-)
diff --git a/boards/xtensa/esp32/common/scripts/esp32_sections.ld
b/boards/xtensa/esp32/common/scripts/esp32_sections.ld
index 56c026f8d11..4810657e159 100644
--- a/boards/xtensa/esp32/common/scripts/esp32_sections.ld
+++ b/boards/xtensa/esp32/common/scripts/esp32_sections.ld
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/xtensa/esp32/common/scripts/simple_boot_sections.ld
+ * boards/xtensa/esp32/common/scripts/esp32_sections.ld
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -148,116 +148,27 @@ SECTIONS
.iram0.text : ALIGN(4)
{
- /* Code marked as running out of IRAM */
+ /* Code marked as running out of IRAM */
_iram_text_start = ABSOLUTE(.);
*(.iram1 .iram1.*)
- esp32_start.*(.literal .text .literal.* .text.*)
- *libcoexist.a:(.coexiram .coexiram.*)
- *libphy.a:(.literal .text .literal.* .text.*)
*librtc.a:(.literal .text .literal.* .text.*)
- *libpp.a:wifi_iram.*(.literal .text .literal.* .text.*)
- *libpp.a:wifi_rx_iram.*(.literal .text .literal.* .text.*)
- *libpp.a:wifi_extra_iram.*(.literal .text .literal.* .text.*)
- *libpp.a:wifi_slp_iram.*(.literal .text .literal.* .text.*)
- *libpp.a:wifi_or_slp_iram.*(.literal .text .literal.* .text.*)
- *libpp.a:wifi_slp_rx_iram.*(.literal .text .literal.* .text.*)
- *libhal.a:(.literal .text .literal.* .text.*)
- *libarch.a:*esp_loader.*(.literal .text .literal.* .text.*)
- *libarch.a:*brownout_hal.*(.text .text.* .literal .literal.*)
- *libarch.a:*cpu.*(.text .text.* .literal .literal.*)
- *libarch.a:*gpio_hal.*(.text .text.* .literal .literal.*)
- *libarch.a:*periph_ctrl.*(.text .text.* .literal .literal.*)
- *libarch.a:*clk.*(.text .text.* .literal .literal.*)
- *libarch.a:*efuse_hal.*(.text .text.* .literal .literal.*)
- *libarch.a:*efuse_utility.*(.text .text.* .literal .literal.*)
+ *libarch.a:esp_spiflash.*(.literal .text .literal.* .text.*)
*libarch.a:*esp_clk.*(.text .text.* .literal .literal.*)
- *libarch.a:*esp_clk_tree.*(.text .text.* .literal .literal.*)
- *libarch.a:*esp_clk_tree_common.*(.text .text.* .literal .literal.*)
- *libarch.a:*clk_tree_hal.*(.text .text.* .literal .literal.*)
- *libarch.a:*rtc_clk.*(.text .text.* .literal .literal.*)
- *libarch.a:*rtc_clk_init.*(.text .text.* .literal .literal.*)
- *libarch.a:*rtc_init.*(.text .text.* .literal .literal.*)
- *libarch.a:*rtc_time.*(.text .text.* .literal .literal.*)
- *libarch.a:*regi2c_ctrl.*(.text .text.* .literal .literal.*)
- *libarch.a:*uart_hal_iram.*(.text .text.* .literal .literal.*)
- *libarch.a:*wdt_hal_iram.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_banner_wrap.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_init.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_common.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_common_loader.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_console.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_console_loader.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_esp32.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_flash.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_flash_config_esp32.*(.text .text.* .literal
.literal.*)
- *libarch.a:*bootloader_clock_init.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_clock_loader.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_efuse.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_panic.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_mem.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_random.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_random*.*(.literal.bootloader_random_disable
.text.bootloader_random_disable)
- *libarch.a:*bootloader_random*.*(.literal.bootloader_random_enable
.text.bootloader_random_enable)
- *libarch.a:*bootloader_random_esp32.*(.text .text.* .literal .literal.*)
- *libarch.a:*esp_image_format.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_soc.*(.text .text.* .literal .literal.*)
- *libarch.a:*bootloader_sha.*(.text .text.* .literal .literal.*)
- *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:*uart_periph.*(.text .text.* .literal .literal.*)
- *libarch.a:esp_app_desc.*(.literal .text .literal.* .text.*)
- *libarch.a:*esp_rom_uart.*(.text .text.* .literal .literal.*)
- *libarch.a:*esp_rom_sys.*(.text .text.* .literal .literal.*)
- *libarch.a:*esp_rom_spiflash.*(.text .text.* .literal .literal.*)
- *libarch.a:*esp_rom_wdt.*(.text .text.* .literal .literal.*)
- *libarch.a:*log.*(.text .text.* .literal .literal.*)
- *libarch.a:*log_lock.*(.literal .literal.* .text .text.*)
- *libarch.a:*log_print.*(.literal .literal.* .text .text.*)
- *libarch.a:*log_timestamp.*(.literal.esp_log_early_timestamp
.text.esp_log_early_timestamp)
- *libarch.a:*log_timestamp.*(.literal.esp_log_timestamp
.text.esp_log_timestamp)
- *libarch.a:*log_timestamp_common.*(.literal .literal.* .text .text.*)
- *libarch.a:*log_write.*(.literal.esp_log_write .text.esp_log_write)
- *libarch.a:*log_write.*(.literal.esp_log_writev .text.esp_log_writev)
- *libarch.a:*cpu_region_protect.*(.text .text.* .literal .literal.*)
- *libarch.a:*flash_qio_mode.*(.text .text.* .literal .literal.*)
- *libarch.a:xtensa_intr.*(.literal .literal.* .text .text.*)
-
-#ifdef CONFIG_STACK_CANARIES
- *libc.a:lib_stackchk.*(.literal .text .literal.* .text.*)
-#endif
- *libarch.a:esp32_cpuindex.*(.literal .text .literal.* .text.*)
- *libarch.a:esp32_user.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_assert.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_cpuint.*(.literal .text .literal.* .text.*)
*libarch.a:xtensa_cpupause.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_irqdispatch.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_modifyreg32.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_saveusercontext.*(.literal .text .literal.* .text.*)
+ *libarch.a:xtensa_copystate.*(.literal .text .literal.* .text.*)
+ *libarch.a:xtensa_interruptcontext.*(.literal .text .literal.* .text.*)
*libarch.a:xtensa_testset.*(.literal .text .literal.* .text.*)
- *libarch.a:rtc_sleep.*(.literal.rtc_sleep_start .text.rtc_sleep_start)
-
- *libc.a:lib_assert.*(.literal .text .literal.* .text.*)
- *libc.a:lib_utsname.*(.literal .text .literal.* .text.*)
- *libc.a:sq_remlast.*(.literal .text .literal.* .text.*)
- *libc.a:arch_atomic.*(.text .text.* .literal .literal.*)
+ *libarch.a:esp_app_desc.*(.literal .text .literal.* .text.*)
- *libdrivers.a:syslog_flush.*(.literal .text .literal.* .text.*)
+ *libc.a:arch_atomic.*(.literal .text .literal.* .text.*)
- *libsched.a:assert.*(.literal .text .literal.* .text.*)
- *libsched.a:irq_csection.*(.literal .text .literal.* .text.*)
- *libsched.a:irq_dispatch.*(.literal .text .literal.* .text.*)
- *libsched.a:irq_spinlock.*(.literal .text .literal.* .text.*)
- *libsched.a:panic_notifier.*(.literal.panic_notifier_call_chain
.text.panic_notifier_call_chain)
- *libsched.a:sched_gettcb.*(.literal .text .literal.* .text.*)
- *libsched.a:sched_lock.*(.literal .text .literal.* .text.*)
- *libsched.a:sched_note.*(.literal .text .literal.* .text.*)
*libsched.a:sched_suspendscheduler.*(.literal .text .literal.* .text.*)
+ *libsched.a:sched_note.*(.literal .text .literal.* .text.*)
*libsched.a:sched_thistask.*(.literal .text .literal.* .text.*)
- *libsched.a:sched_unlock.*(.literal .text .literal.* .text.*)
*libsched.a:spinlock.*(.literal .text .literal.* .text.*)
-
+ *libsched.a:irq_csection.*(.literal .text .literal.* .text.*)
+ *libsched.a:irq_dispatch.*(.literal .text .literal.* .text.*)
*libarch.a:esp_spiflash.*(.literal .text .literal.* .text.*)
*libarch.a:esp_flash_api.*(.text .text.* .literal .literal.*)
*libarch.a:esp_flash_spi_init.*(.text .text.* .literal .literal.*)
@@ -284,15 +195,92 @@ SECTIONS
*libarch.a:interrupt.*(.literal.intr_get_item .text.intr_get_item)
*libarch.a:interrupt.*(.literal.intr_handler_get_arg
.text.intr_handler_get_arg)
+#if defined(CONFIG_ESPRESSIF_SIMPLE_BOOT) ||
defined(CONFIG_ESP32_APP_FORMAT_MCUBOOT)
+ /* SIMPLEBOOT has no second-stage bootloader. __start() runs
+ * bootloader_init() and map_rom_segments() before any flash mapping
exists,
+ * so everything they reach must be resident in RAM.
+ * MCUBOOT runs map_rom_segments before any flash mappings exist, so
+ * so everything this reaches must be resident in RAM.
+ */
+
+ /* __start() itself runs before the mapping it creates, so it cannot live
in
+ * flash it is about to map.
+ */
+
+ esp32_start.*(.literal .text .literal.* .text.*)
+
+ *libarch.a:*esp_loader.*(.literal .text .literal.* .text.*)
+ *libarch.a:*bootloader_init.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_common.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_common_loader.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_console.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_console_loader.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_banner_wrap.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_clock_init.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_clock_loader.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_efuse.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_esp32.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_flash.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_flash_config_esp32.*(.text .text.* .literal
.literal.*)
+ *libarch.a:*bootloader_mem.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_panic.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_random.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_random_esp32.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_sha.*(.text .text.* .literal .literal.*)
+ *libarch.a:*bootloader_soc.*(.text .text.* .literal .literal.*)
+ *libarch.a:*esp_image_format.*(.text .text.* .literal .literal.*)
+ *libarch.a:*flash_encrypt.*(.text .text.* .literal .literal.*)
+ *libarch.a:*flash_qio_mode.*(.text .text.* .literal .literal.*)
+ *libarch.a:*brownout_hal.*(.text .text.* .literal .literal.*)
+ *libarch.a:*cpu.*(.text .text.* .literal .literal.*)
+ *libarch.a:*cpu_region_protect.*(.text .text.* .literal .literal.*)
+ *libarch.a:*gpio_hal.*(.text .text.* .literal .literal.*)
+ *libarch.a:*periph_ctrl.*(.text .text.* .literal .literal.*)
+ *libarch.a:*clk.*(.text .text.* .literal .literal.*)
+ *libarch.a:*clk_tree_hal.*(.text .text.* .literal .literal.*)
+ *libarch.a:*esp_clk_tree.*(.text .text.* .literal .literal.*)
+ *libarch.a:*esp_clk_tree_common.*(.text .text.* .literal .literal.*)
+ *libarch.a:*rtc_init.*(.text .text.* .literal .literal.*)
+ *libarch.a:*rtc_clk.*(.text .text.* .literal .literal.*)
+ *libarch.a:*rtc_clk_init.*(.text .text.* .literal .literal.*)
+ *libarch.a:*rtc_sleep.*(.text .text.* .literal .literal.*)
+ *libarch.a:*rtc_time.*(.text .text.* .literal .literal.*)
+ *libarch.a:*regi2c_ctrl.*(.text .text.* .literal .literal.*)
+ *libarch.a:*efuse_hal.*(.text .text.* .literal .literal.*)
+ *libarch.a:*efuse_utility.*(.text .text.* .literal .literal.*)
+ *libarch.a:*mmu_hal.*(.text .text.* .literal .literal.*)
+ *libarch.a:*mpu_hal.*(.text .text.* .literal .literal.*)
+ *libarch.a:*cache_esp32.*(.text .text.* .literal .literal.*)
+ *libarch.a:*cache_hal_esp32.*(.text .text.* .literal .literal.*)
+ *libarch.a:*uart_hal.*(.text .text.* .literal .literal.*)
+ *libarch.a:*uart_hal_iram.*(.text .text.* .literal .literal.*)
+ *libarch.a:*uart_periph.*(.text .text.* .literal .literal.*)
+ *libarch.a:*wdt_hal_iram.*(.text .text.* .literal .literal.*)
+ *libarch.a:*esp_rom_uart.*(.text .text.* .literal .literal.*)
+ *libarch.a:*esp_rom_sys.*(.text .text.* .literal .literal.*)
+ *libarch.a:*esp_rom_spiflash.*(.text .text.* .literal .literal.*)
+ *libarch.a:*esp_rom_wdt.*(.text .text.* .literal .literal.*)
+ *libarch.a:*log.*(.text .text.* .literal .literal.*)
+ *libarch.a:*log_lock.*(.literal .literal.* .text .text.*)
+ *libarch.a:*log_print.*(.literal .literal.* .text .text.*)
+ *libarch.a:*log_timestamp.*(.literal .literal.* .text .text.*)
+ *libarch.a:*log_timestamp_common.*(.literal .literal.* .text .text.*)
+ *libarch.a:*log_write.*(.literal .literal.* .text .text.*)
+ *libarch.a:esp_app_desc.*(.literal .literal.* .text .text.*)
+ *libarch.a:esp_flash_api.*(.text .text.* .literal .literal.*)
+ *libarch.a:esp_flash_spi_init.*(.text .text.* .literal .literal.*)
+ *libarch.a:spi_flash_hal_gpspi.*(.literal .literal.* .text .text.*)
+ *libarch.a:spi_flash_encrypt_hal_iram.*(.text .text.* .literal .literal.*)
+ *libarch.a:spi_flash_os_func_noos.*(.literal .literal.* .text .text.*)
+ *libarch.a:spi_flash_os_func_app.*(.literal .literal.* .text .text.*)
+ *libarch.a:spi_flash_wrap.*(.literal .literal.* .text .text.*)
+#endif
+
*(.wifirxiram .wifirxiram.*)
- *(.wifi0iram .wifi0iram.*)
- *(.wifiorslpiram .wifiorslpiram.*)
+ *(.wifi0iram .wifi0iram.*)
*(.wifislpiram .wifislpiram.*)
*(.wifislprxiram .wifislprxiram.*)
*(.phyiram .phyiram.*)
-
- . = ALIGN(4) + 16;
-
_iram_text_end = ABSOLUTE(.);
/* IRAM heap starts at the end of iram0_0_seg */
@@ -417,105 +405,95 @@ SECTIONS
KEEP (*(.gnu.linkonce.s2.*))
KEEP (*(.jcr))
*(.dram1 .dram1.*)
- esp32_start.*(.rodata .rodata.*)
*libphy.a:(.rodata .rodata.*)
-#ifdef CONFIG_STACK_CANARIES
- *libc.a:lib_stackchk.*(.rodata .rodata.*)
-#endif
- *libarch.a:xtensa_context.*(.rodata .rodata.*)
- *libarch.a:xtensa_copystate.*(.rodata .rodata.*)
+ *libarch.a:esp_cache_utils.*(.rodata .rodata.*)
+ *libarch.a:esp_spiflash.*(.rodata .rodata.*)
+ *libarch.a:*esp_clk.*(.rodata .rodata.*)
*libarch.a:xtensa_cpupause.*(.rodata .rodata.*)
+ *libarch.a:xtensa_copystate.*(.rodata .rodata.*)
+ *libarch.a:xtensa_interruptcontext.*(.rodata .rodata.*)
*libarch.a:xtensa_testset.*(.rodata .rodata.*)
+ *libarch.a:spi_flash_chip*.*(.rodata .rodata.*)
+ *libarch.a:critical_section.*(.rodata .rodata.*)
+ *libarch.a:os.*(.rodata.g_int_flags_count .rodata.g_int_flags)
+ *libc.a:arch_atomic.*(.rodata .rodata.*)
- *libdrivers.a:syslog_channel.*(.rodata .rodata.*)
+#if defined(CONFIG_ESPRESSIF_SIMPLE_BOOT) ||
defined(CONFIG_ESP32_APP_FORMAT_MCUBOOT)
+ /* The read-only data of everything pinned into IRAM above. */
- *libsched.a:sched_suspendscheduler.*(.rodata .rodata.*)
- *libsched.a:sched_thistask.*(.rodata .rodata.*)
- *libsched.a:sched_note.*(.rodata .rodata.*)
- *libsched.a:spinlock.*(.rodata .rodata.*)
- *libsched.a:irq_csection.*(.rodata .rodata.*)
- *libsched.a:irq_dispatch.*(.rodata .rodata.*)
+ esp32_start.*(.rodata .rodata.*)
*libarch.a:*esp_loader.*(.rodata .rodata.*)
- *libarch.a:*brownout.*(.rodata .rodata.*)
- *libarch.a:*cpu.*(.rodata .rodata.*)
- *libarch.a:*gpio_hal.*(.rodata .rodata.*)
- *libarch.a:*periph_ctrl.*(.rodata .rodata.*)
- *libarch.a:*clk.*(.rodata .rodata.*)
- *libarch.a:*esp_clk.*(.rodata .rodata.*)
- *libarch.a:*esp_clk_tree.*(.rodata .rodata.*)
- *libarch.a:*esp_clk_tree_common.*(.rodata .rodata.*)
- *libarch.a:*clk_tree_hal.*(.rodata .rodata.*)
- *libarch.a:*rtc_init.*(.rodata .rodata.*)
- *libarch.a:*rtc_clk.*(.rodata .rodata.*)
- *libarch.a:*rtc_clk_init.*(.rodata .rodata.*)
- *libarch.a:*rtc_time.*(.rodata .rodata.*)
- *libarch.a:*regi2c_ctrl.*(.rodata .rodata.*)
- *libarch.a:*uart_hal_iram.*(.rodata .rodata.*)
- *libarch.a:*wdt_hal_iram.*(.rodata .rodata.*)
- *libarch.a:*efuse_utility.*(.rodata .rodata.*)
- *libarch.a:*bootloader_banner_wrap.*(.rodata .rodata.*)
*libarch.a:*bootloader_init.*(.rodata .rodata.*)
*libarch.a:*bootloader_common.*(.rodata .rodata.*)
*libarch.a:*bootloader_common_loader.*(.rodata .rodata.*)
*libarch.a:*bootloader_console.*(.rodata .rodata.*)
*libarch.a:*bootloader_console_loader.*(.rodata .rodata.*)
- *libarch.a:*bootloader_esp32.*(.rodata .rodata.*)
- *libarch.a:*bootloader_flash.*(.rodata .rodata.*)
- *libarch.a:*bootloader_flash_config_esp32.*(.rodata .rodata.*)
+ *libarch.a:*bootloader_banner_wrap.*(.rodata .rodata.*)
*libarch.a:*bootloader_clock_init.*(.rodata .rodata.*)
*libarch.a:*bootloader_clock_loader.*(.rodata .rodata.*)
*libarch.a:*bootloader_efuse.*(.rodata .rodata.*)
- *libarch.a:*bootloader_panic.*(.rodata .rodata.*)
+ *libarch.a:*bootloader_esp32.*(.rodata .rodata.*)
+ *libarch.a:*bootloader_flash.*(.rodata .rodata.*)
+ *libarch.a:*bootloader_flash_config_esp32.*(.rodata .rodata.*)
*libarch.a:*bootloader_mem.*(.rodata .rodata.*)
+ *libarch.a:*bootloader_panic.*(.rodata .rodata.*)
*libarch.a:*bootloader_random.*(.rodata .rodata.*)
*libarch.a:*bootloader_random_esp32.*(.rodata .rodata.*)
- *libarch.a:*esp_image_format.*(.rodata .rodata.*)
- *libarch.a:*bootloader_soc.*(.rodata .rodata.*)
*libarch.a:*bootloader_sha.*(.rodata .rodata.*)
- *libarch.a:*uart_hal.*(.rodata .rodata.*)
- *libarch.a:*mpu_hal.*(.rodata .rodata.*)
- *libarch.a:*mmu_hal.*(.rodata .rodata.*)
+ *libarch.a:*bootloader_soc.*(.rodata .rodata.*)
+ *libarch.a:*esp_image_format.*(.rodata .rodata.*)
+ *libarch.a:*flash_encrypt.*(.rodata .rodata.*)
+ *libarch.a:*flash_qio_mode.*(.rodata .rodata.*)
+ *libarch.a:*brownout_hal.*(.rodata .rodata.*)
+ *libarch.a:*cpu.*(.rodata .rodata.*)
+ *libarch.a:*cpu_region_protect.*(.rodata .rodata.*)
+ *libarch.a:*gpio_hal.*(.rodata .rodata.*)
+ *libarch.a:*periph_ctrl.*(.rodata .rodata.*)
+ *libarch.a:*clk.*(.rodata .rodata.*)
+ *libarch.a:*clk_tree_hal.*(.rodata .rodata.*)
+ *libarch.a:*esp_clk_tree.*(.rodata .rodata.*)
+ *libarch.a:*esp_clk_tree_common.*(.rodata .rodata.*)
+ *libarch.a:*rtc_init.*(.rodata .rodata.*)
+ *libarch.a:*rtc_clk.*(.rodata .rodata.*)
+ *libarch.a:*rtc_clk_init.*(.rodata .rodata.*)
+ *libarch.a:*rtc_time.*(.rodata .rodata.*)
+ *libarch.a:*regi2c_ctrl.*(.rodata .rodata.*)
*libarch.a:*efuse_hal.*(.rodata .rodata.*)
+ *libarch.a:*efuse_utility.*(.rodata .rodata.*)
+ *libarch.a:*mmu_hal.*(.rodata .rodata.*)
+ *libarch.a:*mpu_hal.*(.rodata .rodata.*)
+ *libarch.a:*cache_esp32.*(.rodata .rodata.*)
+ *libarch.a:*cache_hal_esp32.*(.rodata .rodata.*)
+ *libarch.a:*uart_hal.*(.rodata .rodata.*)
+ *libarch.a:*uart_hal_iram.*(.rodata .rodata.*)
*libarch.a:*uart_periph.*(.rodata .rodata.*)
+ *libarch.a:*wdt_hal_iram.*(.rodata .rodata.*)
*libarch.a:*esp_rom_uart.*(.rodata .rodata.*)
*libarch.a:*esp_rom_sys.*(.rodata .rodata.*)
*libarch.a:*esp_rom_spiflash.*(.rodata .rodata.*)
*libarch.a:*esp_rom_wdt.*(.rodata .rodata.*)
*libarch.a:*log.*(.rodata .rodata.*)
- *libarch.a:*log_noos.*(.rodata .rodata.*)
- *libarch.a:*cpu_region_protect.*(.rodata .rodata.*)
- *libarch.a:*flash_qio_mode.*(.rodata .rodata.*)
-
+ *libarch.a:esp_app_desc.*(.rodata .rodata.*)
*libarch.a:esp_flash_api.*(.rodata .rodata.*)
*libarch.a:esp_flash_spi_init.*(.rodata .rodata.*)
- *libarch.a:spi_flash_hal_iram.*(.rodata .rodata.*)
- *libarch.a:spi_flash_encrypt_hal_iram.*(.rodata .rodata.*)
- *libarch.a:spi_flash_hal_gpspi.*(.rodata .rodata.*)
- *libarch.a:spi_flash_chip*.*(.rodata .rodata.*)
- *libarch.a:spi_flash_wrap.*(.rodata .rodata.*)
- *libarch.a:spi_flash_os_func_noos.*(.rodata .rodata.*)
- *libarch.a:spi_flash_os_func_app.*(.rodata .rodata.*)
- *libarch.a:flash_brownout_hook.*(.rodata .rodata.*)
- *libarch.a:esp_cache_utils.*(.rodata .rodata.*)
- *libarch.a:cache_esp32.*(.rodata .rodata.*)
- *libarch.a:cache_utils.*(.rodata .rodata.*)
- *libarch.a:cache_hal_esp32.*(.rodata .rodata.*)
- *libarch.a:memspi_host_driver.*(.rodata .rodata.*)
- *libarch.a:critical_section.*(.rodata .rodata.*)
- *libarch.a:os.*(.rodata.g_int_flags_count .rodata.g_int_flags)
+#endif
- *libc.a:arch_atomic.*(.rodata .rodata.*)
+ *libsched.a:sched_suspendscheduler.*(.rodata .rodata.*)
+ *libsched.a:sched_thistask.*(.rodata .rodata.*)
+ *libsched.a:sched_note.*(.rodata .rodata.*)
+ *libsched.a:spinlock.*(.rodata .rodata.*)
+ *libsched.a:irq_csection.*(.rodata .rodata.*)
+ *libsched.a:irq_dispatch.*(.rodata .rodata.*)
+ . = ALIGN(4);
_edata = ABSOLUTE(.);
_data_end = ABSOLUTE(.);
- . = ALIGN(4);
-
/* Heap starts at the end of .data */
_sheap = ABSOLUTE(.);
- } >dram0_0_seg AT>ROM
+} >dram0_0_seg AT>ROM
/* This section will be used by the debugger and disassembler to get more
* information about raw data present in the code.
diff --git a/boards/xtensa/esp32/common/scripts/flat_memory.ld
b/boards/xtensa/esp32/common/scripts/flat_memory.ld
index 49c7f90a2a4..7ed325f5595 100644
--- a/boards/xtensa/esp32/common/scripts/flat_memory.ld
+++ b/boards/xtensa/esp32/common/scripts/flat_memory.ld
@@ -67,7 +67,7 @@ MEMORY
ROM (RX) : org = ORIGIN(metadata) + LENGTH(metadata),
len = FLASH_SIZE - ORIGIN(ROM)
-#elif defined (CONFIG_ESPRESSIF_SIMPLE_BOOT)
+#else
/* The 0x20 offset is a convenience for the app binary image generation.
* Flash cache has 64KB pages. The .bin file which is flashed to the chip
* has a 0x18 byte file header, and each segment has a 0x08 byte segment
diff --git a/boards/xtensa/esp32/common/scripts/legacy_sections.ld
b/boards/xtensa/esp32/common/scripts/legacy_sections.ld
deleted file mode 100644
index 59986666cee..00000000000
--- a/boards/xtensa/esp32/common/scripts/legacy_sections.ld
+++ /dev/null
@@ -1,437 +0,0 @@
-/****************************************************************************
- * boards/xtensa/esp32/common/scripts/legacy_sections.ld
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * 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 <nuttx/config.h>
-
-/* Default entry point: */
-
-ENTRY(__start);
-
-SECTIONS
-{
- /* Send .iram0 code to iram */
-
- .iram0.vectors :
- {
- /* Vectors go to IRAM */
-
- _init_start = ABSOLUTE(.);
-
- /* Vectors according to
builds/RF-2015.2-win32/esp108_v1_2_s5_512int_2/config.html */
-
- . = 0x0;
- KEEP (*(.window_vectors.text));
- . = 0x180;
- KEEP (*(.xtensa_level2_vector.text));
- . = 0x1c0;
- KEEP (*(.xtensa_level3_vector.text));
- . = 0x200;
- KEEP (*(.xtensa_level4_vector.text));
- . = 0x240;
- KEEP (*(.xtensa_level5_vector.text));
- . = 0x280;
- KEEP (*(.debug_exception_vector.text));
- . = 0x2c0;
- KEEP (*(.nmi_vector.text));
- . = 0x300;
- KEEP (*(.kernel_exception_vector.text));
- . = 0x340;
- KEEP (*(.user_exception_vector.text));
- . = 0x3c0;
- KEEP (*(.double_exception_vector.text));
- . = 0x400;
- *(.*_vector.literal)
-
- . = ALIGN (16);
- *(.entry.text)
- *(.init.literal)
- *(.init)
- _init_end = ABSOLUTE(.);
- } > iram0_0_seg
-
- .iram0.text :
- {
- /* Code marked as running out of IRAM */
-
- _iram_text_start = ABSOLUTE(.);
- *(.iram1 .iram1.*)
- *librtc.a:(.literal .text .literal.* .text.*)
-#ifdef CONFIG_STACK_CANARIES
- *libc.a:lib_stackchk.*(.literal .text .literal.* .text.*)
-#endif
- *libarch.a:esp32_cpuindex.*(.literal .text .literal.* .text.*)
- *libarch.a:esp32_spicache.*(.literal .text .literal.* .text.*)
- *libarch.a:esp32_spiflash.*(.literal .text .literal.* .text.*)
- *libarch.a:esp32_user.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_assert.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_cpuint.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_cpupause.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_irqdispatch.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_modifyreg32.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_saveusercontext.*(.literal .text .literal.* .text.*)
- *libarch.a:xtensa_testset.*(.literal .text .literal.* .text.*)
- *libarch.a:esp_app_desc.*(.literal .text .literal.* .text.*)
-
- *libc.a:lib_assert.*(.literal .text .literal.* .text.*)
- *libc.a:lib_utsname.*(.literal .text .literal.* .text.*)
- *libc.a:sq_remlast.*(.literal .text .literal.* .text.*)
- *libc.a:arch_atomic.*(.literal .text .literal.* .text.*)
-
- *libdrivers.a:syslog_flush.*(.literal .text .literal.* .text.*)
-
- *libsched.a:assert.*(.literal .text .literal.* .text.*)
- *libsched.a:irq_csection.*(.literal .text .literal.* .text.*)
- *libsched.a:irq_dispatch.*(.literal .text .literal.* .text.*)
- *libsched.a:irq_spinlock.*(.literal .text .literal.* .text.*)
- *libsched.a:panic_notifier.*(.literal.panic_notifier_call_chain
.text.panic_notifier_call_chain)
- *libsched.a:sched_gettcb.*(.literal .text .literal.* .text.*)
- *libsched.a:sched_lock.*(.literal .text .literal.* .text.*)
- *libsched.a:sched_note.*(.literal .text .literal.* .text.*)
- *libsched.a:sched_suspendscheduler.*(.literal .text .literal.* .text.*)
- *libsched.a:sched_thistask.*(.literal .text .literal.* .text.*)
- *libsched.a:sched_unlock.*(.literal .text .literal.* .text.*)
- *libsched.a:spinlock.*(.literal .text .literal.* .text.*)
-
- *libarch.a:esp_spiflash.*(.literal .text .literal.* .text.*)
- *libarch.a:esp_flash_api.*(.text .text.* .literal .literal.*)
- *libarch.a:esp_flash_spi_init.*(.text .text.* .literal .literal.*)
- *libarch.a:spi_flash_hal_iram.*(.literal .literal.* .text .text.*)
- *libarch.a:spi_flash_encrypt_hal_iram.*(.text .text.* .literal .literal.*)
- *libarch.a:spi_flash_hal_gpspi.*(.literal .literal.* .text .text.*)
- *libarch.a:spi_flash_chip*.*(.literal .literal.* .text .text.*)
- *libarch.a:spi_flash_wrap.*(.literal .literal.* .text .text.*)
- *libarch.a:spi_flash_os_func_noos.*(.literal .literal.* .text .text.*)
- *libarch.a:spi_flash_os_func_app.*(.literal .literal.* .text .text.*)
- *libarch.a:flash_brownout_hook.*(.literal .literal.* .text .text.*)
- *libarch.a:esp_cache.*(.literal .literal.* .text .text.*)
- *libarch.a:cache_hal_esp32.*(.literal .literal.* .text .text.*)
- *libarch.a:cache_utils.*(.literal .literal.* .text .text.*)
- *libarch.a:memspi_host_driver.*(.literal .literal.* .text .text.*)
-
- *(.wifirxiram .wifirxiram.*)
- *(.wifi0iram .wifi0iram.*)
- *(.wifiorslpiram .wifiorslpiram.*)
- *(.wifislpiram .wifislpiram.*)
- *(.wifislprxiram .wifislprxiram.*)
- *(.phyiram .phyiram.*)
- _iram_text_end = ABSOLUTE(.);
-
- /* IRAM heap starts at the end of iram0_0_seg */
-
- . = ALIGN (4);
- _siramheap = ABSOLUTE(.);
- } > iram0_0_seg
-
- /* Shared RAM */
-
- .dram0.bss (NOLOAD) :
- {
- /* .bss initialized on power-up */
-
- . = ALIGN (8);
- _sbss = ABSOLUTE(.);
- _bss_start = ABSOLUTE(.);
- *(EXCLUDE_FILE(*libble_app.a *libbt.a *libbtdm_app.a *libnimble.a) .bss
EXCLUDE_FILE(*libble_app.a *libbt.a *libbtdm_app.a *libnimble.a) .bss.*)
- *(.ext_ram.bss*)
- *(EXCLUDE_FILE(*libble_app.a *libbt.a *libbtdm_app.a *libnimble.a) COMMON)
- . = ALIGN(4);
- _bt_controller_bss_start = ABSOLUTE(.);
- *libble_app.a:(.bss .bss.*)
- . = ALIGN(4);
- _bt_controller_bss_end = ABSOLUTE(.);
- . = ALIGN(4);
- _bt_controller_common_start = ABSOLUTE(.);
- *libble_app.a:(COMMON)
- . = ALIGN(4);
- _bt_controller_common_end = ABSOLUTE(.);
- . = ALIGN(4);
- _bt_bss_start = ABSOLUTE(.);
- *libbt.a:(.bss .bss.*)
- . = ALIGN(4);
- _bt_bss_end = ABSOLUTE(.);
- . = ALIGN(4);
- _bt_common_start = ABSOLUTE(.);
- *libbt.a:(COMMON)
- . = ALIGN(4);
- _bt_common_end = ABSOLUTE(.);
- . = ALIGN(4);
- _btdm_bss_start = ABSOLUTE(.);
- *libbtdm_app.a:(.bss .bss.*)
- . = ALIGN(4);
- _btdm_bss_end = ABSOLUTE(.);
- . = ALIGN(4);
- _btdm_common_start = ABSOLUTE(.);
- *libbtdm_app.a:(COMMON)
- . = ALIGN(4);
- _btdm_common_end = ABSOLUTE(.);
- . = ALIGN (8);
- *(.dynsbss)
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- *(.dynbss)
- KEEP (*(.bss))
- *(.bss.*)
- *(.share.mem)
- *(.gnu.linkonce.b.*)
- *(COMMON)
-#ifdef CONFIG_STACK_CANARIES
- *libc.a:lib_stackchk.*(.bss .bss.* COMMON)
-#endif
- *libarch.a:esp32_spiflash.*(.bss .bss.* COMMON)
- *libarch.a:xtensa_cpupause.*(.bss .bss.* COMMON)
- *libarch.a:xtensa_copystate.*(.bss .bss.* COMMON)
- *libarch.a:xtensa_interruptcontext.*(.bss .bss.* COMMON)
- *libarch.a:xtensa_testset.*(.bss .bss.* COMMON)
-
- *libsched.a:sched_suspendscheduler.*(.bss .bss.* COMMON)
- *libsched.a:sched_thistask.*(.bss .bss.* COMMON)
- *libsched.a:sched_note.*(.bss .bss.* COMMON)
- *libsched.a:spinlock.*(.bss .bss.* COMMON)
- *libsched.a:irq_csection.*(.bss .bss.* COMMON)
- *libsched.a:irq_dispatch.*(.bss .bss.* COMMON)
-
- . = ALIGN(8);
- _bss_end = ABSOLUTE(.);
- _ebss = ABSOLUTE(.);
- } >dram0_0_seg
-
- .noinit (NOLOAD):
- {
- /* This section contains data that is not initialized during load,
- * or during the application's initialization sequence.
- */
-
- *(.noinit)
- } >dram0_0_seg
-
- .dram0.data :
- {
- /* .data initialized on power-up in ROMed configurations. */
-
- _sdata = ABSOLUTE(.);
- _bt_data_start = ABSOLUTE(.);
- *libbt.a:(.data .data.*)
- . = ALIGN (4);
- _bt_data_end = ABSOLUTE(.);
- _btdm_data_start = ABSOLUTE(.);
- *libbtdm_app.a:(.data .data.*)
- . = ALIGN (4);
- _btdm_data_end = ABSOLUTE(.);
- KEEP (*(.data))
- KEEP (*(.data.*))
- KEEP (*(.gnu.linkonce.d.*))
- KEEP (*(.data1))
- KEEP (*(.sdata))
- KEEP (*(.sdata.*))
- KEEP (*(.gnu.linkonce.s.*))
- KEEP (*(.sdata2))
- KEEP (*(.sdata2.*))
- KEEP (*(.gnu.linkonce.s2.*))
- KEEP (*(.jcr))
- *(.dram1 .dram1.*)
- *libphy.a:(.rodata .rodata.*)
-#ifdef CONFIG_STACK_CANARIES
- *libc.a:lib_stackchk.*(.rodata .rodata.*)
-#endif
- *libarch.a:esp32_spiflash.*(.rodata .rodata.*)
- *libarch.a:esp_flash_api.*(.rodata .rodata.*)
- *libarch.a:esp_flash_spi_init.*(.rodata .rodata.*)
- *libarch.a:spi_flash_hal_iram.*(.rodata .rodata.*)
- *libarch.a:spi_flash_encrypt_hal_iram.*(.rodata .rodata.*)
- *libarch.a:spi_flash_hal_gpspi.*(.rodata .rodata.*)
- *libarch.a:spi_flash_chip*.*(.rodata .rodata.*)
- *libarch.a:spi_flash_wrap.*(.rodata .rodata.*)
- *libarch.a:spi_flash_os_func_noos.*(.rodata .rodata.*)
- *libarch.a:spi_flash_os_func_app.*(.rodata .rodata.*)
- *libarch.a:flash_brownout_hook.*(.rodata .rodata.*)
- *libarch.a:esp_cache.*(.rodata .rodata.*)
- *libarch.a:cache_utils.*(.rodata .rodata.*)
- *libarch.a:cache_hal_esp32.*(.rodata .rodata.*)
- *libarch.a:memspi_host_driver.*(.rodata .rodata.*)
-
- *libarch.a:xtensa_context.*(.rodata .rodata.*)
- *libarch.a:xtensa_copystate.*(.rodata .rodata.*)
- *libarch.a:xtensa_cpupause.*(.rodata .rodata.*)
- *libarch.a:xtensa_testset.*(.rodata .rodata.*)
-
- *libdrivers.a:syslog_channel.*(.rodata .rodata.*)
-
- *libsched.a:sched_suspendscheduler.*(.rodata .rodata.*)
- *libsched.a:sched_thistask.*(.rodata .rodata.*)
- *libsched.a:sched_note.*(.rodata .rodata.*)
- *libsched.a:spinlock.*(.rodata .rodata.*)
- *libsched.a:irq_csection.*(.rodata .rodata.*)
- *libsched.a:irq_dispatch.*(.rodata .rodata.*)
-
- *libc.a:arch_atomic.*(.rodata .rodata.*)
-
- . = ALIGN(4);
- _edata = ABSOLUTE(.);
-
- /* Heap starts at the end of .data */
-
- _sheap = ABSOLUTE(.);
- } >dram0_0_seg
-
- /* External memory bss, from any global variable with EXT_RAM_ATTR attribute
*/
-
- .extmem.bss (NOLOAD) :
- {
- _sbss_extmem = ABSOLUTE(.);
- *(.extmem.bss .extmem.bss.*)
- . = ALIGN(4);
- _ebss_extmem = ABSOLUTE(.);
- } > extmem_seg
-
- .flash.rodata :
- {
- _rodata_reserved_start = ABSOLUTE(.);
- _srodata = ABSOLUTE(.);
-
- /* !DO NOT PUT ANYTHING BEFORE THIS! */
- /* Should be the first. App version info. */
- *(.rodata_desc .rodata_desc.*)
-
- *(.rodata)
- *(.rodata.*)
-#ifdef CONFIG_ESPRESSIF_WIRELESS
- *(.rodata_wlog_verbose.*)
- *(.rodata_wlog_debug.*)
- *(.rodata_wlog_info.*)
- *(.rodata_wlog_warning.*)
- *(.rodata_wlog_error.*)
-#endif
- *(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */
- *(.gnu.linkonce.r.*)
- *(.rodata1)
- __XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
- *(.xt_except_table)
- *(.gcc_except_table)
- *(.gcc_except_table.*)
- *(.gnu.linkonce.e.*)
- *(.gnu.version_r)
- *(.eh_frame)
-
- . = (. + 3) & ~ 3;
-
- /* C++ constructor and destructor tables, properly ordered: */
-
- _sinit = ABSOLUTE(.);
- __init_array_start = ABSOLUTE(.);
- KEEP (*crtbegin.o(.ctors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- _einit = ABSOLUTE(.);
- __init_array_end = ABSOLUTE(.);
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
-
- /* System init functions registered via ESP_SYSTEM_INIT_FN */
-
- . = ALIGN(4);
- _esp_system_init_fn_array_start = ABSOLUTE(.);
- KEEP (*(SORT_BY_INIT_PRIORITY(.esp_system_init_fn.*)))
- _esp_system_init_fn_array_end = ABSOLUTE(.);
-
- /* C++ exception handlers table: */
-
- __XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
- *(.xt_except_desc)
- *(.gnu.linkonce.h.*)
- __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
- *(.xt_except_desc_end)
- *(.dynamic)
- *(.gnu.version_d)
-
- /* Addresses of memory regions reserved via SOC_RESERVE_MEMORY_REGION() */
-
- soc_reserved_memory_region_start = ABSOLUTE(.);
- KEEP (*(.reserved_memory_address))
- soc_reserved_memory_region_end = ABSOLUTE(.);
-
- _erodata = ABSOLUTE(.);
- /* Literals are also RO data. */
- _lit4_start = ABSOLUTE(.);
- *(*.lit4)
- *(.lit4.*)
- *(.gnu.linkonce.lit4.*)
- _lit4_end = ABSOLUTE(.);
- . = ALIGN(4);
- } >default_rodata_seg
-
- .flash.text :
- {
- _stext = .;
- _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)
- _text_end = ABSOLUTE(.);
- _etext = .;
- } >default_code_seg
-
- .rtc.text :
- {
- . = ALIGN(4);
- *(.rtc.literal .rtc.text)
- } >rtc_iram_seg
-
- .rtc.data :
- {
- *(.rtc.data)
- *(.rtc.data.*)
- *(.rtc.rodata)
- *(.rtc.rodata.*)
-
- /* Whatever is left from the RTC memory is used as a special heap. */
-
- . = ALIGN (4);
- _srtcheap = ABSOLUTE(.);
- } > rtc_slow_seg
-
- /*
- * This section holds RTC data that should have fixed addresses.
- * The data are not initialized at power-up and are retained during deep
sleep.
- */
- .rtc_reserved (NOLOAD):
- {
- . = ALIGN(4);
- _rtc_reserved_start = ABSOLUTE(.);
- /* New data can only be added here to ensure existing data are not moved.
- Because data have adhered to the end of the segment and code is relied
on it.
- >> put new data here << */
-
- *(.rtc_timer_data_in_rtc_mem .rtc_timer_data_in_rtc_mem.*)
- KEEP(*(.bootloader_data_rtc_mem .bootloader_data_rtc_mem.*))
- _rtc_reserved_end = ABSOLUTE(.);
- } > rtc_reserved_seg
-}
diff --git a/boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs
b/boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs
index 5998c411707..e4312a8787f 100644
--- a/boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs
+++ b/boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs
@@ -33,24 +33,22 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
-CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS) -pipe
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
+CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
-CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
+CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
AFLAGS := $(CFLAGS) -D__ASSEMBLY__
diff --git a/boards/xtensa/esp32/esp32-audio-kit/scripts/Make.defs
b/boards/xtensa/esp32/esp32-audio-kit/scripts/Make.defs
index 1f800c71de7..eb90a068f52 100644
--- a/boards/xtensa/esp32/esp32-audio-kit/scripts/Make.defs
+++ b/boards/xtensa/esp32/esp32-audio-kit/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs
b/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs
index 2dea0bfe291..89364a734af 100644
--- a/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs
+++ b/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs
@@ -33,12 +33,7 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
@@ -48,6 +43,10 @@ ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs
b/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs
index 9172fa600d1..23169a805de 100644
--- a/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs
+++ b/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs
b/boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs
index 9c766b1fa45..119baee700e 100644
--- a/boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs
+++ b/boards/xtensa/esp32/esp32-lyrat/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/esp32-pico-kit/scripts/Make.defs
b/boards/xtensa/esp32/esp32-pico-kit/scripts/Make.defs
index fbeb5730edf..bedea16b7ee 100644
--- a/boards/xtensa/esp32/esp32-pico-kit/scripts/Make.defs
+++ b/boards/xtensa/esp32/esp32-pico-kit/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/esp32-sparrow-kit/scripts/Make.defs
b/boards/xtensa/esp32/esp32-sparrow-kit/scripts/Make.defs
index 422845482e1..02bbdd88577 100644
--- a/boards/xtensa/esp32/esp32-sparrow-kit/scripts/Make.defs
+++ b/boards/xtensa/esp32/esp32-sparrow-kit/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs
b/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs
index ba1de5aa517..c628453e703 100644
--- a/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs
+++ b/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/heltec_wifi_lora32/scripts/Make.defs
b/boards/xtensa/esp32/heltec_wifi_lora32/scripts/Make.defs
index c5245c12325..f0f7b104ce8 100644
--- a/boards/xtensa/esp32/heltec_wifi_lora32/scripts/Make.defs
+++ b/boards/xtensa/esp32/heltec_wifi_lora32/scripts/Make.defs
@@ -33,14 +33,18 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
+endif
+
+# if SPIRAM/PSRAM is used then we need to include a workaround
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ifeq ($(CONFIG_ESP32_SPIRAM),y)
+ ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
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 d7e2c93fa1f..71bb54f2c71 100644
--- a/boards/xtensa/esp32/lilygo_tbeam_lora_gps/scripts/Make.defs
+++ b/boards/xtensa/esp32/lilygo_tbeam_lora_gps/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs
b/boards/xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs
index baaf36f6119..137010fb026 100644
--- a/boards/xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs
+++ b/boards/xtensa/esp32/ttgo_eink5_v2/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
diff --git a/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs
b/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs
index 4ba9bbec678..983083ec014 100644
--- a/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs
+++ b/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
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 e1f504fbb28..f8c208c620a 100644
--- a/boards/xtensa/esp32/ttgo_t_display_esp32/scripts/Make.defs
+++ b/boards/xtensa/esp32/ttgo_t_display_esp32/scripts/Make.defs
@@ -33,21 +33,19 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
else
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
-
- ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y)
- ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
- else
- ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
- endif
+ ARCHSCRIPT += $(call FINDSCRIPT,esp32_sections.ld)
endif
-
# if SPIRAM/PSRAM is used then we need to include a workaround
ifeq ($(CONFIG_ESP32_SPIRAM),y)
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
endif
+ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY), y)
+ LDFLAGS += -u esp_app_desc
+endif
+
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES)
$(ARCHDEFINES) $(EXTRAFLAGS)
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS)
$(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)