blob: 3da9735316a87c890eddbbf9ef70394560078afd [file] [log] [blame]
#-------------------------------------------------------------------------------
# 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})