blob: ff11f444505a7b86f97e37ac01561318eff575bb [file] [log] [blame]
Raef Coles958aeef2020-10-08 12:12:58 +01001#-------------------------------------------------------------------------------
David Hu8b526d42020-11-27 20:59:52 +08002# Copyright (c) 2020-2021, Arm Limited. All rights reserved.
Raef Coles958aeef2020-10-08 12:12:58 +01003#
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
Summer Qin2de23d02021-05-14 13:44:14 +080024set (TFM_L3_PLATFORM_LISTS arm/mps2/an521 arm/musca_b1/sse_200 stm/stm32l562e_dk)
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)
Raef Coles958aeef2020-10-08 12:12:58 +010031
32tfm_invalid_config(TEST_S AND TEST_PSA_API)
33tfm_invalid_config(TEST_NS AND TEST_PSA_API)
34
Sherry Zhangfb722da2021-06-01 17:03:11 +080035tfm_invalid_config(TFM_PARTITION_PROTECTED_STORAGE AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
Raef Coles958aeef2020-10-08 12:12:58 +010036tfm_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
Øyvind Rønningstad72004712021-03-11 15:55:28 +010039tfm_invalid_config(SUITE STREQUAL "IPC" AND NOT TEST_PSA_API STREQUAL "IPC")
40
Raef Coles958aeef2020-10-08 12:12:58 +010041tfm_invalid_config(TEST_PSA_API STREQUAL "IPC" AND NOT TFM_PSA_API)
42tfm_invalid_config(TEST_PSA_API STREQUAL "CRYPTO" AND NOT TFM_PARTITION_CRYPTO)
43tfm_invalid_config(TEST_PSA_API STREQUAL "INITIAL_ATTESTATION" AND NOT TFM_PARTITION_INITIAL_ATTESTATION)
44tfm_invalid_config(TEST_PSA_API STREQUAL "INTERNAL_TRUSTED_STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
45tfm_invalid_config(TEST_PSA_API STREQUAL "PROTECTED_STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE)
46tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
47tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE)
48
49tfm_invalid_config(CRYPTO_HW_ACCELERATOR_OTP_STATE AND NOT CRYPTO_HW_ACCELERATOR)
50tfm_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 +010051
52########################## BL2 #################################################
53
54get_property(MCUBOOT_STRATEGY_LIST CACHE MCUBOOT_UPGRADE_STRATEGY PROPERTY STRINGS)
55tfm_invalid_config(NOT MCUBOOT_UPGRADE_STRATEGY IN_LIST MCUBOOT_STRATEGY_LIST)
56
Tamas Ban3a7cb3c2020-11-25 15:45:04 +000057####################### Code sharing ###########################################
58
Summer Qin2de23d02021-05-14 13:44:14 +080059set(TFM_CODE_SHARING_PLATFORM_LISTS arm/mps2/an521 arm/musca_b1/sse_200) # Without crypto hw acceleration
Tamas Ban3a7cb3c2020-11-25 15:45:04 +000060tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND NOT TFM_PLATFORM IN_LIST TFM_CODE_SHARING_PLATFORM_LISTS)
61tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND CRYPTO_HW_ACCELERATOR)
62tfm_invalid_config(TFM_CODE_SHARING STREQUAL "OFF" AND TFM_CODE_SHARING_PATH)
Summer Qin2cd2ab72020-04-22 14:55:00 +080063
64####################### SP META Pointer ########################################
65
66tfm_invalid_config(TFM_SP_META_PTR_ENABLE AND NOT TFM_PSA_API)
Sherry Zhang07b42412021-01-07 14:19:41 +080067
68####################### Firmware Update Parttion ###############################
69
70tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT TFM_PARTITION_PLATFORM)
71tfm_invalid_config((MCUBOOT_UPGRADE_STRATEGY STREQUAL "DIRECT_XIP" OR MCUBOOT_UPGRADE_STRATEGY STREQUAL "RAM_LOAD") AND TFM_PARTITION_FIRMWARE_UPDATE)
72tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT MCUBOOT_DATA_SHARING)
Tamas Banb881bea2020-11-04 16:18:36 +000073
74########################## FIH #################################################
75
76get_property(TFM_FIH_PROFILE_LIST CACHE TFM_FIH_PROFILE PROPERTY STRINGS)
77tfm_invalid_config(NOT TFM_FIH_PROFILE IN_LIST TFM_FIH_PROFILE_LIST)
David Hue056d182021-03-29 15:14:01 +080078
79########################### TF-M audit log #####################################
80
81tfm_invalid_config(TFM_PARTITION_AUDIT_LOG AND TFM_PSA_API)
Kevin Peng6a121d02021-05-10 13:53:58 +080082
83########################### TF-M Tests #####################################
84
Kevin Peng6a121d02021-05-10 13:53:58 +080085tfm_invalid_config(TFM_ENABLE_SLIH_TEST AND NOT TFM_PSA_API)
Kevin Peng6b5de6f2021-07-07 13:47:48 +080086tfm_invalid_config(TFM_ENABLE_FLIH_TEST AND NOT TFM_PSA_API)
Kevin Pengfb9f2ce2021-05-27 15:13:46 +080087tfm_invalid_config(TFM_ENABLE_SLIH_TEST AND TFM_ENABLE_FLIH_TEST)
Summer Qin9347dc72021-07-12 18:57:57 +080088
89########################### TF-M crypto ########################################
90
91tfm_invalid_config(PLATFORM_DUMMY_NV_SEED AND CRYPTO_HW_ACCELERATOR)
Summer Qin8531f842021-07-22 18:28:07 +080092tfm_invalid_config(NOT PLATFORM_DUMMY_NV_SEED AND NOT CRYPTO_HW_ACCELERATOR)