Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 1 | #------------------------------------------------------------------------------- |
David Hu | 8b526d4 | 2020-11-27 20:59:52 +0800 | [diff] [blame] | 2 | # Copyright (c) 2020-2021, Arm Limited. All rights reserved. |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 3 | # |
| 4 | # SPDX-License-Identifier: BSD-3-Clause |
| 5 | # |
| 6 | #------------------------------------------------------------------------------- |
| 7 | |
| 8 | function(tfm_invalid_config) |
| 9 | if (${ARGV}) |
| 10 | string (REPLACE ";" " " ARGV_STRING "${ARGV}") |
Minos Galanakis | f216e2b | 2020-11-09 17:12:01 +0000 | [diff] [blame] | 11 | 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 Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 17 | |
| 18 | message(FATAL_ERROR "INVALID CONFIG: ${ARGV_STRING}") |
| 19 | endif() |
| 20 | endfunction() |
| 21 | |
Minos Galanakis | f216e2b | 2020-11-09 17:12:01 +0000 | [diff] [blame] | 22 | tfm_invalid_config(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "7.3.1") |
| 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) |
Mingyang Sun | c9d2471 | 2020-10-23 15:06:34 +0800 | [diff] [blame] | 25 | |
| 26 | tfm_invalid_config(TFM_ISOLATION_LEVEL LESS 1 OR TFM_ISOLATION_LEVEL GREATER 3) |
| 27 | tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND NOT TFM_PLATFORM IN_LIST TFM_L3_PLATFORM_LISTS) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 28 | tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND NOT TFM_PSA_API) |
| 29 | |
| 30 | tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND NOT TFM_PSA_API) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 31 | |
| 32 | tfm_invalid_config(TEST_S AND TEST_PSA_API) |
| 33 | tfm_invalid_config(TEST_NS AND TEST_PSA_API) |
| 34 | |
Sherry Zhang | fb722da | 2021-06-01 17:03:11 +0800 | [diff] [blame] | 35 | tfm_invalid_config(TFM_PARTITION_PROTECTED_STORAGE AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 36 | tfm_invalid_config((TFM_PARTITION_PROTECTED_STORAGE AND PS_ROLLBACK_PROTECTION) AND NOT TFM_PARTITION_PLATFORM) |
Jamie Fox | c8d9293 | 2020-11-12 14:21:23 +0000 | [diff] [blame] | 37 | tfm_invalid_config(PS_ROLLBACK_PROTECTION AND NOT PS_ENCRYPTION) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 38 | |
Øyvind Rønningstad | 7200471 | 2021-03-11 15:55:28 +0100 | [diff] [blame] | 39 | tfm_invalid_config(SUITE STREQUAL "IPC" AND NOT TEST_PSA_API STREQUAL "IPC") |
| 40 | |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 41 | tfm_invalid_config(TEST_PSA_API STREQUAL "IPC" AND NOT TFM_PSA_API) |
| 42 | tfm_invalid_config(TEST_PSA_API STREQUAL "CRYPTO" AND NOT TFM_PARTITION_CRYPTO) |
| 43 | tfm_invalid_config(TEST_PSA_API STREQUAL "INITIAL_ATTESTATION" AND NOT TFM_PARTITION_INITIAL_ATTESTATION) |
| 44 | tfm_invalid_config(TEST_PSA_API STREQUAL "INTERNAL_TRUSTED_STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) |
| 45 | tfm_invalid_config(TEST_PSA_API STREQUAL "PROTECTED_STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE) |
| 46 | tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE) |
| 47 | tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE) |
| 48 | |
| 49 | tfm_invalid_config(CRYPTO_HW_ACCELERATOR_OTP_STATE AND NOT CRYPTO_HW_ACCELERATOR) |
| 50 | tfm_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 Vincze | 0c515de | 2020-11-25 19:02:57 +0100 | [diff] [blame] | 51 | |
| 52 | ########################## BL2 ################################################# |
| 53 | |
| 54 | get_property(MCUBOOT_STRATEGY_LIST CACHE MCUBOOT_UPGRADE_STRATEGY PROPERTY STRINGS) |
| 55 | tfm_invalid_config(NOT MCUBOOT_UPGRADE_STRATEGY IN_LIST MCUBOOT_STRATEGY_LIST) |
| 56 | |
Tamas Ban | 3a7cb3c | 2020-11-25 15:45:04 +0000 | [diff] [blame] | 57 | ####################### Code sharing ########################################### |
| 58 | |
Summer Qin | 2de23d0 | 2021-05-14 13:44:14 +0800 | [diff] [blame] | 59 | 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] | 60 | tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND NOT TFM_PLATFORM IN_LIST TFM_CODE_SHARING_PLATFORM_LISTS) |
| 61 | tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND CRYPTO_HW_ACCELERATOR) |
| 62 | tfm_invalid_config(TFM_CODE_SHARING STREQUAL "OFF" AND TFM_CODE_SHARING_PATH) |
Summer Qin | 2cd2ab7 | 2020-04-22 14:55:00 +0800 | [diff] [blame] | 63 | |
| 64 | ####################### SP META Pointer ######################################## |
| 65 | |
| 66 | tfm_invalid_config(TFM_SP_META_PTR_ENABLE AND NOT TFM_PSA_API) |
Sherry Zhang | 07b4241 | 2021-01-07 14:19:41 +0800 | [diff] [blame] | 67 | |
| 68 | ####################### Firmware Update Parttion ############################### |
| 69 | |
| 70 | tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT TFM_PARTITION_PLATFORM) |
| 71 | tfm_invalid_config((MCUBOOT_UPGRADE_STRATEGY STREQUAL "DIRECT_XIP" OR MCUBOOT_UPGRADE_STRATEGY STREQUAL "RAM_LOAD") AND TFM_PARTITION_FIRMWARE_UPDATE) |
| 72 | tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT MCUBOOT_DATA_SHARING) |
Tamas Ban | b881bea | 2020-11-04 16:18:36 +0000 | [diff] [blame] | 73 | |
| 74 | ########################## FIH ################################################# |
| 75 | |
| 76 | get_property(TFM_FIH_PROFILE_LIST CACHE TFM_FIH_PROFILE PROPERTY STRINGS) |
| 77 | 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] | 78 | |
| 79 | ########################### TF-M audit log ##################################### |
| 80 | |
| 81 | tfm_invalid_config(TFM_PARTITION_AUDIT_LOG AND TFM_PSA_API) |
Kevin Peng | 6a121d0 | 2021-05-10 13:53:58 +0800 | [diff] [blame] | 82 | |
| 83 | ########################### TF-M Tests ##################################### |
| 84 | |
Kevin Peng | 6a121d0 | 2021-05-10 13:53:58 +0800 | [diff] [blame] | 85 | tfm_invalid_config(TFM_ENABLE_SLIH_TEST AND NOT TFM_PSA_API) |
Kevin Peng | 6b5de6f | 2021-07-07 13:47:48 +0800 | [diff] [blame] | 86 | tfm_invalid_config(TFM_ENABLE_FLIH_TEST AND NOT TFM_PSA_API) |
Kevin Peng | fb9f2ce | 2021-05-27 15:13:46 +0800 | [diff] [blame] | 87 | tfm_invalid_config(TFM_ENABLE_SLIH_TEST AND TFM_ENABLE_FLIH_TEST) |
Summer Qin | 9347dc7 | 2021-07-12 18:57:57 +0800 | [diff] [blame] | 88 | |
| 89 | ########################### TF-M crypto ######################################## |
| 90 | |
| 91 | tfm_invalid_config(PLATFORM_DUMMY_NV_SEED AND CRYPTO_HW_ACCELERATOR) |
Summer Qin | 8531f84 | 2021-07-22 18:28:07 +0800 | [diff] [blame] | 92 | tfm_invalid_config(NOT PLATFORM_DUMMY_NV_SEED AND NOT CRYPTO_HW_ACCELERATOR) |