Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 1 | #------------------------------------------------------------------------------- |
David Hu | fb4a8b7 | 2022-01-13 16:46:02 +0800 | [diff] [blame] | 2 | # Copyright (c) 2020-2022, Arm Limited. All rights reserved. |
Chris Brand | 636ab48 | 2022-05-19 15:55:37 -0700 | [diff] [blame] | 3 | # Copyright (c) 2021-2022 Cypress Semiconductor Corporation (an Infineon company) |
| 4 | # or an affiliate of Cypress Semiconductor Corporation. All rights reserved. |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 5 | # |
| 6 | # SPDX-License-Identifier: BSD-3-Clause |
| 7 | # |
| 8 | #------------------------------------------------------------------------------- |
| 9 | |
| 10 | function(tfm_invalid_config) |
| 11 | if (${ARGV}) |
| 12 | string (REPLACE ";" " " ARGV_STRING "${ARGV}") |
Minos Galanakis | f216e2b | 2020-11-09 17:12:01 +0000 | [diff] [blame] | 13 | string (REPLACE "STREQUAL" "=" ARGV_STRING "${ARGV_STRING}") |
| 14 | string (REPLACE "GREATER" ">" ARGV_STRING "${ARGV_STRING}") |
| 15 | string (REPLACE "LESS" "<" ARGV_STRING "${ARGV_STRING}") |
| 16 | string (REPLACE "VERSION_LESS" "<" ARGV_STRING "${ARGV_STRING}") |
| 17 | string (REPLACE "EQUAL" "=" ARGV_STRING "${ARGV_STRING}") |
| 18 | string (REPLACE "IN_LIST" "in" ARGV_STRING "${ARGV_STRING}") |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 19 | |
| 20 | message(FATAL_ERROR "INVALID CONFIG: ${ARGV_STRING}") |
| 21 | endif() |
| 22 | endfunction() |
| 23 | |
Summer Qin | 2de23d0 | 2021-05-14 13:44:14 +0800 | [diff] [blame] | 24 | set (TFM_L3_PLATFORM_LISTS arm/mps2/an521 arm/musca_b1/sse_200 stm/stm32l562e_dk) |
Kevin Peng | 386374c | 2021-11-04 14:36:17 +0800 | [diff] [blame] | 25 | set (VALID_ISOLATION_LEVELS 1 2 3) |
Mingyang Sun | c9d2471 | 2020-10-23 15:06:34 +0800 | [diff] [blame] | 26 | |
Chris Brand | cae2026 | 2022-06-23 12:05:33 -0700 | [diff] [blame^] | 27 | tfm_invalid_config(TFM_LIB_MODEL AND NOT TFM_CONFIG_USE_TRUSTZONE) |
Kevin Peng | 23a583c | 2021-09-08 22:33:33 +0800 | [diff] [blame] | 28 | tfm_invalid_config(TFM_LIB_MODEL AND TFM_PSA_API) |
| 29 | tfm_invalid_config(NOT TFM_LIB_MODEL AND NOT TFM_PSA_API) |
Kevin Peng | 386374c | 2021-11-04 14:36:17 +0800 | [diff] [blame] | 30 | tfm_invalid_config(NOT TFM_ISOLATION_LEVEL IN_LIST VALID_ISOLATION_LEVELS) |
Mingyang Sun | c9d2471 | 2020-10-23 15:06:34 +0800 | [diff] [blame] | 31 | tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND NOT TFM_PLATFORM IN_LIST TFM_L3_PLATFORM_LISTS) |
Kevin Peng | 23a583c | 2021-09-08 22:33:33 +0800 | [diff] [blame] | 32 | tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND TFM_LIB_MODEL) |
Kevin Peng | 386374c | 2021-11-04 14:36:17 +0800 | [diff] [blame] | 33 | tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND PSA_FRAMEWORK_HAS_MM_IOVEC) |
Kevin Peng | 710acf5 | 2021-11-16 11:42:41 +0800 | [diff] [blame] | 34 | tfm_invalid_config(TFM_LIB_MODEL AND PSA_FRAMEWORK_HAS_MM_IOVEC) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 35 | |
Kevin Peng | 23a583c | 2021-09-08 22:33:33 +0800 | [diff] [blame] | 36 | tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND TFM_LIB_MODEL) |
Chris Brand | 56b4d0c | 2021-12-17 16:15:58 -0800 | [diff] [blame] | 37 | tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND TFM_NS_MANAGE_NSID) |
Mark Horvath | dadc1ea | 2021-03-12 15:39:25 +0100 | [diff] [blame] | 38 | tfm_invalid_config(TFM_PLAT_SPECIFIC_MULTI_CORE_COMM AND NOT TFM_MULTI_CORE_TOPOLOGY) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 39 | |
Chris Brand | 30106ba | 2022-01-13 13:48:50 -0800 | [diff] [blame] | 40 | tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND CONFIG_TFM_STACK_WATERMARKS) |
| 41 | |
David Hu | 12f2587 | 2021-08-23 14:55:46 +0800 | [diff] [blame] | 42 | tfm_invalid_config((TFM_S_REG_TEST OR TFM_NS_REG_TEST) AND TEST_PSA_API) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 43 | |
Øyvind Rønningstad | 7200471 | 2021-03-11 15:55:28 +0100 | [diff] [blame] | 44 | tfm_invalid_config(SUITE STREQUAL "IPC" AND NOT TEST_PSA_API STREQUAL "IPC") |
| 45 | |
Kevin Peng | 23a583c | 2021-09-08 22:33:33 +0800 | [diff] [blame] | 46 | tfm_invalid_config(TEST_PSA_API STREQUAL "IPC" AND TFM_LIB_MODEL) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 47 | tfm_invalid_config(TEST_PSA_API STREQUAL "CRYPTO" AND NOT TFM_PARTITION_CRYPTO) |
| 48 | tfm_invalid_config(TEST_PSA_API STREQUAL "INITIAL_ATTESTATION" AND NOT TFM_PARTITION_INITIAL_ATTESTATION) |
| 49 | tfm_invalid_config(TEST_PSA_API STREQUAL "INTERNAL_TRUSTED_STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) |
| 50 | tfm_invalid_config(TEST_PSA_API STREQUAL "PROTECTED_STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE) |
| 51 | tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) |
| 52 | tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE) |
| 53 | |
Feder Liang | d4dbaa9 | 2021-09-07 15:34:46 +0800 | [diff] [blame] | 54 | ########################## FPU ################################################ |
| 55 | |
Feder Liang | 5519438 | 2021-11-22 16:45:33 +0800 | [diff] [blame] | 56 | tfm_invalid_config(NOT (CONFIG_TFM_FP STREQUAL "soft" OR CONFIG_TFM_FP STREQUAL "hard")) |
| 57 | tfm_invalid_config(NOT CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CONFIG_TFM_FP STREQUAL "hard") |
| 58 | tfm_invalid_config((NOT CONFIG_TFM_FP_ARCH) AND CONFIG_TFM_FP STREQUAL "hard") |
| 59 | tfm_invalid_config((NOT TFM_PSA_API) AND CONFIG_TFM_FP STREQUAL "hard") |
| 60 | tfm_invalid_config(CONFIG_TFM_FP STREQUAL "soft" AND CONFIG_TFM_LAZY_STACKING) |
Lingkai Dong | 181c00c | 2022-04-25 11:36:34 +0100 | [diff] [blame] | 61 | tfm_invalid_config(CONFIG_TFM_FP STREQUAL "hard" AND NOT CONFIG_TFM_ENABLE_FPU) |
Feder Liang | d4dbaa9 | 2021-09-07 15:34:46 +0800 | [diff] [blame] | 62 | |
David Vincze | 0c515de | 2020-11-25 19:02:57 +0100 | [diff] [blame] | 63 | ########################## BL2 ################################################# |
| 64 | |
| 65 | get_property(MCUBOOT_STRATEGY_LIST CACHE MCUBOOT_UPGRADE_STRATEGY PROPERTY STRINGS) |
shejia01 | 8444011 | 2021-07-07 10:49:09 +0800 | [diff] [blame] | 66 | tfm_invalid_config(BL2 AND (NOT MCUBOOT_UPGRADE_STRATEGY IN_LIST MCUBOOT_STRATEGY_LIST)) |
David Vincze | 0c515de | 2020-11-25 19:02:57 +0100 | [diff] [blame] | 67 | |
Tintu Thomas | eab1b47 | 2022-03-21 14:27:58 +0000 | [diff] [blame] | 68 | # Maximum number of MCUBoot images supported by TF-M NV counters and ROTPKs |
| 69 | tfm_invalid_config(MCUBOOT_IMAGE_NUMBER GREATER 4) |
Raef Coles | 91fadb9 | 2021-06-18 09:20:50 +0100 | [diff] [blame] | 70 | |
Michel Jaouen | 24c3dd0 | 2021-08-12 15:32:13 +0200 | [diff] [blame] | 71 | get_property(MCUBOOT_ALIGN_VAL_LIST CACHE MCUBOOT_ALIGN_VAL PROPERTY STRINGS) |
| 72 | tfm_invalid_config(BL2 AND (NOT MCUBOOT_ALIGN_VAL IN_LIST MCUBOOT_ALIGN_VAL_LIST)) |
| 73 | |
Tamas Ban | 3a7cb3c | 2020-11-25 15:45:04 +0000 | [diff] [blame] | 74 | ####################### Code sharing ########################################### |
| 75 | |
Summer Qin | 2de23d0 | 2021-05-14 13:44:14 +0800 | [diff] [blame] | 76 | set(TFM_CODE_SHARING_PLATFORM_LISTS arm/mps2/an521 arm/musca_b1/sse_200) # Without crypto hw acceleration |
Tamas Ban | 3a7cb3c | 2020-11-25 15:45:04 +0000 | [diff] [blame] | 77 | tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND NOT TFM_PLATFORM IN_LIST TFM_CODE_SHARING_PLATFORM_LISTS) |
| 78 | tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND CRYPTO_HW_ACCELERATOR) |
Summer Qin | 2cd2ab7 | 2020-04-22 14:55:00 +0800 | [diff] [blame] | 79 | |
Raef Coles | 148b947 | 2021-06-18 08:48:17 +0100 | [diff] [blame] | 80 | ########################## Platform ############################################ |
| 81 | |
| 82 | tfm_invalid_config(OTP_NV_COUNTERS_RAM_EMULATION AND NOT (PLATFORM_DEFAULT_OTP OR PLATFORM_DEFAULT_NV_COUNTERS)) |
Michel Jaouen | d0fd8d9 | 2021-10-14 09:22:41 +0200 | [diff] [blame] | 83 | tfm_invalid_config(PLATFORM_DEFAULT_NV_COUNTERS AND NOT PLATFORM_DEFAULT_OTP_WRITEABLE) |
| 84 | tfm_invalid_config(TFM_DUMMY_PROVISIONING AND NOT PLATFORM_DEFAULT_OTP_WRITEABLE) |
Raef Coles | 148b947 | 2021-06-18 08:48:17 +0100 | [diff] [blame] | 85 | |
Sherry Zhang | 07b4241 | 2021-01-07 14:19:41 +0800 | [diff] [blame] | 86 | ####################### Firmware Update Parttion ############################### |
| 87 | |
| 88 | tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT TFM_PARTITION_PLATFORM) |
| 89 | tfm_invalid_config((MCUBOOT_UPGRADE_STRATEGY STREQUAL "DIRECT_XIP" OR MCUBOOT_UPGRADE_STRATEGY STREQUAL "RAM_LOAD") AND TFM_PARTITION_FIRMWARE_UPDATE) |
| 90 | tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT MCUBOOT_DATA_SHARING) |
Tamas Ban | b881bea | 2020-11-04 16:18:36 +0000 | [diff] [blame] | 91 | |
Chris Brand | 636ab48 | 2022-05-19 15:55:37 -0700 | [diff] [blame] | 92 | ####################### Protected Storage Parttion ############################### |
| 93 | |
| 94 | tfm_invalid_config(TFM_PARTITION_PROTECTED_STORAGE AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) |
| 95 | tfm_invalid_config((TFM_PARTITION_PROTECTED_STORAGE AND PS_ROLLBACK_PROTECTION) AND NOT TFM_PARTITION_PLATFORM) |
| 96 | tfm_invalid_config(PS_ROLLBACK_PROTECTION AND NOT PS_ENCRYPTION) |
| 97 | |
Tamas Ban | b881bea | 2020-11-04 16:18:36 +0000 | [diff] [blame] | 98 | ########################## FIH ################################################# |
| 99 | |
| 100 | get_property(TFM_FIH_PROFILE_LIST CACHE TFM_FIH_PROFILE PROPERTY STRINGS) |
| 101 | tfm_invalid_config(NOT TFM_FIH_PROFILE IN_LIST TFM_FIH_PROFILE_LIST) |
David Hu | e056d18 | 2021-03-29 15:14:01 +0800 | [diff] [blame] | 102 | |
| 103 | ########################### TF-M audit log ##################################### |
| 104 | |
Kevin Peng | 23a583c | 2021-09-08 22:33:33 +0800 | [diff] [blame] | 105 | tfm_invalid_config(TFM_PARTITION_AUDIT_LOG AND NOT TFM_LIB_MODEL) |
Kevin Peng | 6a121d0 | 2021-05-10 13:53:58 +0800 | [diff] [blame] | 106 | |
Summer Qin | 9347dc7 | 2021-07-12 18:57:57 +0800 | [diff] [blame] | 107 | ########################### TF-M crypto ######################################## |
| 108 | |
Raef Coles | 618fc15 | 2021-06-18 09:26:46 +0100 | [diff] [blame] | 109 | tfm_invalid_config(CRYPTO_NV_SEED AND CRYPTO_HW_ACCELERATOR) |
| 110 | tfm_invalid_config(NOT CRYPTO_NV_SEED AND NOT CRYPTO_HW_ACCELERATOR) |
shejia01 | bfd3712 | 2021-06-03 13:31:51 +0800 | [diff] [blame] | 111 | |
Chris Brand | 636ab48 | 2022-05-19 15:55:37 -0700 | [diff] [blame] | 112 | ######################## TF-M Profile config check ############################# |
David Hu | 1feb4b1 | 2022-02-23 17:22:07 +0800 | [diff] [blame] | 113 | |
| 114 | tfm_invalid_config(TFM_PROFILE STREQUAL "profile_small" AND CONFIG_TFM_SPM_BACKEND_IPC) |
| 115 | |
shejia01 | bfd3712 | 2021-06-03 13:31:51 +0800 | [diff] [blame] | 116 | ########################### Test check config ################################## |
| 117 | |
David Hu | 12f2587 | 2021-08-23 14:55:46 +0800 | [diff] [blame] | 118 | if(TFM_S_REG_TEST OR TFM_NS_REG_TEST) |
David Hu | 3d2121f | 2021-08-23 18:00:26 +0800 | [diff] [blame] | 119 | include(${TFM_TEST_PATH}/config/check_config.cmake) |
shejia01 | bfd3712 | 2021-06-03 13:31:51 +0800 | [diff] [blame] | 120 | endif() |
Feder Liang | 5519438 | 2021-11-22 16:45:33 +0800 | [diff] [blame] | 121 | |
| 122 | ###################### Compiler check for FP support ########################### |
| 123 | |
| 124 | include(config/cp_check.cmake) |