From 85b0a9932f42e06a0be45fa3781fd46fb14744b8 Mon Sep 17 00:00:00 2001 From: Sylvio Alves Date: Thu, 3 Jul 2025 15:05:47 -0300 Subject: [PATCH] soc: espressif: liker: move PHY and RTC calls Some of ESP32 Radio calls present in blobs needs to be executed from IRAM or RAM instead of flash to avoid cache disabled issues. Signed-off-by: Sylvio Alves --- soc/espressif/esp32/default.ld | 3 +++ soc/espressif/esp32c2/default.ld | 3 +++ soc/espressif/esp32c3/default.ld | 3 +++ soc/espressif/esp32c6/default.ld | 3 +++ soc/espressif/esp32s2/default.ld | 3 +++ soc/espressif/esp32s3/default.ld | 3 +++ 6 files changed, 18 insertions(+) diff --git a/soc/espressif/esp32/default.ld b/soc/espressif/esp32/default.ld index 061cb73a3a5..33208566113 100644 --- a/soc/espressif/esp32/default.ld +++ b/soc/espressif/esp32/default.ld @@ -368,6 +368,7 @@ SECTIONS *libc.a:*(.literal .text .literal.* .text.*) *libphy.a:( .phyiram .phyiram.*) *libgcov.a:(.literal .text .literal.* .text.*) + *librtc.a:(.literal .text .literal.* .text.*) /* [mapping:esp_psram] */ *libzephyr.a:mmu_psram_flash.*(.literal .literal.* .text .text.*) @@ -699,6 +700,8 @@ SECTIONS *libzephyr.a:esp_rom_wdt.*(.rodata .rodata.*) *libzephyr.a:esp_rom_efuse.*(.rodata .rodata.*) + *libphy.a:(.rodata .rodata.* .srodata .srodata.*) + KEEP(*(.jcr)) *(.dram1 .dram1.*) diff --git a/soc/espressif/esp32c2/default.ld b/soc/espressif/esp32c2/default.ld index 53d7a72bac8..7faf650e98f 100644 --- a/soc/espressif/esp32c2/default.ld +++ b/soc/espressif/esp32c2/default.ld @@ -240,6 +240,7 @@ SECTIONS *libgcov.a:(.literal .text .literal.* .text.*) *libphy.a:( .phyiram .phyiram.*) *libc.a:*(.literal .text .literal.* .text.*) + *librtc.a:(.literal .text .literal.* .text.*) /* [mapping:hal] */ *libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*) @@ -532,6 +533,8 @@ SECTIONS *libzephyr.a:esp_err.*(.rodata .rodata.*) *(.rodata.esp_system_abort) + *libphy.a:(.rodata .rodata.* .srodata .srodata.*) + . = ALIGN(4); #include . = ALIGN(4); diff --git a/soc/espressif/esp32c3/default.ld b/soc/espressif/esp32c3/default.ld index 2e0e723a223..0872194b6f0 100644 --- a/soc/espressif/esp32c3/default.ld +++ b/soc/espressif/esp32c3/default.ld @@ -334,6 +334,7 @@ SECTIONS *libgcov.a:(.literal .text .literal.* .text.*) *libphy.a:( .phyiram .phyiram.*) *libc.a:*(.literal .text .literal.* .text.*) + *librtc.a:(.literal .text .literal.* .text.*) /* [mapping:hal] */ *libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*) @@ -625,6 +626,8 @@ SECTIONS *libzephyr.a:esp_err.*(.rodata .rodata.*) *(.rodata.esp_system_abort) + *libphy.a:(.rodata .rodata.* .srodata .srodata.*) + . = ALIGN(4); #include . = ALIGN(4); diff --git a/soc/espressif/esp32c6/default.ld b/soc/espressif/esp32c6/default.ld index 5e63eb370c4..cf9479cd22c 100644 --- a/soc/espressif/esp32c6/default.ld +++ b/soc/espressif/esp32c6/default.ld @@ -347,6 +347,7 @@ SECTIONS *libgcov.a:(.literal .text .literal.* .text.*) *libphy.a:( .phyiram .phyiram.*) *libc.a:*(.literal .text .literal.* .text.*) + *librtc.a:(.literal .text .literal.* .text.*) /* [mapping:hal] */ *libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*) @@ -656,6 +657,8 @@ SECTIONS *libzephyr.a:esp_rom_systimer.*(.rodata .rodata.* .srodata .srodata.*) *libzephyr.a:esp_rom_hp_regi2c_esp32c6.*(.rodata .rodata.* .srodata .srodata.*) + *libphy.a:(.rodata .rodata.* .srodata .srodata.*) + . = ALIGN(4); #include . = ALIGN(4); diff --git a/soc/espressif/esp32s2/default.ld b/soc/espressif/esp32s2/default.ld index 957cd8eb203..a5e3411a2fb 100644 --- a/soc/espressif/esp32s2/default.ld +++ b/soc/espressif/esp32s2/default.ld @@ -371,6 +371,7 @@ SECTIONS *liblib__libc__picolibc.a:string.*(.literal .text .literal.* .text.*) *libphy.a:(.phyiram .phyiram.*) *libgcov.a:(.literal .text .literal.* .text.*) + *librtc.a:(.literal .text .literal.* .text.*) /* [mapping:esp_psram] */ *libzephyr.a:mmu_psram_flash.*(.literal .literal.* .text .text.*) @@ -695,6 +696,8 @@ SECTIONS *libzephyr.a:esp_err.*(.rodata .rodata.*) *(.rodata.esp_system_abort) + *libphy.a:(.rodata .rodata.*) + #if defined(CONFIG_ESP32_WIFI_IRAM_OPT) /* [mapping:esp_wifi] */ *(.rodata.wifi_clock_enable_wrapper) diff --git a/soc/espressif/esp32s3/default.ld b/soc/espressif/esp32s3/default.ld index dfb7d4c159a..7623fea954b 100644 --- a/soc/espressif/esp32s3/default.ld +++ b/soc/espressif/esp32s3/default.ld @@ -386,6 +386,7 @@ SECTIONS *liblib__libc__picolibc.a:string.*(.literal .text .literal.* .text.*) *libphy.a:(.phyiram .phyiram.*) *libgcov.a:(.literal .text .literal.* .text.*) + *librtc.a:(.literal .text .literal.* .text.*) /* APPCPU_ENABLED */ *libzephyr.a:esp32s3-mp.*(.literal .text .literal.* .text.*) @@ -716,6 +717,8 @@ SECTIONS *libzephyr.a:esp_err.*(.rodata .rodata.*) *(.rodata.esp_system_abort) + *libphy.a:(.rodata .rodata.*) + #if defined(CONFIG_ESP32_WIFI_IRAM_OPT) /* [mapping:esp_wifi] */ *(.rodata.wifi_clock_enable_wrapper)