soc: espressif: esp32s3: simple boot support

Add simplistic booting method which allows to run
applications without the 2nd stage bootloader.

- introduce memory layout header file
- update and optimize default and mcuboot linker scripts
- remove building multiple binaries during the application build

Signed-off-by: Marek Matej <marek.matej@espressif.com>
This commit is contained in:
Marek Matej 2023-12-14 00:09:17 +01:00 committed by Anas Nashif
commit 553238704f
5 changed files with 490 additions and 425 deletions

View file

@ -143,12 +143,7 @@ void IRAM_ATTR __esp_platform_start(void)
*/
__asm__ __volatile__("wsr.MISC0 %0; rsync" : : "r"(&_kernel.cpus[0]));
#ifdef CONFIG_MCUBOOT
/* MCUboot early initialisation. */
if (bootloader_init()) {
abort();
}
#else
#ifndef CONFIG_MCUBOOT
/* Configure the mode of instruction cache : cache size, cache line size. */
esp_config_instruction_cache_mode();
@ -189,6 +184,7 @@ void IRAM_ATTR __esp_platform_start(void)
(&_ext_ram_bss_end - &_ext_ram_bss_start) * sizeof(_ext_ram_bss_start));
#endif /* CONFIG_ESP_SPIRAM */
/* Apply SoC patches */
esp_errata();
@ -216,7 +212,7 @@ void IRAM_ATTR __esp_platform_start(void)
#if CONFIG_SOC_FLASH_ESP32
spi_flash_guard_set(&g_flash_guard_default_ops);
#endif
#endif /* CONFIG_MCUBOOT */
#endif /* !CONFIG_MCUBOOT */
esp_intr_initialize();