espressif: esp32xx: adjust memory map on linker script
Reorganize memory mapping and document the address ranges that
the OS must avoid overlapping.
Signed-off-by: Almir Okato <almir.okato@espressif.com>
diff --git a/boot/espressif/CMakeLists.txt b/boot/espressif/CMakeLists.txt
index 3c732db..bc7868f 100644
--- a/boot/espressif/CMakeLists.txt
+++ b/boot/espressif/CMakeLists.txt
@@ -308,10 +308,28 @@
${bootutil_paths}
)
+set(ld_input ${CMAKE_CURRENT_LIST_DIR}/port/${MCUBOOT_TARGET}/ld/bootloader.ld)
+set(ld_output ${CMAKE_CURRENT_BINARY_DIR}/ld/bootloader.ld)
+
+file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/ld")
+
+get_directory_property(configs COMPILE_DEFINITIONS)
+foreach(c ${configs})
+ list(APPEND conf_defines "-D${c}")
+endforeach()
+
+# Preprocess linker script
+add_custom_command(
+ TARGET ${APP_EXECUTABLE} PRE_LINK
+ COMMAND ${CMAKE_C_COMPILER} -x c -E -P -o ${ld_output} ${conf_defines} ${ld_input}
+ MAIN_DEPENDENCY ${ld_input}
+ COMMENT "Preprocessing bootloader.ld linker script..."
+ )
+
target_link_libraries(
${APP_EXECUTABLE}
PUBLIC
- -T${CMAKE_CURRENT_LIST_DIR}/port/${MCUBOOT_TARGET}/ld/bootloader.ld
+ -T${ld_output}
${LDFLAGS}
)
diff --git a/boot/espressif/port/esp32/ld/bootloader.ld b/boot/espressif/port/esp32/ld/bootloader.ld
index 48b6ff5..5ceac18 100644
--- a/boot/espressif/port/esp32/ld/bootloader.ld
+++ b/boot/espressif/port/esp32/ld/bootloader.ld
@@ -12,9 +12,14 @@
MEMORY
{
- iram_seg (RWX) : org = 0x40093000, len = 0x7A00
- iram_loader_seg (RWX) : org = 0x4009AA00, len = 0x5600
- dram_seg (RW) : org = 0x3FFF5000, len = 0x9900
+#ifdef CONFIG_ESP_MULTI_PROCESSOR_BOOT
+ iram_loader_seg (RWX) : org = 0x400AB900, len = 0x6500
+#else
+ /* iram_loader_seg is currently placed on APP_CPU cache IRAM address range */
+ iram_loader_seg (RWX) : org = 0x40078000, len = 0x6500
+#endif
+ iram_seg (RWX) : org = 0x40090000, len = 0x9000
+ dram_seg (RW) : org = 0x3FFF4700, len = 0xB900
}
/* Default entry point: */
@@ -28,42 +33,10 @@
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash_config_esp32.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_panic.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_soc.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_image_format.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encrypt.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_partitions.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
- *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
- *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
- *libhal.a:app_cpu_start.*(.literal .text .literal.* .text.*)
+ *libhal.a:*.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
+ *main.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
diff --git a/boot/espressif/port/esp32c2/ld/bootloader.ld b/boot/espressif/port/esp32c2/ld/bootloader.ld
index bb9479f..b24fabb 100644
--- a/boot/espressif/port/esp32c2/ld/bootloader.ld
+++ b/boot/espressif/port/esp32c2/ld/bootloader.ld
@@ -26,9 +26,9 @@
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x3fcdcb70;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
-bootloader_dram_seg_len = 0x5000;
+bootloader_dram_seg_len = 0xA000;
bootloader_iram_loader_seg_len = 0x7000;
-bootloader_iram_seg_len = 0x3000;
+bootloader_iram_seg_len = 0x8800;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -49,7 +49,7 @@
* 2. Update the value in this assert.
* 3. Update (SRAM_DRAM_END + I_D_SRAM_OFFSET) in components/esp_system/ld/esp32c2/memory.ld.in to the same value.
*/
-ASSERT(bootloader_iram_loader_seg_start == 0x403aeb70, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
+ASSERT(bootloader_iram_loader_seg_start == 0x403a9b70, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
/* Default entry point: */
ENTRY(main);
@@ -62,43 +62,10 @@
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash_config_esp32c2.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_panic.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_soc.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_image_format.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encrypt.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_partitions.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
- *libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
- *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
- *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
+ *libhal.a:*.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
+ *main.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
diff --git a/boot/espressif/port/esp32c3/ld/bootloader.ld b/boot/espressif/port/esp32c3/ld/bootloader.ld
index 304e79f..65f15cc 100644
--- a/boot/espressif/port/esp32c3/ld/bootloader.ld
+++ b/boot/espressif/port/esp32c3/ld/bootloader.ld
@@ -12,9 +12,9 @@
MEMORY
{
- iram_seg (RWX) : org = 0x403C8000, len = 0x8000
+ iram_seg (RWX) : org = 0x403C7000, len = 0x9000
iram_loader_seg (RWX) : org = 0x403D0000, len = 0x5000
- dram_seg (RW) : org = 0x3FCD5000, len = 0x9000
+ dram_seg (RW) : org = 0x3FCD5000, len = 0xA000
}
/* Default entry point: */
@@ -28,43 +28,10 @@
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash_config_esp32c3.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_panic.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_soc.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_image_format.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encrypt.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_partitions.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
- *libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
- *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
- *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
+ *libhal.a:*.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
+ *main.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
diff --git a/boot/espressif/port/esp32c6/ld/bootloader.ld b/boot/espressif/port/esp32c6/ld/bootloader.ld
index 2f2cb5f..06b6e91 100644
--- a/boot/espressif/port/esp32c6/ld/bootloader.ld
+++ b/boot/espressif/port/esp32c6/ld/bootloader.ld
@@ -23,9 +23,9 @@
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x4087c610;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
-bootloader_dram_seg_len = 0x5000;
+bootloader_dram_seg_len = 0xA000;
bootloader_iram_loader_seg_len = 0x7000;
-bootloader_iram_seg_len = 0x3000;
+bootloader_iram_seg_len = 0x9000;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead; /* 0x4087c610 - 0x2000 = 0x4087a610 */
@@ -46,7 +46,7 @@
* 2. Update the value in this assert.
* 3. Update SRAM_DRAM_END in components/esp_system/ld/esp32c6/memory.ld.in to the same value.
*/
-ASSERT(bootloader_iram_loader_seg_start == 0x4086E610, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
+ASSERT(bootloader_iram_loader_seg_start == 0x40869610, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
/* Default entry point: */
ENTRY(main);
@@ -59,43 +59,10 @@
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash_config_esp32c6.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_panic.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_soc.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_image_format.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encrypt.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_partitions.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
- *libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
- *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
- *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
+ *libhal.a:*.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
+ *main.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -110,7 +77,6 @@
*(.init)
} > iram_seg
-
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
diff --git a/boot/espressif/port/esp32h2/ld/bootloader.ld b/boot/espressif/port/esp32h2/ld/bootloader.ld
index fa6d26f..b4330bf 100644
--- a/boot/espressif/port/esp32h2/ld/bootloader.ld
+++ b/boot/espressif/port/esp32h2/ld/bootloader.ld
@@ -24,9 +24,9 @@
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x4084cfd0;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
-bootloader_dram_seg_len = 0x5000;
+bootloader_dram_seg_len = 0xA000;
bootloader_iram_loader_seg_len = 0x7000;
-bootloader_iram_seg_len = 0x3000;
+bootloader_iram_seg_len = 0x8800;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -47,7 +47,7 @@
* 2. Update the value in this assert.
* 3. Update SRAM_DRAM_END in components/esp_system/ld/esp32h2/memory.ld.in to the same value.
*/
-ASSERT(bootloader_iram_loader_seg_start == 0x4083EFD0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
+ASSERT(bootloader_iram_loader_seg_start == 0x40839FD0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
/* Default entry point: */
ENTRY(main);
@@ -60,43 +60,10 @@
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash_config_esp32h2.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_panic.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_soc.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_image_format.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encrypt.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_partitions.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
- *libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
- *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
- *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
+ *libhal.a:*.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
+ *main.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
diff --git a/boot/espressif/port/esp32s2/ld/bootloader.ld b/boot/espressif/port/esp32s2/ld/bootloader.ld
index 005c046..cf159c3 100644
--- a/boot/espressif/port/esp32s2/ld/bootloader.ld
+++ b/boot/espressif/port/esp32s2/ld/bootloader.ld
@@ -12,9 +12,9 @@
MEMORY
{
- iram_seg (RWX) : org = 0x40048000, len = 0x8000
- iram_loader_seg (RWX) : org = 0x40050000, len = 0x5000
- dram_seg (RW) : org = 0x3FFE5000, len = 0x8E00
+ iram_seg (RWX) : org = 0x40047000, len = 0x9000
+ iram_loader_seg (RWX) : org = 0x40050000, len = 0x6000
+ dram_seg (RW) : org = 0x3FFE6000, len = 0x9000
}
/* Default entry point: */
@@ -28,45 +28,10 @@
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash_config_esp32s2.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_panic.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_soc.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_image_format.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encrypt.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_partitions.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
- *libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
- *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
- *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_rom_regi2c_esp32s2.*(.literal .text .literal.* .text.*)
+ *libhal.a:*.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
+ *main.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
diff --git a/boot/espressif/port/esp32s3/ld/bootloader.ld b/boot/espressif/port/esp32s3/ld/bootloader.ld
index 4fe9cd6..082081e 100644
--- a/boot/espressif/port/esp32s3/ld/bootloader.ld
+++ b/boot/espressif/port/esp32s3/ld/bootloader.ld
@@ -12,9 +12,9 @@
MEMORY
{
- iram_seg (RWX) : org = 0x403B2000, len = 0x8000
+ iram_seg (RWX) : org = 0x403B0000, len = 0xA000
iram_loader_seg (RWX) : org = 0x403BA000, len = 0x6000
- dram_seg (RW) : org = 0x3FCD8000, len = 0x9A00
+ dram_seg (RW) : org = 0x3FCD0000, len = 0x9A00
}
/* Default entry point: */
@@ -28,45 +28,10 @@
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash_config_esp32s3.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
- *libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_panic.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_soc.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_image_format.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encrypt.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:flash_partitions.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
- *libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
- *libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
- *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
- *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
- *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
- *libhal.a:app_cpu_start.*(.literal .text .literal.* .text.*)
+ *libhal.a:*.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
+ *main.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
diff --git a/boot/espressif/port/esp_loader.c b/boot/espressif/port/esp_loader.c
index 04d92c6..9074665 100644
--- a/boot/espressif/port/esp_loader.c
+++ b/boot/espressif/port/esp_loader.c
@@ -74,10 +74,10 @@
FIH_PANIC;
}
- BOOT_LOG_INF("DRAM segment: start=0x%x, size=0x%x, vaddr=0x%x", load_header.dram_flash_offset, load_header.dram_size, load_header.dram_dest_addr);
+ BOOT_LOG_INF("DRAM segment: start=0x%x, size=0x%x, vaddr=0x%x", fap->fa_off + load_header.dram_flash_offset, load_header.dram_size, load_header.dram_dest_addr);
load_segment(fap, load_header.dram_flash_offset, load_header.dram_size, load_header.dram_dest_addr);
- BOOT_LOG_INF("IRAM segment: start=0x%x, size=0x%x, vaddr=0x%x", load_header.iram_flash_offset, load_header.iram_size, load_header.iram_dest_addr);
+ BOOT_LOG_INF("IRAM segment: start=0x%x, size=0x%x, vaddr=0x%x", fap->fa_off + load_header.iram_flash_offset, load_header.iram_size, load_header.iram_dest_addr);
load_segment(fap, load_header.iram_flash_offset, load_header.iram_size, load_header.iram_dest_addr);
BOOT_LOG_INF("start=0x%x", load_header.entry_addr);
diff --git a/boot/espressif/tools/utils.cmake b/boot/espressif/tools/utils.cmake
index 8e3b0c2..238b30e 100644
--- a/boot/espressif/tools/utils.cmake
+++ b/boot/espressif/tools/utils.cmake
@@ -23,7 +23,7 @@
OR ("${CONFIG_VALUE}" STREQUAL "Y"))
set(CONFIG_VALUE 1)
endif()
- add_definitions(-D${CONFIG_NAME}=${CONFIG_VALUE})
+ add_compile_definitions(${CONFIG_NAME}=${CONFIG_VALUE})
set(${CONFIG_NAME} ${CONFIG_VALUE} PARENT_SCOPE)
endif()
endif()