blob: fb9299184c3bdf1be4ebaacbd040ddd23e5dbfcc [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
Raef Coles035c83b2020-09-29 10:32:52 +010037install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa_manifest/sid.h
Raef Coles4fed4632020-12-08 12:56:47 +000038 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa_manifest)
Raef Coles035c83b2020-09-29 10:32:52 +010039
40install(FILES ${INTERFACE_INC_DIR}/tfm_api.h
41 ${INTERFACE_INC_DIR}/tfm_ns_interface.h
Raef Coles4fed4632020-12-08 12:56:47 +000042 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010043
44install(FILES ${INTERFACE_INC_DIR}/ext/tz_context.h
Raef Coles4fed4632020-12-08 12:56:47 +000045 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/ext)
Raef Coles035c83b2020-09-29 10:32:52 +010046
Xinyu Zhang93899d02021-05-11 10:48:52 +080047if (TFM_PSA_API)
48 install(FILES ${INTERFACE_INC_DIR}/tfm_psa_call_param.h
49 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
50endif()
51
Raef Coles035c83b2020-09-29 10:32:52 +010052if (TFM_MULTI_CORE_TOPOLOGY)
David Hu04969a42020-06-14 21:25:35 +080053 install(FILES ${INTERFACE_INC_DIR}/multi_core/tfm_multi_core_api.h
54 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox.h
55 ${INTERFACE_INC_DIR}/multi_core/tfm_mailbox.h
David Hu186a1292021-09-13 09:05:52 +080056 ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_mailbox_config.h
Raef Coles4fed4632020-12-08 12:56:47 +000057 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Kevin Pengd172b352021-06-23 15:23:58 +080058elseif (NOT TFM_PSA_API)
Raef Coles035c83b2020-09-29 10:32:52 +010059 install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_veneers.h
Raef Coles4fed4632020-12-08 12:56:47 +000060 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/tfm/veneers)
Raef Coles035c83b2020-09-29 10:32:52 +010061endif()
62
Mark Horvathba815f72021-02-03 15:30:37 +010063if (TFM_PARTITION_PROTECTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010064 install(FILES ${INTERFACE_INC_DIR}/psa/protected_storage.h
Raef Coles4fed4632020-12-08 12:56:47 +000065 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010066endif()
67
Mark Horvathba815f72021-02-03 15:30:37 +010068if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010069 install(FILES ${INTERFACE_INC_DIR}/psa/internal_trusted_storage.h
70 ${INTERFACE_INC_DIR}/psa/storage_common.h
Raef Coles4fed4632020-12-08 12:56:47 +000071 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010072endif()
73
Mark Horvathba815f72021-02-03 15:30:37 +010074if (TFM_PARTITION_CRYPTO OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010075 install(FILES ${INTERFACE_INC_DIR}/psa/crypto_extra.h
76 ${INTERFACE_INC_DIR}/psa/crypto_compat.h
77 ${INTERFACE_INC_DIR}/psa/crypto.h
78 ${INTERFACE_INC_DIR}/psa/crypto_client_struct.h
79 ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
80 ${INTERFACE_INC_DIR}/psa/crypto_struct.h
81 ${INTERFACE_INC_DIR}/psa/crypto_types.h
82 ${INTERFACE_INC_DIR}/psa/crypto_values.h
Raef Coles4fed4632020-12-08 12:56:47 +000083 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010084 install(FILES ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +000085 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010086endif()
87
Mark Horvathba815f72021-02-03 15:30:37 +010088if (TFM_PARTITION_INITIAL_ATTESTATION OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +010089 install(FILES ${INTERFACE_INC_DIR}/psa/initial_attestation.h
Raef Coles4fed4632020-12-08 12:56:47 +000090 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010091endif()
92
93if(TFM_PARTITION_AUDIT_LOG)
94 install(FILES ${INTERFACE_INC_DIR}/psa_audit_api.h
95 ${INTERFACE_INC_DIR}/psa_audit_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +000096 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010097endif()
98
Mark Horvathba815f72021-02-03 15:30:37 +010099if(TFM_PARTITION_PLATFORM OR FORWARD_PROT_MSG)
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
106 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
107 install(FILES ${INTERFACE_INC_DIR}/tfm_fwu_defs.h
108 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
109endif()
110
Raef Coles035c83b2020-09-29 10:32:52 +0100111####################### export sources #########################################
112
113if (TFM_MULTI_CORE_TOPOLOGY)
David Hu04969a42020-06-14 21:25:35 +0800114 install(FILES ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox.c
115 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_ns_api.c
116 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_psa_ns_api.c
David Hud5973452020-11-26 16:47:46 +0800117 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_thread.c
Raef Coles4fed4632020-12-08 12:56:47 +0000118 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100119else()
Raef Coles035c83b2020-09-29 10:32:52 +0100120 if(TFM_PSA_API)
121 install(FILES ${INTERFACE_SRC_DIR}/tfm_psa_ns_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000122 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100123 endif()
David Huf07f3f12021-04-06 18:03:33 +0800124
125 install(FILES ${INTERFACE_SRC_DIR}/tfm_ns_interface.c.example
126 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100127endif()
128
Mark Horvathba815f72021-02-03 15:30:37 +0100129if (TFM_PARTITION_PROTECTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100130 if (TFM_PSA_API)
131 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000132 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100133 else()
134 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000135 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100136 endif()
137endif()
138
Mark Horvathba815f72021-02-03 15:30:37 +0100139if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100140 if (TFM_PSA_API)
141 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000142 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100143 else()
144 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000145 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100146 endif()
147endif()
148
Mark Horvathba815f72021-02-03 15:30:37 +0100149if (TFM_PARTITION_CRYPTO OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100150 if (TFM_PSA_API)
151 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_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_crypto_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 Horvathba815f72021-02-03 15:30:37 +0100159if (TFM_PARTITION_INITIAL_ATTESTATION OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100160 if (TFM_PSA_API)
161 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_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_initial_attestation_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
169if(TFM_PARTITION_AUDIT_LOG)
170 install(FILES ${INTERFACE_SRC_DIR}/tfm_audit_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000171 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100172endif()
173
Mark Horvathba815f72021-02-03 15:30:37 +0100174if(TFM_PARTITION_PLATFORM OR FORWARD_PROT_MSG)
Raef Coles035c83b2020-09-29 10:32:52 +0100175 if(TFM_PSA_API)
176 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_ipc_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000177 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100178 else()
179 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_func_api.c
Raef Coles4fed4632020-12-08 12:56:47 +0000180 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100181 endif()
182endif()
Raef Colesb6814d52020-12-08 13:15:40 +0000183
184
185##################### Export image signing information #########################
186
Alamy Liu2c13c032021-01-20 09:55:50 -0800187set(INSTALL_IMAGE_SIGNING_DIR ${TFM_INSTALL_PATH}/image_signing)
Raef Colesb6814d52020-12-08 13:15:40 +0000188
189if(BL2)
190 install(DIRECTORY bl2/ext/mcuboot/scripts
Alamy Liu2c13c032021-01-20 09:55:50 -0800191 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR})
Raef Colesb6814d52020-12-08 13:15:40 +0000192
193 if (MCUBOOT_ENC_IMAGES)
194 install(FILES ${MCUBOOT_KEY_ENC}
Alamy Liu2c13c032021-01-20 09:55:50 -0800195 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000196 endif()
197
198 install(FILES $<TARGET_OBJECTS:signing_layout_s>
Alamy Liu2c13c032021-01-20 09:55:50 -0800199 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000200
201 if(MCUBOOT_IMAGE_NUMBER GREATER 1)
202 install(FILES $<TARGET_OBJECTS:signing_layout_ns>
Alamy Liu2c13c032021-01-20 09:55:50 -0800203 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Colesb6814d52020-12-08 13:15:40 +0000204
205 install(FILES ${MCUBOOT_KEY_NS}
Alamy Liu2c13c032021-01-20 09:55:50 -0800206 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000207 else()
208 install(FILES ${MCUBOOT_KEY_S}
Alamy Liu2c13c032021-01-20 09:55:50 -0800209 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000210 endif()
211endif()
Sherry Zhang07b42412021-01-07 14:19:41 +0800212
213if(TFM_PARTITION_FIRMWARE_UPDATE)
Sherry Zhang3e7129f2021-01-13 13:42:47 +0800214 if(TFM_PSA_API)
215 install(FILES ${INTERFACE_SRC_DIR}/tfm_firmware_update_ipc_api.c
216 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
217 else()
Sherry Zhang07b42412021-01-07 14:19:41 +0800218 install(FILES ${INTERFACE_SRC_DIR}/tfm_firmware_update_func_api.c
219 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
220 endif()
221endif()