diff --git a/soc/espressif/common/CMakeLists.txt b/soc/espressif/common/CMakeLists.txt index 3ba79987a3b..a8d85bdc335 100644 --- a/soc/espressif/common/CMakeLists.txt +++ b/soc/espressif/common/CMakeLists.txt @@ -6,3 +6,78 @@ zephyr_include_directories(include) if(NOT CONFIG_MCUBOOT AND NOT CONFIG_SOC_ESP32_APPCPU AND NOT CONFIG_SOC_ESP32S3_APPCPU) zephyr_sources_ifdef(CONFIG_ESP_SPIRAM esp_psram.c) endif() + +# Get flash size to use in esptool as string +math(EXPR esptoolpy_flashsize "${CONFIG_FLASH_SIZE} / 0x100000") + +# Get UART baudrate from DT +dt_chosen(dts_shell_uart PROPERTY "zephyr,shell-uart") +if(${dts_shell_uart}) + dt_prop(monitor_baud PATH ${dts_shell_uart} PROPERTY "current-speed") +endif() + +message("-- Espressif HAL path: ${ESP_IDF_PATH}") + +if(CONFIG_ESP_SIMPLE_BOOT OR CONFIG_MCUBOOT) + if(CONFIG_BUILD_OUTPUT_BIN) + set(ESPTOOL_PY ${ESP_IDF_PATH}/tools/esptool_py/esptool.py) + message("-- Use the esptool.py: ${ESPTOOL_PY}") + + set(ELF2IMAGE_ARG "") + if(NOT CONFIG_MCUBOOT) + set(ELF2IMAGE_ARG "--ram-only-header") + endif() + + set_property(GLOBAL APPEND PROPERTY extra_post_build_commands + COMMAND ${PYTHON_EXECUTABLE} ${ESPTOOL_PY} + ARGS --chip ${CONFIG_SOC} elf2image ${ELF2IMAGE_ARG} + --flash_mode dio + --flash_freq ${CONFIG_ESPTOOLPY_FLASHFREQ} + --flash_size ${esptoolpy_flashsize}MB + -o ${CMAKE_BINARY_DIR}/zephyr/${KERNEL_BIN_NAME} + ${CMAKE_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}) + endif() +endif() + +set_property(TARGET bintools PROPERTY disassembly_flag_inline_source) + +# Select the image origin depending on the boot configuration +if(CONFIG_SOC_ESP32_APPCPU OR CONFIG_SOC_ESP32S3_APPCPU) + dt_nodelabel(dts_partition_path NODELABEL "slot0_appcpu_partition") +elseif(CONFIG_MCUBOOT OR CONFIG_ESP_SIMPLE_BOOT) + dt_nodelabel(dts_partition_path NODELABEL "boot_partition") +else() + dt_nodelabel(dts_partition_path NODELABEL "slot0_partition") +endif() + +dt_reg_addr(image_off PATH ${dts_partition_path}) +board_finalize_runner_args(esp32 "--esp-app-address=${image_off}") +board_finalize_runner_args(esp32 "--esp-flash-size=${esptoolpy_flashsize}MB") +board_finalize_runner_args(esp32 "--esp-flash-freq=${CONFIG_ESPTOOLPY_FLASHFREQ}") +board_finalize_runner_args(esp32 "--esp-flash-mode=${CONFIG_ESPTOOLPY_FLASHMODE}") +board_finalize_runner_args(esp32 "--esp-monitor-baud=${monitor_baud}") + +message("-- Image partition ${dts_partition_path}") + +# Look for cross references between bootloader sections +if(CONFIG_MCUBOOT) + message("check_callgraph using: ${ESP_IDF_PATH}/tools/ci/check_callgraph.py") + set_property(GLOBAL APPEND PROPERTY extra_post_build_commands + COMMAND + ${PYTHON_EXECUTABLE} ${ESP_IDF_PATH}/tools/ci/check_callgraph.py + ARGS + --rtl-dirs ${CMAKE_BINARY_DIR}/zephyr + --elf-file ${CMAKE_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME} + find-refs + --from-section='.iram0.loader_text' + --to-section='.iram0.text' + --exit-code) +endif() + +if(CONFIG_MCUBOOT) + set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/../${CONFIG_SOC}/mcuboot.ld CACHE INTERNAL "") +elseif(CONFIG_SOC_ESP32_APPCPU OR CONFIG_SOC_ESP32S3_APPCPU) + set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/../${CONFIG_SOC}/default_appcpu.ld CACHE INTERNAL "") +else() + set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/../${CONFIG_SOC}/default.ld CACHE INTERNAL "") +endif() diff --git a/soc/espressif/esp32/CMakeLists.txt b/soc/espressif/esp32/CMakeLists.txt index 5ccc92b682a..36484e5875e 100644 --- a/soc/espressif/esp32/CMakeLists.txt +++ b/soc/espressif/esp32/CMakeLists.txt @@ -22,84 +22,3 @@ zephyr_library_sources_ifdef(CONFIG_GDBSTUB gdbstub.c) zephyr_library_sources_ifdef(CONFIG_PM power.c) zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c) - -# get flash size to use in esptool as string -math(EXPR esptoolpy_flashsize "${CONFIG_FLASH_SIZE} / 0x100000") - -# Get UART baudrate from DT -dt_chosen(dts_shell_uart PROPERTY "zephyr,shell-uart") -if(${dts_shell_uart}) - dt_prop(monitor_baud PATH ${dts_shell_uart} PROPERTY "current-speed") -endif() - -board_runner_args(esp32 "--esp-monitor-baud=${monitor_baud}") - -message("-- Espressif HAL path: ${ESP_IDF_PATH}") - -# Select image processing - -if(CONFIG_ESP_SIMPLE_BOOT OR CONFIG_MCUBOOT) - - if(CONFIG_BUILD_OUTPUT_BIN) - - set(ESPTOOL_PY ${ESP_IDF_PATH}/tools/esptool_py/esptool.py) - message("-- Use the esptool.py: ${ESPTOOL_PY}") - - set(ELF2IMAGE_ARG "") - if(NOT CONFIG_MCUBOOT) - set(ELF2IMAGE_ARG "--ram-only-header") - endif() - - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ESPTOOL_PY} - ARGS --chip ${CONFIG_SOC} elf2image ${ELF2IMAGE_ARG} - --flash_mode dio --flash_freq 40m - --flash_size ${esptoolpy_flashsize}MB - -o ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.bin - ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf) - - endif() - -endif() - -set_property(TARGET bintools PROPERTY disassembly_flag_inline_source) - - # Select the image origin depending on the boot configuration -if(CONFIG_SOC_ESP32_APPCPU) - dt_nodelabel(dts_partition_path NODELABEL "slot0_appcpu_partition") -elseif(CONFIG_MCUBOOT) - dt_nodelabel(dts_partition_path NODELABEL "boot_partition") -elseif(CONFIG_ESP_SIMPLE_BOOT) - dt_nodelabel(dts_partition_path NODELABEL "boot_partition") -else() - dt_nodelabel(dts_partition_path NODELABEL "slot0_partition") -endif() - -dt_reg_addr(image_off PATH ${dts_partition_path}) -board_finalize_runner_args(esp32 "--esp-app-address=${image_off}") - -message("-- Image partition ${dts_partition_path}") - -# Look for cross references between bootloader sections -if(CONFIG_MCUBOOT) - - message("check_callgraph using: ${ESP_IDF_PATH}/tools/ci/check_callgraph.py") - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND - ${PYTHON_EXECUTABLE} ${ESP_IDF_PATH}/tools/ci/check_callgraph.py - ARGS - --rtl-dirs ${CMAKE_BINARY_DIR}/zephyr - --elf-file ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf - find-refs - --from-section='.iram0.loader_text' - --to-section='.iram0.text' - --exit-code) -endif() - -if(CONFIG_MCUBOOT) - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mcuboot.ld CACHE INTERNAL "") -elseif(CONFIG_SOC_ESP32_APPCPU) - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/default_appcpu.ld CACHE INTERNAL "") -else() - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/default.ld CACHE INTERNAL "") -endif() diff --git a/soc/espressif/esp32c2/CMakeLists.txt b/soc/espressif/esp32c2/CMakeLists.txt index 2d70c8cd7de..bd1b0474de6 100644 --- a/soc/espressif/esp32c2/CMakeLists.txt +++ b/soc/espressif/esp32c2/CMakeLists.txt @@ -11,71 +11,3 @@ zephyr_sources( zephyr_include_directories(.) zephyr_sources_ifndef(CONFIG_BOOTLOADER_MCUBOOT hw_init.c) - -# get flash size to use in esptool as string -math(EXPR esptoolpy_flashsize "${CONFIG_FLASH_SIZE} / 0x100000") - -if(NOT CONFIG_BOOTLOADER_MCUBOOT) - - if(CONFIG_BUILD_OUTPUT_BIN) - # make ESP ROM loader compatible image - message("ESP-IDF path: ${ESP_IDF_PATH}") - - set(ESPTOOL_PY ${ESP_IDF_PATH}/tools/esptool_py/esptool.py) - message("esptool path: ${ESPTOOL_PY}") - - set(ELF2IMAGE_ARG "") - if(NOT CONFIG_MCUBOOT) - set(ELF2IMAGE_ARG "--ram-only-header") - endif() - - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ESPTOOL_PY} - ARGS --chip esp32c2 elf2image ${ELF2IMAGE_ARG} - --flash_mode dio --flash_freq 60m --flash_size ${esptoolpy_flashsize}MB - -o ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.bin - ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf) - endif() - -endif() - -# get code-partition slot0 address -dt_nodelabel(dts_partition_path NODELABEL "slot0_partition") -dt_reg_addr(img_0_off PATH ${dts_partition_path}) - -# get code-partition boot address -dt_nodelabel(dts_partition_path NODELABEL "boot_partition") -dt_reg_addr(boot_off PATH ${dts_partition_path}) - -# get UART baudrate from DT -dt_chosen(dts_shell_uart PROPERTY "zephyr,shell-uart") -dt_prop(monitor_baud PATH ${dts_shell_uart} PROPERTY "current-speed") - -# C2 uses specific values for flash frequency and UART baudrate -board_runner_args(esp32 "--esp-flash-freq=60m") -board_runner_args(esp32 "--esp-monitor-baud=${monitor_baud}") - -if(CONFIG_BOOTLOADER_MCUBOOT) - board_finalize_runner_args(esp32 "--esp-app-address=${img_0_off}") -else() - board_finalize_runner_args(esp32 "--esp-app-address=${boot_off}") -endif() - -if(CONFIG_MCUBOOT) - # search from cross references between bootloader sections - message("check_callgraph using: ${ESP_IDF_PATH}/tools/ci/check_callgraph.py") - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND - ${PYTHON_EXECUTABLE} ${ESP_IDF_PATH}/tools/ci/check_callgraph.py - ARGS - --rtl-dirs ${CMAKE_BINARY_DIR}/zephyr - --elf-file ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf - find-refs --from-section=.iram0.iram_loader --to-section=.iram0.text - --exit-code) -endif() - -if(CONFIG_MCUBOOT) - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mcuboot.ld CACHE INTERNAL "") -else() - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/default.ld CACHE INTERNAL "") -endif() diff --git a/soc/espressif/esp32c3/CMakeLists.txt b/soc/espressif/esp32c3/CMakeLists.txt index bfec91fbc4c..186cf17af9b 100644 --- a/soc/espressif/esp32c3/CMakeLists.txt +++ b/soc/espressif/esp32c3/CMakeLists.txt @@ -14,63 +14,3 @@ zephyr_sources_ifndef(CONFIG_BOOTLOADER_MCUBOOT hw_init.c) zephyr_library_sources_ifdef(CONFIG_PM power.c) zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c) - -# get flash size to use in esptool as string -math(EXPR esptoolpy_flashsize "${CONFIG_FLASH_SIZE} / 0x100000") - -if(NOT CONFIG_BOOTLOADER_MCUBOOT) - - if(CONFIG_BUILD_OUTPUT_BIN) - # make ESP ROM loader compatible image - message("ESP-IDF path: ${ESP_IDF_PATH}") - - set(ESPTOOL_PY ${ESP_IDF_PATH}/tools/esptool_py/esptool.py) - message("esptool path: ${ESPTOOL_PY}") - - set(ELF2IMAGE_ARG "") - if(NOT CONFIG_MCUBOOT) - set(ELF2IMAGE_ARG "--ram-only-header") - endif() - - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ESPTOOL_PY} - ARGS --chip esp32c3 elf2image ${ELF2IMAGE_ARG} - --flash_mode dio --flash_freq 40m --flash_size ${esptoolpy_flashsize}MB - -o ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.bin - ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf) - endif() - -endif() - -# get code-partition slot0 address -dt_nodelabel(dts_partition_path NODELABEL "slot0_partition") -dt_reg_addr(img_0_off PATH ${dts_partition_path}) - -# get code-partition boot address -dt_nodelabel(dts_partition_path NODELABEL "boot_partition") -dt_reg_addr(boot_off PATH ${dts_partition_path}) - -if(CONFIG_BOOTLOADER_MCUBOOT) - board_finalize_runner_args(esp32 "--esp-app-address=${img_0_off}") -else() - board_finalize_runner_args(esp32 "--esp-app-address=${boot_off}") -endif() - -if(CONFIG_MCUBOOT) - # search from cross references between bootloader sections - message("check_callgraph using: ${ESP_IDF_PATH}/tools/ci/check_callgraph.py") - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND - ${PYTHON_EXECUTABLE} ${ESP_IDF_PATH}/tools/ci/check_callgraph.py - ARGS - --rtl-dirs ${CMAKE_BINARY_DIR}/zephyr - --elf-file ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf - find-refs --from-section=.iram0.iram_loader --to-section=.iram0.text - --exit-code) -endif() - -if(CONFIG_MCUBOOT) - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mcuboot.ld CACHE INTERNAL "") -else() - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/default.ld CACHE INTERNAL "") -endif() diff --git a/soc/espressif/esp32c6/CMakeLists.txt b/soc/espressif/esp32c6/CMakeLists.txt index 6bd5b99e6ff..186cf17af9b 100644 --- a/soc/espressif/esp32c6/CMakeLists.txt +++ b/soc/espressif/esp32c6/CMakeLists.txt @@ -14,63 +14,3 @@ zephyr_sources_ifndef(CONFIG_BOOTLOADER_MCUBOOT hw_init.c) zephyr_library_sources_ifdef(CONFIG_PM power.c) zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c) - -# get flash size to use in esptool as string -math(EXPR esptoolpy_flashsize "${CONFIG_FLASH_SIZE} / 0x100000") - -if(NOT CONFIG_BOOTLOADER_MCUBOOT) - - if(CONFIG_BUILD_OUTPUT_BIN) - # make ESP ROM loader compatible image - message("ESP-IDF path: ${ESP_IDF_PATH}") - - set(ESPTOOL_PY ${ESP_IDF_PATH}/tools/esptool_py/esptool.py) - message("esptool path: ${ESPTOOL_PY}") - - set(ELF2IMAGE_ARG "") - if(NOT CONFIG_MCUBOOT) - set(ELF2IMAGE_ARG "--ram-only-header") - endif() - - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ESPTOOL_PY} - ARGS --chip esp32c6 elf2image ${ELF2IMAGE_ARG} - --flash_mode dio --flash_freq 40m --flash_size ${esptoolpy_flashsize}MB - -o ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.bin - ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf) - endif() - -endif() - -# get code-partition slot0 address -dt_nodelabel(dts_partition_path NODELABEL "slot0_partition") -dt_reg_addr(img_0_off PATH ${dts_partition_path}) - -# get code-partition boot address -dt_nodelabel(dts_partition_path NODELABEL "boot_partition") -dt_reg_addr(boot_off PATH ${dts_partition_path}) - -if(CONFIG_BOOTLOADER_MCUBOOT) - board_finalize_runner_args(esp32 "--esp-app-address=${img_0_off}") -else() - board_finalize_runner_args(esp32 "--esp-app-address=${boot_off}") -endif() - -if(CONFIG_MCUBOOT) - # search from cross references between bootloader sections - message("check_callgraph using: ${ESP_IDF_PATH}/tools/ci/check_callgraph.py") - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND - ${PYTHON_EXECUTABLE} ${ESP_IDF_PATH}/tools/ci/check_callgraph.py - ARGS - --rtl-dirs ${CMAKE_BINARY_DIR}/zephyr - --elf-file ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf - find-refs --from-section=.iram0.iram_loader --to-section=.iram0.text - --exit-code) -endif() - -if(CONFIG_MCUBOOT) - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mcuboot.ld CACHE INTERNAL "") -else() - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/default.ld CACHE INTERNAL "") -endif() diff --git a/soc/espressif/esp32s2/CMakeLists.txt b/soc/espressif/esp32s2/CMakeLists.txt index ef1d907a64c..6cae59aed5b 100644 --- a/soc/espressif/esp32s2/CMakeLists.txt +++ b/soc/espressif/esp32s2/CMakeLists.txt @@ -14,64 +14,3 @@ zephyr_library_sources_ifdef(CONFIG_NEWLIB_LIBC newlib_fix.c) zephyr_library_sources_ifdef(CONFIG_PM power.c) zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c) - -# get flash size to use in esptool as string -math(EXPR esptoolpy_flashsize "${CONFIG_FLASH_SIZE} / 0x100000") - -if(NOT CONFIG_BOOTLOADER_MCUBOOT) - - if(CONFIG_BUILD_OUTPUT_BIN) - # make ESP ROM loader compatible image - message("ESP-IDF path: ${ESP_IDF_PATH}") - - set(ESPTOOL_PY ${ESP_IDF_PATH}/tools/esptool_py/esptool.py) - message("esptool path: ${ESPTOOL_PY}") - - set(ELF2IMAGE_ARG "") - if(NOT CONFIG_MCUBOOT) - set(ELF2IMAGE_ARG "--ram-only-header") - endif() - - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ESPTOOL_PY} - ARGS --chip esp32s2 elf2image ${ELF2IMAGE_ARG} - --flash_mode dio --flash_freq 40m - --flash_size ${esptoolpy_flashsize}MB - -o ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.bin - ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf) - endif() - -endif() - -# Get code-partition boot address -dt_nodelabel(dts_partition_path NODELABEL "boot_partition") -dt_reg_addr(boot_off PATH ${dts_partition_path}) - -# Get code-partition slot0 address -dt_nodelabel(dts_partition_path NODELABEL "slot0_partition") -dt_reg_addr(img_0_off PATH ${dts_partition_path}) - -if(CONFIG_BOOTLOADER_MCUBOOT) - board_finalize_runner_args(esp32 "--esp-app-address=${img_0_off}") -else() - board_finalize_runner_args(esp32 "--esp-app-address=${boot_off}") -endif() - -if(CONFIG_MCUBOOT) - # search from cross references between bootloader sections - message("check_callgraph using: ${ESP_IDF_PATH}/tools/ci/check_callgraph.py") - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND - ${PYTHON_EXECUTABLE} ${ESP_IDF_PATH}/tools/ci/check_callgraph.py - ARGS - --rtl-dirs ${CMAKE_BINARY_DIR}/zephyr - --elf-file ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf - find-refs --from-section=.iram0.iram_loader --to-section=.iram0.text - --exit-code) -endif() - -if(CONFIG_MCUBOOT) - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mcuboot.ld CACHE INTERNAL "") -else() - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/default.ld CACHE INTERNAL "") -endif() diff --git a/soc/espressif/esp32s3/CMakeLists.txt b/soc/espressif/esp32s3/CMakeLists.txt index 4de4df54cfe..48c6936487b 100644 --- a/soc/espressif/esp32s3/CMakeLists.txt +++ b/soc/espressif/esp32s3/CMakeLists.txt @@ -26,84 +26,3 @@ zephyr_library_sources_ifdef(CONFIG_NEWLIB_LIBC newlib_fix.c) # Power Management zephyr_library_sources_ifdef(CONFIG_PM power.c) zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c) - -# Get flash size to use in esptool as string -math(EXPR esptoolpy_flashsize "${CONFIG_FLASH_SIZE} / 0x100000") - -# Get UART baudrate from DT -dt_chosen(dts_shell_uart PROPERTY "zephyr,shell-uart") -if(${dts_shell_uart}) - dt_prop(monitor_baud PATH ${dts_shell_uart} PROPERTY "current-speed") -endif() - -board_runner_args(esp32 "--esp-monitor-baud=${monitor_baud}") - -message("-- Espressif HAL path: ${ESP_IDF_PATH}") - -# Select image processing - -if(CONFIG_ESP_SIMPLE_BOOT OR CONFIG_MCUBOOT) - - if(CONFIG_BUILD_OUTPUT_BIN) - - set(ESPTOOL_PY ${ESP_IDF_PATH}/tools/esptool_py/esptool.py) - message("-- Use the esptool.py: ${ESPTOOL_PY}") - - set(ELF2IMAGE_ARG "") - if(NOT CONFIG_MCUBOOT) - set(ELF2IMAGE_ARG "--ram-only-header") - endif() - - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ESPTOOL_PY} - ARGS --chip ${CONFIG_SOC} elf2image ${ELF2IMAGE_ARG} - --flash_mode dio --flash_freq 40m - --flash_size ${esptoolpy_flashsize}MB - -o ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.bin - ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf) - - endif() - -endif() - -set_property(TARGET bintools PROPERTY disassembly_flag_inline_source) - -# Select the image origin depending on the boot configuration -if(CONFIG_SOC_ESP32S3_APPCPU) - dt_nodelabel(dts_partition_path NODELABEL "slot0_appcpu_partition") -elseif(CONFIG_MCUBOOT) - dt_nodelabel(dts_partition_path NODELABEL "boot_partition") -elseif(CONFIG_ESP_SIMPLE_BOOT) - dt_nodelabel(dts_partition_path NODELABEL "boot_partition") -else() - dt_nodelabel(dts_partition_path NODELABEL "slot0_partition") -endif() - -dt_reg_addr(image_off PATH ${dts_partition_path}) -board_finalize_runner_args(esp32 "--esp-app-address=${image_off}") - -message("-- Image partition ${dts_partition_path}") - -# Look for cross references between bootloader sections -if(CONFIG_MCUBOOT) - - message("check_callgraph using: ${ESP_IDF_PATH}/tools/ci/check_callgraph.py") - set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND - ${PYTHON_EXECUTABLE} ${ESP_IDF_PATH}/tools/ci/check_callgraph.py - ARGS - --rtl-dirs ${CMAKE_BINARY_DIR}/zephyr - --elf-file ${CMAKE_BINARY_DIR}/zephyr/${CONFIG_KERNEL_BIN_NAME}.elf - find-refs - --from-section='.iram0.loader_text' - --to-section='.iram0.text' - --exit-code) -endif() - -if(CONFIG_MCUBOOT) - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mcuboot.ld CACHE INTERNAL "") -elseif(CONFIG_SOC_ESP32S3_APPCPU) - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/default_appcpu.ld CACHE INTERNAL "") -else() - set(SOC_LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/default.ld CACHE INTERNAL "") -endif()