| #------------------------------------------------------------------------------- |
| # SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors |
| # |
| # SPDX-License-Identifier: BSD-3-Clause |
| # |
| #------------------------------------------------------------------------------- |
| |
| # Check if the MCPU supports security extension (CMSE) |
| set(CMSE_SUPPORTED_MCUS "cortex-m23" "cortex-m33" "cortex-m35p" "cortex-m55" "cortex-m52" "cortex-m85") |
| list(FIND CMSE_SUPPORTED_MCUS ${TFM_SYSTEM_PROCESSOR} ITEM_INDEX) |
| if(NOT ITEM_INDEX EQUAL -1) |
| set(COMPILER_CMSE_FLAG "-mcmse") |
| endif() |
| |
| # ===================== Set toolchain CPU and Arch ============================= |
| set(TFM_SYSTEM_PROCESSOR_FEATURED ${TFM_SYSTEM_PROCESSOR}) |
| |
| set(FEATURE_SUPPORTED_MCUS "cortex-m33" "cortex-m35p" "cortex-m55" "cortex-m52" "cortex-m85") |
| list(FIND FEATURE_SUPPORTED_MCUS ${TFM_SYSTEM_PROCESSOR} ITEM_INDEX) |
| if(NOT ITEM_INDEX EQUAL -1) |
| # Hardware DSP is currently not supported in TF-M |
| string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nodsp") |
| |
| if(NOT CONFIG_TFM_ENABLE_FP) |
| string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nofp") |
| endif() |
| |
| if(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8.1-m.main") |
| # For GNU Arm Embedded Toolchain doesn't emit __ARM_ARCH_8_1M_MAIN__, adding this macro manually. |
| add_compile_definitions(__ARM_ARCH_8_1M_MAIN__=1) |
| |
| if(NOT CONFIG_TFM_ENABLE_MVE) |
| string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nomve") |
| endif() |
| |
| if(NOT CONFIG_TFM_ENABLE_MVE_FP) |
| string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nomve.fp") |
| endif() |
| endif() |
| else() |
| set(NOFP_SUPPORTED_MCUS "cortex-m7" "cortex-m4") |
| list(FIND NOFP_SUPPORTED_MCUS ${TFM_SYSTEM_PROCESSOR} ITEM_INDEX) |
| if(NOT ITEM_INDEX EQUAL -1) |
| if(NOT CONFIG_TFM_ENABLE_FP) |
| string(APPEND TFM_SYSTEM_PROCESSOR_FEATURED "+nofp") |
| endif() |
| endif() |
| endif() |
| add_compile_options(-mcpu=${TFM_SYSTEM_PROCESSOR_FEATURED}) |