Commit 712fdb5a authored by Almir Okato's avatar Almir Okato Committed by Fabio Utzig
Browse files

espressif: Add ESP32-C3 initial basic support



ESP32-C3 target added to the Espressif port, CMakeLists, and
added related files to ESP32-C3 target directory as well.

Signed-off-by: default avatarAlmir Okato <almir.okato@espressif.com>
parent d532029c
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -8,6 +8,13 @@ project(mcuboot_${MCUBOOT_TARGET})

add_definitions(-DMCUBOOT_TARGET=${MCUBOOT_TARGET})

if ("${MCUBOOT_TARGET}" STREQUAL "esp32" OR
    "${MCUBOOT_TARGET}" STREQUAL "esp32s2")
    set(MCUBOOT_ARCH "xtensa")
elseif("${MCUBOOT_TARGET}" STREQUAL "esp32c3")
    set(MCUBOOT_ARCH "riscv")
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")
@@ -90,7 +97,6 @@ set(mbedtls_srcs
    )

set(CFLAGS
    "-mlongcalls"
    "-Wno-frame-address"
    "-Wall"
    "-Wextra"
@@ -120,7 +126,6 @@ set(CFLAGS

set(LDFLAGS
    "-nostdlib"
    "-mlongcalls"
    "-Wno-frame-address"
    "-Wl,--cref"
    "-Wl,--Map=${APP_NAME}.map"
@@ -133,6 +138,15 @@ set(LDFLAGS
    "-lgcov"
    )

if ("${MCUBOOT_ARCH}" STREQUAL "xtensa")
    list(APPEND CFLAGS
        "-mlongcalls"
        )
    list(APPEND LDFLAGS
        "-mlongcalls"
        )
endif()

add_subdirectory(hal)
add_executable(
    ${APP_EXECUTABLE}
+29 −26
Original line number Diff line number Diff line
@@ -11,13 +11,12 @@ 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/xtensa/${MCUBOOT_TARGET}/include
    ${esp_idf_dir}/components/spi_flash/include
    ${esp_idf_dir}/components/spi_flash/private_include
    ${esp_idf_dir}/components/xtensa/include
    ${esp_idf_dir}/components/soc/${MCUBOOT_TARGET}/include
    ${esp_idf_dir}/components/${MCUBOOT_TARGET}/include
    ${esp_idf_dir}/components/soc/include
@@ -32,6 +31,13 @@ list(APPEND INCLUDE_DIRS
    ${esp_idf_dir}/components/efuse/include
    ${esp_idf_dir}/components/efuse/${MCUBOOT_TARGET}/include
    )

if("${MCUBOOT_ARCH}" STREQUAL "xtensa")
    list(APPEND INCLUDE_DIRS
        ${esp_idf_dir}/components/${MCUBOOT_ARCH}/${MCUBOOT_TARGET}/include
        )
endif()

set(hal_srcs
    ${SRC_DIR}/bootloader_wdt.c
    ${SRC_DIR}/${MCUBOOT_TARGET}/bootloader_init.c
@@ -53,15 +59,8 @@ set(hal_srcs
    ${esp_idf_dir}/components/${MCUBOOT_TARGET}/clk.c
    )

if ("${MCUBOOT_TARGET}" STREQUAL "esp32s2")
    list(APPEND hal_srcs
        ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/regi2c_ctrl.c
    )
endif()

set(CFLAGS
    "-nostdlib"
    "-mlongcalls"
    "-Wno-frame-address"
    "-Wall"
    "-Wextra"
@@ -88,7 +87,6 @@ set(CFLAGS
    )

set(LDFLAGS
    "-mlongcalls"
    "-Wno-frame-address"
    "-Wl,--cref"
    "-Wl,--Map=${APP_NAME}.map"
@@ -101,7 +99,14 @@ set(LDFLAGS
    "-lgcov"
    )

add_library(hal STATIC ${hal_srcs} ${INCLUDE_DIRS})
if (("${MCUBOOT_TARGET}" STREQUAL "xtensa"))
    list(APPEND CFLAGS
        "-mlongcalls"
        )
    list(APPEND LDFLAGS
        "-mlongcalls"
        )
endif()

set_source_files_properties(
    ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash.c
@@ -110,7 +115,19 @@ set_source_files_properties(
    ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk.c
    ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_time.c
    PROPERTIES COMPILE_FLAGS
    "-Wno-unused-variable")
    "-Wno-unused-variable"
    )

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/${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})

target_include_directories(
    hal
@@ -124,20 +141,6 @@ target_compile_options(
    ${CFLAGS}
    )

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/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.peripherals.ld
    -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.newlib-funcs.ld
    )

if ("${MCUBOOT_TARGET}" STREQUAL "esp32s2")
    list(APPEND LINKER_SCRIPTS
        -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.spiflash.ld
    )
endif()

target_link_libraries(
    hal
    PUBLIC
+3 −0
Original line number Diff line number Diff line
list(APPEND LINKER_SCRIPTS
    -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.newlib-funcs.ld
    )
+13 −0
Original line number Diff line number Diff line
list(APPEND hal_srcs
    ${esp_idf_dir}/components/bootloader_support/src/flash_qio_mode.c
    ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/cpu_util_esp32c3.c
)

list(APPEND LINKER_SCRIPTS
    -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.newlib.ld
)

set_source_files_properties(
    ${esp_idf_dir}/components/bootloader_support/src/flash_qio_mode.c
    PROPERTIES COMPILE_FLAGS
    "-Wno-unused-variable")
+9 −0
Original line number Diff line number Diff line
#define CONFIG_IDF_TARGET_ESP32C3 1
#define CONFIG_IDF_TARGET_ARCH_RISCV 1
#define CONFIG_SPI_FLASH_ROM_DRIVER_PATCH 1
#define CONFIG_MCUBOOT 1
#define NDEBUG 1
#define CONFIG_BOOTLOADER_WDT_TIME_MS 9000
#define CONFIG_ESP_CONSOLE_UART_BAUDRATE 115200
#define CONFIG_BOOTLOADER_OFFSET_IN_FLASH 0x0000
#define BOOTLOADER_BUILD 1
Loading