• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_V5TE
20    bool
21
22config ARCH_ARM_VER
23    string
24    default "armv7-m" if ARCH_ARM_V7M
25    default "armv5te" if ARCH_ARM_V5TE
26
27#
28# VFP Hardware
29#
30config ARCH_FPU_VFP_V3
31    bool
32    help
33      An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles.
34      VFPv3U is a variant of VFPv3 that supports the trapping of floating-point exceptions to support code.
35
36config ARCH_FPU_VFP_V4
37    bool
38    help
39      An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles.
40      VFPv4U is a variant of VFPv4 that supports the trapping of floating-point exceptions to support code.
41      VFPv4 and VFPv4U add both the Half-precision Extension and the fused multiply-add instructions to the features of VFPv3.
42
43config ARCH_FPU_VFP_D16
44    bool
45    depends on ARCH_ARM_AARCH32
46    help
47      VPU implemented with 16 doubleword registers (16 x 64-bit).
48
49config ARCH_FPU_VFP_D32
50    bool
51    depends on ARCH_ARM_AARCH32
52    help
53      VPU implemented with 32 doubleword registers (32 x 64-bit).
54
55config ARCH_FPU_VFP_NEON
56    bool
57    help
58      Advanced SIMD extension (NEON) support.
59
60config ARCH_FPU
61    string
62    default "vfpv3"       if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D32
63    default "vfpv3-d16"   if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D16
64    default "neon-vfpv4"  if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32 && ARCH_FPU_VFP_NEON
65    default "vfpv4"       if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32
66    default "vfpv4-d16"   if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D16
67
68#
69# Supported Processor Cores
70#
71config ARCH_CORTEX_M3
72    bool
73    select ARCH_ARM_V7M
74    select ARCH_ARM_AARCH32
75
76config ARCH_CORTEX_M4
77    bool
78    select ARCH_ARM_V7M
79    select ARCH_ARM_AARCH32
80
81config ARCH_CORTEX_M7
82    bool
83    select ARCH_ARM_V7M
84    select ARCH_ARM_AARCH32
85    select ARCH_FPU_VFP_V4
86    select ARCH_FPU_VFP_D32
87    select ARCH_FPU_VFP_NEON
88
89config ARCH_CORTEX_M33
90    bool
91    select ARCH_ARM_V7M
92    select ARCH_ARM_AARCH32
93    select ARCH_FPU_VFP_V4
94    select ARCH_FPU_VFP_D32
95    select ARCH_FPU_VFP_NEON
96
97config ARCH_CORTEX_M55
98    bool
99    select ARCH_ARM_V7M
100    select ARCH_ARM_AARCH32
101    select ARCH_FPU_VFP_V4
102    select ARCH_FPU_VFP_D32
103    select ARCH_FPU_VFP_NEON
104
105config ARCH_ARM9
106    bool
107    select ARCH_ARM_V5TE
108    select ARCH_ARM_AARCH32
109
110config ARCH_CPU
111    string
112    default "cortex-m3" if ARCH_CORTEX_M3
113    default "cortex-m4" if ARCH_CORTEX_M4
114    default "cortex-m7" if ARCH_CORTEX_M7
115    default "cortex-m33" if ARCH_CORTEX_M33
116    default "cortex-m55" if ARCH_CORTEX_M55
117    default "arm9" if ARCH_ARM9
118