# ARM Architecture # # ARM has 32-bit(Aarch32) and 64-bit(Aarch64) implementations # config ARCH_ARM_AARCH32 bool select ARCH_ARM help 32-bit ARM architecture implementations, Except the M-profile. It is not limited to ARMv7-A but also ARMv7-R, ARMv8-A 32-bit and etc. # # Architecture Versions # config ARCH_ARM_V7M bool config ARCH_ARM_V8M bool config ARCH_ARM_V5TE bool config ARCH_ARM_VER string default "armv7-m" if ARCH_ARM_V7M default "armv8-m" if ARCH_ARM_V8M default "armv5te" if ARCH_ARM_V5TE # # VFP Hardware # choice prompt "Choose FPU type" depends on !ARCH_FPU_DISABLE choice prompt "Choose FPU version" default ARCH_FPU_VFP_V4 depends on !ARCH_FPU_DISABLE help Choose FPU version. config ARCH_FPU_VFP_V3 bool "VFP_V3" help An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles. VFPv3U is a variant of VFPv3 that supports the trapping of floating-point exceptions to support code. config ARCH_FPU_VFP_V4 bool "VFP_V4" help An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles. VFPv4U is a variant of VFPv4 that supports the trapping of floating-point exceptions to support code. VFPv4 and VFPv4U add both the Half-precision Extension and the fused multiply-add instructions to the features of VFPv3. endchoice choice prompt "Choose num of FPU doubleword registers" default ARCH_FPU_VFP_D32 depends on !ARCH_FPU_DISABLE help Choose num of FPU doubleword registers. config ARCH_FPU_VFP_D16 bool "FPU_VFP_D16" depends on ARCH_ARM_AARCH32 help VPU implemented with 16 doubleword registers (16 x 64-bit). config ARCH_FPU_VFP_D32 bool "FPU_VFP_D32" depends on ARCH_ARM_AARCH32 help VPU implemented with 32 doubleword registers (32 x 64-bit). endchoice endchoice config ARCH_FPU string default "vfpv3" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D32 && !COMPILER_ICCARM default "vfpv3-d16" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D16 && !COMPILER_ICCARM default "vfpv4" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32 && !COMPILER_ICCARM default "vfpv4-d16" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D16 && !COMPILER_ICCARM default "VFPv3" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D32 && COMPILER_ICCARM default "VFPv3_D16" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D16 && COMPILER_ICCARM default "VFPv4" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32 && COMPILER_ICCARM default "VFPv4_D16" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D16 && COMPILER_ICCARM # # Supported Processor Cores # config ARCH_CORTEX_M3 bool select ARCH_ARM_V7M select ARCH_ARM_AARCH32 config ARCH_CORTEX_M4 bool select ARCH_ARM_V7M select ARCH_ARM_AARCH32 config ARCH_CORTEX_M7 bool select ARCH_ARM_V7M select ARCH_ARM_AARCH32 config ARCH_CORTEX_M33 bool select ARCH_ARM_V8M select ARCH_ARM_AARCH32 config ARCH_CORTEX_M55 bool select ARCH_ARM_V8M select ARCH_ARM_AARCH32 config ARCH_ARM9 bool select ARCH_ARM_V5TE select ARCH_ARM_AARCH32 config ARCH_CPU string default "cortex-m3" if ARCH_CORTEX_M3 && !COMPILER_ICCARM default "cortex-m4" if ARCH_CORTEX_M4 && !COMPILER_ICCARM default "cortex-m7" if ARCH_CORTEX_M7 && !COMPILER_ICCARM default "cortex-m33" if ARCH_CORTEX_M33 && !COMPILER_ICCARM default "cortex-m55" if ARCH_CORTEX_M55 && !COMPILER_ICCARM default "Cortex-M3" if ARCH_CORTEX_M3 && COMPILER_ICCARM default "Cortex-M4" if ARCH_CORTEX_M4 && COMPILER_ICCARM default "Cortex-M7" if ARCH_CORTEX_M7 && COMPILER_ICCARM default "Cortex-M33" if ARCH_CORTEX_M33 && COMPILER_ICCARM default "Cortex-M55" if ARCH_CORTEX_M55 && COMPILER_ICCARM default "arm9" if ARCH_ARM9