blob: 2915ae3f2bbd84ab41c52b6329e255fd18f01122 [file] [log] [blame]
Raef Colesa1f504c2020-07-10 09:58:55 +01001#-------------------------------------------------------------------------------
Sherry Zhang73126e52022-02-15 14:27:49 +08002# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
Chris Brandcae20262022-06-23 12:05:33 -07003# Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company)
4# 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
David Hudc8cb9e2021-11-10 12:45:59 +080038 ${INTERFACE_INC_DIR}/psa_config.h
Raef Coles4fed4632020-12-08 12:56:47 +000039 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010040
Sherry Zhnag482b88b2021-08-19 17:51:47 +080041install(FILES ${INTERFACE_INC_DIR}/tfm_ns_client_ext.h
42 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010043
David Hu32bd6152022-09-27 13:10:36 +080044install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/config_impl.h
45 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
46
Xinyu Zhang93899d02021-05-11 10:48:52 +080047if (TFM_PSA_API)
Ken Liu82e3eac2021-10-14 16:19:13 +080048 install(FILES ${INTERFACE_INC_DIR}/tfm_psa_call_pack.h
Xinyu Zhang93899d02021-05-11 10:48:52 +080049 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
David Hu32bd6152022-09-27 13:10:36 +080050 install(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 +080052endif()
53
Chris Brandfbf3f462022-06-23 15:27:20 -070054if (TFM_PARTITION_NS_AGENT_MAILBOX)
David Hu04969a42020-06-14 21:25:35 +080055 install(FILES ${INTERFACE_INC_DIR}/multi_core/tfm_multi_core_api.h
56 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox.h
57 ${INTERFACE_INC_DIR}/multi_core/tfm_mailbox.h
David Hucb915812021-12-27 14:22:04 +080058 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox_test.h
David Hu186a1292021-09-13 09:05:52 +080059 ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_mailbox_config.h
Raef Coles4fed4632020-12-08 12:56:47 +000060 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Chris Brandfbf3f462022-06-23 15:27:20 -070061endif()
62
63if (NOT TFM_PSA_API)
Raef Coles035c83b2020-09-29 10:32:52 +010064 install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_veneers.h
Raef Coles4fed4632020-12-08 12:56:47 +000065 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/tfm/veneers)
Raef Coles035c83b2020-09-29 10:32:52 +010066endif()
67
Mark Horvathfbc2c502022-09-09 16:16:07 +020068if (TFM_PARTITION_PROTECTED_STORAGE)
Raef Coles035c83b2020-09-29 10:32:52 +010069 install(FILES ${INTERFACE_INC_DIR}/psa/protected_storage.h
Raef Coles4fed4632020-12-08 12:56:47 +000070 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080071 install(FILES ${INTERFACE_INC_DIR}/tfm_ps_defs.h
72 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010073endif()
74
Mark Horvathfbc2c502022-09-09 16:16:07 +020075if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
Raef Coles035c83b2020-09-29 10:32:52 +010076 install(FILES ${INTERFACE_INC_DIR}/psa/internal_trusted_storage.h
77 ${INTERFACE_INC_DIR}/psa/storage_common.h
Raef Coles4fed4632020-12-08 12:56:47 +000078 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080079 install(FILES ${INTERFACE_INC_DIR}/tfm_its_defs.h
80 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010081endif()
82
Mark Horvathfbc2c502022-09-09 16:16:07 +020083if (TFM_PARTITION_CRYPTO)
Raef Coles035c83b2020-09-29 10:32:52 +010084 install(FILES ${INTERFACE_INC_DIR}/psa/crypto_extra.h
85 ${INTERFACE_INC_DIR}/psa/crypto_compat.h
86 ${INTERFACE_INC_DIR}/psa/crypto.h
87 ${INTERFACE_INC_DIR}/psa/crypto_client_struct.h
88 ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
89 ${INTERFACE_INC_DIR}/psa/crypto_struct.h
90 ${INTERFACE_INC_DIR}/psa/crypto_types.h
91 ${INTERFACE_INC_DIR}/psa/crypto_values.h
Raef Coles4fed4632020-12-08 12:56:47 +000092 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010093 install(FILES ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +000094 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010095endif()
96
Mark Horvathfbc2c502022-09-09 16:16:07 +020097if (TFM_PARTITION_INITIAL_ATTESTATION)
Raef Coles035c83b2020-09-29 10:32:52 +010098 install(FILES ${INTERFACE_INC_DIR}/psa/initial_attestation.h
Raef Coles4fed4632020-12-08 12:56:47 +000099 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +0800100 install(FILES ${INTERFACE_INC_DIR}/tfm_attest_defs.h
David Hu32bd6152022-09-27 13:10:36 +0800101 ${INTERFACE_INC_DIR}/tfm_attest_iat_defs.h
David Hudc8cb9e2021-11-10 12:45:59 +0800102 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100103endif()
104
105if(TFM_PARTITION_AUDIT_LOG)
106 install(FILES ${INTERFACE_INC_DIR}/psa_audit_api.h
107 ${INTERFACE_INC_DIR}/psa_audit_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +0000108 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100109endif()
110
Mark Horvathfbc2c502022-09-09 16:16:07 +0200111if(TFM_PARTITION_PLATFORM)
Raef Coles035c83b2020-09-29 10:32:52 +0100112 install(FILES ${INTERFACE_INC_DIR}/tfm_platform_api.h
Raef Coles4fed4632020-12-08 12:56:47 +0000113 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100114endif()
115
Sherry Zhang07b42412021-01-07 14:19:41 +0800116if(TFM_PARTITION_FIRMWARE_UPDATE)
117 install(FILES ${INTERFACE_INC_DIR}/psa/update.h
Sherry Zhang73126e52022-02-15 14:27:49 +0800118 ${CMAKE_BINARY_DIR}/generated/interface/include/psa/fwu_config.h
Sherry Zhang07b42412021-01-07 14:19:41 +0800119 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
120 install(FILES ${INTERFACE_INC_DIR}/tfm_fwu_defs.h
121 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
122endif()
123
David Hu32bd6152022-09-27 13:10:36 +0800124if(PLATFORM_DEFAULT_CRYPTO_KEYS)
125 install(DIRECTORY ${INTERFACE_INC_DIR}/crypto_keys
126 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
127endif()
128
Raef Coles035c83b2020-09-29 10:32:52 +0100129####################### export sources #########################################
130
Chris Brandfbf3f462022-06-23 15:27:20 -0700131if (TFM_PARTITION_NS_AGENT_MAILBOX)
David Hu04969a42020-06-14 21:25:35 +0800132 install(FILES ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox.c
133 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_ns_api.c
134 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_psa_ns_api.c
David Hud5973452020-11-26 16:47:46 +0800135 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_thread.c
David Hu32bd6152022-09-27 13:10:36 +0800136 DESTINATION ${INSTALL_INTERFACE_SRC_DIR}/multi_core)
Chris Brandfbf3f462022-06-23 15:27:20 -0700137endif()
David Huf07f3f12021-04-06 18:03:33 +0800138
Chris Brandfbf3f462022-06-23 15:27:20 -0700139if (TFM_PARTITION_NS_AGENT_TZ)
140 install(FILES ${INTERFACE_SRC_DIR}/tfm_psa_ns_api.c
141 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
142endif()
143
144if (CONFIG_TFM_USE_TRUSTZONE)
David Huf07f3f12021-04-06 18:03:33 +0800145 install(FILES ${INTERFACE_SRC_DIR}/tfm_ns_interface.c.example
146 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100147endif()
148
Mark Horvathfbc2c502022-09-09 16:16:07 +0200149if (TFM_PARTITION_PROTECTED_STORAGE)
Raef Coles035c83b2020-09-29 10:32:52 +0100150 if (TFM_PSA_API)
151 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000152 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100153 else()
154 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000155 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100156 endif()
157endif()
158
Mark Horvathfbc2c502022-09-09 16:16:07 +0200159if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
Raef Coles035c83b2020-09-29 10:32:52 +0100160 if (TFM_PSA_API)
161 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000162 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100163 else()
164 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000165 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100166 endif()
167endif()
168
Mark Horvathfbc2c502022-09-09 16:16:07 +0200169if (TFM_PARTITION_CRYPTO)
Raef Coles035c83b2020-09-29 10:32:52 +0100170 if (TFM_PSA_API)
171 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000172 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100173 else()
174 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000175 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100176 endif()
177endif()
178
Mark Horvathfbc2c502022-09-09 16:16:07 +0200179if (TFM_PARTITION_INITIAL_ATTESTATION)
Raef Coles035c83b2020-09-29 10:32:52 +0100180 if (TFM_PSA_API)
181 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000182 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100183 else()
184 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000185 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100186 endif()
187endif()
188
189if(TFM_PARTITION_AUDIT_LOG)
190 install(FILES ${INTERFACE_SRC_DIR}/tfm_audit_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000191 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100192endif()
193
Mark Horvathfbc2c502022-09-09 16:16:07 +0200194if(TFM_PARTITION_PLATFORM)
Raef Coles035c83b2020-09-29 10:32:52 +0100195 if(TFM_PSA_API)
196 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000197 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100198 else()
199 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000200 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100201 endif()
202endif()
Raef Colesb6814d52020-12-08 13:15:40 +0000203
204
205##################### Export image signing information #########################
206
Alamy Liu2c13c032021-01-20 09:55:50 -0800207set(INSTALL_IMAGE_SIGNING_DIR ${TFM_INSTALL_PATH}/image_signing)
Raef Colesb6814d52020-12-08 13:15:40 +0000208
209if(BL2)
210 install(DIRECTORY bl2/ext/mcuboot/scripts
Alamy Liu2c13c032021-01-20 09:55:50 -0800211 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR})
Raef Colesb6814d52020-12-08 13:15:40 +0000212
213 if (MCUBOOT_ENC_IMAGES)
214 install(FILES ${MCUBOOT_KEY_ENC}
Alamy Liu2c13c032021-01-20 09:55:50 -0800215 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000216 endif()
217
218 install(FILES $<TARGET_OBJECTS:signing_layout_s>
Alamy Liu2c13c032021-01-20 09:55:50 -0800219 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000220
221 if(MCUBOOT_IMAGE_NUMBER GREATER 1)
222 install(FILES $<TARGET_OBJECTS:signing_layout_ns>
Alamy Liu2c13c032021-01-20 09:55:50 -0800223 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000224
225 install(FILES ${MCUBOOT_KEY_NS}
Alamy Liu2c13c032021-01-20 09:55:50 -0800226 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000227 else()
228 install(FILES ${MCUBOOT_KEY_S}
Alamy Liu2c13c032021-01-20 09:55:50 -0800229 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000230 endif()
231endif()
Sherry Zhang07b42412021-01-07 14:19:41 +0800232
233if(TFM_PARTITION_FIRMWARE_UPDATE)
Sherry Zhang3e7129f2021-01-13 13:42:47 +0800234 if(TFM_PSA_API)
235 install(FILES ${INTERFACE_SRC_DIR}/tfm_firmware_update_ipc_api.c
236 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
237 else()
Sherry Zhang07b42412021-01-07 14:19:41 +0800238 install(FILES ${INTERFACE_SRC_DIR}/tfm_firmware_update_func_api.c
239 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
240 endif()
241endif()
Chris Brand9edf0812022-07-05 14:18:42 -0700242
243##################### Platform-specific installation ###########################
244
245if (EXISTS ${CMAKE_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/install.cmake)
246 include(platform/ext/target/${TFM_PLATFORM}/install.cmake)
247endif()