blob: 0110c45528081ac2ebe50de041ff216a6cacd3fc [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.
Chris Brand56b4d0c2021-12-17 16:15:58 -08003# Copyright (c) 2021, Cypress Semiconductor Corporation. All rights reserved.
Raef Coles958aeef2020-10-08 12:12:58 +01004#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7#-------------------------------------------------------------------------------
8
9function(tfm_invalid_config)
10 if (${ARGV})
11 string (REPLACE ";" " " ARGV_STRING "${ARGV}")
Minos Galanakisf216e2b2020-11-09 17:12:01 +000012 string (REPLACE "STREQUAL" "=" ARGV_STRING "${ARGV_STRING}")
13 string (REPLACE "GREATER" ">" ARGV_STRING "${ARGV_STRING}")
14 string (REPLACE "LESS" "<" ARGV_STRING "${ARGV_STRING}")
15 string (REPLACE "VERSION_LESS" "<" ARGV_STRING "${ARGV_STRING}")
16 string (REPLACE "EQUAL" "=" ARGV_STRING "${ARGV_STRING}")
17 string (REPLACE "IN_LIST" "in" ARGV_STRING "${ARGV_STRING}")
Raef Coles958aeef2020-10-08 12:12:58 +010018
19 message(FATAL_ERROR "INVALID CONFIG: ${ARGV_STRING}")
20 endif()
21endfunction()
22
Minos Galanakisf216e2b2020-11-09 17:12:01 +000023tfm_invalid_config(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "7.3.1")
24
Anton Komlevc52e2d92021-11-25 17:20:09 +000025# Incorrect behaviour of ArmClang v6.17 was identified during v1.5.0 release. The issue reported.
26tfm_invalid_config(CMAKE_C_COMPILER_ID STREQUAL "ARMClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "6.17.0")
27
Summer Qin2de23d02021-05-14 13:44:14 +080028set (TFM_L3_PLATFORM_LISTS arm/mps2/an521 arm/musca_b1/sse_200 stm/stm32l562e_dk)
Kevin Peng386374c2021-11-04 14:36:17 +080029set (VALID_ISOLATION_LEVELS 1 2 3)
Mingyang Sunc9d24712020-10-23 15:06:34 +080030
Kevin Peng23a583c2021-09-08 22:33:33 +080031tfm_invalid_config(TFM_LIB_MODEL AND TFM_PSA_API)
32tfm_invalid_config(NOT TFM_LIB_MODEL AND NOT TFM_PSA_API)
Kevin Peng386374c2021-11-04 14:36:17 +080033tfm_invalid_config(NOT TFM_ISOLATION_LEVEL IN_LIST VALID_ISOLATION_LEVELS)
Mingyang Sunc9d24712020-10-23 15:06:34 +080034tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND NOT TFM_PLATFORM IN_LIST TFM_L3_PLATFORM_LISTS)
Kevin Peng23a583c2021-09-08 22:33:33 +080035tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND TFM_LIB_MODEL)
Kevin Peng386374c2021-11-04 14:36:17 +080036tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND PSA_FRAMEWORK_HAS_MM_IOVEC)
Kevin Peng710acf52021-11-16 11:42:41 +080037tfm_invalid_config(TFM_LIB_MODEL AND PSA_FRAMEWORK_HAS_MM_IOVEC)
Raef Coles958aeef2020-10-08 12:12:58 +010038
Kevin Peng23a583c2021-09-08 22:33:33 +080039tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND TFM_LIB_MODEL)
Chris Brand56b4d0c2021-12-17 16:15:58 -080040tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND TFM_NS_MANAGE_NSID)
Mark Horvathdadc1ea2021-03-12 15:39:25 +010041tfm_invalid_config(TFM_PLAT_SPECIFIC_MULTI_CORE_COMM AND NOT TFM_MULTI_CORE_TOPOLOGY)
Raef Coles958aeef2020-10-08 12:12:58 +010042
David Hu12f25872021-08-23 14:55:46 +080043tfm_invalid_config((TFM_S_REG_TEST OR TFM_NS_REG_TEST) AND TEST_PSA_API)
Raef Coles958aeef2020-10-08 12:12:58 +010044
Sherry Zhangfb722da2021-06-01 17:03:11 +080045tfm_invalid_config(TFM_PARTITION_PROTECTED_STORAGE AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
Raef Coles958aeef2020-10-08 12:12:58 +010046tfm_invalid_config((TFM_PARTITION_PROTECTED_STORAGE AND PS_ROLLBACK_PROTECTION) AND NOT TFM_PARTITION_PLATFORM)
Jamie Foxc8d92932020-11-12 14:21:23 +000047tfm_invalid_config(PS_ROLLBACK_PROTECTION AND NOT PS_ENCRYPTION)
Raef Coles958aeef2020-10-08 12:12:58 +010048
Øyvind Rønningstad72004712021-03-11 15:55:28 +010049tfm_invalid_config(SUITE STREQUAL "IPC" AND NOT TEST_PSA_API STREQUAL "IPC")
50
Kevin Peng23a583c2021-09-08 22:33:33 +080051tfm_invalid_config(TEST_PSA_API STREQUAL "IPC" AND TFM_LIB_MODEL)
Raef Coles958aeef2020-10-08 12:12:58 +010052tfm_invalid_config(TEST_PSA_API STREQUAL "CRYPTO" AND NOT TFM_PARTITION_CRYPTO)
53tfm_invalid_config(TEST_PSA_API STREQUAL "INITIAL_ATTESTATION" AND NOT TFM_PARTITION_INITIAL_ATTESTATION)
54tfm_invalid_config(TEST_PSA_API STREQUAL "INTERNAL_TRUSTED_STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
55tfm_invalid_config(TEST_PSA_API STREQUAL "PROTECTED_STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE)
56tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
57tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE)
58
Feder Liangd4dbaa92021-09-07 15:34:46 +080059########################## FPU ################################################
60
61tfm_invalid_config(CONFIG_TFM_SPE_FP LESS 0 OR CONFIG_TFM_SPE_FP GREATER 2)
62tfm_invalid_config(NOT CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CONFIG_TFM_SPE_FP GREATER 0)
63tfm_invalid_config((NOT CONFIG_TFM_FP_ARCH) AND (CONFIG_TFM_SPE_FP GREATER 0))
64tfm_invalid_config((NOT TFM_PSA_API) AND (CONFIG_TFM_SPE_FP GREATER 0))
65tfm_invalid_config(CONFIG_TFM_SPE_FP STREQUAL "0" AND CONFIG_TFM_LAZY_STACKING_SPE)
66
David Vincze0c515de2020-11-25 19:02:57 +010067########################## BL2 #################################################
68
69get_property(MCUBOOT_STRATEGY_LIST CACHE MCUBOOT_UPGRADE_STRATEGY PROPERTY STRINGS)
shejia0184440112021-07-07 10:49:09 +080070tfm_invalid_config(BL2 AND (NOT MCUBOOT_UPGRADE_STRATEGY IN_LIST MCUBOOT_STRATEGY_LIST))
David Vincze0c515de2020-11-25 19:02:57 +010071
Raef Coles91fadb92021-06-18 09:20:50 +010072tfm_invalid_config(MCUBOOT_IMAGE_NUMBER GREATER 3)
73
Tamas Ban3a7cb3c2020-11-25 15:45:04 +000074####################### Code sharing ###########################################
75
Summer Qin2de23d02021-05-14 13:44:14 +080076set(TFM_CODE_SHARING_PLATFORM_LISTS arm/mps2/an521 arm/musca_b1/sse_200) # Without crypto hw acceleration
Tamas Ban3a7cb3c2020-11-25 15:45:04 +000077tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND NOT TFM_PLATFORM IN_LIST TFM_CODE_SHARING_PLATFORM_LISTS)
78tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND CRYPTO_HW_ACCELERATOR)
79tfm_invalid_config(TFM_CODE_SHARING STREQUAL "OFF" AND TFM_CODE_SHARING_PATH)
Summer Qin2cd2ab72020-04-22 14:55:00 +080080
Raef Coles148b9472021-06-18 08:48:17 +010081########################## Platform ############################################
82
83tfm_invalid_config(OTP_NV_COUNTERS_RAM_EMULATION AND NOT (PLATFORM_DEFAULT_OTP OR PLATFORM_DEFAULT_NV_COUNTERS))
Michel Jaouend0fd8d92021-10-14 09:22:41 +020084tfm_invalid_config(PLATFORM_DEFAULT_NV_COUNTERS AND NOT PLATFORM_DEFAULT_OTP_WRITEABLE)
85tfm_invalid_config(TFM_DUMMY_PROVISIONING AND NOT PLATFORM_DEFAULT_OTP_WRITEABLE)
Raef Coles148b9472021-06-18 08:48:17 +010086
Summer Qin2cd2ab72020-04-22 14:55:00 +080087####################### SP META Pointer ########################################
88
Kevin Peng23a583c2021-09-08 22:33:33 +080089tfm_invalid_config(TFM_SP_META_PTR_ENABLE AND TFM_LIB_MODEL)
Sherry Zhang07b42412021-01-07 14:19:41 +080090
91####################### Firmware Update Parttion ###############################
92
93tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT TFM_PARTITION_PLATFORM)
94tfm_invalid_config((MCUBOOT_UPGRADE_STRATEGY STREQUAL "DIRECT_XIP" OR MCUBOOT_UPGRADE_STRATEGY STREQUAL "RAM_LOAD") AND TFM_PARTITION_FIRMWARE_UPDATE)
95tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT MCUBOOT_DATA_SHARING)
Tamas Banb881bea2020-11-04 16:18:36 +000096
97########################## FIH #################################################
98
99get_property(TFM_FIH_PROFILE_LIST CACHE TFM_FIH_PROFILE PROPERTY STRINGS)
100tfm_invalid_config(NOT TFM_FIH_PROFILE IN_LIST TFM_FIH_PROFILE_LIST)
David Hue056d182021-03-29 15:14:01 +0800101
102########################### TF-M audit log #####################################
103
Kevin Peng23a583c2021-09-08 22:33:33 +0800104tfm_invalid_config(TFM_PARTITION_AUDIT_LOG AND NOT TFM_LIB_MODEL)
Kevin Peng6a121d02021-05-10 13:53:58 +0800105
Summer Qin9347dc72021-07-12 18:57:57 +0800106########################### TF-M crypto ########################################
107
Raef Coles618fc152021-06-18 09:26:46 +0100108tfm_invalid_config(CRYPTO_NV_SEED AND CRYPTO_HW_ACCELERATOR)
109tfm_invalid_config(NOT CRYPTO_NV_SEED AND NOT CRYPTO_HW_ACCELERATOR)
shejia01bfd37122021-06-03 13:31:51 +0800110
111########################### Test check config ##################################
112
David Hu12f25872021-08-23 14:55:46 +0800113if(TFM_S_REG_TEST OR TFM_NS_REG_TEST)
David Hu3d2121f2021-08-23 18:00:26 +0800114 include(${TFM_TEST_PATH}/config/check_config.cmake)
shejia01bfd37122021-06-03 13:31:51 +0800115endif()