Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 1 | #------------------------------------------------------------------------------- |
Raef Coles | f842636 | 2024-01-15 12:38:10 +0000 | [diff] [blame^] | 2 | # Copyright (c) 2020-2024, 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 | |
Kevin Peng | 386374c | 2021-11-04 14:36:17 +0800 | [diff] [blame] | 10 | set (VALID_ISOLATION_LEVELS 1 2 3) |
Mingyang Sun | c9d2471 | 2020-10-23 15:06:34 +0800 | [diff] [blame] | 11 | |
Kevin Peng | 386374c | 2021-11-04 14:36:17 +0800 | [diff] [blame] | 12 | tfm_invalid_config(NOT TFM_ISOLATION_LEVEL IN_LIST VALID_ISOLATION_LEVELS) |
Roman Mazurak | ff8e507 | 2022-09-14 00:08:48 +0300 | [diff] [blame] | 13 | tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND NOT PLATFORM_HAS_ISOLATION_L3_SUPPORT) |
Kevin Peng | 386374c | 2021-11-04 14:36:17 +0800 | [diff] [blame] | 14 | tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND PSA_FRAMEWORK_HAS_MM_IOVEC) |
Raef Coles | 958aeef | 2020-10-08 12:12:58 +0100 | [diff] [blame] | 15 | |
Chris Brand | 56b4d0c | 2021-12-17 16:15:58 -0800 | [diff] [blame] | 16 | tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND TFM_NS_MANAGE_NSID) |
Mark Horvath | dadc1ea | 2021-03-12 15:39:25 +0100 | [diff] [blame] | 17 | tfm_invalid_config(TFM_PLAT_SPECIFIC_MULTI_CORE_COMM AND NOT TFM_MULTI_CORE_TOPOLOGY) |
Chris Brand | 30106ba | 2022-01-13 13:48:50 -0800 | [diff] [blame] | 18 | tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND CONFIG_TFM_STACK_WATERMARKS) |
| 19 | |
Raef Coles | f842636 | 2024-01-15 12:38:10 +0000 | [diff] [blame^] | 20 | ########################## BL1 ################################################# |
| 21 | |
| 22 | tfm_invalid_config(TFM_BL1_2_IN_OTP AND TFM_BL1_2_IN_FLASH) |
| 23 | |
David Vincze | 0c515de | 2020-11-25 19:02:57 +0100 | [diff] [blame] | 24 | ########################## BL2 ################################################# |
| 25 | |
| 26 | get_property(MCUBOOT_STRATEGY_LIST CACHE MCUBOOT_UPGRADE_STRATEGY PROPERTY STRINGS) |
Jianliang Shen | f57c6a7 | 2023-02-20 14:04:38 +0800 | [diff] [blame] | 27 | tfm_invalid_config(BL2 AND (NOT MCUBOOT_UPGRADE_STRATEGY IN_LIST MCUBOOT_STRATEGY_LIST) AND NOT USE_KCONFIG_TOOL) |
David Vincze | 0c515de | 2020-11-25 19:02:57 +0100 | [diff] [blame] | 28 | |
Tintu Thomas | eab1b47 | 2022-03-21 14:27:58 +0000 | [diff] [blame] | 29 | # Maximum number of MCUBoot images supported by TF-M NV counters and ROTPKs |
Arnold Gabriel Benedict | a6242b7 | 2023-02-01 08:34:06 +0000 | [diff] [blame] | 30 | tfm_invalid_config(MCUBOOT_IMAGE_NUMBER GREATER 9) |
Raef Coles | 91fadb9 | 2021-06-18 09:20:50 +0100 | [diff] [blame] | 31 | |
Roland Mikhel | 00cefb0 | 2023-06-05 14:38:02 +0200 | [diff] [blame] | 32 | tfm_invalid_config(MCUBOOT_SIGNATURE_TYPE STREQUAL "EC-P256" AND NOT MCUBOOT_USE_PSA_CRYPTO) |
| 33 | tfm_invalid_config(MCUBOOT_SIGNATURE_TYPE STREQUAL "EC-P384" AND NOT MCUBOOT_USE_PSA_CRYPTO) |
| 34 | |
David Vincze | 8c95d2a | 2022-01-19 10:11:58 +0100 | [diff] [blame] | 35 | tfm_invalid_config((BL2 AND CONFIG_TFM_BOOT_STORE_MEASUREMENTS AND NOT CONFIG_TFM_BOOT_STORE_ENCODED_MEASUREMENTS) AND NOT MCUBOOT_DATA_SHARING) |
David Vincze | 8608bdb | 2022-02-11 12:04:54 +0100 | [diff] [blame] | 36 | tfm_invalid_config((NOT (TFM_PARTITION_FIRMWARE_UPDATE OR CONFIG_TFM_BOOT_STORE_MEASUREMENTS)) AND MCUBOOT_DATA_SHARING) |
David Vincze | 8c95d2a | 2022-01-19 10:11:58 +0100 | [diff] [blame] | 37 | |
Michel Jaouen | 24c3dd0 | 2021-08-12 15:32:13 +0200 | [diff] [blame] | 38 | get_property(MCUBOOT_ALIGN_VAL_LIST CACHE MCUBOOT_ALIGN_VAL PROPERTY STRINGS) |
Jianliang Shen | f57c6a7 | 2023-02-20 14:04:38 +0800 | [diff] [blame] | 39 | tfm_invalid_config(BL2 AND (NOT MCUBOOT_ALIGN_VAL IN_LIST MCUBOOT_ALIGN_VAL_LIST) AND NOT USE_KCONFIG_TOOL) |
Michel Jaouen | 24c3dd0 | 2021-08-12 15:32:13 +0200 | [diff] [blame] | 40 | |
Bence Balogh | 4a88384 | 2023-07-06 16:56:46 +0200 | [diff] [blame] | 41 | tfm_invalid_config(TFM_DUMMY_PROVISIONING AND MCUBOOT_GENERATE_SIGNING_KEYPAIR) |
Bence Balogh | 04f8e86 | 2023-09-29 08:35:52 +0200 | [diff] [blame] | 42 | |
| 43 | tfm_invalid_config((NOT MCUBOOT_HW_KEY) AND (MCUBOOT_GENERATE_SIGNING_KEYPAIR)) |
| 44 | |
Tamas Ban | 3a7cb3c | 2020-11-25 15:45:04 +0000 | [diff] [blame] | 45 | ####################### Code sharing ########################################### |
| 46 | |
Mark Horvath | c97eb92 | 2022-09-12 11:17:37 +0200 | [diff] [blame] | 47 | set(TFM_CODE_SHARING_PLATFORM_LISTS arm/mps2/an521 arm/musca_b1) # Without crypto hw acceleration |
Tamas Ban | 3a7cb3c | 2020-11-25 15:45:04 +0000 | [diff] [blame] | 48 | tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND NOT TFM_PLATFORM IN_LIST TFM_CODE_SHARING_PLATFORM_LISTS) |
| 49 | tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND CRYPTO_HW_ACCELERATOR) |
Dávid Házi | 302f81d | 2022-10-17 20:42:44 +0200 | [diff] [blame] | 50 | tfm_invalid_config(NOT TFM_CODE_SHARING STREQUAL "OFF" AND NOT C_COMPILER_ID:IAR) |
Summer Qin | 2cd2ab7 | 2020-04-22 14:55:00 +0800 | [diff] [blame] | 51 | |
Raef Coles | 148b947 | 2021-06-18 08:48:17 +0100 | [diff] [blame] | 52 | ########################## Platform ############################################ |
| 53 | |
| 54 | 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] | 55 | tfm_invalid_config(PLATFORM_DEFAULT_NV_COUNTERS AND NOT PLATFORM_DEFAULT_OTP_WRITEABLE) |
Sebastian Bøe | 7ad5d85 | 2022-11-03 13:51:21 +0100 | [diff] [blame] | 56 | tfm_invalid_config(TFM_DUMMY_PROVISIONING AND (PLATFORM_DEFAULT_OTP AND NOT PLATFORM_DEFAULT_OTP_WRITEABLE)) |
Raef Coles | 249aba9 | 2022-06-16 10:20:29 +0100 | [diff] [blame] | 57 | tfm_invalid_config(TFM_NS_NV_COUNTER_AMOUNT GREATER 3) |
Raef Coles | 148b947 | 2021-06-18 08:48:17 +0100 | [diff] [blame] | 58 | |
Maulik Patel | f5069ff | 2023-06-05 16:34:43 +0100 | [diff] [blame] | 59 | ####################### Firmware Update Partition ############################### |
Sherry Zhang | 07b4241 | 2021-01-07 14:19:41 +0800 | [diff] [blame] | 60 | |
David Hu | 79bb75c | 2022-08-02 18:04:51 +0800 | [diff] [blame] | 61 | tfm_invalid_config(NOT PLATFORM_HAS_FIRMWARE_UPDATE_SUPPORT AND TFM_PARTITION_FIRMWARE_UPDATE) |
Sherry Zhang | 07b4241 | 2021-01-07 14:19:41 +0800 | [diff] [blame] | 62 | tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT TFM_PARTITION_PLATFORM) |
| 63 | tfm_invalid_config((MCUBOOT_UPGRADE_STRATEGY STREQUAL "DIRECT_XIP" OR MCUBOOT_UPGRADE_STRATEGY STREQUAL "RAM_LOAD") AND TFM_PARTITION_FIRMWARE_UPDATE) |
| 64 | tfm_invalid_config(TFM_PARTITION_FIRMWARE_UPDATE AND NOT MCUBOOT_DATA_SHARING) |
Tamas Ban | b881bea | 2020-11-04 16:18:36 +0000 | [diff] [blame] | 65 | |
Maulik Patel | f5069ff | 2023-06-05 16:34:43 +0100 | [diff] [blame] | 66 | ####################### Protected Storage Partition ############################### |
Chris Brand | 636ab48 | 2022-05-19 15:55:37 -0700 | [diff] [blame] | 67 | |
Chris Brand | 9ea9ac7 | 2022-06-27 09:01:21 -0700 | [diff] [blame] | 68 | # PS only uses the platform partition when PS_ROLLBACK_PROTECTION is ON, but |
David Vincze | a6f501e | 2021-06-14 10:42:30 +0200 | [diff] [blame] | 69 | # the dependency in the manifest file means the dependency is unconditional |
Chris Brand | 9ea9ac7 | 2022-06-27 09:01:21 -0700 | [diff] [blame] | 70 | tfm_invalid_config(TFM_PARTITION_PROTECTED_STORAGE AND NOT TFM_PARTITION_PLATFORM) |
Chris Brand | 636ab48 | 2022-05-19 15:55:37 -0700 | [diff] [blame] | 71 | |
Tamas Ban | b881bea | 2020-11-04 16:18:36 +0000 | [diff] [blame] | 72 | ########################## FIH ################################################# |
| 73 | |
| 74 | get_property(TFM_FIH_PROFILE_LIST CACHE TFM_FIH_PROFILE PROPERTY STRINGS) |
| 75 | 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] | 76 | |
Chris Brand | 636ab48 | 2022-05-19 15:55:37 -0700 | [diff] [blame] | 77 | ######################## TF-M Profile config check ############################# |
David Hu | 1feb4b1 | 2022-02-23 17:22:07 +0800 | [diff] [blame] | 78 | |
| 79 | tfm_invalid_config(TFM_PROFILE STREQUAL "profile_small" AND CONFIG_TFM_SPM_BACKEND_IPC) |
| 80 | |
Jianliang Shen | d90aa0c | 2023-03-14 15:02:10 +0800 | [diff] [blame] | 81 | ######################## TF-M Arch config check ################################ |
| 82 | |
| 83 | tfm_invalid_config(TFM_PXN_ENABLE AND NOT TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8.1-m.main") |
| 84 | |
Feder Liang | 5519438 | 2021-11-22 16:45:33 +0800 | [diff] [blame] | 85 | ###################### Compiler check for FP support ########################### |
| 86 | |
| 87 | include(config/cp_check.cmake) |
Chris Brand | 9edf081 | 2022-07-05 14:18:42 -0700 | [diff] [blame] | 88 | |
| 89 | ###################### Platform-specific checks ################################ |
| 90 | |
Kevin Peng | 174f836 | 2023-04-07 11:32:16 +0800 | [diff] [blame] | 91 | include(${TARGET_PLATFORM_PATH}/check_config.cmake OPTIONAL) |