blob: 3cba192e350400f57e9f2dfc8952e2350721725c [file] [log] [blame]
Raef Colesa1f504c2020-07-10 09:58:55 +01001#-------------------------------------------------------------------------------
Kevin Penga2b68022023-01-13 13:54:05 +08002# Copyright (c) 2020-2023, Arm Limited. All rights reserved.
BohdanHunkof871df02023-02-03 14:36:41 +02003# Copyright (c) 2022-2023 Cypress Semiconductor Corporation (an Infineon company)
Chris Brandcae20262022-06-23 12:05:33 -07004# or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
Raef Colesa1f504c2020-07-10 09:58:55 +01005#
6# SPDX-License-Identifier: BSD-3-Clause
7#
8#-------------------------------------------------------------------------------
9
Raef Colesa1f504c2020-07-10 09:58:55 +010010install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/
Anton Komlev968887a2021-12-22 23:24:13 +000011 DESTINATION ${TFM_INSTALL_PATH}/outputs
Raef Coles035c83b2020-09-29 10:32:52 +010012)
13
14set(INTERFACE_INC_DIR ${CMAKE_SOURCE_DIR}/interface/include)
15set(INTERFACE_SRC_DIR ${CMAKE_SOURCE_DIR}/interface/src)
Raef Coles4fed4632020-12-08 12:56:47 +000016
17set(INSTALL_INTERFACE_INC_DIR ${TFM_INSTALL_PATH}/interface/include)
18set(INSTALL_INTERFACE_SRC_DIR ${TFM_INSTALL_PATH}/interface/src)
19set(INSTALL_INTERFACE_LIB_DIR ${TFM_INSTALL_PATH}/interface/lib)
Raef Coles035c83b2020-09-29 10:32:52 +010020
David Hub24aead2020-10-17 19:46:19 +080021# export veneer lib
Chris Brandca819022022-07-19 09:25:15 -070022if (CONFIG_TFM_USE_TRUSTZONE)
Raef Coles25fc1752020-11-24 12:04:42 +000023 install(FILES ${CMAKE_BINARY_DIR}/secure_fw/s_veneers.o
Raef Coles4fed4632020-12-08 12:56:47 +000024 DESTINATION ${INSTALL_INTERFACE_LIB_DIR})
David Hub24aead2020-10-17 19:46:19 +080025endif()
26
Raef Coles035c83b2020-09-29 10:32:52 +010027####################### export headers #########################################
28
29install(FILES ${INTERFACE_INC_DIR}/psa/client.h
30 ${INTERFACE_INC_DIR}/psa/error.h
Raef Coles4fed4632020-12-08 12:56:47 +000031 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010032
Raef Coles035c83b2020-09-29 10:32:52 +010033install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa_manifest/sid.h
Raef Coles4fed4632020-12-08 12:56:47 +000034 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa_manifest)
Raef Coles035c83b2020-09-29 10:32:52 +010035
36install(FILES ${INTERFACE_INC_DIR}/tfm_api.h
37 ${INTERFACE_INC_DIR}/tfm_ns_interface.h
Raef Coles4fed4632020-12-08 12:56:47 +000038 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010039
Sherry Zhnag482b88b2021-08-19 17:51:47 +080040install(FILES ${INTERFACE_INC_DIR}/tfm_ns_client_ext.h
41 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010042
David Hu895cdc32023-01-16 19:19:25 +080043install(FILES ${CMAKE_SOURCE_DIR}/secure_fw/include/config_tfm.h
44 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
David Hu6d1a9b62023-02-22 16:54:04 +080045install(FILES ${CMAKE_SOURCE_DIR}/config/config_base.h
46 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
David Hu895cdc32023-01-16 19:19:25 +080047
Summer Qin566e03b2022-10-08 17:27:42 +080048install(FILES ${INTERFACE_INC_DIR}/tfm_psa_call_pack.h
49 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
50install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa/framework_feature.h
51 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Xinyu Zhang93899d02021-05-11 10:48:52 +080052
Chris Brandfbf3f462022-06-23 15:27:20 -070053if (TFM_PARTITION_NS_AGENT_MAILBOX)
David Hu04969a42020-06-14 21:25:35 +080054 install(FILES ${INTERFACE_INC_DIR}/multi_core/tfm_multi_core_api.h
55 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox.h
56 ${INTERFACE_INC_DIR}/multi_core/tfm_mailbox.h
David Hucb915812021-12-27 14:22:04 +080057 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox_test.h
David Hu186a1292021-09-13 09:05:52 +080058 ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_mailbox_config.h
Raef Coles4fed4632020-12-08 12:56:47 +000059 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Chris Brandfbf3f462022-06-23 15:27:20 -070060endif()
61
Mark Horvathfbc2c502022-09-09 16:16:07 +020062if (TFM_PARTITION_PROTECTED_STORAGE)
Raef Coles035c83b2020-09-29 10:32:52 +010063 install(FILES ${INTERFACE_INC_DIR}/psa/protected_storage.h
Raef Coles4fed4632020-12-08 12:56:47 +000064 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080065 install(FILES ${INTERFACE_INC_DIR}/tfm_ps_defs.h
66 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010067endif()
68
Mark Horvathfbc2c502022-09-09 16:16:07 +020069if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
Raef Coles035c83b2020-09-29 10:32:52 +010070 install(FILES ${INTERFACE_INC_DIR}/psa/internal_trusted_storage.h
71 ${INTERFACE_INC_DIR}/psa/storage_common.h
Raef Coles4fed4632020-12-08 12:56:47 +000072 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080073 install(FILES ${INTERFACE_INC_DIR}/tfm_its_defs.h
74 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010075endif()
76
Mark Horvathfbc2c502022-09-09 16:16:07 +020077if (TFM_PARTITION_CRYPTO)
Raef Coles035c83b2020-09-29 10:32:52 +010078 install(FILES ${INTERFACE_INC_DIR}/psa/crypto_extra.h
79 ${INTERFACE_INC_DIR}/psa/crypto_compat.h
80 ${INTERFACE_INC_DIR}/psa/crypto.h
81 ${INTERFACE_INC_DIR}/psa/crypto_client_struct.h
82 ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
83 ${INTERFACE_INC_DIR}/psa/crypto_struct.h
84 ${INTERFACE_INC_DIR}/psa/crypto_types.h
85 ${INTERFACE_INC_DIR}/psa/crypto_values.h
Raef Coles4fed4632020-12-08 12:56:47 +000086 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010087 install(FILES ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +000088 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010089endif()
90
Mark Horvathfbc2c502022-09-09 16:16:07 +020091if (TFM_PARTITION_INITIAL_ATTESTATION)
Raef Coles035c83b2020-09-29 10:32:52 +010092 install(FILES ${INTERFACE_INC_DIR}/psa/initial_attestation.h
Raef Coles4fed4632020-12-08 12:56:47 +000093 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080094 install(FILES ${INTERFACE_INC_DIR}/tfm_attest_defs.h
David Hu32bd6152022-09-27 13:10:36 +080095 ${INTERFACE_INC_DIR}/tfm_attest_iat_defs.h
David Hudc8cb9e2021-11-10 12:45:59 +080096 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010097endif()
98
Mark Horvathfbc2c502022-09-09 16:16:07 +020099if(TFM_PARTITION_PLATFORM)
Raef Coles035c83b2020-09-29 10:32:52 +0100100 install(FILES ${INTERFACE_INC_DIR}/tfm_platform_api.h
Raef Coles4fed4632020-12-08 12:56:47 +0000101 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100102endif()
103
Sherry Zhang07b42412021-01-07 14:19:41 +0800104if(TFM_PARTITION_FIRMWARE_UPDATE)
105 install(FILES ${INTERFACE_INC_DIR}/psa/update.h
Sherry Zhang73126e52022-02-15 14:27:49 +0800106 ${CMAKE_BINARY_DIR}/generated/interface/include/psa/fwu_config.h
Sherry Zhang07b42412021-01-07 14:19:41 +0800107 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
108 install(FILES ${INTERFACE_INC_DIR}/tfm_fwu_defs.h
109 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
110endif()
111
David Hu32bd6152022-09-27 13:10:36 +0800112if(PLATFORM_DEFAULT_CRYPTO_KEYS)
113 install(DIRECTORY ${INTERFACE_INC_DIR}/crypto_keys
114 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
115endif()
116
Raef Coles035c83b2020-09-29 10:32:52 +0100117####################### export sources #########################################
118
Chris Brandfbf3f462022-06-23 15:27:20 -0700119if (TFM_PARTITION_NS_AGENT_MAILBOX)
David Hu04969a42020-06-14 21:25:35 +0800120 install(FILES ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox.c
121 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_ns_api.c
122 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_psa_ns_api.c
David Hud5973452020-11-26 16:47:46 +0800123 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_thread.c
David Hu32bd6152022-09-27 13:10:36 +0800124 DESTINATION ${INSTALL_INTERFACE_SRC_DIR}/multi_core)
Chris Brandfbf3f462022-06-23 15:27:20 -0700125endif()
David Huf07f3f12021-04-06 18:03:33 +0800126
Chris Brandfbf3f462022-06-23 15:27:20 -0700127if (TFM_PARTITION_NS_AGENT_TZ)
128 install(FILES ${INTERFACE_SRC_DIR}/tfm_psa_ns_api.c
129 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
130endif()
131
BohdanHunkof871df02023-02-03 14:36:41 +0200132 install(DIRECTORY ${INTERFACE_INC_DIR}/os_wrapper
133 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
134
Chris Brandfbf3f462022-06-23 15:27:20 -0700135if (CONFIG_TFM_USE_TRUSTZONE)
BohdanHunkof871df02023-02-03 14:36:41 +0200136 install(DIRECTORY ${INTERFACE_SRC_DIR}/os_wrapper
David Huf07f3f12021-04-06 18:03:33 +0800137 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100138endif()
139
Mark Horvathfbc2c502022-09-09 16:16:07 +0200140if (TFM_PARTITION_PROTECTED_STORAGE)
Summer Qind23bbb32022-10-18 15:30:06 +0800141 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800142 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100143endif()
144
Mark Horvathfbc2c502022-09-09 16:16:07 +0200145if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
Summer Qind23bbb32022-10-18 15:30:06 +0800146 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800147 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100148endif()
149
Mark Horvathfbc2c502022-09-09 16:16:07 +0200150if (TFM_PARTITION_CRYPTO)
Summer Qind23bbb32022-10-18 15:30:06 +0800151 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800152 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100153endif()
154
Mark Horvathfbc2c502022-09-09 16:16:07 +0200155if (TFM_PARTITION_INITIAL_ATTESTATION)
Summer Qind23bbb32022-10-18 15:30:06 +0800156 install(FILES ${INTERFACE_SRC_DIR}/tfm_attest_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800157 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100158endif()
159
Mark Horvathfbc2c502022-09-09 16:16:07 +0200160if(TFM_PARTITION_PLATFORM)
Summer Qind23bbb32022-10-18 15:30:06 +0800161 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800162 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100163endif()
Raef Colesb6814d52020-12-08 13:15:40 +0000164
165
166##################### Export image signing information #########################
167
Alamy Liu2c13c032021-01-20 09:55:50 -0800168set(INSTALL_IMAGE_SIGNING_DIR ${TFM_INSTALL_PATH}/image_signing)
Raef Colesb6814d52020-12-08 13:15:40 +0000169
170if(BL2)
171 install(DIRECTORY bl2/ext/mcuboot/scripts
Alamy Liu2c13c032021-01-20 09:55:50 -0800172 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR})
Raef Colesb6814d52020-12-08 13:15:40 +0000173
174 if (MCUBOOT_ENC_IMAGES)
175 install(FILES ${MCUBOOT_KEY_ENC}
Alamy Liu2c13c032021-01-20 09:55:50 -0800176 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000177 endif()
178
Raef Colesb5be31b2022-11-01 11:42:42 +0000179 if (PLATFORM_DEFAULT_IMAGE_SIGNING)
180 install(FILES $<TARGET_OBJECTS:signing_layout_s>
Alamy Liu2c13c032021-01-20 09:55:50 -0800181 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000182
Raef Colesb5be31b2022-11-01 11:42:42 +0000183 if(MCUBOOT_IMAGE_NUMBER GREATER 1)
184 install(FILES $<TARGET_OBJECTS:signing_layout_ns>
185 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
186 endif()
Raef Colesb6814d52020-12-08 13:15:40 +0000187
188 install(FILES ${MCUBOOT_KEY_NS}
Alamy Liu2c13c032021-01-20 09:55:50 -0800189 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000190 else()
191 install(FILES ${MCUBOOT_KEY_S}
Alamy Liu2c13c032021-01-20 09:55:50 -0800192 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000193 endif()
194endif()
Sherry Zhang07b42412021-01-07 14:19:41 +0800195
196if(TFM_PARTITION_FIRMWARE_UPDATE)
Summer Qind23bbb32022-10-18 15:30:06 +0800197 install(FILES ${INTERFACE_SRC_DIR}/tfm_fwu_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800198 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Sherry Zhang07b42412021-01-07 14:19:41 +0800199endif()
Chris Brand9edf0812022-07-05 14:18:42 -0700200
David Hu895cdc32023-01-16 19:19:25 +0800201###################### Install for NS regression tests #########################
202
203include(${CMAKE_SOURCE_DIR}/lib/ext/tf-m-tests/install.cmake)
204
Chris Brand9edf0812022-07-05 14:18:42 -0700205##################### Platform-specific installation ###########################
206
Kevin Penga2b68022023-01-13 13:54:05 +0800207if (EXISTS ${TARGET_PLATFORM_PATH}/install.cmake)
208 include(${TARGET_PLATFORM_PATH}/install.cmake)
Chris Brand9edf0812022-07-05 14:18:42 -0700209endif()