]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - arch/Config.in
mbedtls: security bump to version 2.7.3
[coffee/buildroot.git] / arch / Config.in
1 menu "Target options"
2
3 config BR2_ARCH_IS_64
4         bool
5
6 config BR2_KERNEL_64_USERLAND_32
7         bool
8
9 config BR2_SOFT_FLOAT
10         bool
11
12 config BR2_ARCH_HAS_MMU_MANDATORY
13         bool
14
15 config BR2_ARCH_HAS_MMU_OPTIONAL
16         bool
17
18 config BR2_ARCH_HAS_FDPIC_SUPPORT
19         bool
20
21 choice
22         prompt "Target Architecture"
23         default BR2_i386
24         help
25           Select the target architecture family to build for.
26
27 config BR2_arcle
28         bool "ARC (little endian)"
29         select BR2_ARCH_HAS_MMU_MANDATORY
30         help
31           Synopsys' DesignWare ARC Processor Cores are a family of
32           32-bit CPUs that can be used from deeply embedded to high
33           performance host applications. Little endian.
34
35 config BR2_arceb
36         bool "ARC (big endian)"
37         select BR2_ARCH_HAS_MMU_MANDATORY
38         help
39           Synopsys' DesignWare ARC Processor Cores are a family of
40           32-bit CPUs that can be used from deeply embedded to high
41           performance host applications. Big endian.
42
43 config BR2_arm
44         bool "ARM (little endian)"
45         # MMU support is set by the subarchitecture file, arch/Config.in.arm
46         help
47           ARM is a 32-bit reduced instruction set computer (RISC)
48           instruction set architecture (ISA) developed by ARM Holdings.
49           Little endian.
50           http://www.arm.com/
51           http://en.wikipedia.org/wiki/ARM
52
53 config BR2_armeb
54         bool "ARM (big endian)"
55         # MMU support is set by the subarchitecture file, arch/Config.in.arm
56         help
57           ARM is a 32-bit reduced instruction set computer (RISC)
58           instruction set architecture (ISA) developed by ARM Holdings.
59           Big endian.
60           http://www.arm.com/
61           http://en.wikipedia.org/wiki/ARM
62
63 config BR2_aarch64
64         bool "AArch64 (little endian)"
65         select BR2_ARCH_IS_64
66         select BR2_ARCH_HAS_MMU_MANDATORY
67         help
68           Aarch64 is a 64-bit architecture developed by ARM Holdings.
69           http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
70           http://en.wikipedia.org/wiki/ARM
71
72 config BR2_aarch64_be
73         bool "AArch64 (big endian)"
74         select BR2_ARCH_IS_64
75         select BR2_ARCH_HAS_MMU_MANDATORY
76         help
77           Aarch64 is a 64-bit architecture developed by ARM Holdings.
78           http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
79           http://en.wikipedia.org/wiki/ARM
80
81 config BR2_csky
82         bool "csky"
83         select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
84         select BR2_ARCH_HAS_MMU_MANDATORY
85         help
86           csky is processor IP from china.
87           http://www.c-sky.com/
88           http://www.github.com/c-sky
89
90 config BR2_i386
91         bool "i386"
92         select BR2_ARCH_HAS_MMU_MANDATORY
93         help
94           Intel i386 architecture compatible microprocessor
95           http://en.wikipedia.org/wiki/I386
96
97 config BR2_m68k
98         bool "m68k"
99         # MMU support is set by the subarchitecture file, arch/Config.in.m68k
100         help
101           Motorola 68000 family microprocessor
102           http://en.wikipedia.org/wiki/M68k
103
104 config BR2_microblazeel
105         bool "Microblaze AXI (little endian)"
106         select BR2_ARCH_HAS_MMU_MANDATORY
107         help
108           Soft processor core designed for Xilinx FPGAs from Xilinx. AXI
109           bus based architecture (little endian)
110           http://www.xilinx.com
111           http://en.wikipedia.org/wiki/Microblaze
112
113 config BR2_microblazebe
114         bool "Microblaze non-AXI (big endian)"
115         select BR2_ARCH_HAS_MMU_MANDATORY
116         help
117           Soft processor core designed for Xilinx FPGAs from Xilinx. PLB
118           bus based architecture (non-AXI, big endian)
119           http://www.xilinx.com
120           http://en.wikipedia.org/wiki/Microblaze
121
122 config BR2_mips
123         bool "MIPS (big endian)"
124         select BR2_ARCH_HAS_MMU_MANDATORY
125         help
126           MIPS is a RISC microprocessor from MIPS Technologies. Big
127           endian.
128           http://www.mips.com/
129           http://en.wikipedia.org/wiki/MIPS_Technologies
130
131 config BR2_mipsel
132         bool "MIPS (little endian)"
133         select BR2_ARCH_HAS_MMU_MANDATORY
134         help
135           MIPS is a RISC microprocessor from MIPS Technologies. Little
136           endian.
137           http://www.mips.com/
138           http://en.wikipedia.org/wiki/MIPS_Technologies
139
140 config BR2_mips64
141         bool "MIPS64 (big endian)"
142         select BR2_ARCH_IS_64
143         select BR2_ARCH_HAS_MMU_MANDATORY
144         help
145           MIPS is a RISC microprocessor from MIPS Technologies. Big
146           endian.
147           http://www.mips.com/
148           http://en.wikipedia.org/wiki/MIPS_Technologies
149
150 config BR2_mips64el
151         bool "MIPS64 (little endian)"
152         select BR2_ARCH_IS_64
153         select BR2_ARCH_HAS_MMU_MANDATORY
154         help
155           MIPS is a RISC microprocessor from MIPS Technologies. Little
156           endian.
157           http://www.mips.com/
158           http://en.wikipedia.org/wiki/MIPS_Technologies
159
160 config BR2_nios2
161         bool "Nios II"
162         select BR2_ARCH_HAS_MMU_MANDATORY
163         help
164           Nios II is a soft core processor from Altera Corporation.
165           http://www.altera.com/
166           http://en.wikipedia.org/wiki/Nios_II
167
168 config BR2_or1k
169         bool "OpenRISC"
170         select BR2_ARCH_HAS_MMU_MANDATORY
171         help
172           OpenRISC is a free and open processor for embedded system.
173           http://openrisc.io
174
175 config BR2_powerpc
176         bool "PowerPC"
177         select BR2_ARCH_HAS_MMU_MANDATORY
178         help
179           PowerPC is a RISC architecture created by Apple-IBM-Motorola
180           alliance. Big endian.
181           http://www.power.org/
182           http://en.wikipedia.org/wiki/Powerpc
183
184 config BR2_powerpc64
185         bool "PowerPC64 (big endian)"
186         select BR2_ARCH_IS_64
187         select BR2_ARCH_HAS_MMU_MANDATORY
188         help
189           PowerPC is a RISC architecture created by Apple-IBM-Motorola
190           alliance. Big endian.
191           http://www.power.org/
192           http://en.wikipedia.org/wiki/Powerpc
193
194 config BR2_powerpc64le
195         bool "PowerPC64 (little endian)"
196         select BR2_ARCH_IS_64
197         select BR2_ARCH_HAS_MMU_MANDATORY
198         help
199           PowerPC is a RISC architecture created by Apple-IBM-Motorola
200           alliance. Little endian.
201           http://www.power.org/
202           http://en.wikipedia.org/wiki/Powerpc
203
204 config BR2_sh
205         bool "SuperH"
206         select BR2_ARCH_HAS_MMU_OPTIONAL
207         help
208           SuperH (or SH) is a 32-bit reduced instruction set computer
209           (RISC) instruction set architecture (ISA) developed by
210           Hitachi.
211           http://www.hitachi.com/
212           http://en.wikipedia.org/wiki/SuperH
213
214 config BR2_sparc
215         bool "SPARC"
216         select BR2_ARCH_HAS_MMU_MANDATORY
217         help
218           SPARC (from Scalable Processor Architecture) is a RISC
219           instruction set architecture (ISA) developed by Sun
220           Microsystems.
221           http://www.oracle.com/sun
222           http://en.wikipedia.org/wiki/Sparc
223
224 config BR2_sparc64
225         bool "SPARC64"
226         select BR2_ARCH_IS_64
227         select BR2_ARCH_HAS_MMU_MANDATORY
228         help
229           SPARC (from Scalable Processor Architecture) is a RISC
230           instruction set architecture (ISA) developed by Sun
231           Microsystems.
232           http://www.oracle.com/sun
233           http://en.wikipedia.org/wiki/Sparc
234
235 config BR2_x86_64
236         bool "x86_64"
237         select BR2_ARCH_IS_64
238         select BR2_ARCH_HAS_MMU_MANDATORY
239         help
240           x86-64 is an extension of the x86 instruction set (Intel i386
241           architecture compatible microprocessor).
242           http://en.wikipedia.org/wiki/X86_64
243
244 config BR2_xtensa
245         bool "Xtensa"
246         # MMU support is set by the subarchitecture file, arch/Config.in.xtensa
247         help
248           Xtensa is a Tensilica processor IP architecture.
249           http://en.wikipedia.org/wiki/Xtensa
250           http://www.tensilica.com/
251
252 endchoice
253
254 # For some architectures or specific cores, our internal toolchain
255 # backend is not suitable (like, missing support in upstream gcc, or
256 # no ChipCo fork exists...)
257 config BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
258         bool
259
260 config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT
261         bool
262         default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
263
264 # The following symbols are selected by the individual
265 # Config.in.$ARCH files
266 config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
267         bool
268
269 config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
270         bool
271         select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
272
273 config BR2_ARCH_NEEDS_GCC_AT_LEAST_5
274         bool
275         select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
276
277 config BR2_ARCH_NEEDS_GCC_AT_LEAST_6
278         bool
279         select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
280
281 config BR2_ARCH_NEEDS_GCC_AT_LEAST_7
282         bool
283         select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
284
285 # The following string values are defined by the individual
286 # Config.in.$ARCH files
287 config BR2_ARCH
288         string
289
290 config BR2_ENDIAN
291         string
292
293 config BR2_GCC_TARGET_ARCH
294         string
295
296 config BR2_GCC_TARGET_ABI
297         string
298
299 config BR2_GCC_TARGET_NAN
300         string
301
302 config BR2_GCC_TARGET_FP32_MODE
303         string
304
305 config BR2_GCC_TARGET_CPU
306         string
307
308 config BR2_GCC_TARGET_CPU_REVISION
309         string
310
311 # The value of this option will be passed as --with-fpu=<value> when
312 # building gcc (internal backend) or -mfpu=<value> in the toolchain
313 # wrapper (external toolchain)
314 config BR2_GCC_TARGET_FPU
315         string
316
317 # The value of this option will be passed as --with-float=<value> when
318 # building gcc (internal backend) or -mfloat-abi=<value> in the toolchain
319 # wrapper (external toolchain)
320 config BR2_GCC_TARGET_FLOAT_ABI
321         string
322
323 # The value of this option will be passed as --with-mode=<value> when
324 # building gcc (internal backend) or -m<value> in the toolchain
325 # wrapper (external toolchain)
326 config BR2_GCC_TARGET_MODE
327         string
328
329 # Must be selected by binary formats that support shared libraries.
330 config BR2_BINFMT_SUPPORTS_SHARED
331         bool
332
333 # Must match the name of the architecture from readelf point of view,
334 # i.e the "Machine:" field of readelf output. See get_machine_name()
335 # in binutils/readelf.c for the list of possible values.
336 config BR2_READELF_ARCH_NAME
337         string
338
339 # Set up target binary format
340 choice
341         prompt "Target Binary Format"
342         default BR2_BINFMT_ELF if BR2_USE_MMU
343         default BR2_BINFMT_FDPIC if BR2_ARCH_HAS_FDPIC_SUPPORT
344         default BR2_BINFMT_FLAT
345
346 config BR2_BINFMT_ELF
347         bool "ELF"
348         depends on BR2_USE_MMU
349         select BR2_BINFMT_SUPPORTS_SHARED
350         help
351           ELF (Executable and Linkable Format) is a format for libraries
352           and executables used across different architectures and
353           operating systems.
354
355 config BR2_BINFMT_FDPIC
356         bool "FDPIC"
357         depends on BR2_ARCH_HAS_FDPIC_SUPPORT
358         select BR2_BINFMT_SUPPORTS_SHARED
359         help
360           ELF FDPIC binaries are based on ELF, but allow the individual
361           load segments of a binary to be located in memory
362           independently of each other. This makes this format ideal for
363           use in environments where no MMU is available.
364
365 config BR2_BINFMT_FLAT
366         bool "FLAT"
367         depends on !BR2_USE_MMU
368         help
369           FLAT binary is a relatively simple and lightweight executable
370           format based on the original a.out format. It is widely used
371           in environment where no MMU is available.
372
373 endchoice
374
375 # Set up flat binary type
376 choice
377         prompt "FLAT Binary type"
378         default BR2_BINFMT_FLAT_ONE
379         depends on BR2_BINFMT_FLAT
380
381 config BR2_BINFMT_FLAT_ONE
382         bool "One memory region"
383         help
384           All segments are linked into one memory region.
385
386 config BR2_BINFMT_FLAT_SHARED
387         bool "Shared binary"
388         depends on BR2_m68k
389         # Even though this really generates shared binaries, there is no libdl
390         # and dlopen() cannot be used. So packages that require shared
391         # libraries cannot be built. Therefore, we don't select
392         # BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS.
393         # Although this adds -static to the compilation, that's not a problem
394         # because the -mid-shared-library option overrides it.
395         help
396           Allow to load and link indiviual FLAT binaries at run time.
397
398 endchoice
399
400 if BR2_arcle || BR2_arceb
401 source "arch/Config.in.arc"
402 endif
403
404 if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be
405 source "arch/Config.in.arm"
406 endif
407
408 if BR2_csky
409 source "arch/Config.in.csky"
410 endif
411
412 if BR2_m68k
413 source "arch/Config.in.m68k"
414 endif
415
416 if BR2_microblazeel || BR2_microblazebe
417 source "arch/Config.in.microblaze"
418 endif
419
420 if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el
421 source "arch/Config.in.mips"
422 endif
423
424 if BR2_nios2
425 source "arch/Config.in.nios2"
426 endif
427
428 if BR2_or1k
429 source "arch/Config.in.or1k"
430 endif
431
432 if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
433 source "arch/Config.in.powerpc"
434 endif
435
436 if BR2_sh
437 source "arch/Config.in.sh"
438 endif
439
440 if BR2_sparc || BR2_sparc64
441 source "arch/Config.in.sparc"
442 endif
443
444 if BR2_i386 || BR2_x86_64
445 source "arch/Config.in.x86"
446 endif
447
448 if BR2_xtensa
449 source "arch/Config.in.xtensa"
450 endif
451
452 endmenu # Target options