blob: 28f429b3969faee1cab13f322e4f102fe28ae024 [file] [log] [blame]
Anton Komlev4d4cc682023-09-05 16:33:53 +01001#-------------------------------------------------------------------------------
2# Copyright (c) 2023, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7cmake_minimum_required(VERSION 3.15)
8
9#--- SPE artifacts -------------------------------------------------------------
10
11if (NOT DEFINED CONFIG_SPE_PATH OR NOT EXISTS ${CONFIG_SPE_PATH})
12 message(FATAL_ERROR "CONFIG_SPE_PATH = ${CONFIG_SPE_PATH} is not defined or incorrect. Please provide full path to TF-M build artifacts using -DCONFIG_SPE_PATH=")
13endif()
14
15list(APPEND CMAKE_MODULE_PATH ${CONFIG_SPE_PATH}/cmake)
David Hu1ffdcfe2023-10-13 14:52:40 +080016
17# A platform sprecific MCPU and architecture flags for NS side
18include(${CONFIG_SPE_PATH}/platform/cpuarch.cmake)
19
Anton Komlev4d4cc682023-09-05 16:33:53 +010020include(spe_config)
21include(${CONFIG_SPE_PATH}/platform/config.cmake)
22
23set(CPU_ARCH ${PSA_API_TEST_CPU_ARCH})
24set(SUITE ${TEST_PSA_API})
25
26if (NOT "${TEST_PSA_API}" STREQUAL "IPC")
27 set(TARGET tgt_dev_apis_tfm_${PSA_API_TEST_TARGET})
28else()
29 set(TARGET tgt_ff_tfm_${PSA_API_TEST_TARGET})
30endif()
31
32#--- NSPE side project ---------------------------------------------------------
33
David Hue90feae2023-10-14 15:17:44 +080034if (NOT DEFINED TFM_TOOLCHAIN_FILE)
35 set(TFM_TOOLCHAIN_FILE ${CONFIG_SPE_PATH}/cmake/toolchain_ns_GNUARM.cmake)
Anton Komlev4d4cc682023-09-05 16:33:53 +010036endif()
37
38list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../cmake)
39
David Hue90feae2023-10-14 15:17:44 +080040include(${TFM_TOOLCHAIN_FILE})
Anton Komlev4d4cc682023-09-05 16:33:53 +010041project("TF-M PSA Arch tests" LANGUAGES C)
David Hue90feae2023-10-14 15:17:44 +080042tfm_toolchain_reload_compiler()
Anton Komlev4d4cc682023-09-05 16:33:53 +010043
44add_executable(tfm_ns)
45
46add_subdirectory(../app_broker ${CMAKE_BINARY_DIR}/app_broker)
47
48list(APPEND PSA_INCLUDE_PATHS ${CONFIG_SPE_PATH}/interface/include)
49
50if(NOT PSA_INCLUDE_PATHS)
51 set(PSA_INCLUDE_PATHS ${INTERFACE_INC_DIR}/
52 ${CMAKE_BINARY_DIR}/generated/api-tests/platform/manifests/
53 ${CMAKE_BINARY_DIR}/generated/interface/include
54 )
55endif()
56
57set(PLATFORM_PSA_ISOLATION_LEVEL ${TFM_ISOLATION_LEVEL})
58
59add_subdirectory(${PSA_ARCH_TESTS_PATH}/api-tests ${CMAKE_BINARY_DIR}/api-tests)
60
61############################# TFM NS main app ##################################
62
63target_sources(tfm_ns
64 PRIVATE
65 test_app.c
66)
67
68target_link_libraries(tfm_ns
69 PRIVATE
70 tfm_test_broker
71 val_nspe
72 pal_nspe
73 test_combine
74)
75
76set_target_properties(tfm_ns PROPERTIES
77 SUFFIX ".axf"
78 RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
79)
80
David Hu1c1b8162023-10-14 22:31:01 +080081target_add_scatter_file(tfm_ns ${CONFIG_SPE_PATH}/platform/linker_scripts)
82
83target_link_options(tfm_ns
84 PRIVATE
85 $<$<C_COMPILER_ID:GNU>:-Wl,-Map=${CMAKE_BINARY_DIR}/bin/tfm_ns.map>
86)
David Hue90feae2023-10-14 15:17:44 +080087
88add_convert_to_bin_target(tfm_ns)