Skip to content

Commit 2bfea20

Browse files
tejlmandnashif
authored andcommitted
cmake: tf-m: create tfm_api dependency on tfm_s.hex
Incremental builds for TF-M are not picked up by Zephyr linking stage. Code changes to tf-m repository results in a rebuild of TF-M and thus an updated tfm_s.hex (and other files). tfm_s.hex is merged together with the zephyr hex to form a final merged hex file for flashing. This is done as a post-build command, however such as step cannot take extra dependencies. The Zephyr target can have extra dependencies, however that will only ensure the dependency is brought up-to-date when Zephyr re-link, not re-linking Zephyr when the dependency changes. Therefore an object dependency is placed on the interface.c file for Zephyr TF-M interface implementation, which ensures the tfm_api library is brought up-to-date whenever TF-M rebuilds, and this update again ensures the Zephyr itself is re-linked whenever TF-M rebuilds. Signed-off-by: Torsten Rasmussen <[email protected]>
1 parent cea6bf5 commit 2bfea20

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

modules/trusted-firmware-m/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,13 @@ if (CONFIG_BUILD_WITH_TFM)
349349
interface/interface.c
350350
)
351351

352+
# A dependency on tfm_s.hex for zephyr.elf will not cause a Zephyr re-link when
353+
# tfm_s.hex is updated, as the hex is not a direct input on the executable.
354+
# Instead we establish a source file dependency which ensures that tfm_api is
355+
# updated when there are changes in tfm itself, this again will trigger an re-link
356+
# of Zephyr.elf.
357+
set_property(SOURCE interface/interface.c APPEND PROPERTY OBJECT_DEPENDS ${TFM_S_HEX_FILE})
358+
352359
# Non-Secure interface to request system reboot
353360
if (CONFIG_TFM_PARTITION_PLATFORM AND NOT CONFIG_TFM_PARTITION_PLATFORM_CUSTOM_REBOOT)
354361
zephyr_library_sources(src/reboot.c)

0 commit comments

Comments
 (0)