espressif: remove IDF git submodule and add its reference by param
Remove the ESP-IDF from git submodules to avoid potential
duplicated repo clones on the user system. IDF HAL code is still
a dependency for Espressif port, therefore now the HAL code
reference needs to be passed by parameter when building.
The Espressif port was also updated to work with last v5.1 IDF
code.
Signed-off-by: Almir Okato <almir.okato@espressif.com>
diff --git a/boot/espressif/hal/CMakeLists.txt b/boot/espressif/hal/CMakeLists.txt
index c838bc3..7f3d1bb 100644
--- a/boot/espressif/hal/CMakeLists.txt
+++ b/boot/espressif/hal/CMakeLists.txt
@@ -6,8 +6,7 @@
project(hal)
-set(esp_idf_dir ${IDF_PATH})
-
+set(esp_hal_dir ${ESP_HAL_PATH})
set(src_dir ${CMAKE_CURRENT_LIST_DIR}/src)
set(include_dirs
${CMAKE_CURRENT_LIST_DIR}/include
@@ -15,91 +14,107 @@
)
list(APPEND include_dirs
- ${esp_idf_dir}/components/${MCUBOOT_ARCH}/include
- ${esp_idf_dir}/components/esp_common/include
- ${esp_idf_dir}/components/esp_rom/include
- ${esp_idf_dir}/components/esp_rom/include/${MCUBOOT_TARGET}
- ${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}
- ${esp_idf_dir}/components/spi_flash/include
- ${esp_idf_dir}/components/spi_flash/include/spi_flash
- ${esp_idf_dir}/components/esp_hw_support/include
- ${esp_idf_dir}/components/esp_hw_support/include/soc
- ${esp_idf_dir}/components/esp_hw_support/include/soc/${MCUBOOT_TARGET}
- ${esp_idf_dir}/components/esp_hw_support/port/include
- ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}
- ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/private_include
- ${esp_idf_dir}/components/soc/include
- ${esp_idf_dir}/components/soc/${MCUBOOT_TARGET}/include
- ${esp_idf_dir}/components/bootloader_support/include
- ${esp_idf_dir}/components/bootloader_support/include_bootloader
- ${esp_idf_dir}/components/hal/include
- ${esp_idf_dir}/components/hal/platform_port/include
- ${esp_idf_dir}/components/hal/${MCUBOOT_TARGET}/include
- ${esp_idf_dir}/components/hal/${MCUBOOT_TARGET}/include/hal
- ${esp_idf_dir}/components/heap/include
- ${esp_idf_dir}/components/efuse/include
- ${esp_idf_dir}/components/efuse/${MCUBOOT_TARGET}/include
- ${esp_idf_dir}/components/efuse/private_include
- ${esp_idf_dir}/components/efuse/${MCUBOOT_TARGET}/private_include
- ${esp_idf_dir}/components/esp_system/include
- ${esp_idf_dir}/components/newlib/platform_include
+ ${esp_hal_dir}/components/bootloader_support/include
+ ${esp_hal_dir}/components/bootloader_support/private_include
+ ${esp_hal_dir}/components/bootloader_support/bootloader_flash/include
+ ${esp_hal_dir}/components/spi_flash/include
+ ${esp_hal_dir}/components/spi_flash/include/spi_flash
+ ${esp_hal_dir}/components/esp_app_format/include
+ ${esp_hal_dir}/components/newlib/platform_include
+ ${esp_hal_dir}/components/esp_common/include
+ ${esp_hal_dir}/components/${MCUBOOT_ARCH}/include
+ ${esp_hal_dir}/components/esp_rom/include
+ ${esp_hal_dir}/components/esp_rom/include/${MCUBOOT_TARGET}
+ ${esp_hal_dir}/components/esp_rom/${MCUBOOT_TARGET}
+ ${esp_hal_dir}/components/soc/include
+ ${esp_hal_dir}/components/soc/${MCUBOOT_TARGET}
+ ${esp_hal_dir}/components/soc/${MCUBOOT_TARGET}/include
+ ${esp_hal_dir}/components/efuse/include
+ ${esp_hal_dir}/components/efuse/${MCUBOOT_TARGET}/include
+ ${esp_hal_dir}/components/efuse/private_include
+ ${esp_hal_dir}/components/efuse/${MCUBOOT_TARGET}/private_include
+ ${esp_hal_dir}/components/esp_hw_support/include
+ ${esp_hal_dir}/components/esp_hw_support/include/soc
+ ${esp_hal_dir}/components/esp_hw_support/include/soc/${MCUBOOT_TARGET}
+ ${esp_hal_dir}/components/esp_hw_support/port/include
+ ${esp_hal_dir}/components/esp_hw_support/include/esp_private
+ ${esp_hal_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}
+ ${esp_hal_dir}/components/hal/${MCUBOOT_TARGET}/include
+ ${esp_hal_dir}/components/hal/include
+ ${esp_hal_dir}/components/hal/platform_port/include
+ ${esp_hal_dir}/components/esp_system/include
+ ${esp_hal_dir}/components/log/include
)
if("${MCUBOOT_ARCH}" STREQUAL "xtensa")
list(APPEND include_dirs
- ${esp_idf_dir}/components/${MCUBOOT_ARCH}/${MCUBOOT_TARGET}/include
+ ${esp_hal_dir}/components/${MCUBOOT_ARCH}/${MCUBOOT_TARGET}/include
+ ${esp_hal_dir}/components/${MCUBOOT_ARCH}/include
)
endif()
set(hal_srcs
- ${src_dir}/bootloader_init_common.c
+ ${esp_hal_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/bootloader_${MCUBOOT_TARGET}.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_init.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_common.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_common_loader.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_console.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_console_loader.c
+ ${esp_hal_dir}/components/bootloader_support/bootloader_flash/src/bootloader_flash.c
+ ${esp_hal_dir}/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_${MCUBOOT_TARGET}.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_clock_init.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_clock_loader.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_efuse.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_panic.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_mem.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_random.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_random_${MCUBOOT_TARGET}.c
+ ${esp_hal_dir}/components/bootloader_support/src/bootloader_utility.c
+ ${esp_hal_dir}/components/bootloader_support/src/esp_image_format.c
+ ${esp_hal_dir}/components/bootloader_support/src/secure_boot_v2/secure_boot_signatures_bootloader.c
+ ${esp_hal_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/bootloader_soc.c
+ ${esp_hal_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/bootloader_sha.c
+ ${esp_hal_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/secure_boot_secure_features.c
+ ${esp_hal_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/flash_encryption_secure_features.c
+ ${esp_hal_dir}/components/hal/mpu_hal.c
+ ${esp_hal_dir}/components/hal/efuse_hal.c
+ ${esp_hal_dir}/components/hal/mmu_hal.c
+ ${esp_hal_dir}/components/hal/wdt_hal_iram.c
+ ${esp_hal_dir}/components/hal/${MCUBOOT_TARGET}/efuse_hal.c
+ ${esp_hal_dir}/components/soc/${MCUBOOT_TARGET}/uart_periph.c
+ ${esp_hal_dir}/components/soc/${MCUBOOT_TARGET}/gpio_periph.c
+ ${esp_hal_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_time.c
+ ${esp_hal_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk.c
+ ${esp_hal_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk_init.c
+ ${esp_hal_dir}/components/esp_rom/patches/esp_rom_uart.c
+ ${esp_hal_dir}/components/esp_rom/patches/esp_rom_sys.c
+ ${esp_hal_dir}/components/esp_rom/patches/esp_rom_spiflash.c
+ ${esp_hal_dir}/components/efuse/${MCUBOOT_TARGET}/esp_efuse_table.c
+ ${esp_hal_dir}/components/efuse/src/esp_efuse_fields.c
+ ${esp_hal_dir}/components/efuse/${MCUBOOT_TARGET}/esp_efuse_fields.c
+ ${esp_hal_dir}/components/efuse/src/esp_efuse_api.c
+ ${esp_hal_dir}/components/efuse/src/esp_efuse_utility.c
+ ${esp_hal_dir}/components/efuse/${MCUBOOT_TARGET}/esp_efuse_utility.c
+ ${esp_hal_dir}/components/log/log_noos.c
+ ${src_dir}/bootloader_banner.c
${src_dir}/bootloader_wdt.c
- ${src_dir}/secure_boot.c
- ${src_dir}/flash_encrypt.c
- ${src_dir}/${MCUBOOT_TARGET}/bootloader_init.c
- ${esp_idf_dir}/components/hal/mpu_hal.c
- ${esp_idf_dir}/components/hal/soc_hal.c
- ${esp_idf_dir}/components/soc/${MCUBOOT_TARGET}/uart_periph.c
- ${esp_idf_dir}/components/soc/${MCUBOOT_TARGET}/gpio_periph.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_common_loader.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_console.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_console_loader.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash_config_${MCUBOOT_TARGET}.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_clock_init.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_efuse_${MCUBOOT_TARGET}.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_panic.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_mem.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_random.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_random_${MCUBOOT_TARGET}.c
- ${esp_idf_dir}/components/bootloader_support/src/bootloader_utility.c
- ${esp_idf_dir}/components/bootloader_support/src/esp_image_format.c
- ${esp_idf_dir}/components/bootloader_support/src/secure_boot_v2/secure_boot_signatures_bootloader.c
- ${esp_idf_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/bootloader_soc.c
- ${esp_idf_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/bootloader_sha.c
- ${esp_idf_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/secure_boot_secure_features.c
- ${esp_idf_dir}/components/bootloader_support/src/${MCUBOOT_TARGET}/flash_encryption_secure_features.c
- ${esp_idf_dir}/components/spi_flash/${MCUBOOT_TARGET}/spi_flash_rom_patch.c
- ${esp_idf_dir}/components/esp_hw_support/esp_clk.c
- ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_init.c
- ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_time.c
- ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk.c
- ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk_init.c
- ${esp_idf_dir}/components/hal/wdt_hal_iram.c
- ${esp_idf_dir}/components/esp_hw_support/cpu_util.c
- ${esp_idf_dir}/components/esp_rom/patches/esp_rom_uart.c
- ${esp_idf_dir}/components/esp_rom/patches/esp_rom_sys.c
- ${esp_idf_dir}/components/efuse/${MCUBOOT_TARGET}/esp_efuse_table.c
- ${esp_idf_dir}/components/efuse/src/esp_efuse_fields.c
- ${esp_idf_dir}/components/efuse/${MCUBOOT_TARGET}/esp_efuse_fields.c
- ${esp_idf_dir}/components/efuse/src/esp_efuse_api.c
- ${esp_idf_dir}/components/efuse/src/esp_efuse_utility.c
- ${esp_idf_dir}/components/efuse/${MCUBOOT_TARGET}/esp_efuse_utility.c
)
+if(DEFINED CONFIG_SECURE_BOOT_V2_ENABLED)
+ list(APPEND hal_srcs
+ ${src_dir}/secure_boot.c
+ )
+endif()
+
+if(DEFINED CONFIG_SECURE_FLASH_ENC_ENABLED)
+ list(APPEND hal_srcs
+ ${src_dir}/flash_encrypt.c
+ )
+endif()
+
if("${MCUBOOT_ARCH}" STREQUAL "xtensa")
list(APPEND hal_srcs
- ${esp_idf_dir}/components/esp_rom/patches/esp_rom_longjmp.S
+ ${esp_hal_dir}/components/esp_rom/patches/esp_rom_longjmp.S
)
endif()
@@ -125,7 +140,7 @@
"-ggdb"
"-Os"
"-D_GNU_SOURCE"
- "-std=gnu99"
+ "-std=gnu17"
"-Wno-old-style-declaration"
"-Wno-implicit-int"
)
@@ -153,16 +168,23 @@
endif()
set(LINKER_SCRIPTS
- -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.ld
- -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.libgcc.ld
- -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.api.ld
- -T${esp_idf_dir}/components/soc/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.peripherals.ld
+ -T${esp_hal_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.ld
+ -T${esp_hal_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.libgcc.ld
+ -T${esp_hal_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.api.ld
+ -T${esp_hal_dir}/components/soc/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.peripherals.ld
)
include(${CMAKE_CURRENT_LIST_DIR}/include/${MCUBOOT_TARGET}/${MCUBOOT_TARGET}.cmake)
add_library(hal STATIC ${hal_srcs} ${include_dirs})
+# Wrap for overriding the print banner function from bootloader_support
+add_definitions(-DIDF_VER=0)
+target_link_libraries(
+ hal
+ INTERFACE
+ "-Wl,--wrap=bootloader_print_banner")
+
target_include_directories(
hal
PUBLIC