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_M52) 28 if (CONFIG_ARMV8_1_M_MVEF) 29 set(GCC_M_CPU cortex-m52) 30 elseif(CONFIG_ARMV8_1_M_MVEI) 31 set(GCC_M_CPU cortex-m52+nomve.fp) 32 elseif(CONFIG_ARMV8_M_DSP) 33 set(GCC_M_CPU cortex-m52+nomve) 34 else() 35 set(GCC_M_CPU cortex-m52+nodsp) 36 endif() 37 elseif(CONFIG_CPU_CORTEX_M55) 38 if (CONFIG_ARMV8_1_M_MVEF) 39 set(GCC_M_CPU cortex-m55) 40 elseif(CONFIG_ARMV8_1_M_MVEI) 41 set(GCC_M_CPU cortex-m55+nomve.fp) 42 elseif(CONFIG_ARMV8_M_DSP) 43 set(GCC_M_CPU cortex-m55+nomve) 44 else() 45 set(GCC_M_CPU cortex-m55+nodsp) 46 endif() 47 elseif(CONFIG_CPU_CORTEX_M85) 48 if (CONFIG_ARMV8_1_M_MVEF) 49 set(GCC_M_CPU cortex-m85) 50 elseif(CONFIG_ARMV8_1_M_MVEI) 51 set(GCC_M_CPU cortex-m85+nomve.fp) 52 elseif(CONFIG_ARMV8_M_DSP) 53 set(GCC_M_CPU cortex-m85+nomve) 54 else() 55 set(GCC_M_CPU cortex-m85+nodsp) 56 endif() 57 elseif(CONFIG_CPU_CORTEX_R4) 58 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 59 set(GCC_M_CPU cortex-r4f) 60 else() 61 set(GCC_M_CPU cortex-r4) 62 endif() 63 elseif(CONFIG_CPU_CORTEX_R5) 64 set(GCC_M_CPU cortex-r5) 65 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 66 if(NOT CONFIG_VFP_FEATURE_DOUBLE_PRECISION) 67 set(GCC_M_CPU ${GCC_M_CPU}+nofp.dp) 68 endif() 69 else() 70 set(GCC_M_CPU ${GCC_M_CPU}+nofp) 71 endif() 72 elseif(CONFIG_CPU_CORTEX_R7) 73 set(GCC_M_CPU cortex-r7) 74 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 75 if(NOT CONFIG_VFP_FEATURE_DOUBLE_PRECISION) 76 set(GCC_M_CPU ${GCC_M_CPU}+nofp.dp) 77 endif() 78 else() 79 set(GCC_M_CPU ${GCC_M_CPU}+nofp) 80 endif() 81 elseif(CONFIG_CPU_CORTEX_R8) 82 set(GCC_M_CPU cortex-r8) 83 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 84 if(NOT CONFIG_VFP_FEATURE_DOUBLE_PRECISION) 85 set(GCC_M_CPU ${GCC_M_CPU}+nofp.dp) 86 endif() 87 else() 88 set(GCC_M_CPU ${GCC_M_CPU}+nofp) 89 endif() 90 elseif(CONFIG_CPU_CORTEX_R52) 91 set(GCC_M_CPU cortex-r52) 92 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 93 if(NOT CONFIG_VFP_FEATURE_DOUBLE_PRECISION) 94 set(GCC_M_CPU ${GCC_M_CPU}+nofp.dp) 95 endif() 96 endif() 97 elseif(CONFIG_CPU_CORTEX_A7) 98 set(GCC_M_CPU cortex-a7) 99 elseif(CONFIG_CPU_CORTEX_A9) 100 set(GCC_M_CPU cortex-a9) 101 else() 102 message(FATAL_ERROR "Expected CONFIG_CPU_CORTEX_x to be defined") 103 endif() 104elseif("${ARCH}" STREQUAL "arm64") 105 if(CONFIG_CPU_CORTEX_A53) 106 set(GCC_M_CPU cortex-a53) 107 elseif(CONFIG_CPU_CORTEX_A55) 108 set(GCC_M_CPU cortex-a55) 109 elseif(CONFIG_CPU_CORTEX_A76) 110 set(GCC_M_CPU cortex-a76) 111 elseif(CONFIG_CPU_CORTEX_A76_A55) 112 set(GCC_M_CPU cortex-a76) 113 set(GCC_M_TUNE cortex-a76.cortex-a55) 114 elseif(CONFIG_CPU_CORTEX_A72) 115 set(GCC_M_CPU cortex-a72) 116 elseif(CONFIG_CPU_CORTEX_R82) 117 set(GCC_M_CPU cortex-r82) 118 endif() 119elseif("${ARCH}" STREQUAL "arc") 120 if(CONFIG_CPU_EM4_FPUS) 121 set(GCC_M_CPU em4_fpus) 122 elseif(CONFIG_CPU_EM4_DMIPS) 123 set(GCC_M_CPU em4_dmips) 124 elseif(CONFIG_CPU_EM4_FPUDA) 125 set(GCC_M_CPU em4_fpuda) 126 elseif(CONFIG_CPU_HS3X) 127 set(GCC_M_CPU archs) 128 elseif(CONFIG_CPU_HS4X) 129 set(GCC_M_CPU hs4x) 130 elseif(CONFIG_CPU_HS5X) 131 set(GCC_M_CPU hs5x) 132 elseif(CONFIG_CPU_HS6X) 133 set(GCC_M_CPU hs6x) 134 elseif(CONFIG_CPU_EM4) 135 set(GCC_M_CPU arcem) 136 elseif(CONFIG_CPU_EM6) 137 set(GCC_M_CPU arcem) 138 endif() 139endif() 140