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