blob: 3da9735316a87c890eddbbf9ef70394560078afd [file] [log] [blame]
Anton Komlev8ab4f042025-06-03 21:13:07 +01001#-------------------------------------------------------------------------------
2# SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8# Check if the MCPU supports security extension (CMSE)
9set(CMSE_SUPPORTED_MCUS "cortex-m23" "cortex-m33" "cortex-m35p" "cortex-m55" "cortex-m52" "cortex-m85")
10list(FIND CMSE_SUPPORTED_MCUS ${TFM_SYSTEM_PROCESSOR} ITEM_INDEX)
11if(NOT ITEM_INDEX EQUAL -1)
12 set(COMPILER_CMSE_FLAG "-mcmse")
13endif()
14
15# ===================== Set toolchain CPU and Arch =============================
16set(TFM_SYSTEM_PROCESSOR_FEATURED ${TFM_SYSTEM_PROCESSOR})
17
18set(FEATURE_SUPPORTED_MCUS "cortex-m33" "cortex-m35p" "cortex-m55" "cortex-m52" "cortex-m85")
19list(FIND FEATURE_SUPPORTED_MCUS ${TFM_SYSTEM_PROCESSOR} ITEM_INDEX)
20if(NOT ITEM_INDEX EQUAL -1)
21 # Hardware DSP is currently not supported in TF-M
22 string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nodsp")
23
24 if(NOT CONFIG_TFM_ENABLE_FP)
25 string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nofp")
26 endif()
27
28 if(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8.1-m.main")
29 # For GNU Arm Embedded Toolchain doesn't emit __ARM_ARCH_8_1M_MAIN__, adding this macro manually.
30 add_compile_definitions(__ARM_ARCH_8_1M_MAIN__=1)
31
32 if(NOT CONFIG_TFM_ENABLE_MVE)
33 string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nomve")
34 endif()
35
36 if(NOT CONFIG_TFM_ENABLE_MVE_FP)
37 string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nomve.fp")
38 endif()
39 endif()
40else()
41 set(NOFP_SUPPORTED_MCUS "cortex-m7" "cortex-m4")
42 list(FIND NOFP_SUPPORTED_MCUS ${TFM_SYSTEM_PROCESSOR} ITEM_INDEX)
43 if(NOT ITEM_INDEX EQUAL -1)
44 if(NOT CONFIG_TFM_ENABLE_FP)
45 string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nofp")
46 endif()
47 endif()
48endif()
49add_compile_options(-mcpu=${TFM_SYSTEM_PROCESSOR_FEATURED})