aboutsummaryrefslogtreecommitdiff
path: root/arch/Config.in
blob: 0707c076e2ab9af4edb824f9fda54e3e2c46d0a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
menu "Target options"

config BR2_ARCH_IS_64
	bool

config BR2_KERNEL_64_USERLAND_32
	bool

config BR2_SOFT_FLOAT
	bool

config BR2_ARCH_HAS_MMU_MANDATORY
	bool

config BR2_ARCH_HAS_MMU_OPTIONAL
	bool

choice
	prompt "Target Architecture"
	default BR2_i386
	help
	  Select the target architecture family to build for.

config BR2_arcle
	bool "ARC (little endian)"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  Synopsys' DesignWare ARC Processor Cores are a family of
	  32-bit CPUs that can be used from deeply embedded to high
	  performance host applications. Little endian.

config BR2_arceb
	bool "ARC (big endian)"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  Synopsys' DesignWare ARC Processor Cores are a family of
	  32-bit CPUs that can be used from deeply embedded to high
	  performance host applications. Big endian.

config BR2_arm
	bool "ARM (little endian)"
	# MMU support is set by the subarchitecture file, arch/Config.in.arm
	help
	  ARM is a 32-bit reduced instruction set computer (RISC)
	  instruction set architecture (ISA) developed by ARM Holdings.
	  Little endian.
	  http://www.arm.com/
	  http://en.wikipedia.org/wiki/ARM

config BR2_armeb
	bool "ARM (big endian)"
	# MMU support is set by the subarchitecture file, arch/Config.in.arm
	help
	  ARM is a 32-bit reduced instruction set computer (RISC)
	  instruction set architecture (ISA) developed by ARM Holdings.
	  Big endian.
	  http://www.arm.com/
	  http://en.wikipedia.org/wiki/ARM

config BR2_aarch64
	bool "AArch64 (little endian)"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  Aarch64 is a 64-bit architecture developed by ARM Holdings.
	  http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
	  http://en.wikipedia.org/wiki/ARM

config BR2_aarch64_be
	bool "AArch64 (big endian)"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  Aarch64 is a 64-bit architecture developed by ARM Holdings.
	  http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
	  http://en.wikipedia.org/wiki/ARM

config BR2_csky
	bool "csky"
	select BR2_ARCH_HAS_MMU_MANDATORY
	# Most variants are supported by gcc-9+, except one that is
	# handled as a special exception in package/gcc/Config.in.host
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
	help
	  csky is processor IP from china.
	  http://www.c-sky.com/
	  http://www.github.com/c-sky

config BR2_i386
	bool "i386"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  Intel i386 architecture compatible microprocessor
	  http://en.wikipedia.org/wiki/I386

config BR2_m68k
	bool "m68k"
	# MMU support is set by the subarchitecture file, arch/Config.in.m68k
	help
	  Motorola 68000 family microprocessor
	  http://en.wikipedia.org/wiki/M68k

config BR2_microblazeel
	bool "Microblaze AXI (little endian)"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  Soft processor core designed for Xilinx FPGAs from Xilinx. AXI
	  bus based architecture (little endian)
	  http://www.xilinx.com
	  http://en.wikipedia.org/wiki/Microblaze

config BR2_microblazebe
	bool "Microblaze non-AXI (big endian)"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  Soft processor core designed for Xilinx FPGAs from Xilinx. PLB
	  bus based architecture (non-AXI, big endian)
	  http://www.xilinx.com
	  http://en.wikipedia.org/wiki/Microblaze

config BR2_mips
	bool "MIPS (big endian)"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  MIPS is a RISC microprocessor from MIPS Technologies. Big
	  endian.
	  http://www.mips.com/
	  http://en.wikipedia.org/wiki/MIPS_Technologies

config BR2_mipsel
	bool "MIPS (little endian)"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  MIPS is a RISC microprocessor from MIPS Technologies. Little
	  endian.
	  http://www.mips.com/
	  http://en.wikipedia.org/wiki/MIPS_Technologies

config BR2_mips64
	bool "MIPS64 (big endian)"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  MIPS is a RISC microprocessor from MIPS Technologies. Big
	  endian.
	  http://www.mips.com/
	  http://en.wikipedia.org/wiki/MIPS_Technologies

config BR2_mips64el
	bool "MIPS64 (little endian)"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  MIPS is a RISC microprocessor from MIPS Technologies. Little
	  endian.
	  http://www.mips.com/
	  http://en.wikipedia.org/wiki/MIPS_Technologies

config BR2_nds32
	bool "nds32"
	select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  nds32 is a 32-bit architecture developed by Andes Technology.
	  https://en.wikipedia.org/wiki/Andes_Technology

config BR2_nios2
	bool "Nios II"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  Nios II is a soft core processor from Altera Corporation.
	  http://www.altera.com/
	  http://en.wikipedia.org/wiki/Nios_II

config BR2_or1k
	bool "OpenRISC"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  OpenRISC is a free and open processor for embedded system.
	  http://openrisc.io

config BR2_powerpc
	bool "PowerPC"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  PowerPC is a RISC architecture created by Apple-IBM-Motorola
	  alliance. Big endian.
	  http://www.power.org/
	  http://en.wikipedia.org/wiki/Powerpc

config BR2_powerpc64
	bool "PowerPC64 (big endian)"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  PowerPC is a RISC architecture created by Apple-IBM-Motorola
	  alliance. Big endian.
	  http://www.power.org/
	  http://en.wikipedia.org/wiki/Powerpc

config BR2_powerpc64le
	bool "PowerPC64 (little endian)"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  PowerPC is a RISC architecture created by Apple-IBM-Motorola
	  alliance. Little endian.
	  http://www.power.org/
	  http://en.wikipedia.org/wiki/Powerpc

config BR2_riscv
	bool "RISCV"
	select BR2_ARCH_HAS_MMU_MANDATORY
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
	help
	  RISC-V is an open, free Instruction Set Architecture created
	  by the UC Berkeley Architecture Research group and supported
	  and promoted by RISC-V Foundation.
	  https://riscv.org/
	  https://en.wikipedia.org/wiki/RISC-V

config BR2_sh
	bool "SuperH"
	select BR2_ARCH_HAS_MMU_OPTIONAL
	help
	  SuperH (or SH) is a 32-bit reduced instruction set computer
	  (RISC) instruction set architecture (ISA) developed by
	  Hitachi.
	  http://www.hitachi.com/
	  http://en.wikipedia.org/wiki/SuperH

config BR2_sparc
	bool "SPARC"
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  SPARC (from Scalable Processor Architecture) is a RISC
	  instruction set architecture (ISA) developed by Sun
	  Microsystems.
	  http://www.oracle.com/sun
	  http://en.wikipedia.org/wiki/Sparc

config BR2_sparc64
	bool "SPARC64"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  SPARC (from Scalable Processor Architecture) is a RISC
	  instruction set architecture (ISA) developed by Sun
	  Microsystems.
	  http://www.oracle.com/sun
	  http://en.wikipedia.org/wiki/Sparc

config BR2_x86_64
	bool "x86_64"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
	  x86-64 is an extension of the x86 instruction set (Intel i386
	  architecture compatible microprocessor).
	  http://en.wikipedia.org/wiki/X86_64

config BR2_xtensa
	bool "Xtensa"
	# MMU support is set by the subarchitecture file, arch/Config.in.xtensa
	help
	  Xtensa is a Tensilica processor IP architecture.
	  http://en.wikipedia.org/wiki/Xtensa
	  http://www.tensilica.com/

endchoice

# For some architectures or specific cores, our internal toolchain
# backend is not suitable (like, missing support in upstream gcc, or
# no ChipCo fork exists...)
config BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
	bool

config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT
	bool
	default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT

# The following symbols are selected by the individual
# Config.in.$ARCH files
config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
	bool

config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
	bool
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8

config BR2_ARCH_NEEDS_GCC_AT_LEAST_5
	bool
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9

config BR2_ARCH_NEEDS_GCC_AT_LEAST_6
	bool
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_5

config BR2_ARCH_NEEDS_GCC_AT_LEAST_7
	bool
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6

config BR2_ARCH_NEEDS_GCC_AT_LEAST_8
	bool
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7

config BR2_ARCH_NEEDS_GCC_AT_LEAST_9
	bool
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_8

config BR2_ARCH_NEEDS_GCC_AT_LEAST_10
	bool
	select BR2_ARCH_NEEDS_GCC_AT_LEAST_9

# The following string values are defined by the individual
# Config.in.$ARCH files
config BR2_ARCH
	string

config BR2_ENDIAN
	string

config BR2_GCC_TARGET_ARCH
	string

config BR2_GCC_TARGET_ABI
	string

config BR2_GCC_TARGET_NAN
	string

config BR2_GCC_TARGET_FP32_MODE
	string

config BR2_GCC_TARGET_CPU
	string

# The value of this option will be passed as --with-fpu=<value> when
# building gcc (internal backend) or -mfpu=<value> in the toolchain
# wrapper (external toolchain)
config BR2_GCC_TARGET_FPU
	string

# The value of this option will be passed as --with-float=<value> when
# building gcc (internal backend) or -mfloat-abi=<value> in the toolchain
# wrapper (external toolchain)
config BR2_GCC_TARGET_FLOAT_ABI
	string

# The value of this option will be passed as --with-mode=<value> when
# building gcc (internal backend) or -m<value> in the toolchain
# wrapper (external toolchain)
config BR2_GCC_TARGET_MODE
	string

# Must be selected by binary formats that support shared libraries.
config BR2_BINFMT_SUPPORTS_SHARED
	bool

# Must match the name of the architecture from readelf point of view,
# i.e the "Machine:" field of readelf output. See get_machine_name()
# in binutils/readelf.c for the list of possible values.
config BR2_READELF_ARCH_NAME
	string

# Set up target binary format
choice
	prompt "Target Binary Format"
	default BR2_BINFMT_ELF if BR2_USE_MMU
	default BR2_BINFMT_FLAT

config BR2_BINFMT_ELF
	bool "ELF"
	depends on BR2_USE_MMU
	select BR2_BINFMT_SUPPORTS_SHARED
	help
	  ELF (Executable and Linkable Format) is a format for libraries
	  and executables used across different architectures and
	  operating systems.

config BR2_BINFMT_FLAT
	bool "FLAT"
	depends on !BR2_USE_MMU
	help
	  FLAT binary is a relatively simple and lightweight executable
	  format based on the original a.out format. It is widely used
	  in environment where no MMU is available.

endchoice

# Set up flat binary type
choice
	prompt "FLAT Binary type"
	default BR2_BINFMT_FLAT_ONE
	depends on BR2_BINFMT_FLAT

config BR2_BINFMT_FLAT_ONE
	bool "One memory region"
	help
	  All segments are linked into one memory region.

config BR2_BINFMT_FLAT_SHARED
	bool "Shared binary"
	depends on BR2_m68k
	# Even though this really generates shared binaries, there is no libdl
	# and dlopen() cannot be used. So packages that require shared
	# libraries cannot be built. Therefore, we don't select
	# BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS.
	# Although this adds -static to the compilation, that's not a problem
	# because the -mid-shared-library option overrides it.
	help
	  Allow to load and link indiviual FLAT binaries at run time.

endchoice

if BR2_arcle || BR2_arceb
source "arch/Config.in.arc"
endif

if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.arm"
endif

if BR2_csky
source "arch/Config.in.csky"
endif

if BR2_m68k
source "arch/Config.in.m68k"
endif

if BR2_microblazeel || BR2_microblazebe
source "arch/Config.in.microblaze"
endif

if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el
source "arch/Config.in.mips"
endif

if BR2_nds32
source "arch/Config.in.nds32"
endif

if BR2_nios2
source "arch/Config.in.nios2"
endif

if BR2_or1k
source "arch/Config.in.or1k"
endif

if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
source "arch/Config.in.powerpc"
endif

if BR2_riscv
source "arch/Config.in.riscv"
endif

if BR2_sh
source "arch/Config.in.sh"
endif

if BR2_sparc || BR2_sparc64
source "arch/Config.in.sparc"
endif

if BR2_i386 || BR2_x86_64
source "arch/Config.in.x86"
endif

if BR2_xtensa
source "arch/Config.in.xtensa"
endif

endmenu # Target options