1 # Target definition: architecture, optimisations, etc...
8 # Pre-declare target optimisation variables
9 config ARCH_SUPPORTS_BOTH_MMU
10 config ARCH_SUPPORTS_BOTH_ENDIAN
11 config ARCH_SUPPORTS_32
12 config ARCH_SUPPORTS_64
13 config ARCH_SUPPORT_ARCH
14 config ARCH_SUPPORT_ABI
15 config ARCH_SUPPORT_CPU
16 config ARCH_SUPPORT_TUNE
17 config ARCH_SUPPORT_FPU
19 config ARCH_DEFAULT_HAS_MMU
20 config ARCH_DEFAULT_BE
21 config ARCH_DEFAULT_LE
22 config ARCH_DEFAULT_32
23 config ARCH_DEFAULT_64
40 comment "General target options"
42 source "config.gen/arch.in"
44 #--------------------------------------
45 config ARCH_SUPPORTS_BOTH_MMU
49 config ARCH_DEFAULT_HAS_MMU
55 prompt "Use the MMU" if ARCH_SUPPORTS_BOTH_MMU
56 default n if ! ARCH_DEFAULT_HAS_MMU
57 default y if ARCH_DEFAULT_HAS_MMU
59 If your architecture has an MMU and you want to use it,
62 OTOH, if you don't want to use the MMU, or your arch
63 lacks an MMU, say 'N' here.
65 Note that some architectures (eg. ARM) has variants that
66 lacks an MMU (eg. ARM Cortex-M3), while other variants
67 have one (eg. ARM Cortex-A8).
69 #--------------------------------------
70 config ARCH_SUPPORTS_BOTH_ENDIAN
74 config ARCH_DEFAULT_BE
78 config ARCH_DEFAULT_LE
85 depends on ARCH_SUPPORTS_BOTH_ENDIAN
86 default ARCH_BE if ARCH_DEFAULT_BE
87 default ARCH_LE if ARCH_DEFAULT_LE
95 prompt "Little endian"
99 #--------------------------------------
100 config ARCH_SUPPORTS_32
104 config ARCH_SUPPORTS_64
108 config ARCH_DEFAULT_32
112 config ARCH_DEFAULT_64
118 default "32" if ARCH_32
119 default "64" if ARCH_64
124 default ARCH_32 if ARCH_DEFAULT_32
125 default ARCH_64 if ARCH_DEFAULT_64
130 depends on ARCH_SUPPORTS_32
135 depends on ARCH_SUPPORTS_64
139 #--------------------------------------
140 comment "Target optimisations"
142 config ARCH_SUPPORT_ARCH
146 config ARCH_SUPPORT_ABI
150 config ARCH_SUPPORT_CPU
154 config ARCH_SUPPORT_TUNE
158 config ARCH_SUPPORT_FPU
164 prompt "Architecture level"
165 depends on ARCH_SUPPORT_ARCH
168 GCC uses this name to determine what kind of instructions it can emit
169 when generating assembly code. This option can be used in conjunction
170 with or instead of the ARCH_CPU option (above), or a (command-line)
173 This is the configuration flag --with-arch=XXXX, and the runtime flag
176 Pick a value from the gcc manual for your choosen gcc version and your
179 Leave blank if you don't know, or if your target architecture does not
184 prompt "Generate code for the specific ABI"
185 depends on ARCH_SUPPORT_ABI
188 Generate code for the given ABI.
190 This is the configuration flag --with-abi=XXXX, and the runtime flag
193 Pick a value from the gcc manual for your choosen gcc version and your
196 Leave blank if you don't know, or if your target architecutre does not
201 prompt "Emit assembly for CPU"
202 depends on ARCH_SUPPORT_CPU
205 This specifies the name of the target processor. GCC uses this name
206 to determine what kind of instructions it can emit when generating
209 This is the configuration flag --with-cpu=XXXX, and the runtime flag
212 Pick a value from the gcc manual for your choosen gcc version and your
215 Leave blank if you don't know, or if your target architecture does not
220 prompt "Tune for CPU"
221 depends on ARCH_SUPPORT_TUNE
224 This option is very similar to the ARCH_CPU option (above), except
225 that instead of specifying the actual target processor type, and hence
226 restricting which instructions can be used, it specifies that GCC should
227 tune the performance of the code as if the target were of the type
228 specified in this option, but still choosing the instructions that it
229 will generate based on the cpu specified by the ARCH_CPU option
230 (above), or a (command-line) -mcpu= option.
232 This is the configuration flag --with-tune=XXXX, and the runtime flag
235 Pick a value from the gcc manual for your choosen gcc version and your
238 Leave blank if you don't know, or if your target architecture does not
243 prompt "Use specific FPU"
244 depends on ARCH_SUPPORT_FPU
247 On some targets (eg. ARM), you can specify the kind of FPU to emit
250 This is the configuration flag --with-fpu=XXX, and the runtime flag
253 See below wether to actually emit FP opcodes, or to emulate them.
255 Pick a value from the gcc manual for your choosen gcc version and your
258 Leave blank if you don't know, or if your target architecture does not
263 prompt "Floating point:"
267 prompt "hardware (FPU)"
269 Emit hardware floating point opcodes.
271 If you've got a processor with a FPU, then you want that.
272 If your hardware has no FPU, you still can use HW floating point, but
273 need to compile support for FPU emulation in your kernel. Needless to
274 say that emulating the FPU is /slooowwwww/...
276 One situation you'd want HW floating point without a FPU is if you get
277 binary blobs from different vendors that are compiling this way and
278 can't (don't wan't to) change.
284 Do not emit any hardware floating point opcode.
286 If your processor has no FPU, then you most probably want this, as it
287 is faster than emulating the FPU in the kernel.
293 prompt "Target CFLAGS"
296 Used to add specific options when compiling libraries of the toolchain,
297 that will run on the target (eg. libc.so).
299 Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
300 automaticaly used. You don't need to specify them here.
302 Leave blank if you don't know better.
304 config TARGET_LDFLAGS
306 prompt "Target LDFLAGS"
309 Used to add specific options when linking libraries of the toolchain,
310 that will run on your target.
312 Leave blank if you don't know better.
314 source "config.gen/arch.in.2"