1# SPDX-License-Identifier: Apache-2.0 2 3# Determines what argument to give to -mcpu= based on the 4# KConfig'uration and sets this to GCC_M_CPU 5 6if("${ARCH}" STREQUAL "arm") 7 if (CONFIG_CPU_CORTEX_M0) 8 set(GCC_M_CPU cortex-m0) 9 elseif(CONFIG_CPU_CORTEX_M0PLUS) 10 set(GCC_M_CPU cortex-m0plus) 11 elseif(CONFIG_CPU_CORTEX_M1) 12 set(GCC_M_CPU cortex-m1) 13 elseif(CONFIG_CPU_CORTEX_M3) 14 set(GCC_M_CPU cortex-m3) 15 elseif(CONFIG_CPU_CORTEX_M4) 16 set(GCC_M_CPU cortex-m4) 17 elseif(CONFIG_CPU_CORTEX_M7) 18 set(GCC_M_CPU cortex-m7) 19 elseif(CONFIG_CPU_CORTEX_M23) 20 set(GCC_M_CPU cortex-m23) 21 elseif(CONFIG_CPU_CORTEX_M33) 22 if (CONFIG_ARMV8_M_DSP) 23 set(GCC_M_CPU cortex-m33) 24 else() 25 set(GCC_M_CPU cortex-m33+nodsp) 26 endif() 27 elseif(CONFIG_CPU_CORTEX_M55) 28 if (CONFIG_ARMV8_1_M_MVEF) 29 set(GCC_M_CPU cortex-m55) 30 elseif(CONFIG_ARMV8_1_M_MVEI) 31 set(GCC_M_CPU cortex-m55+nomve.fp) 32 elseif(CONFIG_ARMV8_M_DSP) 33 set(GCC_M_CPU cortex-m55+nomve) 34 else() 35 set(GCC_M_CPU cortex-m55+nodsp) 36 endif() 37 elseif(CONFIG_CPU_CORTEX_M85) 38 if (CONFIG_ARMV8_1_M_MVEF) 39 set(GCC_M_CPU cortex-m85) 40 elseif(CONFIG_ARMV8_1_M_MVEI) 41 set(GCC_M_CPU cortex-m85+nomve.fp) 42 elseif(CONFIG_ARMV8_M_DSP) 43 set(GCC_M_CPU cortex-m85+nomve) 44 else() 45 set(GCC_M_CPU cortex-m85+nodsp) 46 endif() 47 elseif(CONFIG_CPU_CORTEX_R4) 48 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 49 set(GCC_M_CPU cortex-r4f) 50 else() 51 set(GCC_M_CPU cortex-r4) 52 endif() 53 elseif(CONFIG_CPU_CORTEX_R5) 54 set(GCC_M_CPU cortex-r5) 55 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 56 if(NOT CONFIG_VFP_FEATURE_DOUBLE_PRECISION) 57 set(GCC_M_CPU ${GCC_M_CPU}+nofp.dp) 58 endif() 59 else() 60 set(GCC_M_CPU ${GCC_M_CPU}+nofp) 61 endif() 62 elseif(CONFIG_CPU_CORTEX_R7) 63 set(GCC_M_CPU cortex-r7) 64 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 65 if(NOT CONFIG_VFP_FEATURE_DOUBLE_PRECISION) 66 set(GCC_M_CPU ${GCC_M_CPU}+nofp.dp) 67 endif() 68 else() 69 set(GCC_M_CPU ${GCC_M_CPU}+nofp) 70 endif() 71 elseif(CONFIG_CPU_CORTEX_R52) 72 set(GCC_M_CPU cortex-r52) 73 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 74 if(NOT CONFIG_VFP_FEATURE_DOUBLE_PRECISION) 75 set(GCC_M_CPU ${GCC_M_CPU}+nofp.dp) 76 endif() 77 endif() 78 elseif(CONFIG_CPU_CORTEX_A9) 79 set(GCC_M_CPU cortex-a9) 80 else() 81 message(FATAL_ERROR "Expected CONFIG_CPU_CORTEX_x to be defined") 82 endif() 83elseif("${ARCH}" STREQUAL "arm64") 84 if(CONFIG_CPU_CORTEX_A53) 85 set(GCC_M_CPU cortex-a53) 86 elseif(CONFIG_CPU_CORTEX_A55) 87 set(GCC_M_CPU cortex-a55) 88 elseif(CONFIG_CPU_CORTEX_A76) 89 set(GCC_M_CPU cortex-a76) 90 elseif(CONFIG_CPU_CORTEX_A76_A55) 91 set(GCC_M_CPU cortex-a76) 92 set(GCC_M_TUNE cortex-a76.cortex-a55) 93 elseif(CONFIG_CPU_CORTEX_A72) 94 set(GCC_M_CPU cortex-a72) 95 elseif(CONFIG_CPU_CORTEX_R82) 96 set(GCC_M_CPU cortex-r82) 97 endif() 98elseif("${ARCH}" STREQUAL "arc") 99 if(CONFIG_CPU_EM4_FPUS) 100 set(GCC_M_CPU em4_fpus) 101 elseif(CONFIG_CPU_EM4_DMIPS) 102 set(GCC_M_CPU em4_dmips) 103 elseif(CONFIG_CPU_EM4_FPUDA) 104 set(GCC_M_CPU em4_fpuda) 105 elseif(CONFIG_CPU_HS3X) 106 set(GCC_M_CPU archs) 107 elseif(CONFIG_CPU_HS4X) 108 set(GCC_M_CPU hs4x) 109 elseif(CONFIG_CPU_HS5X) 110 set(GCC_M_CPU hs5x) 111 elseif(CONFIG_CPU_HS6X) 112 set(GCC_M_CPU hs6x) 113 elseif(CONFIG_CPU_EM4) 114 set(GCC_M_CPU arcem) 115 elseif(CONFIG_CPU_EM6) 116 set(GCC_M_CPU arcem) 117 endif() 118endif() 119