fix(esp32p4): fix rom and ld misuse min_rev

This commit is contained in:
Xiao Xufeng
2026-01-18 04:26:00 +08:00
parent d6c4fcd957
commit 29587bb50a
3 changed files with 9 additions and 10 deletions
@@ -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")
+7 -8
View File
@@ -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")
+1 -1
View File
@@ -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}"