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
39 comment "General target options"
41 source config.gen/arch.in
43 #--------------------------------------
44 config ARCH_SUPPORTS_BOTH_MMU
48 config ARCH_DEFAULT_HAS_MMU
54 prompt "Use the MMU" if ARCH_SUPPORTS_BOTH_MMU
55 default n if ! ARCH_DEFAULT_HAS_MMU
56 default y if ARCH_DEFAULT_HAS_MMU
58 If your architecture has an MMU and you want to use it,
61 OTOH, if you don't want to use the MMU, or your arch
62 lacks an MMU, say 'N' here.
64 Note that some architectures (eg. ARM) has variants that
65 lacks an MMU (eg. ARM Cortex-M3), while other variants
66 have one (eg. ARM Cortex-A8).
68 #--------------------------------------
69 config ARCH_SUPPORTS_BOTH_ENDIAN
73 config ARCH_DEFAULT_BE
77 config ARCH_DEFAULT_LE
84 depends on ARCH_SUPPORTS_BOTH_ENDIAN
85 default ARCH_BE if ARCH_DEFAULT_BE
86 default ARCH_LE if ARCH_DEFAULT_LE
94 prompt "Little endian"
98 #--------------------------------------
99 config ARCH_SUPPORTS_32
103 config ARCH_SUPPORTS_64
107 config ARCH_DEFAULT_32
111 config ARCH_DEFAULT_64
118 default ARCH_32 if ARCH_DEFAULT_32
119 default ARCH_64 if ARCH_DEFAULT_64
124 depends on ARCH_SUPPORTS_32
129 depends on ARCH_SUPPORTS_64
133 #--------------------------------------
134 comment "Target optimisations"
136 config ARCH_SUPPORT_ARCH
140 config ARCH_SUPPORT_ABI
144 config ARCH_SUPPORT_CPU
148 config ARCH_SUPPORT_TUNE
152 config ARCH_SUPPORT_FPU
158 prompt "Architecture level"
159 depends on ARCH_SUPPORT_ARCH
162 GCC uses this name to determine what kind of instructions it can emit
163 when generating assembly code. This option can be used in conjunction
164 with or instead of the ARCH_CPU option (above), or a (command-line)
167 This is the configuration flag --with-arch=XXXX, and the runtime flag
170 Pick a value from the gcc manual for your choosen gcc version and your
173 Leave blank if you don't know, or if your target architecture does not
178 prompt "Generate code for the specific ABI"
179 depends on ARCH_SUPPORT_ABI
182 Generate code for the given ABI.
184 This is the configuration flag --with-abi=XXXX, and the runtime flag
187 Pick a value from the gcc manual for your choosen gcc version and your
190 Leave blank if you don't know, or if your target architecutre does not
195 prompt "Emit assembly for CPU"
196 depends on ARCH_SUPPORT_CPU
199 This specifies the name of the target processor. GCC uses this name
200 to determine what kind of instructions it can emit when generating
203 This is the configuration flag --with-cpu=XXXX, and the runtime flag
206 Pick a value from the gcc manual for your choosen gcc version and your
209 Leave blank if you don't know, or if your target architecture does not
214 prompt "Tune for CPU"
215 depends on ARCH_SUPPORT_TUNE
218 This option is very similar to the ARCH_CPU option (above), except
219 that instead of specifying the actual target processor type, and hence
220 restricting which instructions can be used, it specifies that GCC should
221 tune the performance of the code as if the target were of the type
222 specified in this option, but still choosing the instructions that it
223 will generate based on the cpu specified by the ARCH_CPU option
224 (above), or a (command-line) -mcpu= option.
226 This is the configuration flag --with-tune=XXXX, and the runtime flag
229 Pick a value from the gcc manual for your choosen gcc version and your
232 Leave blank if you don't know, or if your target architecture does not
237 prompt "Use specific FPU"
238 depends on ARCH_SUPPORT_FPU
241 On some targets (eg. ARM), you can specify the kind of FPU to emit
244 This is the configuration flag --with-fpu=XXX, and the runtime flag
247 See below wether to actually emit FP opcodes, or to emulate them.
249 Pick a value from the gcc manual for your choosen gcc version and your
252 Leave blank if you don't know, or if your target architecture does not
257 prompt "Floating point:"
261 prompt "hardware (FPU)"
263 Emit hardware floating point opcodes.
265 If you've got a processor with a FPU, then you want that.
266 If your hardware has no FPU, you still can use HW floating point, but
267 need to compile support for FPU emulation in your kernel. Needless to
268 say that emulating the FPU is /slooowwwww/...
270 One situation you'd want HW floating point without a FPU is if you get
271 binary blobs from different vendors that are compiling this way and
272 can't (don't wan't to) change.
278 Do not emit any hardware floating point opcode.
280 If your processor has no FPU, then you most probably want this, as it
281 is faster than emulating the FPU in the kernel.
287 prompt "Target CFLAGS"
290 Used to add specific options when compiling libraries of the toolchain,
291 that will run on the target (eg. libc.so).
293 Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
294 automaticaly used. You don't need to specify them here.
296 Leave blank if you don't know better.
298 config TARGET_LDFLAGS
300 prompt "Target LDFLAGS"
303 Used to add specific options when linking libraries of the toolchain,
304 that will run on your target.
306 Leave blank if you don't know better.