Skip to content

Commit 1903a8f

Browse files
sylvioalveskartben
authored andcommitted
soc: espressif: fix optimization flag boot fault
When DEBUG_OPTIMIZATION or NO_OPTIMIZATION is enabled, efuse reading fails during bootloader start. Move those calls into IRAM area so that reading when cache is disabled works without any faults. In HAL side, we need to use low level calls to read CPU id instead of Zephyr's default one. Signed-off-by: Sylvio Alves <[email protected]>
1 parent dee7927 commit 1903a8f

File tree

7 files changed

+7
-8
lines changed

7 files changed

+7
-8
lines changed

soc/espressif/esp32/default.ld

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,6 @@ SECTIONS
502502
*libzephyr.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
503503
*libzephyr.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
504504

505-
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
506505
*libzephyr.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
507506
*libzephyr.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
508507
*libzephyr.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
@@ -604,6 +603,7 @@ SECTIONS
604603
*libzephyr.a:esp_psram_impl_quad.*(.rodata .rodata.*)
605604

606605
/* [mapping:hal] */
606+
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
607607
*libzephyr.a:mmu_hal.*(.rodata .rodata.*)
608608
*libzephyr.a:spi_flash_hal_iram.*(.rodata .rodata.*)
609609
*libzephyr.a:spi_flash_encrypt_hal_iram.*(.rodata .rodata.*)
@@ -711,7 +711,6 @@ SECTIONS
711711
*libzephyr.a:esp_clk.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
712712
*libzephyr.a:rtc_clk_init.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
713713
*libzephyr.a:rtc_time.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
714-
*libzephyr.a:efuse_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
715714
*libzephyr.a:cpu_region_protect.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
716715

717716
*libzephyr.a:periph_ctrl.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)

soc/espressif/esp32c2/default.ld

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,7 @@ SECTIONS
467467
*libzephyr.a:cache_utils.*(.rodata .rodata.* .srodata .srodata.*)
468468

469469
/* [mapping:hal] */
470+
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
470471
*libzephyr.a:mmu_hal.*(.rodata .rodata.* .srodata .srodata.*)
471472
*libzephyr.a:spi_flash_hal_iram.*(.rodata .rodata.* .srodata .srodata.*)
472473
*libzephyr.a:spi_flash_encrypt_hal_iram.*(.rodata .rodata.* .srodata .srodata.*)

soc/espressif/esp32c3/default.ld

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,7 @@ SECTIONS
560560
*libzephyr.a:cache_utils.*(.rodata .rodata.* .srodata .srodata.*)
561561

562562
/* [mapping:hal] */
563+
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
563564
*libzephyr.a:mmu_hal.*(.rodata .rodata.* .srodata .srodata.*)
564565
*libzephyr.a:spi_flash_hal_iram.*(.rodata .rodata.* .srodata .srodata.*)
565566
*libzephyr.a:spi_flash_encrypt_hal_iram.*(.rodata .rodata.* .srodata .srodata.*)

soc/espressif/esp32c6/default.ld

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,6 @@ SECTIONS
421421
*libzephyr.a:esp_rom_systimer.*(.literal .literal.* .text .text.*)
422422
*libzephyr.a:esp_rom_wdt.*(.literal .literal.* .text .text.*)
423423
*libzephyr.a:esp_rom_hp_regi2c_esp32c6.*(.literal .literal.* .text .text.*)
424-
*libzephyr.a:efuse_hal.*(.literal .literal.* .text .text.*)
425424

426425
/* [mapping:esp_mm] */
427426
*libzephyr.a:esp_cache.*(.literal .literal.* .text .text.*)
@@ -572,6 +571,7 @@ SECTIONS
572571
*libzephyr.a:cache_utils.*(.rodata .rodata.* .srodata .srodata.*)
573572

574573
/* [mapping:hal] */
574+
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
575575
*libzephyr.a:mmu_hal.*(.rodata .rodata.* .srodata .srodata.*)
576576
*libzephyr.a:spi_flash_hal_iram.*(.rodata .rodata.* .srodata .srodata.*)
577577
*libzephyr.a:spi_flash_encrypt_hal_iram.*(.rodata .rodata.* .srodata .srodata.*)
@@ -647,7 +647,6 @@ SECTIONS
647647
*libzephyr.a:esp_rom_efuse.*(.rodata .rodata.* .srodata .srodata.*)
648648
*libzephyr.a:esp_rom_systimer.*(.rodata .rodata.* .srodata .srodata.*)
649649
*libzephyr.a:esp_rom_hp_regi2c_esp32c6.*(.rodata .rodata.* .srodata .srodata.*)
650-
*libzephyr.a:efuse_hal.*(.rodata .rodata.* .srodata .srodata.*)
651650

652651
. = ALIGN(4);
653652
#include <snippets-rwdata.ld>

soc/espressif/esp32s2/default.ld

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,6 @@ SECTIONS
510510
*libzephyr.a:secure_boot.*(.literal .text .literal.* .text.*)
511511
*libzephyr.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
512512
*libzephyr.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
513-
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
514513
*libzephyr.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
515514
*libzephyr.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
516515
*libzephyr.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
@@ -619,6 +618,7 @@ SECTIONS
619618
*libzephyr.a:esp_psram_impl_quad.*(.rodata .rodata.*)
620619

621620
/* [mapping:hal] */
621+
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
622622
*libzephyr.a:mmu_hal.*(.rodata .rodata.*)
623623
*libzephyr.a:spi_flash_hal_iram.*(.rodata .rodata.*)
624624
*libzephyr.a:spi_flash_encrypt_hal_iram.*(.rodata .rodata.*)
@@ -736,8 +736,6 @@ SECTIONS
736736
*libzephyr.a:esp_flash_api.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
737737
*libzephyr.a:esp_flash_spi_init.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
738738

739-
*libzephyr.a:efuse_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
740-
741739
. = ALIGN(4);
742740
_loader_data_end = ABSOLUTE(.);
743741
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)

soc/espressif/esp32s3/default.ld

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,7 @@ SECTIONS
398398
*libzephyr.a:esp_psram_impl_octal.*(.literal .literal.* .text .text.*)
399399

400400
/* [mapping:hal] */
401+
*libzephyr.a:efuse_hal.*(.literal .text .literal.* .text.*)
401402
*libzephyr.a:mmu_hal.*(.literal .text .literal.* .text.*)
402403
*libzephyr.a:spi_flash_hal_iram.*(.literal .text .literal.* .text.*)
403404
*libzephyr.a:spi_flash_encrypt_hal_iram.*(.literal .text .literal.* .text.*)

west.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ manifest:
162162
groups:
163163
- hal
164164
- name: hal_espressif
165-
revision: a459b40356f5e6fb55d92bcb458cec45365d5ec5
165+
revision: 202c59552dc98e5cd02386313e1977ecb17a131f
166166
path: modules/hal/espressif
167167
west-commands: west/west-commands.yml
168168
groups:

0 commit comments

Comments
 (0)