Commit 54ef484a authored by Almir Okato's avatar Almir Okato Committed by almir-okato
Browse files

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: default avatarAlmir Okato <almir.okato@espressif.com>
parent 26ed3f44
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -19,7 +19,3 @@
[submodule "boot/cypress/libs/cy-mbedtls-acceleration"]
	path = boot/cypress/libs/cy-mbedtls-acceleration
	url = https://github.com/cypresssemiconductorco/cy-mbedtls-acceleration.git
[submodule "boot/espressif/hal/esp-idf"]
	path = boot/espressif/hal/esp-idf
	url = https://github.com/espressif/esp-idf.git
	branch = release/v4.4
+15 −8
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.13)
cmake_policy(SET CMP0109 NEW)

include(${CMAKE_CURRENT_LIST_DIR}/tools/utils.cmake)

@@ -36,13 +37,15 @@ else()
    message(FATAL_ERROR "Unsupported target ${MCUBOOT_TARGET}")
endif()

if (NOT DEFINED IDF_PATH)
    if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/hal/esp-idf")
        set(IDF_PATH "${CMAKE_CURRENT_LIST_DIR}/hal/esp-idf")
    elseif (DEFINED ENV{IDF_PATH})
        set(IDF_PATH $ENV{IDF_PATH})
if (NOT DEFINED ESP_HAL_PATH)
    if (DEFINED ENV{ESP_HAL_PATH})
        set(ESP_HAL_PATH $ENV{ESP_HAL_PATH})
    else()
        message(FATAL_ERROR "IDF_PATH not found. Please update submodules or set IDF_PATH environment variable or pass -DIDF_PATH flag.")
        message(WARNING "ESP_HAL_PATH not found. Please set -DESP_HAL_PATH parameter or define ESP_HAL_PATH environment variable.")
        if (DEFINED ENV{IDF_PATH})
            set(ESP_HAL_PATH $ENV{IDF_PATH})
            message("IDF installation found in the system, using IDF_PATH as ESP_HAL_PATH.")
        endif()
    endif()
endif()

@@ -92,7 +95,11 @@ find_program(ESPTOOL_COMMAND
    NAMES esptool esptool.py
    )
if ("${ESPTOOL_COMMAND}" MATCHES "ESPTOOL_COMMAND-NOTFOUND")
    if (DEFINED ENV{IDF_PATH})
        set(esptool_path "${IDF_PATH}/components/esptool_py/esptool/esptool.py")
    else()
        message(FATAL_ERROR "esptool.py not found. Please install it using \'pip install esptool\'.")
    endif()
else()
    set(esptool_path "${ESPTOOL_COMMAND}")
endif()
@@ -179,7 +186,7 @@ set(CFLAGS
    "-ggdb"
    "-Os"
    "-D_GNU_SOURCE"
    "-std=gnu99"
    "-std=gnu17"
    "-Wno-old-style-declaration"
    "-Wno-implicit-int"
    "-Wno-declaration-after-statement"
+101 −79
Original line number Diff line number Diff line
@@ -6,8 +6,7 @@ cmake_minimum_required(VERSION 3.13)

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 @@ set(include_dirs
    )

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
    )

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
    ${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
        )
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 @@ set(CFLAGS
    "-ggdb"
    "-Os"
    "-D_GNU_SOURCE"
    "-std=gnu99"
    "-std=gnu17"
    "-Wno-old-style-declaration"
    "-Wno-implicit-int"
    )
@@ -153,16 +168,23 @@ if("${MCUBOOT_ARCH}" STREQUAL "xtensa")
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
Compare 8153bfe4 to 8153bfe4
Original line number Diff line number Diff line
Subproject commit 8153bfe4125e6a608abccf1561fd10285016c90a
+0 −1
Original line number Diff line number Diff line
@@ -6,4 +6,3 @@
#pragma once

void bootloader_wdt_feed(void);
void bootloader_config_wdt(void);
Loading