2019-01-30 06:30:32 +01:00
|
|
|
#
|
2020-05-08 15:23:36 +02:00
|
|
|
# Copyright (c) 2019,2020 Linaro Limited
|
2019-01-30 06:30:32 +01:00
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
#
|
|
|
|
|
|
|
|
zephyr_library()
|
|
|
|
zephyr_library_sources(pinmux.c)
|
2019-09-12 14:00:46 +02:00
|
|
|
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
|
2020-05-08 15:23:36 +02:00
|
|
|
|
|
|
|
if (CONFIG_BUILD_WITH_TFM)
|
|
|
|
# Set default image versions if not defined elsewhere
|
|
|
|
if (NOT DEFINED TFM_IMAGE_VERSION_S)
|
|
|
|
set(TFM_IMAGE_VERSION_S 0.0.0+0)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (NOT DEFINED TFM_IMAGE_VERSION_NS)
|
|
|
|
set(TFM_IMAGE_VERSION_NS 0.0.0+0)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(PREPROCESSED_FILE "${CMAKE_BINARY_DIR}/tfm/image_macros_preprocessed")
|
|
|
|
set(TFM_MCUBOOT_DIR "${ZEPHYR_BASE}/../modules/tee/tfm/trusted-firmware-m/bl2/ext/mcuboot")
|
|
|
|
|
|
|
|
# Configure which format (full or hash) to include the public key in
|
|
|
|
# the image manifest
|
|
|
|
set(TFM_PUBLIC_KEY_FORMAT "full")
|
|
|
|
|
|
|
|
# Set srec_cat binary name
|
|
|
|
find_program(SREC_CAT srec_cat)
|
|
|
|
if(${SREC_CAT} STREQUAL SREC_CAT-NOTFOUND)
|
|
|
|
message(FATAL_ERROR "'srec_cat' not found. Please install it, or add it to $PATH.")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
#Create and sign for concatenated binary image should align with the TF-M BL2
|
|
|
|
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands
|
|
|
|
|
|
|
|
#Create concatenated binary image from the two binary file
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${TFM_MCUBOOT_DIR}/scripts/assemble.py
|
|
|
|
ARGS --layout ${PREPROCESSED_FILE}.c
|
|
|
|
-s ${CMAKE_BINARY_DIR}/tfm/install/outputs/MUSCA_B1/tfm_s.bin
|
|
|
|
-n ${CMAKE_BINARY_DIR}/zephyr/zephyr.bin
|
|
|
|
-o ${CMAKE_BINARY_DIR}/tfm_full.bin
|
|
|
|
|
|
|
|
#Sign concatenated binary image with default public key in mcuboot folder
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${TFM_MCUBOOT_DIR}/scripts/imgtool.py
|
|
|
|
ARGS sign
|
|
|
|
--layout ${PREPROCESSED_FILE}.c
|
|
|
|
-k ${CONFIG_TFM_KEY_FILE_S}
|
|
|
|
--public-key-format ${TFM_PUBLIC_KEY_FORMAT}
|
|
|
|
--align 1
|
|
|
|
-v ${TFM_IMAGE_VERSION_S}
|
|
|
|
${ADD_SECURITY_COUNTER}
|
|
|
|
-H 0x400
|
|
|
|
${CMAKE_BINARY_DIR}/tfm_full.bin
|
|
|
|
${CMAKE_BINARY_DIR}/tfm_sign.bin
|
|
|
|
|
|
|
|
#srec_cat to combine images into hex for drag and drop
|
|
|
|
COMMAND ${SREC_CAT}
|
|
|
|
ARGS ${CMAKE_BINARY_DIR}/tfm/bl2/ext/mcuboot/mcuboot.bin -binary
|
|
|
|
-offset 0xA000000
|
|
|
|
${CMAKE_BINARY_DIR}/tfm_sign.bin -binary
|
|
|
|
-offset 0xA020000
|
|
|
|
-o ${CMAKE_BINARY_DIR}/tfm_zephyr.hex -Intel --line-length=44
|
|
|
|
)
|
|
|
|
endif()
|