Skip to content

Commit 9a728d7

Browse files
tejlmandanangl
authored andcommitted
[nrf fromlist] 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. Upstream PR: zephyrproject-rtos/zephyr#75090 Signed-off-by: Torsten Rasmussen <[email protected]>
1 parent f7f52dc commit 9a728d7

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
@@ -321,6 +321,13 @@ if (CONFIG_BUILD_WITH_TFM)
321321
interface/interface.c
322322
)
323323

324+
# A dependency on tfm_s.hex for zephyr.elf will not cause a Zephyr re-link when
325+
# tfm_s.hex is updated, as the hex is not a direct input on the executable.
326+
# Instead we establish a source file dependency which ensures that tfm_api is
327+
# updated when there are changes in tfm itself, this again will trigger an re-link
328+
# of Zephyr.elf.
329+
set_property(SOURCE interface/interface.c APPEND PROPERTY OBJECT_DEPENDS ${TFM_S_HEX_FILE})
330+
324331
# Non-Secure interface to request system reboot
325332
if (CONFIG_TFM_PARTITION_PLATFORM AND NOT CONFIG_TFM_PARTITION_PLATFORM_CUSTOM_REBOOT)
326333
zephyr_library_sources(src/reboot.c)

0 commit comments

Comments
 (0)