blob: cd5e77c05be1bb58799469d1829f5d91cb38e1e2 [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.
Charley Chue5fa2d02020-11-13 10:00:24 -08003# Copyright (c) 2020, Cypress Semiconductor Corporation. All rights reserved.
Raef Colesa1f504c2020-07-10 09:58:55 +01004#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7#-------------------------------------------------------------------------------
8
Raef Colesa1f504c2020-07-10 09:58:55 +01009install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/
Anton Komlev968887a2021-12-22 23:24:13 +000010 DESTINATION ${TFM_INSTALL_PATH}/outputs
Raef Coles035c83b2020-09-29 10:32:52 +010011)
12
13set(INTERFACE_INC_DIR ${CMAKE_SOURCE_DIR}/interface/include)
14set(INTERFACE_SRC_DIR ${CMAKE_SOURCE_DIR}/interface/src)
Raef Coles4fed4632020-12-08 12:56:47 +000015
16set(INSTALL_INTERFACE_INC_DIR ${TFM_INSTALL_PATH}/interface/include)
17set(INSTALL_INTERFACE_SRC_DIR ${TFM_INSTALL_PATH}/interface/src)
18set(INSTALL_INTERFACE_LIB_DIR ${TFM_INSTALL_PATH}/interface/lib)
Raef Coles035c83b2020-09-29 10:32:52 +010019
David Hub24aead2020-10-17 19:46:19 +080020# export veneer lib
21if (NOT TFM_MULTI_CORE_TOPOLOGY)
Raef Coles25fc1752020-11-24 12:04:42 +000022 install(FILES ${CMAKE_BINARY_DIR}/secure_fw/s_veneers.o
Raef Coles4fed4632020-12-08 12:56:47 +000023 DESTINATION ${INSTALL_INTERFACE_LIB_DIR})
David Hub24aead2020-10-17 19:46:19 +080024endif()
25
Raef Coles035c83b2020-09-29 10:32:52 +010026####################### export headers #########################################
27
28install(FILES ${INTERFACE_INC_DIR}/psa/client.h
29 ${INTERFACE_INC_DIR}/psa/error.h
Raef Coles4fed4632020-12-08 12:56:47 +000030 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010031
Raef Coles035c83b2020-09-29 10:32:52 +010032install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa_manifest/sid.h
Raef Coles4fed4632020-12-08 12:56:47 +000033 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa_manifest)
Raef Coles035c83b2020-09-29 10:32:52 +010034
35install(FILES ${INTERFACE_INC_DIR}/tfm_api.h
36 ${INTERFACE_INC_DIR}/tfm_ns_interface.h
David Hudc8cb9e2021-11-10 12:45:59 +080037 ${INTERFACE_INC_DIR}/psa_config.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
Xinyu Zhang93899d02021-05-11 10:48:52 +080043if (TFM_PSA_API)
Ken Liu82e3eac2021-10-14 16:19:13 +080044 install(FILES ${INTERFACE_INC_DIR}/tfm_psa_call_pack.h
Xinyu Zhang93899d02021-05-11 10:48:52 +080045 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
46endif()
47
Raef Coles035c83b2020-09-29 10:32:52 +010048if (TFM_MULTI_CORE_TOPOLOGY)
David Hu04969a42020-06-14 21:25:35 +080049 install(FILES ${INTERFACE_INC_DIR}/multi_core/tfm_multi_core_api.h
50 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox.h
51 ${INTERFACE_INC_DIR}/multi_core/tfm_mailbox.h
David Hucb915812021-12-27 14:22:04 +080052 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox_test.h
David Hu186a1292021-09-13 09:05:52 +080053 ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_mailbox_config.h
Raef Coles4fed4632020-12-08 12:56:47 +000054 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Kevin Pengd172b352021-06-23 15:23:58 +080055elseif (NOT TFM_PSA_API)
Raef Coles035c83b2020-09-29 10:32:52 +010056 install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_veneers.h
Raef Coles4fed4632020-12-08 12:56:47 +000057 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/tfm/veneers)
Raef Coles035c83b2020-09-29 10:32:52 +010058endif()
59
Mark Horvathba815f72021-02-03 15:30:37 +010060if (TFM_PARTITION_PROTECTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010061 install(FILES ${INTERFACE_INC_DIR}/psa/protected_storage.h
Raef Coles4fed4632020-12-08 12:56:47 +000062 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080063 install(FILES ${INTERFACE_INC_DIR}/tfm_ps_defs.h
64 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010065endif()
66
Mark Horvathba815f72021-02-03 15:30:37 +010067if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010068 install(FILES ${INTERFACE_INC_DIR}/psa/internal_trusted_storage.h
69 ${INTERFACE_INC_DIR}/psa/storage_common.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_its_defs.h
72 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010073endif()
74
Mark Horvathba815f72021-02-03 15:30:37 +010075if (TFM_PARTITION_CRYPTO OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010076 install(FILES ${INTERFACE_INC_DIR}/psa/crypto_extra.h
77 ${INTERFACE_INC_DIR}/psa/crypto_compat.h
78 ${INTERFACE_INC_DIR}/psa/crypto.h
79 ${INTERFACE_INC_DIR}/psa/crypto_client_struct.h
80 ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
81 ${INTERFACE_INC_DIR}/psa/crypto_struct.h
82 ${INTERFACE_INC_DIR}/psa/crypto_types.h
83 ${INTERFACE_INC_DIR}/psa/crypto_values.h
Raef Coles4fed4632020-12-08 12:56:47 +000084 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010085 install(FILES ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +000086 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010087endif()
88
Mark Horvathba815f72021-02-03 15:30:37 +010089if (TFM_PARTITION_INITIAL_ATTESTATION OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010090 install(FILES ${INTERFACE_INC_DIR}/psa/initial_attestation.h
Raef Coles4fed4632020-12-08 12:56:47 +000091 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080092 install(FILES ${INTERFACE_INC_DIR}/tfm_attest_defs.h
93 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010094endif()
95
96if(TFM_PARTITION_AUDIT_LOG)
97 install(FILES ${INTERFACE_INC_DIR}/psa_audit_api.h
98 ${INTERFACE_INC_DIR}/psa_audit_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +000099 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100100endif()
101
Mark Horvathba815f72021-02-03 15:30:37 +0100102if(TFM_PARTITION_PLATFORM OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100103 install(FILES ${INTERFACE_INC_DIR}/tfm_platform_api.h
Raef Coles4fed4632020-12-08 12:56:47 +0000104 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100105endif()
106
Sherry Zhang07b42412021-01-07 14:19:41 +0800107if(TFM_PARTITION_FIRMWARE_UPDATE)
108 install(FILES ${INTERFACE_INC_DIR}/psa/update.h
Sherry Zhang73126e52022-02-15 14:27:49 +0800109 ${CMAKE_BINARY_DIR}/generated/interface/include/psa/fwu_config.h
Sherry Zhang07b42412021-01-07 14:19:41 +0800110 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
111 install(FILES ${INTERFACE_INC_DIR}/tfm_fwu_defs.h
112 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
113endif()
114
Raef Coles035c83b2020-09-29 10:32:52 +0100115####################### export sources #########################################
116
117if (TFM_MULTI_CORE_TOPOLOGY)
David Hu04969a42020-06-14 21:25:35 +0800118 install(FILES ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox.c
119 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_ns_api.c
120 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_psa_ns_api.c
David Hud5973452020-11-26 16:47:46 +0800121 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_thread.c
Raef Coles4fed4632020-12-08 12:56:47 +0000122 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100123else()
Raef Coles035c83b2020-09-29 10:32:52 +0100124 if(TFM_PSA_API)
125 install(FILES ${INTERFACE_SRC_DIR}/tfm_psa_ns_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000126 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100127 endif()
David Huf07f3f12021-04-06 18:03:33 +0800128
129 install(FILES ${INTERFACE_SRC_DIR}/tfm_ns_interface.c.example
130 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100131endif()
132
Mark Horvathba815f72021-02-03 15:30:37 +0100133if (TFM_PARTITION_PROTECTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100134 if (TFM_PSA_API)
135 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000136 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100137 else()
138 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000139 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100140 endif()
141endif()
142
Mark Horvathba815f72021-02-03 15:30:37 +0100143if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100144 if (TFM_PSA_API)
145 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000146 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100147 else()
148 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000149 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100150 endif()
151endif()
152
Mark Horvathba815f72021-02-03 15:30:37 +0100153if (TFM_PARTITION_CRYPTO OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100154 if (TFM_PSA_API)
155 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000156 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100157 else()
158 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000159 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100160 endif()
161endif()
162
Mark Horvathba815f72021-02-03 15:30:37 +0100163if (TFM_PARTITION_INITIAL_ATTESTATION OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100164 if (TFM_PSA_API)
165 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000166 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100167 else()
168 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000169 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100170 endif()
171endif()
172
173if(TFM_PARTITION_AUDIT_LOG)
174 install(FILES ${INTERFACE_SRC_DIR}/tfm_audit_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000175 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100176endif()
177
Mark Horvathba815f72021-02-03 15:30:37 +0100178if(TFM_PARTITION_PLATFORM OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100179 if(TFM_PSA_API)
180 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000181 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100182 else()
183 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000184 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100185 endif()
186endif()
Raef Colesb6814d52020-12-08 13:15:40 +0000187
188
189##################### Export image signing information #########################
190
Alamy Liu2c13c032021-01-20 09:55:50 -0800191set(INSTALL_IMAGE_SIGNING_DIR ${TFM_INSTALL_PATH}/image_signing)
Raef Colesb6814d52020-12-08 13:15:40 +0000192
193if(BL2)
194 install(DIRECTORY bl2/ext/mcuboot/scripts
Alamy Liu2c13c032021-01-20 09:55:50 -0800195 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR})
Raef Colesb6814d52020-12-08 13:15:40 +0000196
197 if (MCUBOOT_ENC_IMAGES)
198 install(FILES ${MCUBOOT_KEY_ENC}
Alamy Liu2c13c032021-01-20 09:55:50 -0800199 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000200 endif()
201
202 install(FILES $<TARGET_OBJECTS:signing_layout_s>
Alamy Liu2c13c032021-01-20 09:55:50 -0800203 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000204
205 if(MCUBOOT_IMAGE_NUMBER GREATER 1)
206 install(FILES $<TARGET_OBJECTS:signing_layout_ns>
Alamy Liu2c13c032021-01-20 09:55:50 -0800207 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000208
209 install(FILES ${MCUBOOT_KEY_NS}
Alamy Liu2c13c032021-01-20 09:55:50 -0800210 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000211 else()
212 install(FILES ${MCUBOOT_KEY_S}
Alamy Liu2c13c032021-01-20 09:55:50 -0800213 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000214 endif()
215endif()
Sherry Zhang07b42412021-01-07 14:19:41 +0800216
217if(TFM_PARTITION_FIRMWARE_UPDATE)
Sherry Zhang3e7129f2021-01-13 13:42:47 +0800218 if(TFM_PSA_API)
219 install(FILES ${INTERFACE_SRC_DIR}/tfm_firmware_update_ipc_api.c
220 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
221 else()
Sherry Zhang07b42412021-01-07 14:19:41 +0800222 install(FILES ${INTERFACE_SRC_DIR}/tfm_firmware_update_func_api.c
223 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
224 endif()
225endif()