Skip to content

Commit db4a464

Browse files
author
Marek Matej
committed
drivers,soc: esp32s3: Supporting the PSRAM code and rodata
Move SPIRAM heap under the noinit, where it get mapped. Fixes SPIRAM startup by moving necessary object to SRAM. Signed-off-by: Marek Matej <marek.matej@espressif.com>
1 parent bc1a003 commit db4a464

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

soc/espressif/esp32s3/default.ld

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,7 @@ SECTIONS
396396
*libzephyr.a:mmu_psram_flash.*(.literal .literal.* .text .text.*)
397397
*libzephyr.a:esp_psram_impl_quad.*(.literal .literal.* .text .text.*)
398398
*libzephyr.a:esp_psram_impl_octal.*(.literal .literal.* .text .text.*)
399+
*libzephyr.a:esp_psram.*(.literal .literal.* .text .text.*)
399400

400401
/* [mapping:hal] */
401402
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
@@ -409,6 +410,9 @@ SECTIONS
409410
*libzephyr.a:systimer_hal.*(.literal .text .literal.* .text.*)
410411
*libzephyr.a:spi_flash_hal_gpspi.*(.literal .text .literal.* .text.*)
411412

413+
*libzephyr.a:spi_flash_hal.*(.literal .literal.* .text .text.*)
414+
*libzephyr.a:spi_flash_hal_common.*(.literal .literal.* .text .text.*)
415+
412416
/* [mapping:soc] */
413417
*libzephyr.a:lldesc.*(.literal .literal.* .text .text.*)
414418

@@ -639,6 +643,7 @@ SECTIONS
639643
*libzephyr.a:mmu_psram_flash.*(.rodata .rodata.*)
640644
*libzephyr.a:esp_psram_impl_octal.*(.rodata .rodata.*)
641645
*libzephyr.a:esp_psram_impl_quad.*(.rodata .rodata.*)
646+
*libzephyr.a:esp_psram.*(.rodata .rodata.*)
642647

643648
/* [mapping:hal] */
644649
*libzephyr.a:efuse_hal.*(.rodata .rodata.*)
@@ -652,6 +657,9 @@ SECTIONS
652657
*libzephyr.a:systimer_hal.*(.rodata .rodata.*)
653658
*libzephyr.a:spi_flash_hal_gpspi.*(.rodata .rodata.*)
654659

660+
*libzephyr.a:spi_flash_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
661+
*libzephyr.a:spi_flash_hal_common.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
662+
655663
/* [mapping:soc] */
656664
*libzephyr.a:lldesc.*(.rodata .rodata.*)
657665

@@ -1001,6 +1009,7 @@ SECTIONS
10011009
.ext_ram.data (NOLOAD) :
10021010
{
10031011
_ext_ram_start = ABSOLUTE(.);
1012+
10041013
_ext_ram_noinit_start = ABSOLUTE(.);
10051014

10061015
#ifdef CONFIG_ESP32_WIFI_NET_ALLOC_SPIRAM
@@ -1013,18 +1022,19 @@ SECTIONS
10131022
. = ALIGN(16);
10141023
*(.ext_ram_noinit.*)
10151024
. = ALIGN(16);
1025+
#ifdef CONFIG_ESP_SPIRAM_HEAP_SIZE
1026+
_ext_ram_heap_start = ABSOLUTE(.);
1027+
. += CONFIG_ESP_SPIRAM_HEAP_SIZE;
1028+
. = ALIGN(16);
1029+
_ext_ram_heap_end = ABSOLUTE(.);
1030+
#endif
10161031
_ext_ram_noinit_end = ABSOLUTE(.);
10171032

10181033
_ext_ram_bss_start = ABSOLUTE(.);
10191034
*(.ext_ram.bss*)
10201035
. = ALIGN(16);
10211036
_ext_ram_bss_end = ABSOLUTE(.);
10221037

1023-
_ext_ram_heap_start = ABSOLUTE(.);
1024-
. += CONFIG_ESP_SPIRAM_HEAP_SIZE;
1025-
. = ALIGN(16);
1026-
_ext_ram_heap_end = ABSOLUTE(.);
1027-
10281038
_ext_ram_end = ABSOLUTE(.);
10291039
} GROUP_LINK_IN(EXT_DRAM_REGION)
10301040
#endif /* CONFIG_ESP_SPIRAM */

0 commit comments

Comments
 (0)