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_R8) 72 set(GCC_M_CPU cortex-r8) 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 else() 78 set(GCC_M_CPU ${GCC_M_CPU}+nofp) 79 endif() 80 elseif(CONFIG_CPU_CORTEX_R52) 81 set(GCC_M_CPU cortex-r52) 82 if(CONFIG_FPU AND CONFIG_CPU_HAS_VFP) 83 if(NOT CONFIG_VFP_FEATURE_DOUBLE_PRECISION) 84 set(GCC_M_CPU ${GCC_M_CPU}+nofp.dp) 85 endif() 86 endif() 87 elseif(CONFIG_CPU_CORTEX_A9) 88 set(GCC_M_CPU cortex-a9) 89 else() 90 message(FATAL_ERROR "Expected CONFIG_CPU_CORTEX_x to be defined") 91 endif() 92elseif("${ARCH}" STREQUAL "arm64") 93 if(CONFIG_CPU_CORTEX_A53) 94 set(GCC_M_CPU cortex-a53) 95 elseif(CONFIG_CPU_CORTEX_A55) 96 set(GCC_M_CPU cortex-a55) 97 elseif(CONFIG_CPU_CORTEX_A76) 98 set(GCC_M_CPU cortex-a76) 99 elseif(CONFIG_CPU_CORTEX_A76_A55) 100 set(GCC_M_CPU cortex-a76) 101 set(GCC_M_TUNE cortex-a76.cortex-a55) 102 elseif(CONFIG_CPU_CORTEX_A72) 103 set(GCC_M_CPU cortex-a72) 104 elseif(CONFIG_CPU_CORTEX_R82) 105 set(GCC_M_CPU cortex-r82) 106 endif() 107elseif("${ARCH}" STREQUAL "arc") 108 if(CONFIG_CPU_EM4_FPUS) 109 set(GCC_M_CPU em4_fpus) 110 elseif(CONFIG_CPU_EM4_DMIPS) 111 set(GCC_M_CPU em4_dmips) 112 elseif(CONFIG_CPU_EM4_FPUDA) 113 set(GCC_M_CPU em4_fpuda) 114 elseif(CONFIG_CPU_HS3X) 115 set(GCC_M_CPU archs) 116 elseif(CONFIG_CPU_HS4X) 117 set(GCC_M_CPU hs4x) 118 elseif(CONFIG_CPU_HS5X) 119 set(GCC_M_CPU hs5x) 120 elseif(CONFIG_CPU_HS6X) 121 set(GCC_M_CPU hs6x) 122 elseif(CONFIG_CPU_EM4) 123 set(GCC_M_CPU arcem) 124 elseif(CONFIG_CPU_EM6) 125 set(GCC_M_CPU arcem) 126 endif() 127endif() 128