blob: c2fcf2749cb2fc75df17809c5cac39f2599c0530 [file] [log] [blame]
Raef Coles958aeef2020-10-08 12:12:58 +01001#-------------------------------------------------------------------------------
2# Copyright (c) 2020, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8function(tfm_invalid_config)
9 if (${ARGV})
10 string (REPLACE ";" " " ARGV_STRING "${ARGV}")
Minos Galanakisf216e2b2020-11-09 17:12:01 +000011 string (REPLACE "STREQUAL" "=" ARGV_STRING "${ARGV_STRING}")
12 string (REPLACE "GREATER" ">" ARGV_STRING "${ARGV_STRING}")
13 string (REPLACE "LESS" "<" ARGV_STRING "${ARGV_STRING}")
14 string (REPLACE "VERSION_LESS" "<" ARGV_STRING "${ARGV_STRING}")
15 string (REPLACE "EQUAL" "=" ARGV_STRING "${ARGV_STRING}")
16 string (REPLACE "IN_LIST" "in" ARGV_STRING "${ARGV_STRING}")
Raef Coles958aeef2020-10-08 12:12:58 +010017
18 message(FATAL_ERROR "INVALID CONFIG: ${ARGV_STRING}")
19 endif()
20endfunction()
21
Minos Galanakisf216e2b2020-11-09 17:12:01 +000022tfm_invalid_config(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "7.3.1")
23
Gabor Abonyi944e9c22020-10-01 16:18:41 +020024set (TFM_L3_PLATFORM_LISTS mps2/an521 musca_b1/sse_200)
Mingyang Sunc9d24712020-10-23 15:06:34 +080025
26tfm_invalid_config(TFM_ISOLATION_LEVEL LESS 1 OR TFM_ISOLATION_LEVEL GREATER 3)
27tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND NOT TFM_PLATFORM IN_LIST TFM_L3_PLATFORM_LISTS)
Raef Coles958aeef2020-10-08 12:12:58 +010028tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND NOT TFM_PSA_API)
29
30tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND NOT TFM_PSA_API)
31tfm_invalid_config(TFM_MULTI_CORE_MULTI_CLIENT_CALL AND NOT TFM_MULTI_CORE_TOPOLOGY)
32
33tfm_invalid_config(TEST_S AND TEST_PSA_API)
34tfm_invalid_config(TEST_NS AND TEST_PSA_API)
35
36tfm_invalid_config((TFM_PARTITION_PROTECTED_STORAGE AND PS_ROLLBACK_PROTECTION) AND NOT TFM_PARTITION_PLATFORM)
Jamie Foxc8d92932020-11-12 14:21:23 +000037tfm_invalid_config(PS_ROLLBACK_PROTECTION AND NOT PS_ENCRYPTION)
Raef Coles958aeef2020-10-08 12:12:58 +010038
39tfm_invalid_config(TEST_PSA_API STREQUAL "IPC" AND NOT TFM_PSA_API)
40tfm_invalid_config(TEST_PSA_API STREQUAL "CRYPTO" AND NOT TFM_PARTITION_CRYPTO)
41tfm_invalid_config(TEST_PSA_API STREQUAL "INITIAL_ATTESTATION" AND NOT TFM_PARTITION_INITIAL_ATTESTATION)
42tfm_invalid_config(TEST_PSA_API STREQUAL "INTERNAL_TRUSTED_STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
43tfm_invalid_config(TEST_PSA_API STREQUAL "PROTECTED_STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE)
44tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
45tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE)
46
47tfm_invalid_config(CRYPTO_HW_ACCELERATOR_OTP_STATE AND NOT CRYPTO_HW_ACCELERATOR)
48tfm_invalid_config(CRYPTO_HW_ACCELERATOR_OTP_STATE AND NOT (CRYPTO_HW_ACCELERATOR_OTP_STATE STREQUAL "ENABLED" OR CRYPTO_HW_ACCELERATOR_OTP_STATE STREQUAL "PROVISIONING"))
David Vincze0c515de2020-11-25 19:02:57 +010049
50########################## BL2 #################################################
51
52get_property(MCUBOOT_STRATEGY_LIST CACHE MCUBOOT_UPGRADE_STRATEGY PROPERTY STRINGS)
53tfm_invalid_config(NOT MCUBOOT_UPGRADE_STRATEGY IN_LIST MCUBOOT_STRATEGY_LIST)
54
Tamas Ban3a7cb3c2020-11-25 15:45:04 +000055####################### Code sharing ###########################################
56
57set(TFM_CODE_SHARING_PLATFORM_LISTS mps2/an521 musca_b1/sse_200) # Without crypto hw acceleration
58tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND NOT TFM_PLATFORM IN_LIST TFM_CODE_SHARING_PLATFORM_LISTS)
59tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND CRYPTO_HW_ACCELERATOR)
60tfm_invalid_config(TFM_CODE_SHARING STREQUAL "OFF" AND TFM_CODE_SHARING_PATH)