xref: /OK3568_Linux_fs/buildroot/arch/Config.in.arm (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# arm cpu features
2*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_NEON
3*4882a593Smuzhiyun	bool
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun# for some cores, NEON support is optional
6*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_NEON
7*4882a593Smuzhiyun	bool
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun# For some cores, the FPU is optional
10*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_FPU
11*4882a593Smuzhiyun	bool
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_FPU
14*4882a593Smuzhiyun	bool
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun# for some cores, VFPv2 is optional
17*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_VFPV2
18*4882a593Smuzhiyun	bool
19*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_FPU
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_VFPV2
22*4882a593Smuzhiyun	bool
23*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FPU
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun# for some cores, VFPv3 is optional
26*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_VFPV3
27*4882a593Smuzhiyun	bool
28*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_VFPV2
29*4882a593Smuzhiyun
30*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_VFPV3
31*4882a593Smuzhiyun	bool
32*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV2
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun# for some cores, VFPv4 is optional
35*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_VFPV4
36*4882a593Smuzhiyun	bool
37*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_VFPV3
38*4882a593Smuzhiyun
39*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_VFPV4
40*4882a593Smuzhiyun	bool
41*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV3
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun# FPv4 is always optional
44*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_FPV4
45*4882a593Smuzhiyun	bool
46*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_FPU
47*4882a593Smuzhiyun
48*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_FPV4
49*4882a593Smuzhiyun	bool
50*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FPU
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun# FPv5 is always optional
53*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_FPV5
54*4882a593Smuzhiyun	bool
55*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_FPV4
56*4882a593Smuzhiyun
57*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_FPV5
58*4882a593Smuzhiyun	bool
59*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FPV4
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_FP_ARMV8
62*4882a593Smuzhiyun	bool
63*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV4
64*4882a593Smuzhiyun
65*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_ARM
66*4882a593Smuzhiyun	bool
67*4882a593Smuzhiyun
68*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_THUMB
69*4882a593Smuzhiyun	bool
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_THUMB2
72*4882a593Smuzhiyun	bool
73*4882a593Smuzhiyun
74*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV4
75*4882a593Smuzhiyun	bool
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV5
78*4882a593Smuzhiyun	bool
79*4882a593Smuzhiyun
80*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV6
81*4882a593Smuzhiyun	bool
82*4882a593Smuzhiyun
83*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV7A
84*4882a593Smuzhiyun	bool
85*4882a593Smuzhiyun
86*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV7M
87*4882a593Smuzhiyun	bool
88*4882a593Smuzhiyun
89*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV8A
90*4882a593Smuzhiyun	bool
91*4882a593Smuzhiyun
92*4882a593Smuzhiyunchoice
93*4882a593Smuzhiyun	prompt "Target Architecture Variant"
94*4882a593Smuzhiyun	default BR2_cortex_a53 if BR2_ARCH_IS_64
95*4882a593Smuzhiyun	default BR2_arm926t
96*4882a593Smuzhiyun	help
97*4882a593Smuzhiyun	  Specific CPU variant to use
98*4882a593Smuzhiyun
99*4882a593Smuzhiyunif !BR2_ARCH_IS_64
100*4882a593Smuzhiyuncomment "armv4 cores"
101*4882a593Smuzhiyunconfig BR2_arm920t
102*4882a593Smuzhiyun	bool "arm920t"
103*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
104*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
105*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV4
106*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
107*4882a593Smuzhiyunconfig BR2_arm922t
108*4882a593Smuzhiyun	bool "arm922t"
109*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
110*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
111*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV4
112*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
113*4882a593Smuzhiyunconfig BR2_fa526
114*4882a593Smuzhiyun	bool "fa526/626"
115*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
116*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV4
117*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
118*4882a593Smuzhiyunconfig BR2_strongarm
119*4882a593Smuzhiyun	bool "strongarm sa110/sa1100"
120*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
121*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV4
122*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
123*4882a593Smuzhiyun
124*4882a593Smuzhiyuncomment "armv5 cores"
125*4882a593Smuzhiyunconfig BR2_arm926t
126*4882a593Smuzhiyun	bool "arm926t"
127*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
128*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_VFPV2
129*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
130*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV5
131*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
132*4882a593Smuzhiyunconfig BR2_iwmmxt
133*4882a593Smuzhiyun	bool "iwmmxt"
134*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
135*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV5
136*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
137*4882a593Smuzhiyunconfig BR2_xscale
138*4882a593Smuzhiyun	bool "xscale"
139*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
140*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
141*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV5
142*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
143*4882a593Smuzhiyun
144*4882a593Smuzhiyuncomment "armv6 cores"
145*4882a593Smuzhiyunconfig BR2_arm1136j_s
146*4882a593Smuzhiyun	bool "arm1136j-s"
147*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
148*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
149*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV6
150*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
151*4882a593Smuzhiyunconfig BR2_arm1136jf_s
152*4882a593Smuzhiyun	bool "arm1136jf-s"
153*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
154*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV2
155*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
156*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV6
157*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
158*4882a593Smuzhiyunconfig BR2_arm1176jz_s
159*4882a593Smuzhiyun	bool "arm1176jz-s"
160*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
161*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
162*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV6
163*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
164*4882a593Smuzhiyunconfig BR2_arm1176jzf_s
165*4882a593Smuzhiyun	bool "arm1176jzf-s"
166*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
167*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV2
168*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
169*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV6
170*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
171*4882a593Smuzhiyunconfig BR2_arm11mpcore
172*4882a593Smuzhiyun	bool "mpcore"
173*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
174*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_VFPV2
175*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB
176*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV6
177*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
178*4882a593Smuzhiyun
179*4882a593Smuzhiyuncomment "armv7a cores"
180*4882a593Smuzhiyunconfig BR2_cortex_a5
181*4882a593Smuzhiyun	bool "cortex-A5"
182*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
183*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_NEON
184*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_VFPV4
185*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
186*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
187*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
188*4882a593Smuzhiyunconfig BR2_cortex_a7
189*4882a593Smuzhiyun	bool "cortex-A7"
190*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
191*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
192*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV4
193*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
194*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
195*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
196*4882a593Smuzhiyunconfig BR2_cortex_a8
197*4882a593Smuzhiyun	bool "cortex-A8"
198*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
199*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
200*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV3
201*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
202*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
203*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
204*4882a593Smuzhiyunconfig BR2_cortex_a9
205*4882a593Smuzhiyun	bool "cortex-A9"
206*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
207*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_NEON
208*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_VFPV3
209*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
210*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
211*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
212*4882a593Smuzhiyunconfig BR2_cortex_a12
213*4882a593Smuzhiyun	bool "cortex-A12"
214*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
215*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
216*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV4
217*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
218*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
219*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
220*4882a593Smuzhiyunconfig BR2_cortex_a15
221*4882a593Smuzhiyun	bool "cortex-A15"
222*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
223*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
224*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV4
225*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
226*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
227*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
228*4882a593Smuzhiyunconfig BR2_cortex_a15_a7
229*4882a593Smuzhiyun	bool "cortex-A15/A7 big.LITTLE"
230*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
231*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
232*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV4
233*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
234*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
235*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
236*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
237*4882a593Smuzhiyunconfig BR2_cortex_a17
238*4882a593Smuzhiyun	bool "cortex-A17"
239*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
240*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
241*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV4
242*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
243*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
244*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
245*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
246*4882a593Smuzhiyunconfig BR2_cortex_a17_a7
247*4882a593Smuzhiyun	bool "cortex-A17/A7 big.LITTLE"
248*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
249*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
250*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV4
251*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
252*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
253*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
254*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
255*4882a593Smuzhiyunconfig BR2_pj4
256*4882a593Smuzhiyun	bool "pj4"
257*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
258*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV3
259*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7A
260*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
261*4882a593Smuzhiyun
262*4882a593Smuzhiyuncomment "armv7m cores"
263*4882a593Smuzhiyunconfig BR2_cortex_m3
264*4882a593Smuzhiyun	bool "cortex-M3"
265*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
266*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7M
267*4882a593Smuzhiyunconfig BR2_cortex_m4
268*4882a593Smuzhiyun	bool "cortex-M4"
269*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
270*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_FPV4
271*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7M
272*4882a593Smuzhiyunconfig BR2_cortex_m7
273*4882a593Smuzhiyun	bool "cortex-M7"
274*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
275*4882a593Smuzhiyun	select BR2_ARM_CPU_MAYBE_HAS_FPV5
276*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV7M
277*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
278*4882a593Smuzhiyunendif # !BR2_ARCH_IS_64
279*4882a593Smuzhiyun
280*4882a593Smuzhiyuncomment "armv8 cores"
281*4882a593Smuzhiyunconfig BR2_cortex_a32
282*4882a593Smuzhiyun	bool "cortex-A32"
283*4882a593Smuzhiyun	depends on !BR2_ARCH_IS_64
284*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM
285*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
286*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2
287*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
288*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
289*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
290*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
291*4882a593Smuzhiyunconfig BR2_cortex_a35
292*4882a593Smuzhiyun	bool "cortex-A35"
293*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
294*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
295*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
296*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
297*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
298*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
299*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
300*4882a593Smuzhiyunconfig BR2_cortex_a53
301*4882a593Smuzhiyun	bool "cortex-A53"
302*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
303*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
304*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
305*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
306*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
307*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
308*4882a593Smuzhiyunconfig BR2_cortex_a57
309*4882a593Smuzhiyun	bool "cortex-A57"
310*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
311*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
312*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
313*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
314*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
315*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
316*4882a593Smuzhiyunconfig BR2_cortex_a57_a53
317*4882a593Smuzhiyun	bool "cortex-A57/A53 big.LITTLE"
318*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
319*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
320*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
321*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
322*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
323*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
324*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
325*4882a593Smuzhiyunconfig BR2_cortex_a72
326*4882a593Smuzhiyun	bool "cortex-A72"
327*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
328*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
329*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
330*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
331*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
332*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
333*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
334*4882a593Smuzhiyunconfig BR2_cortex_a72_a53
335*4882a593Smuzhiyun	bool "cortex-A72/A53 big.LITTLE"
336*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
337*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
338*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
339*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
340*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
341*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
342*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
343*4882a593Smuzhiyunconfig BR2_cortex_a73
344*4882a593Smuzhiyun	bool "cortex-A73"
345*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
346*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
347*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
348*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
349*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
350*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
351*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
352*4882a593Smuzhiyunconfig BR2_cortex_a73_a35
353*4882a593Smuzhiyun	bool "cortex-A73/A35 big.LITTLE"
354*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
355*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
356*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
357*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
358*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
359*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
360*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
361*4882a593Smuzhiyunconfig BR2_cortex_a73_a53
362*4882a593Smuzhiyun	bool "cortex-A73/A53 big.LITTLE"
363*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
364*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
365*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
366*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
367*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
368*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
369*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
370*4882a593Smuzhiyunconfig BR2_emag
371*4882a593Smuzhiyun	bool "emag"
372*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
373*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
374*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
375*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
376*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
377*4882a593Smuzhiyunconfig BR2_exynos_m1
378*4882a593Smuzhiyun	bool "exynos-m1"
379*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
380*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
381*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
382*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
383*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
384*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
385*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
386*4882a593Smuzhiyunconfig BR2_falkor
387*4882a593Smuzhiyun	bool "falkor"
388*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
389*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
390*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
391*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
392*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
393*4882a593Smuzhiyunconfig BR2_phecda
394*4882a593Smuzhiyun	bool "phecda"
395*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
396*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
397*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
398*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
399*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
400*4882a593Smuzhiyunconfig BR2_qdf24xx
401*4882a593Smuzhiyun	bool "qdf24xx"
402*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
403*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
404*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
405*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
406*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
407*4882a593Smuzhiyunconfig BR2_thunderx
408*4882a593Smuzhiyun	bool "thunderx (aka octeontx)"
409*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
410*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
411*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
412*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
413*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
414*4882a593Smuzhiyunconfig BR2_thunderxt81
415*4882a593Smuzhiyun	bool "thunderxt81 (aka octeontx81)"
416*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
417*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
418*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
419*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
420*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
421*4882a593Smuzhiyunconfig BR2_thunderxt83
422*4882a593Smuzhiyun	bool "thunderxt83 (aka octeontx83)"
423*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
424*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
425*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
426*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
427*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
428*4882a593Smuzhiyunconfig BR2_thunderxt88
429*4882a593Smuzhiyun	bool "thunderxt88"
430*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
431*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
432*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
433*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
434*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
435*4882a593Smuzhiyunconfig BR2_thunderxt88p1
436*4882a593Smuzhiyun	bool "thunderxt88p1"
437*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
438*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
439*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
440*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
441*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
442*4882a593Smuzhiyunconfig BR2_xgene1
443*4882a593Smuzhiyun	bool "xgene1"
444*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
445*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
446*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
447*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
448*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
449*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
450*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
451*4882a593Smuzhiyun
452*4882a593Smuzhiyuncomment "armv8.1a cores"
453*4882a593Smuzhiyunconfig BR2_thunderx2t99
454*4882a593Smuzhiyun	bool "thunderx2t99"
455*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
456*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
457*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
458*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
459*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
460*4882a593Smuzhiyunconfig BR2_thunderx2t99p1
461*4882a593Smuzhiyun	bool "thunderx2t99p1"
462*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
463*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
464*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
465*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
466*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
467*4882a593Smuzhiyunconfig BR2_vulcan
468*4882a593Smuzhiyun	bool "vulcan"
469*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
470*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
471*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
472*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
473*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
474*4882a593Smuzhiyun
475*4882a593Smuzhiyuncomment "armv8.2a cores"
476*4882a593Smuzhiyunconfig BR2_cortex_a55
477*4882a593Smuzhiyun	bool "cortex-A55"
478*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
479*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
480*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
481*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
482*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
483*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
484*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
485*4882a593Smuzhiyunconfig BR2_cortex_a75
486*4882a593Smuzhiyun	bool "cortex-A75"
487*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
488*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
489*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
490*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
491*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
492*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
493*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
494*4882a593Smuzhiyunconfig BR2_cortex_a75_a55
495*4882a593Smuzhiyun	bool "cortex-A75/A55 big.LITTLE"
496*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
497*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
498*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
499*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
500*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
501*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
502*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
503*4882a593Smuzhiyunconfig BR2_cortex_a76
504*4882a593Smuzhiyun	bool "cortex-A76"
505*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
506*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
507*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
508*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
509*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
510*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
511*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
512*4882a593Smuzhiyunconfig BR2_cortex_a76_a55
513*4882a593Smuzhiyun	bool "cortex-A76/A55 big.LITTLE"
514*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
515*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
516*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
517*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
518*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
519*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
520*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
521*4882a593Smuzhiyunconfig BR2_neoverse_n1
522*4882a593Smuzhiyun	bool "neoverse-N1 (aka ares)"
523*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
524*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
525*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
526*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
527*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
528*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
529*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
530*4882a593Smuzhiyunconfig BR2_tsv110
531*4882a593Smuzhiyun	bool "tsv110"
532*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
533*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
534*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
535*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
536*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
537*4882a593Smuzhiyun
538*4882a593Smuzhiyuncomment "armv8.4a cores"
539*4882a593Smuzhiyunconfig BR2_saphira
540*4882a593Smuzhiyun	bool "saphira"
541*4882a593Smuzhiyun	depends on BR2_ARCH_IS_64
542*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FP_ARMV8
543*4882a593Smuzhiyun	select BR2_ARM_CPU_ARMV8A
544*4882a593Smuzhiyun	select BR2_ARCH_HAS_MMU_OPTIONAL
545*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
546*4882a593Smuzhiyunendchoice
547*4882a593Smuzhiyun
548*4882a593Smuzhiyunconfig BR2_ARM_ENABLE_NEON
549*4882a593Smuzhiyun	bool "Enable NEON SIMD extension support"
550*4882a593Smuzhiyun	depends on BR2_ARM_CPU_MAYBE_HAS_NEON
551*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_NEON
552*4882a593Smuzhiyun	help
553*4882a593Smuzhiyun	  For some CPU cores, the NEON SIMD extension is optional.
554*4882a593Smuzhiyun	  Select this option if you are certain your particular
555*4882a593Smuzhiyun	  implementation has NEON support and you want to use it.
556*4882a593Smuzhiyun
557*4882a593Smuzhiyunconfig BR2_ARM_ENABLE_VFP
558*4882a593Smuzhiyun	bool "Enable VFP extension support"
559*4882a593Smuzhiyun	depends on BR2_ARM_CPU_MAYBE_HAS_FPU
560*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FPV5 if BR2_ARM_CPU_MAYBE_HAS_FPV5
561*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_FPV4 if BR2_ARM_CPU_MAYBE_HAS_FPV4
562*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4
563*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3
564*4882a593Smuzhiyun	select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2
565*4882a593Smuzhiyun	help
566*4882a593Smuzhiyun	  For some CPU cores, the VFP extension is optional. Select
567*4882a593Smuzhiyun	  this option if you are certain your particular
568*4882a593Smuzhiyun	  implementation has VFP support and you want to use it.
569*4882a593Smuzhiyun
570*4882a593Smuzhiyunchoice
571*4882a593Smuzhiyun	prompt "Target ABI"
572*4882a593Smuzhiyun	default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_FPU
573*4882a593Smuzhiyun	default BR2_ARM_EABI
574*4882a593Smuzhiyun	depends on BR2_arm || BR2_armeb
575*4882a593Smuzhiyun	help
576*4882a593Smuzhiyun	  Application Binary Interface to use. The Application Binary
577*4882a593Smuzhiyun	  Interface describes the calling conventions (how arguments
578*4882a593Smuzhiyun	  are passed to functions, how the return value is passed, how
579*4882a593Smuzhiyun	  system calls are made, etc.).
580*4882a593Smuzhiyun
581*4882a593Smuzhiyunconfig BR2_ARM_EABI
582*4882a593Smuzhiyun	bool "EABI"
583*4882a593Smuzhiyun	help
584*4882a593Smuzhiyun	  The EABI is currently the standard ARM ABI, which is used in
585*4882a593Smuzhiyun	  most projects. It supports both the 'soft' floating point
586*4882a593Smuzhiyun	  model (in which floating point instructions are emulated in
587*4882a593Smuzhiyun	  software) and the 'softfp' floating point model (in which
588*4882a593Smuzhiyun	  floating point instructions are executed using an hardware
589*4882a593Smuzhiyun	  floating point unit, but floating point arguments to
590*4882a593Smuzhiyun	  functions are passed in integer registers).
591*4882a593Smuzhiyun
592*4882a593Smuzhiyun	  The 'softfp' floating point model is link-compatible with
593*4882a593Smuzhiyun	  the 'soft' floating point model, i.e you can link a library
594*4882a593Smuzhiyun	  built 'soft' with some other code built 'softfp'.
595*4882a593Smuzhiyun
596*4882a593Smuzhiyun	  However, passing the floating point arguments in integer
597*4882a593Smuzhiyun	  registers is a bit inefficient, so if your ARM processor has
598*4882a593Smuzhiyun	  a floating point unit, and you don't have pre-compiled
599*4882a593Smuzhiyun	  'soft' or 'softfp' code, using the EABIhf ABI will provide
600*4882a593Smuzhiyun	  better floating point performances.
601*4882a593Smuzhiyun
602*4882a593Smuzhiyun	  If your processor does not have a floating point unit, then
603*4882a593Smuzhiyun	  you must use this ABI.
604*4882a593Smuzhiyun
605*4882a593Smuzhiyunconfig BR2_ARM_EABIHF
606*4882a593Smuzhiyun	bool "EABIhf"
607*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_FPU
608*4882a593Smuzhiyun	help
609*4882a593Smuzhiyun	  The EABIhf is an extension of EABI which supports the 'hard'
610*4882a593Smuzhiyun	  floating point model. This model uses the floating point
611*4882a593Smuzhiyun	  unit to execute floating point instructions, and passes
612*4882a593Smuzhiyun	  floating point arguments in floating point registers.
613*4882a593Smuzhiyun
614*4882a593Smuzhiyun	  It is more efficient than EABI for floating point related
615*4882a593Smuzhiyun	  workload. However, it does not allow to link against code
616*4882a593Smuzhiyun	  that has been pre-built for the 'soft' or 'softfp' floating
617*4882a593Smuzhiyun	  point models.
618*4882a593Smuzhiyun
619*4882a593Smuzhiyun	  If your processor has a floating point unit, and you don't
620*4882a593Smuzhiyun	  depend on existing pre-compiled code, this option is most
621*4882a593Smuzhiyun	  likely the best choice.
622*4882a593Smuzhiyun
623*4882a593Smuzhiyunendchoice
624*4882a593Smuzhiyun
625*4882a593Smuzhiyunchoice
626*4882a593Smuzhiyun	prompt "Floating point strategy"
627*4882a593Smuzhiyun	default BR2_ARM_FPU_AUTO
628*4882a593Smuzhiyun	default BR2_ARM_FPU_NEON_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8 && BR2_ARM_CPU_HAS_NEON
629*4882a593Smuzhiyun	default BR2_ARM_FPU_NEON_VFPV4 if BR2_ARM_CPU_HAS_VFPV4 && BR2_ARM_CPU_HAS_NEON
630*4882a593Smuzhiyun	default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8
631*4882a593Smuzhiyun	default BR2_ARM_FPU_FPV5D16 if BR2_ARM_CPU_HAS_FPV5
632*4882a593Smuzhiyun	default BR2_ARM_FPU_FPV4D16 if BR2_ARM_CPU_HAS_FPV4
633*4882a593Smuzhiyun	default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4
634*4882a593Smuzhiyun	default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3
635*4882a593Smuzhiyun	default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2
636*4882a593Smuzhiyun	default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_FPU
637*4882a593Smuzhiyun
638*4882a593Smuzhiyunconfig BR2_ARM_SOFT_FLOAT
639*4882a593Smuzhiyun	bool "Soft float"
640*4882a593Smuzhiyun	depends on BR2_ARM_EABI
641*4882a593Smuzhiyun	select BR2_SOFT_FLOAT
642*4882a593Smuzhiyun	help
643*4882a593Smuzhiyun	  This option allows to use software emulated floating
644*4882a593Smuzhiyun	  point. It should be used for ARM cores that do not include a
645*4882a593Smuzhiyun	  Vector Floating Point unit, such as ARMv5 cores (ARM926 for
646*4882a593Smuzhiyun	  example) or certain ARMv6 cores.
647*4882a593Smuzhiyun
648*4882a593Smuzhiyunconfig BR2_ARM_FPU_AUTO
649*4882a593Smuzhiyun	bool "Auto"
650*4882a593Smuzhiyun	help
651*4882a593Smuzhiyun	  This option allows to use GCC's default floating point unit.
652*4882a593Smuzhiyun
653*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV2
654*4882a593Smuzhiyun	bool "VFPv2"
655*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_VFPV2
656*4882a593Smuzhiyun	help
657*4882a593Smuzhiyun	  This option allows to use the VFPv2 floating point unit, as
658*4882a593Smuzhiyun	  available in some ARMv5 processors (ARM926EJ-S) and some
659*4882a593Smuzhiyun	  ARMv6 processors (ARM1136JF-S, ARM1176JZF-S and ARM11
660*4882a593Smuzhiyun	  MPCore).
661*4882a593Smuzhiyun
662*4882a593Smuzhiyun	  Note that this option is also safe to use for newer cores
663*4882a593Smuzhiyun	  such as Cortex-A, because the VFPv3 and VFPv4 units are
664*4882a593Smuzhiyun	  backward compatible with VFPv2.
665*4882a593Smuzhiyun
666*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV3
667*4882a593Smuzhiyun	bool "VFPv3"
668*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_VFPV3
669*4882a593Smuzhiyun	help
670*4882a593Smuzhiyun	  This option allows to use the VFPv3 floating point unit, as
671*4882a593Smuzhiyun	  available in some ARMv7 processors (Cortex-A{8, 9}). This
672*4882a593Smuzhiyun	  option requires a VFPv3 unit that has 32 double-precision
673*4882a593Smuzhiyun	  registers, which is not necessarily the case in all SOCs
674*4882a593Smuzhiyun	  based on Cortex-A{8, 9}. If you're unsure, use VFPv3-D16
675*4882a593Smuzhiyun	  instead, which is guaranteed to work on all Cortex-A{8, 9}.
676*4882a593Smuzhiyun
677*4882a593Smuzhiyun	  Note that this option is also safe to use for newer cores
678*4882a593Smuzhiyun	  that have a VFPv4 unit, because VFPv4 is backward compatible
679*4882a593Smuzhiyun	  with VFPv3. They must of course also have 32
680*4882a593Smuzhiyun	  double-precision registers.
681*4882a593Smuzhiyun
682*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV3D16
683*4882a593Smuzhiyun	bool "VFPv3-D16"
684*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_VFPV3
685*4882a593Smuzhiyun	help
686*4882a593Smuzhiyun	  This option allows to use the VFPv3 floating point unit, as
687*4882a593Smuzhiyun	  available in some ARMv7 processors (Cortex-A{8, 9}). This
688*4882a593Smuzhiyun	  option requires a VFPv3 unit that has 16 double-precision
689*4882a593Smuzhiyun	  registers, which is generally the case in all SOCs based on
690*4882a593Smuzhiyun	  Cortex-A{8, 9}, even though VFPv3 is technically optional on
691*4882a593Smuzhiyun	  Cortex-A9. This is the safest option for those cores.
692*4882a593Smuzhiyun
693*4882a593Smuzhiyun	  Note that this option is also safe to use for newer cores
694*4882a593Smuzhiyun	  such that have a VFPv4 unit, because the VFPv4 is backward
695*4882a593Smuzhiyun	  compatible with VFPv3.
696*4882a593Smuzhiyun
697*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV4
698*4882a593Smuzhiyun	bool "VFPv4"
699*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_VFPV4
700*4882a593Smuzhiyun	help
701*4882a593Smuzhiyun	  This option allows to use the VFPv4 floating point unit, as
702*4882a593Smuzhiyun	  available in some ARMv7 processors (Cortex-A{5, 7, 12,
703*4882a593Smuzhiyun	  15}). This option requires a VFPv4 unit that has 32
704*4882a593Smuzhiyun	  double-precision registers, which is not necessarily the
705*4882a593Smuzhiyun	  case in all SOCs based on Cortex-A{5, 7, 12, 15}. If you're
706*4882a593Smuzhiyun	  unsure, you should probably use VFPv4-D16 instead.
707*4882a593Smuzhiyun
708*4882a593Smuzhiyun	  Note that if you want binary code that works on all ARMv7
709*4882a593Smuzhiyun	  cores, including the earlier Cortex-A{8, 9}, you should
710*4882a593Smuzhiyun	  instead select VFPv3.
711*4882a593Smuzhiyun
712*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV4D16
713*4882a593Smuzhiyun	bool "VFPv4-D16"
714*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_VFPV4
715*4882a593Smuzhiyun	help
716*4882a593Smuzhiyun	  This option allows to use the VFPv4 floating point unit, as
717*4882a593Smuzhiyun	  available in some ARMv7 processors (Cortex-A{5, 7, 12,
718*4882a593Smuzhiyun	  15}). This option requires a VFPv4 unit that has 16
719*4882a593Smuzhiyun	  double-precision registers, which is always available on
720*4882a593Smuzhiyun	  Cortex-A12 and Cortex-A15, but optional on Cortex-A5 and
721*4882a593Smuzhiyun	  Cortex-A7.
722*4882a593Smuzhiyun
723*4882a593Smuzhiyun	  Note that if you want binary code that works on all ARMv7
724*4882a593Smuzhiyun	  cores, including the earlier Cortex-A{8, 9}, you should
725*4882a593Smuzhiyun	  instead select VFPv3-D16.
726*4882a593Smuzhiyun
727*4882a593Smuzhiyunconfig BR2_ARM_FPU_NEON
728*4882a593Smuzhiyun	bool "NEON"
729*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_NEON
730*4882a593Smuzhiyun	help
731*4882a593Smuzhiyun	  This option allows to use the NEON SIMD unit, as available
732*4882a593Smuzhiyun	  in some ARMv7 processors, as a floating-point unit. It
733*4882a593Smuzhiyun	  should however be noted that using NEON for floating point
734*4882a593Smuzhiyun	  operations doesn't provide a complete compatibility with the
735*4882a593Smuzhiyun	  IEEE 754.
736*4882a593Smuzhiyun
737*4882a593Smuzhiyunconfig BR2_ARM_FPU_NEON_VFPV4
738*4882a593Smuzhiyun	bool "NEON/VFPv4"
739*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_VFPV4
740*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_NEON
741*4882a593Smuzhiyun	help
742*4882a593Smuzhiyun	  This option allows to use both the VFPv4 and the NEON SIMD
743*4882a593Smuzhiyun	  units for floating point operations. Note that some ARMv7
744*4882a593Smuzhiyun	  cores do not necessarily have VFPv4 and/or NEON support, for
745*4882a593Smuzhiyun	  example on Cortex-A5 and Cortex-A7, support for VFPv4 and
746*4882a593Smuzhiyun	  NEON is optional.
747*4882a593Smuzhiyun
748*4882a593Smuzhiyunconfig BR2_ARM_FPU_FPV4D16
749*4882a593Smuzhiyun	bool "FPv4-D16"
750*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_FPV4
751*4882a593Smuzhiyun	help
752*4882a593Smuzhiyun	  This option allows to use the FPv4-SP (single precision)
753*4882a593Smuzhiyun	  floating point unit, as available in some ARMv7m processors
754*4882a593Smuzhiyun	  (Cortex-M4).
755*4882a593Smuzhiyun
756*4882a593Smuzhiyunconfig BR2_ARM_FPU_FPV5D16
757*4882a593Smuzhiyun	bool "FPv5-D16"
758*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_FPV5
759*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
760*4882a593Smuzhiyun	help
761*4882a593Smuzhiyun	  This option allows to use the FPv5-SP (single precision)
762*4882a593Smuzhiyun	  floating point unit, as available in some ARMv7m processors
763*4882a593Smuzhiyun	  (Cortex-M7).
764*4882a593Smuzhiyun
765*4882a593Smuzhiyun	  Note that if you want binary code that works on the earlier
766*4882a593Smuzhiyun	  Cortex-M4, you should instead select FPv4-D16.
767*4882a593Smuzhiyun
768*4882a593Smuzhiyunconfig BR2_ARM_FPU_FPV5DPD16
769*4882a593Smuzhiyun	bool "FPv5-DP-D16"
770*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_FPV5
771*4882a593Smuzhiyun	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
772*4882a593Smuzhiyun	help
773*4882a593Smuzhiyun	  This option allows to use the FPv5-DP (double precision)
774*4882a593Smuzhiyun	  floating point unit, as available in some ARMv7m processors
775*4882a593Smuzhiyun	  (Cortex-M7).
776*4882a593Smuzhiyun
777*4882a593Smuzhiyun	  Note that if you want binary code that works on the earlier
778*4882a593Smuzhiyun	  Cortex-M4, you should instead select FPv4-D16.
779*4882a593Smuzhiyun
780*4882a593Smuzhiyunconfig BR2_ARM_FPU_FP_ARMV8
781*4882a593Smuzhiyun	bool "FP-ARMv8"
782*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_FP_ARMV8
783*4882a593Smuzhiyun	help
784*4882a593Smuzhiyun	  This option allows to use the ARMv8 floating point unit.
785*4882a593Smuzhiyun
786*4882a593Smuzhiyunconfig BR2_ARM_FPU_NEON_FP_ARMV8
787*4882a593Smuzhiyun	bool "NEON/FP-ARMv8"
788*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_FP_ARMV8
789*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_NEON
790*4882a593Smuzhiyun	help
791*4882a593Smuzhiyun	  This option allows to use both the ARMv8 floating point unit
792*4882a593Smuzhiyun	  and the NEON SIMD unit for floating point operations.
793*4882a593Smuzhiyun
794*4882a593Smuzhiyunendchoice
795*4882a593Smuzhiyun
796*4882a593Smuzhiyunchoice
797*4882a593Smuzhiyun	prompt "ARM instruction set"
798*4882a593Smuzhiyun	depends on BR2_arm || BR2_armeb
799*4882a593Smuzhiyun
800*4882a593Smuzhiyunconfig BR2_ARM_INSTRUCTIONS_ARM
801*4882a593Smuzhiyun	bool "ARM"
802*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_ARM
803*4882a593Smuzhiyun	help
804*4882a593Smuzhiyun	  This option instructs the compiler to generate regular ARM
805*4882a593Smuzhiyun	  instructions, that are all 32 bits wide.
806*4882a593Smuzhiyun
807*4882a593Smuzhiyunconfig BR2_ARM_INSTRUCTIONS_THUMB
808*4882a593Smuzhiyun	bool "Thumb"
809*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_THUMB
810*4882a593Smuzhiyun	# Thumb-1 and VFP are not compatible
811*4882a593Smuzhiyun	depends on BR2_ARM_SOFT_FLOAT
812*4882a593Smuzhiyun	help
813*4882a593Smuzhiyun	  This option instructions the compiler to generate Thumb
814*4882a593Smuzhiyun	  instructions, which allows to mix 16 bits instructions and
815*4882a593Smuzhiyun	  32 bits instructions. This generally provides a much smaller
816*4882a593Smuzhiyun	  compiled binary size.
817*4882a593Smuzhiyun
818*4882a593Smuzhiyuncomment "Thumb1 is not compatible with VFP"
819*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_THUMB
820*4882a593Smuzhiyun	depends on !BR2_ARM_SOFT_FLOAT
821*4882a593Smuzhiyun
822*4882a593Smuzhiyunconfig BR2_ARM_INSTRUCTIONS_THUMB2
823*4882a593Smuzhiyun	bool "Thumb2"
824*4882a593Smuzhiyun	depends on BR2_ARM_CPU_HAS_THUMB2
825*4882a593Smuzhiyun	help
826*4882a593Smuzhiyun	  This option instructions the compiler to generate Thumb2
827*4882a593Smuzhiyun	  instructions, which allows to mix 16 bits instructions and
828*4882a593Smuzhiyun	  32 bits instructions. This generally provides a much smaller
829*4882a593Smuzhiyun	  compiled binary size.
830*4882a593Smuzhiyun
831*4882a593Smuzhiyunendchoice
832*4882a593Smuzhiyun
833*4882a593Smuzhiyunconfig BR2_ARCH
834*4882a593Smuzhiyun	default "arm"		if BR2_arm
835*4882a593Smuzhiyun	default "armeb"		if BR2_armeb
836*4882a593Smuzhiyun	default "aarch64"	if BR2_aarch64
837*4882a593Smuzhiyun	default "aarch64_be"	if BR2_aarch64_be
838*4882a593Smuzhiyun
839*4882a593Smuzhiyunconfig BR2_NORMALIZED_ARCH
840*4882a593Smuzhiyun	default "arm"		if BR2_arm || BR2_armeb
841*4882a593Smuzhiyun	default "arm64"		if BR2_aarch64 || BR2_aarch64_be
842*4882a593Smuzhiyun
843*4882a593Smuzhiyunconfig BR2_ENDIAN
844*4882a593Smuzhiyun	default "LITTLE" if (BR2_arm || BR2_aarch64)
845*4882a593Smuzhiyun	default "BIG"	 if (BR2_armeb || BR2_aarch64_be)
846*4882a593Smuzhiyun
847*4882a593Smuzhiyunconfig BR2_GCC_TARGET_CPU
848*4882a593Smuzhiyun	# armv4
849*4882a593Smuzhiyun	default "arm920t"	if BR2_arm920t
850*4882a593Smuzhiyun	default "arm922t"	if BR2_arm922t
851*4882a593Smuzhiyun	default "fa526"		if BR2_fa526
852*4882a593Smuzhiyun	default "strongarm"	if BR2_strongarm
853*4882a593Smuzhiyun	# armv5
854*4882a593Smuzhiyun	default "arm926ej-s"	if BR2_arm926t
855*4882a593Smuzhiyun	default "iwmmxt"	if BR2_iwmmxt
856*4882a593Smuzhiyun	default "xscale"	if BR2_xscale
857*4882a593Smuzhiyun	# armv6
858*4882a593Smuzhiyun	default "arm1136j-s"	if BR2_arm1136j_s
859*4882a593Smuzhiyun	default "arm1136jf-s"	if BR2_arm1136jf_s
860*4882a593Smuzhiyun	default "arm1176jz-s"	if BR2_arm1176jz_s
861*4882a593Smuzhiyun	default "arm1176jzf-s"	if BR2_arm1176jzf_s
862*4882a593Smuzhiyun	default "mpcore"	if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2
863*4882a593Smuzhiyun	default "mpcorenovfp"	if BR2_arm11mpcore
864*4882a593Smuzhiyun	# armv7a
865*4882a593Smuzhiyun	default "cortex-a5"	if BR2_cortex_a5
866*4882a593Smuzhiyun	default "cortex-a7"	if BR2_cortex_a7
867*4882a593Smuzhiyun	default "cortex-a8"	if BR2_cortex_a8
868*4882a593Smuzhiyun	default "cortex-a9"	if BR2_cortex_a9
869*4882a593Smuzhiyun	default "cortex-a12"	if BR2_cortex_a12
870*4882a593Smuzhiyun	default "cortex-a15"	if BR2_cortex_a15
871*4882a593Smuzhiyun	default "cortex-a15.cortex-a7"	if BR2_cortex_a15_a7
872*4882a593Smuzhiyun	default "cortex-a17"	if BR2_cortex_a17
873*4882a593Smuzhiyun	default "cortex-a17.cortex-a7"	if BR2_cortex_a17_a7
874*4882a593Smuzhiyun	default "marvell-pj4"	if BR2_pj4
875*4882a593Smuzhiyun	# armv7m
876*4882a593Smuzhiyun	default "cortex-m3"	if BR2_cortex_m3
877*4882a593Smuzhiyun	default "cortex-m4"	if BR2_cortex_m4
878*4882a593Smuzhiyun	default "cortex-m7"	if BR2_cortex_m7
879*4882a593Smuzhiyun	# armv8a
880*4882a593Smuzhiyun	default "cortex-a32"	if BR2_cortex_a32
881*4882a593Smuzhiyun	default "cortex-a35"	if BR2_cortex_a35
882*4882a593Smuzhiyun	default "cortex-a53"	if BR2_cortex_a53
883*4882a593Smuzhiyun	default "cortex-a57"	if BR2_cortex_a57
884*4882a593Smuzhiyun	default "cortex-a57.cortex-a53"	if BR2_cortex_a57_a53
885*4882a593Smuzhiyun	default "cortex-a72"	if BR2_cortex_a72
886*4882a593Smuzhiyun	default "cortex-a72.cortex-a53"	if BR2_cortex_a72_a53
887*4882a593Smuzhiyun	default "cortex-a73"	if BR2_cortex_a73
888*4882a593Smuzhiyun	default "cortex-a73.cortex-a35"	if BR2_cortex_a73_a35
889*4882a593Smuzhiyun	default "cortex-a73.cortex-a53"	if BR2_cortex_a73_a53
890*4882a593Smuzhiyun	default "emag"		if BR2_emag
891*4882a593Smuzhiyun	default "exynos-m1"	if BR2_exynos_m1
892*4882a593Smuzhiyun	default "falkor"	if BR2_falkor
893*4882a593Smuzhiyun	default "phecda"	if BR2_phecda
894*4882a593Smuzhiyun	default "qdf24xx"	if BR2_qdf24xx
895*4882a593Smuzhiyun	default "thunderx"	if BR2_thunderx && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
896*4882a593Smuzhiyun	default "octeontx"	if BR2_thunderx && BR2_TOOLCHAIN_GCC_AT_LEAST_9
897*4882a593Smuzhiyun	default "thunderxt81"	if BR2_thunderxt81 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
898*4882a593Smuzhiyun	default "octeontx81"	if BR2_thunderxt81 && BR2_TOOLCHAIN_GCC_AT_LEAST_9
899*4882a593Smuzhiyun	default "thunderxt83"	if BR2_thunderxt83 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
900*4882a593Smuzhiyun	default "octeontx83"	if BR2_thunderxt83 && BR2_TOOLCHAIN_GCC_AT_LEAST_9
901*4882a593Smuzhiyun	default "thunderxt88"	if BR2_thunderxt88
902*4882a593Smuzhiyun	default "thunderxt88p1"	if BR2_thunderxt88p1
903*4882a593Smuzhiyun	default "xgene1"	if BR2_xgene1
904*4882a593Smuzhiyun	# armv8.1a
905*4882a593Smuzhiyun	default "thunderx2t99"	if BR2_thunderx2t99
906*4882a593Smuzhiyun	default "thunderx2t99p1"	if BR2_thunderx2t99p1
907*4882a593Smuzhiyun	default "vulcan"	if BR2_vulcan
908*4882a593Smuzhiyun	# armv8.2a
909*4882a593Smuzhiyun	default "cortex-a55"	if BR2_cortex_a55
910*4882a593Smuzhiyun	default "cortex-a75"	if BR2_cortex_a75
911*4882a593Smuzhiyun	default "cortex-a75.cortex-a55"	if BR2_cortex_a75_a55
912*4882a593Smuzhiyun	default "cortex-a76"	if BR2_cortex_a76
913*4882a593Smuzhiyun	default "cortex-a76.cortex-a55"	if BR2_cortex_a76_a55
914*4882a593Smuzhiyun	default "neoverse-n1"	if BR2_neoverse_n1
915*4882a593Smuzhiyun	default "tsv110"	if BR2_tsv110
916*4882a593Smuzhiyun	# armv8.4a
917*4882a593Smuzhiyun	default "saphira"	if BR2_saphira
918*4882a593Smuzhiyun
919*4882a593Smuzhiyunconfig BR2_GCC_TARGET_ABI
920*4882a593Smuzhiyun	default "aapcs-linux"	if BR2_arm || BR2_armeb
921*4882a593Smuzhiyun	default "lp64"		if BR2_aarch64 || BR2_aarch64_be
922*4882a593Smuzhiyun
923*4882a593Smuzhiyunconfig BR2_GCC_TARGET_FPU
924*4882a593Smuzhiyun	default ""		if BR2_ARM_FPU_AUTO
925*4882a593Smuzhiyun	default "vfp"		if BR2_ARM_FPU_VFPV2
926*4882a593Smuzhiyun	default "vfpv3"		if BR2_ARM_FPU_VFPV3
927*4882a593Smuzhiyun	default "vfpv3-d16"	if BR2_ARM_FPU_VFPV3D16
928*4882a593Smuzhiyun	default "vfpv4"		if BR2_ARM_FPU_VFPV4
929*4882a593Smuzhiyun	default "vfpv4-d16"	if BR2_ARM_FPU_VFPV4D16
930*4882a593Smuzhiyun	default "neon"		if BR2_ARM_FPU_NEON
931*4882a593Smuzhiyun	default "neon-vfpv4"	if BR2_ARM_FPU_NEON_VFPV4
932*4882a593Smuzhiyun	default "fpv4-sp-d16"   if BR2_ARM_FPU_FPV4D16
933*4882a593Smuzhiyun	default "fpv5-sp-d16"	if BR2_ARM_FPU_FPV5D16
934*4882a593Smuzhiyun	default "fpv5-d16"	if BR2_ARM_FPU_FPV5DPD16
935*4882a593Smuzhiyun	default "fp-armv8"	if BR2_ARM_FPU_FP_ARMV8
936*4882a593Smuzhiyun	default "neon-fp-armv8"	if BR2_ARM_FPU_NEON_FP_ARMV8
937*4882a593Smuzhiyun	depends on BR2_arm || BR2_armeb
938*4882a593Smuzhiyun
939*4882a593Smuzhiyunconfig BR2_GCC_TARGET_FLOAT_ABI
940*4882a593Smuzhiyun	default "soft"		if BR2_ARM_SOFT_FLOAT
941*4882a593Smuzhiyun	default "softfp"	if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABI
942*4882a593Smuzhiyun	default "hard"		if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABIHF
943*4882a593Smuzhiyun
944*4882a593Smuzhiyunconfig BR2_GCC_TARGET_MODE
945*4882a593Smuzhiyun	default "arm"		if BR2_ARM_INSTRUCTIONS_ARM
946*4882a593Smuzhiyun	default "thumb"		if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2
947*4882a593Smuzhiyun
948*4882a593Smuzhiyunconfig BR2_READELF_ARCH_NAME
949*4882a593Smuzhiyun	default "ARM"		if BR2_arm || BR2_armeb
950*4882a593Smuzhiyun	default "AArch64"	if BR2_aarch64 || BR2_aarch64_be
951*4882a593Smuzhiyun
952*4882a593Smuzhiyun# vim: ft=kconfig
953*4882a593Smuzhiyun# -*- mode:kconfig; -*-
954