From 29587bb50afcc8b62d2523b3b5ea0f28c5e95ce0 Mon Sep 17 00:00:00 2001 From: Xiao Xufeng Date: Sun, 18 Jan 2026 04:26:00 +0800 Subject: [PATCH] fix(esp32p4): fix rom and ld misuse min_rev --- components/bootloader/subproject/CMakeLists.txt | 2 +- components/esp_rom/CMakeLists.txt | 15 +++++++-------- components/esp_system/CMakeLists.txt | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/components/bootloader/subproject/CMakeLists.txt b/components/bootloader/subproject/CMakeLists.txt index 5ff5bddc97..aa7726c166 100644 --- a/components/bootloader/subproject/CMakeLists.txt +++ b/components/bootloader/subproject/CMakeLists.txt @@ -68,7 +68,7 @@ idf_build_set_property(__OUTPUT_SDKCONFIG 0) # Define a property for the default linker script set(LD_DEFAULT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/main/ld/${IDF_TARGET}") project(bootloader) -if(CONFIG_ESP32P4_REV_MIN_300) +if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) target_linker_script("__idf_main" INTERFACE "${LD_DEFAULT_PATH}/bootloader.rev3.ld.in") else() target_linker_script("__idf_main" INTERFACE "${LD_DEFAULT_PATH}/bootloader.ld.in") diff --git a/components/esp_rom/CMakeLists.txt b/components/esp_rom/CMakeLists.txt index 970d485221..c99e007707 100644 --- a/components/esp_rom/CMakeLists.txt +++ b/components/esp_rom/CMakeLists.txt @@ -97,8 +97,7 @@ if(target STREQUAL "linux") target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-integer-overflow -Wno-shift-count-overflow) endif() else() - # TODO: IDF-13410. Update to (CONFIG_ESP32P4_REV_MIN_FULL GREATER_EQUAL 200) when chip efuse is correct. - if(CONFIG_ESP32P4_REV_MIN_300) + if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) target_linker_script(${COMPONENT_LIB} INTERFACE "${target_folder}/${ld_folder}/${target}.rom.eco5.ld") elseif(CONFIG_IDF_TARGET_ESP32H4 AND NOT CONFIG_ESP32H4_SELECTS_REV_MP) # TODO: ESP32H4 IDF-13835 target_linker_script(${COMPONENT_LIB} INTERFACE "${target_folder}/${ld_folder}/${target}.rom.beta5.ld") @@ -113,7 +112,7 @@ else() endif() if(CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB) - if(CONFIG_ESP32P4_REV_MIN_300) # TODO: IDF-13410 + if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) rom_linker_script("eco5.libgcc") elseif(CONFIG_IDF_TARGET_ESP32H4 AND NOT CONFIG_ESP32H4_SELECTS_REV_MP) # TODO: ESP32H4 IDF-13835 rom_linker_script("beta5.libgcc") @@ -121,7 +120,7 @@ else() rom_linker_script("libgcc") endif() else() - if(CONFIG_ESP32P4_REV_MIN_300) # TODO: IDF-13410. + if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) rom_linker_script("eco5.rvfp") else() rom_linker_script("rvfp") @@ -168,7 +167,7 @@ if(BOOTLOADER_BUILD) if(target STREQUAL "esp32" OR target STREQUAL "esp32s2") rom_linker_script("libc-funcs") else() - if(CONFIG_ESP32P4_REV_MIN_300) # TODO: IDF-13410 + if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) rom_linker_script("eco5.libc") elseif(CONFIG_IDF_TARGET_ESP32H4 AND NOT CONFIG_ESP32H4_SELECTS_REV_MP) # TODO: ESP32H4 IDF-13835 rom_linker_script("beta5.libc") @@ -180,7 +179,7 @@ if(BOOTLOADER_BUILD) rom_linker_script("libc-suboptimal_for_misaligned_mem") endif() if(CONFIG_LIBC_NEWLIB) - if(CONFIG_ESP32P4_REV_MIN_300) # TODO: IDF-13410 + if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) rom_linker_script("eco5.newlib") elseif(CONFIG_IDF_TARGET_ESP32H4 AND NOT CONFIG_ESP32H4_SELECTS_REV_MP) # TODO: ESP32H4 IDF-13835 rom_linker_script("beta5.newlib") @@ -339,7 +338,7 @@ else() # Regular app build if(CONFIG_ESP_ROM_HAS_NEWLIB AND NOT target STREQUAL "esp32" AND NOT target STREQUAL "esp32s2") # ESP32 and S2 are a bit different, keep them as special cases in the target specific include section - if(CONFIG_ESP32P4_REV_MIN_300) # TODO: IDF-13410 + if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) rom_linker_script("eco5.libc") elseif(CONFIG_IDF_TARGET_ESP32H4 AND NOT CONFIG_ESP32H4_SELECTS_REV_MP) # TODO: ESP32H4 IDF-13835 rom_linker_script("beta5.libc") @@ -350,7 +349,7 @@ else() # Regular app build rom_linker_script("libc-suboptimal_for_misaligned_mem") endif() if(CONFIG_LIBC_NEWLIB) - if(CONFIG_ESP32P4_REV_MIN_300) # TODO: IDF-13410 + if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) rom_linker_script("eco5.newlib") elseif(CONFIG_IDF_TARGET_ESP32H4 AND NOT CONFIG_ESP32H4_SELECTS_REV_MP) # TODO: ESP32H4 IDF-13835 rom_linker_script("beta5.newlib") diff --git a/components/esp_system/CMakeLists.txt b/components/esp_system/CMakeLists.txt index 9a6a268680..cc118d2cf7 100644 --- a/components/esp_system/CMakeLists.txt +++ b/components/esp_system/CMakeLists.txt @@ -99,7 +99,7 @@ else() # Generate sections.ld.in and pass it through linker script generator set(sections_name "ld/${target}/sections.ld.in") - if(CONFIG_ESP32P4_REV_MIN_300) + if(CONFIG_IDF_TARGET_ESP32P4 AND NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3) set(sections_name "ld/${target}/sections.rev3.ld.in") endif() target_linker_script(${COMPONENT_LIB} INTERFACE "${sections_name}"