Skip to content

Commit 4b366f9

Browse files
oyvindronningstadgalak
authored andcommitted
CMakeLists.txt: Add executable files as byproducts and target properties
The target properties can be used elsewhere when the files are manipulated, so that knowledge of the path is not needed. Signed-off-by: Øyvind Rønningstad <[email protected]>
1 parent 5ccd172 commit 4b366f9

File tree

1 file changed

+43
-2
lines changed

1 file changed

+43
-2
lines changed

CMakeLists.txt

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,31 @@ function(trusted_firmware_build)
6868
set(PSA_API_NS_PATH ${TFM_BINARY_DIR}/interface/libpsa_api_ns.a)
6969
set(TFM_GENERATED_INCLUDES ${TFM_BINARY_DIR}/generated/interface/include)
7070

71-
set(BL2_HEX_FILE ${CMAKE_BINARY_DIR}/tfm/bin/bl2.hex)
71+
if(TFM_BL2)
72+
set(BL2_BIN_FILE ${TFM_BINARY_DIR}/bin/bl2.bin)
73+
set(BL2_HEX_FILE ${TFM_BINARY_DIR}/bin/bl2.hex)
74+
endif()
75+
set(TFM_S_BIN_FILE ${TFM_BINARY_DIR}/bin/tfm_s.bin)
76+
set(TFM_S_HEX_FILE ${TFM_BINARY_DIR}/bin/tfm_s.hex)
77+
set(TFM_NS_BIN_FILE ${TFM_BINARY_DIR}/bin/tfm_ns.bin)
78+
set(TFM_NS_HEX_FILE ${TFM_BINARY_DIR}/bin/tfm_ns.hex)
79+
set(TFM_S_SIGNED_BIN_FILE ${TFM_BINARY_DIR}/bin/tfm_s_signed.bin)
80+
set(TFM_NS_SIGNED_BIN_FILE ${TFM_BINARY_DIR}/bin/tfm_ns_signed.bin)
81+
set(TFM_S_NS_SIGNED_BIN_FILE ${TFM_BINARY_DIR}/bin/tfm_s_ns_signed.bin)
7282

7383
set(BUILD_BYPRODUCTS
7484
${VENEERS_FILE}
7585
${PSA_API_NS_PATH}
76-
${BL2_HEX_FILE}
7786
${TFM_GENERATED_INCLUDES}/psa_manifest/sid.h
87+
${BL2_BIN_FILE}
88+
${BL2_HEX_FILE}
89+
${TFM_S_BIN_FILE}
90+
${TFM_S_HEX_FILE}
91+
${TFM_NS_BIN_FILE}
92+
${TFM_NS_HEX_FILE}
93+
${TFM_S_SIGNED_BIN_FILE}
94+
${TFM_NS_SIGNED_BIN_FILE}
95+
${TFM_S_NS_SIGNED_BIN_FILE}
7896
)
7997

8098
# Get the toolchain variant
@@ -115,6 +133,29 @@ function(trusted_firmware_build)
115133
BUILD_BYPRODUCTS ${BUILD_BYPRODUCTS}
116134
)
117135

136+
# Set BL2 (MCUboot) executable file paths as target properties on 'tfm'
137+
# These files are produced by the TFM build system.
138+
if(TFM_BL2)
139+
set_target_properties(tfm PROPERTIES
140+
BL2_BIN_FILE ${BL2_BIN_FILE}
141+
BL2_HEX_FILE ${BL2_HEX_FILE}
142+
)
143+
endif()
144+
145+
# Set TFM S/NS executable file paths as target properties on 'tfm'
146+
# These files are produced by the TFM build system.
147+
# Note that the Nonsecure FW is replaced by the Zephyr app in regular Zephyr
148+
# builds.
149+
set_target_properties(tfm PROPERTIES
150+
TFM_S_BIN_FILE ${TFM_S_BIN_FILE} # TFM Secure FW (unsigned)
151+
TFM_S_HEX_FILE ${TFM_S_HEX_FILE} # TFM Secure FW (unsigned)
152+
TFM_NS_BIN_FILE ${TFM_NS_BIN_FILE} # TFM Nonsecure FW (unsigned)
153+
TFM_NS_HEX_FILE ${TFM_NS_HEX_FILE} # TFM Nonsecure FW (unsigned)
154+
TFM_S_SIGNED_BIN_FILE ${TFM_S_SIGNED_BIN_FILE} # TFM Secure FW (signed)
155+
TFM_NS_SIGNED_BIN_FILE ${TFM_NS_SIGNED_BIN_FILE} # TFM Nonsecure FW (signed)
156+
TFM_S_NS_SIGNED_BIN_FILE ${TFM_S_NS_SIGNED_BIN_FILE} # Merged TFM Secure/Nonsecure FW (signed)
157+
)
158+
118159
add_library(tfm_api
119160
${ZEPHYR_TFM_MODULE_DIR}/tf-m-tests/app/os_wrapper_cmsis_rtos_v2.c
120161
)

0 commit comments

Comments
 (0)