blob: ab6292a198c69e5d6b7b85ec1afb07821926a3b9 [file] [log] [blame]
Raef Colesa1f504c2020-07-10 09:58:55 +01001#-------------------------------------------------------------------------------
Raef Coles4fed4632020-12-08 12:56:47 +00002# Copyright (c) 2020-2021, 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 Coles035c83b2020-09-29 10:32:52 +01009# Generate correct filename
Raef Colesa1f504c2020-07-10 09:58:55 +010010string(TOUPPER ${TFM_PLATFORM} TFM_PLATFORM_UPPERCASE)
11string(REGEX REPLACE "-" "_" TFM_PLATFORM_UPPERCASE_UNDERSCORE ${TFM_PLATFORM_UPPERCASE})
Øyvind Rønningstad1dab74b2020-12-01 15:26:39 +010012string(REGEX REPLACE "^(\\.\\.([\\/\\\\]))+" "EXTERNAL\\2" TFM_PLATFORM_UPPERCASE_UNDERSCORE_NO_PARENT_DIR ${TFM_PLATFORM_UPPERCASE_UNDERSCORE})
Raef Colesa1f504c2020-07-10 09:58:55 +010013
14install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/
Raef Colesa198a442020-11-24 11:42:53 +000015 DESTINATION ${TFM_INSTALL_PATH}/outputs/${TFM_PLATFORM_UPPERCASE_UNDERSCORE_NO_PARENT_DIR}
Raef Coles035c83b2020-09-29 10:32:52 +010016)
17
18set(INTERFACE_INC_DIR ${CMAKE_SOURCE_DIR}/interface/include)
19set(INTERFACE_SRC_DIR ${CMAKE_SOURCE_DIR}/interface/src)
Raef Coles4fed4632020-12-08 12:56:47 +000020
21set(INSTALL_INTERFACE_INC_DIR ${TFM_INSTALL_PATH}/interface/include)
22set(INSTALL_INTERFACE_SRC_DIR ${TFM_INSTALL_PATH}/interface/src)
23set(INSTALL_INTERFACE_LIB_DIR ${TFM_INSTALL_PATH}/interface/lib)
Raef Coles035c83b2020-09-29 10:32:52 +010024
David Hub24aead2020-10-17 19:46:19 +080025# export veneer lib
26if (NOT TFM_MULTI_CORE_TOPOLOGY)
Raef Coles25fc1752020-11-24 12:04:42 +000027 install(FILES ${CMAKE_BINARY_DIR}/secure_fw/s_veneers.o
Raef Coles4fed4632020-12-08 12:56:47 +000028 DESTINATION ${INSTALL_INTERFACE_LIB_DIR})
David Hub24aead2020-10-17 19:46:19 +080029endif()
30
Raef Coles035c83b2020-09-29 10:32:52 +010031####################### export headers #########################################
32
33install(FILES ${INTERFACE_INC_DIR}/psa/client.h
34 ${INTERFACE_INC_DIR}/psa/error.h
Raef Coles4fed4632020-12-08 12:56:47 +000035 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010036
37install(FILES ${INTERFACE_INC_DIR}/os_wrapper/common.h
David Hu62f05aa2020-06-12 13:47:24 +080038 ${INTERFACE_INC_DIR}/os_wrapper/msg_queue.h
Raef Coles035c83b2020-09-29 10:32:52 +010039 ${INTERFACE_INC_DIR}/os_wrapper/mutex.h
Charley Chue5fa2d02020-11-13 10:00:24 -080040 ${INTERFACE_INC_DIR}/os_wrapper/semaphore.h
41 ${INTERFACE_INC_DIR}/os_wrapper/thread.h
42 ${INTERFACE_INC_DIR}/os_wrapper/tick.h
Raef Coles4fed4632020-12-08 12:56:47 +000043 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/os_wrapper)
Raef Coles035c83b2020-09-29 10:32:52 +010044
45install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa_manifest/sid.h
Raef Coles4fed4632020-12-08 12:56:47 +000046 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa_manifest)
Raef Coles035c83b2020-09-29 10:32:52 +010047
48install(FILES ${INTERFACE_INC_DIR}/tfm_api.h
49 ${INTERFACE_INC_DIR}/tfm_ns_interface.h
50 ${INTERFACE_INC_DIR}/tfm_ns_svc.h
Raef Coles4fed4632020-12-08 12:56:47 +000051 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010052
53install(FILES ${INTERFACE_INC_DIR}/ext/tz_context.h
Raef Coles4fed4632020-12-08 12:56:47 +000054 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/ext)
Raef Coles035c83b2020-09-29 10:32:52 +010055
56if (TFM_MULTI_CORE_TOPOLOGY)
David Hu04969a42020-06-14 21:25:35 +080057 install(FILES ${INTERFACE_INC_DIR}/multi_core/tfm_multi_core_api.h
58 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox.h
59 ${INTERFACE_INC_DIR}/multi_core/tfm_mailbox.h
David Hu8b526d42020-11-27 20:59:52 +080060 ${INTERFACE_INC_DIR}/multi_core/tfm_mailbox_config.h
Raef Coles4fed4632020-12-08 12:56:47 +000061 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010062else()
63 install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_veneers.h
Raef Coles4fed4632020-12-08 12:56:47 +000064 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/tfm/veneers)
Raef Coles035c83b2020-09-29 10:32:52 +010065endif()
66
67if (TFM_NS_CLIENT_IDENTIFICATION)
68 install(FILES ${INTERFACE_INC_DIR}/tfm_nspm_api.h
69 ${INTERFACE_INC_DIR}/tfm_nspm_svc_handler.h
Raef Coles4fed4632020-12-08 12:56:47 +000070 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010071endif()
72
Mark Horvathba815f72021-02-03 15:30:37 +010073if (TFM_PARTITION_PROTECTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010074 install(FILES ${INTERFACE_INC_DIR}/psa/protected_storage.h
Raef Coles4fed4632020-12-08 12:56:47 +000075 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010076endif()
77
Mark Horvathba815f72021-02-03 15:30:37 +010078if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010079 install(FILES ${INTERFACE_INC_DIR}/psa/internal_trusted_storage.h
80 ${INTERFACE_INC_DIR}/psa/storage_common.h
Raef Coles4fed4632020-12-08 12:56:47 +000081 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010082endif()
83
Mark Horvathba815f72021-02-03 15:30:37 +010084if (TFM_PARTITION_CRYPTO OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010085 install(FILES ${INTERFACE_INC_DIR}/psa/crypto_extra.h
86 ${INTERFACE_INC_DIR}/psa/crypto_compat.h
87 ${INTERFACE_INC_DIR}/psa/crypto.h
88 ${INTERFACE_INC_DIR}/psa/crypto_client_struct.h
89 ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
90 ${INTERFACE_INC_DIR}/psa/crypto_struct.h
91 ${INTERFACE_INC_DIR}/psa/crypto_types.h
92 ${INTERFACE_INC_DIR}/psa/crypto_values.h
Raef Coles4fed4632020-12-08 12:56:47 +000093 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010094 install(FILES ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +000095 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010096endif()
97
Mark Horvathba815f72021-02-03 15:30:37 +010098if (TFM_PARTITION_INITIAL_ATTESTATION OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010099 install(FILES ${INTERFACE_INC_DIR}/psa/initial_attestation.h
Raef Coles4fed4632020-12-08 12:56:47 +0000100 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +0100101endif()
102
103if(TFM_PARTITION_AUDIT_LOG)
104 install(FILES ${INTERFACE_INC_DIR}/psa_audit_api.h
105 ${INTERFACE_INC_DIR}/psa_audit_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +0000106 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100107endif()
108
Mark Horvathba815f72021-02-03 15:30:37 +0100109if(TFM_PARTITION_PLATFORM OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100110 install(FILES ${INTERFACE_INC_DIR}/tfm_platform_api.h
Raef Coles4fed4632020-12-08 12:56:47 +0000111 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100112endif()
113
114####################### export sources #########################################
115
116if (TFM_MULTI_CORE_TOPOLOGY)
David Hu04969a42020-06-14 21:25:35 +0800117 install(FILES ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox.c
118 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_ns_api.c
119 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_psa_ns_api.c
120 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_rtos_api.c
David Hud5973452020-11-26 16:47:46 +0800121 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_thread.c
122 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_test.c
Raef Coles4fed4632020-12-08 12:56:47 +0000123 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100124else()
125 install(FILES ${INTERFACE_SRC_DIR}/tfm_ns_interface.c
Raef Coles4fed4632020-12-08 12:56:47 +0000126 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100127
128 if(TFM_PSA_API)
129 install(FILES ${INTERFACE_SRC_DIR}/tfm_psa_ns_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000130 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100131 endif()
132endif()
133
134if (TFM_NS_CLIENT_IDENTIFICATION)
135 install(FILES ${INTERFACE_SRC_DIR}/tfm_nspm_api.c
136 ${INTERFACE_SRC_DIR}/tfm_nspm_svc_handler.c
Raef Coles4fed4632020-12-08 12:56:47 +0000137 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100138endif()
139
Mark Horvathba815f72021-02-03 15:30:37 +0100140if (TFM_PARTITION_PROTECTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100141 if (TFM_PSA_API)
142 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000143 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100144 else()
145 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000146 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100147 endif()
148endif()
149
Mark Horvathba815f72021-02-03 15:30:37 +0100150if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100151 if (TFM_PSA_API)
152 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000153 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100154 else()
155 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000156 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100157 endif()
158endif()
159
Mark Horvathba815f72021-02-03 15:30:37 +0100160if (TFM_PARTITION_CRYPTO OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100161 if (TFM_PSA_API)
162 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000163 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100164 else()
165 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000166 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100167 endif()
168endif()
169
Mark Horvathba815f72021-02-03 15:30:37 +0100170if (TFM_PARTITION_INITIAL_ATTESTATION OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100171 if (TFM_PSA_API)
172 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000173 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100174 else()
175 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000176 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100177 endif()
178endif()
179
180if(TFM_PARTITION_AUDIT_LOG)
181 install(FILES ${INTERFACE_SRC_DIR}/tfm_audit_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000182 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100183endif()
184
Mark Horvathba815f72021-02-03 15:30:37 +0100185if(TFM_PARTITION_PLATFORM OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100186 if(TFM_PSA_API)
187 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000188 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100189 else()
190 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000191 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100192 endif()
193endif()
Raef Colesb6814d52020-12-08 13:15:40 +0000194
195
196##################### Export image signing information #########################
197
Alamy Liu2c13c032021-01-20 09:55:50 -0800198set(INSTALL_IMAGE_SIGNING_DIR ${TFM_INSTALL_PATH}/image_signing)
Raef Colesb6814d52020-12-08 13:15:40 +0000199
200if(BL2)
201 install(DIRECTORY bl2/ext/mcuboot/scripts
Alamy Liu2c13c032021-01-20 09:55:50 -0800202 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR})
Raef Colesb6814d52020-12-08 13:15:40 +0000203
204 if (MCUBOOT_ENC_IMAGES)
205 install(FILES ${MCUBOOT_KEY_ENC}
Alamy Liu2c13c032021-01-20 09:55:50 -0800206 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000207 endif()
208
209 install(FILES $<TARGET_OBJECTS:signing_layout_s>
Alamy Liu2c13c032021-01-20 09:55:50 -0800210 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000211
212 if(MCUBOOT_IMAGE_NUMBER GREATER 1)
213 install(FILES $<TARGET_OBJECTS:signing_layout_ns>
Alamy Liu2c13c032021-01-20 09:55:50 -0800214 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000215
216 install(FILES ${MCUBOOT_KEY_NS}
Alamy Liu2c13c032021-01-20 09:55:50 -0800217 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000218 else()
219 install(FILES ${MCUBOOT_KEY_S}
Alamy Liu2c13c032021-01-20 09:55:50 -0800220 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000221 endif()
222endif()