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