10d163575Sopenharmony_ci# ARM Architecture
20d163575Sopenharmony_ci
30d163575Sopenharmony_ci#
40d163575Sopenharmony_ci# ARM has 32-bit(Aarch32) and 64-bit(Aarch64) implementations
50d163575Sopenharmony_ci#
60d163575Sopenharmony_ciconfig ARCH_ARM_AARCH32
70d163575Sopenharmony_ci    bool
80d163575Sopenharmony_ci    select ARCH_ARM
90d163575Sopenharmony_ci    help
100d163575Sopenharmony_ci      32-bit ARM architecture implementations, Except the M-profile.
110d163575Sopenharmony_ci      It is not limited to ARMv7-A but also ARMv7-R, ARMv8-A 32-bit and etc.
120d163575Sopenharmony_ci
130d163575Sopenharmony_ci#
140d163575Sopenharmony_ci# Architecture Versions
150d163575Sopenharmony_ci#
160d163575Sopenharmony_ciconfig ARCH_ARM_V7A
170d163575Sopenharmony_ci    bool
180d163575Sopenharmony_ci
190d163575Sopenharmony_ciconfig ARCH_ARM_VER
200d163575Sopenharmony_ci    string
210d163575Sopenharmony_ci    default "armv7-a" if ARCH_ARM_V7A
220d163575Sopenharmony_ci
230d163575Sopenharmony_ci#
240d163575Sopenharmony_ci# VFP Hardware
250d163575Sopenharmony_ci#
260d163575Sopenharmony_ciconfig ARCH_FPU_VFP_V3
270d163575Sopenharmony_ci    bool
280d163575Sopenharmony_ci    help
290d163575Sopenharmony_ci      An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles.
300d163575Sopenharmony_ci      VFPv3U is a variant of VFPv3 that supports the trapping of floating-point exceptions to support code.
310d163575Sopenharmony_ci
320d163575Sopenharmony_ciconfig ARCH_FPU_VFP_V4
330d163575Sopenharmony_ci    bool
340d163575Sopenharmony_ci    help
350d163575Sopenharmony_ci      An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles.
360d163575Sopenharmony_ci      VFPv4U is a variant of VFPv4 that supports the trapping of floating-point exceptions to support code.
370d163575Sopenharmony_ci      VFPv4 and VFPv4U add both the Half-precision Extension and the fused multiply-add instructions to the features of VFPv3.
380d163575Sopenharmony_ci
390d163575Sopenharmony_ciconfig ARCH_FPU_VFP_D16
400d163575Sopenharmony_ci    bool
410d163575Sopenharmony_ci    depends on ARCH_ARM_AARCH32
420d163575Sopenharmony_ci    help
430d163575Sopenharmony_ci      VPU implemented with 16 doubleword registers (16 x 64-bit).
440d163575Sopenharmony_ci
450d163575Sopenharmony_ciconfig ARCH_FPU_VFP_D32
460d163575Sopenharmony_ci    bool
470d163575Sopenharmony_ci    depends on ARCH_ARM_AARCH32
480d163575Sopenharmony_ci    help
490d163575Sopenharmony_ci      VPU implemented with 32 doubleword registers (32 x 64-bit).
500d163575Sopenharmony_ci
510d163575Sopenharmony_ciconfig ARCH_FPU_VFP_NEON
520d163575Sopenharmony_ci    bool
530d163575Sopenharmony_ci    help
540d163575Sopenharmony_ci      Advanced SIMD extension (NEON) support.
550d163575Sopenharmony_ci
560d163575Sopenharmony_ciconfig ARCH_FPU
570d163575Sopenharmony_ci    string
580d163575Sopenharmony_ci    default "vfpv3"       if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D32
590d163575Sopenharmony_ci    default "vfpv3-d16"   if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D16
600d163575Sopenharmony_ci    default "neon-vfpv4"  if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32 && ARCH_FPU_VFP_NEON
610d163575Sopenharmony_ci    default "vfpv4"       if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32
620d163575Sopenharmony_ci    default "vfpv4-d16"   if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D16
630d163575Sopenharmony_ci
640d163575Sopenharmony_ci#
650d163575Sopenharmony_ci# Supported Processor Cores
660d163575Sopenharmony_ci#
670d163575Sopenharmony_ciconfig ARCH_CORTEX_A7
680d163575Sopenharmony_ci    bool
690d163575Sopenharmony_ci    select ARCH_ARM_V7A
700d163575Sopenharmony_ci    select ARCH_ARM_AARCH32
710d163575Sopenharmony_ci    select ARCH_FPU_VFP_V4
720d163575Sopenharmony_ci    select ARCH_FPU_VFP_D32
730d163575Sopenharmony_ci    select ARCH_FPU_VFP_NEON
740d163575Sopenharmony_ci
750d163575Sopenharmony_ciconfig ARCH_CPU
760d163575Sopenharmony_ci    string
770d163575Sopenharmony_ci    default "cortex-a7" if ARCH_CORTEX_A7
780d163575Sopenharmony_ci
790d163575Sopenharmony_ci#
800d163575Sopenharmony_ci# Supported GIC version
810d163575Sopenharmony_ci#
820d163575Sopenharmony_ci
830d163575Sopenharmony_cichoice
840d163575Sopenharmony_ci    prompt "GIC version"
850d163575Sopenharmony_ci    default ARCH_GIC_V2
860d163575Sopenharmony_ci    help
870d163575Sopenharmony_ci      Interrupt Controller.
880d163575Sopenharmony_ci
890d163575Sopenharmony_ciconfig ARCH_GIC_V2
900d163575Sopenharmony_ci    bool "GIC Version 2"
910d163575Sopenharmony_ci    help
920d163575Sopenharmony_ci      This GIC(General Interrupt Controller) version 2 driver is compatatble with
930d163575Sopenharmony_ci      GIC version 1 and version 2.
940d163575Sopenharmony_ci
950d163575Sopenharmony_ciconfig ARCH_GIC_V3
960d163575Sopenharmony_ci    bool "GIC Version 3"
970d163575Sopenharmony_ci    depends on ARCH_ARM_V8A || ARCH_ARM_V8R
980d163575Sopenharmony_ci    help
990d163575Sopenharmony_ci      General Interrupt Controller version 3.
1000d163575Sopenharmony_ci
1010d163575Sopenharmony_ciendchoice
1020d163575Sopenharmony_ci
1030d163575Sopenharmony_ci
104