1# ARM Architecture 2 3# 4# ARM has 32-bit(Aarch32) and 64-bit(Aarch64) implementations 5# 6config ARCH_ARM_AARCH32 7 bool 8 select ARCH_ARM 9 help 10 32-bit ARM architecture implementations, Except the M-profile. 11 It is not limited to ARMv7-A but also ARMv7-R, ARMv8-A 32-bit and etc. 12 13# 14# Architecture Versions 15# 16config ARCH_ARM_V7M 17 bool 18 19config ARCH_ARM_V8M 20 bool 21 22config ARCH_ARM_V5TE 23 bool 24 25config ARCH_ARM_VER 26 string 27 default "armv7-m" if ARCH_ARM_V7M 28 default "armv8-m" if ARCH_ARM_V8M 29 default "armv5te" if ARCH_ARM_V5TE 30 31# 32# VFP Hardware 33# 34choice 35 prompt "Choose FPU type" 36 depends on !ARCH_FPU_DISABLE 37 38 choice 39 prompt "Choose FPU version" 40 default ARCH_FPU_VFP_V4 41 depends on !ARCH_FPU_DISABLE 42 help 43 Choose FPU version. 44 45 config ARCH_FPU_VFP_V3 46 bool "VFP_V3" 47 help 48 An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles. 49 VFPv3U is a variant of VFPv3 that supports the trapping of floating-point exceptions to support code. 50 51 config ARCH_FPU_VFP_V4 52 bool "VFP_V4" 53 help 54 An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles. 55 VFPv4U is a variant of VFPv4 that supports the trapping of floating-point exceptions to support code. 56 VFPv4 and VFPv4U add both the Half-precision Extension and the fused multiply-add instructions to the features of VFPv3. 57 endchoice 58 59 choice 60 prompt "Choose num of FPU doubleword registers" 61 default ARCH_FPU_VFP_D32 62 depends on !ARCH_FPU_DISABLE 63 help 64 Choose num of FPU doubleword registers. 65 66 config ARCH_FPU_VFP_D16 67 bool "FPU_VFP_D16" 68 depends on ARCH_ARM_AARCH32 69 help 70 VPU implemented with 16 doubleword registers (16 x 64-bit). 71 72 config ARCH_FPU_VFP_D32 73 bool "FPU_VFP_D32" 74 depends on ARCH_ARM_AARCH32 75 help 76 VPU implemented with 32 doubleword registers (32 x 64-bit). 77 endchoice 78endchoice 79config ARCH_FPU 80 string 81 default "vfpv3" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D32 && !COMPILER_ICCARM 82 default "vfpv3-d16" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D16 && !COMPILER_ICCARM 83 default "vfpv4" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32 && !COMPILER_ICCARM 84 default "vfpv4-d16" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D16 && !COMPILER_ICCARM 85 default "VFPv3" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D32 && COMPILER_ICCARM 86 default "VFPv3_D16" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D16 && COMPILER_ICCARM 87 default "VFPv4" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32 && COMPILER_ICCARM 88 default "VFPv4_D16" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D16 && COMPILER_ICCARM 89 90# 91# Supported Processor Cores 92# 93config ARCH_CORTEX_M3 94 bool 95 select ARCH_ARM_V7M 96 select ARCH_ARM_AARCH32 97 98config ARCH_CORTEX_M4 99 bool 100 select ARCH_ARM_V7M 101 select ARCH_ARM_AARCH32 102 103config ARCH_CORTEX_M7 104 bool 105 select ARCH_ARM_V7M 106 select ARCH_ARM_AARCH32 107 108config ARCH_CORTEX_M33 109 bool 110 select ARCH_ARM_V8M 111 select ARCH_ARM_AARCH32 112 113config ARCH_CORTEX_M55 114 bool 115 select ARCH_ARM_V8M 116 select ARCH_ARM_AARCH32 117 118config ARCH_ARM9 119 bool 120 select ARCH_ARM_V5TE 121 select ARCH_ARM_AARCH32 122 123config ARCH_CPU 124 string 125 default "cortex-m3" if ARCH_CORTEX_M3 && !COMPILER_ICCARM 126 default "cortex-m4" if ARCH_CORTEX_M4 && !COMPILER_ICCARM 127 default "cortex-m7" if ARCH_CORTEX_M7 && !COMPILER_ICCARM 128 default "cortex-m33" if ARCH_CORTEX_M33 && !COMPILER_ICCARM 129 default "cortex-m55" if ARCH_CORTEX_M55 && !COMPILER_ICCARM 130 default "Cortex-M3" if ARCH_CORTEX_M3 && COMPILER_ICCARM 131 default "Cortex-M4" if ARCH_CORTEX_M4 && COMPILER_ICCARM 132 default "Cortex-M7" if ARCH_CORTEX_M7 && COMPILER_ICCARM 133 default "Cortex-M33" if ARCH_CORTEX_M33 && COMPILER_ICCARM 134 default "Cortex-M55" if ARCH_CORTEX_M55 && COMPILER_ICCARM 135 default "arm9" if ARCH_ARM9 136