1 # Target definition: architecture, optimisations, etc...
8 # Note: when all archs have migrated to the 32/64 bit selection,
9 # remove this option, and rename the config options in the bitness
15 # Pre-declare target optimisation variables
16 config ARCH_SUPPORTS_BOTH_MMU
17 config ARCH_SUPPORTS_BOTH_ENDIAN
18 config ARCH_SUPPORTS_32
19 config ARCH_SUPPORTS_64
20 config ARCH_SUPPORT_ARCH
21 config ARCH_SUPPORT_ABI
22 config ARCH_SUPPORT_CPU
23 config ARCH_SUPPORT_TUNE
24 config ARCH_SUPPORT_FPU
26 config ARCH_DEFAULT_HAS_MMU
27 config ARCH_DEFAULT_BE
28 config ARCH_DEFAULT_LE
29 config ARCH_DEFAULT_32
30 config ARCH_DEFAULT_64
46 comment "General target options"
48 source config.gen/arch.in
50 #--------------------------------------
51 config ARCH_SUPPORTS_BOTH_MMU
55 config ARCH_DEFAULT_HAS_MMU
61 prompt "Use the MMU" if ARCH_SUPPORTS_BOTH_MMU
62 default n if ! ARCH_DEFAULT_HAS_MMU
63 default y if ARCH_DEFAULT_HAS_MMU
65 If your architecture has an MMU and you want to use it,
68 OTOH, if you don't want to use the MMU, or your arch
69 lacks an MMU, say 'N' here.
71 Note that some architectures (eg. ARM) has variants that
72 lacks an MMU (eg. ARM Cortex-M3), while other variants
73 have one (eg. ARM Cortex-A8).
75 #--------------------------------------
76 config ARCH_SUPPORTS_BOTH_ENDIAN
80 config ARCH_DEFAULT_BE
84 config ARCH_DEFAULT_LE
91 depends on ARCH_SUPPORTS_BOTH_ENDIAN
92 default ARCH_BE if ARCH_DEFAULT_BE
93 default ARCH_LE if ARCH_DEFAULT_LE
101 prompt "Little endian"
105 #--------------------------------------
106 config ARCH_SUPPORTS_32
110 config ARCH_SUPPORTS_64
114 config ARCH_DEFAULT_32
118 config ARCH_DEFAULT_64
125 default ARCH_32b if ARCH_DEFAULT_32
126 default ARCH_64b if ARCH_DEFAULT_64
131 depends on ARCH_SUPPORTS_32
136 depends on ARCH_SUPPORTS_64
141 #--------------------------------------
142 comment "Target optimisations"
144 config ARCH_SUPPORT_ARCH
148 config ARCH_SUPPORT_ABI
152 config ARCH_SUPPORT_CPU
156 config ARCH_SUPPORT_TUNE
160 config ARCH_SUPPORT_FPU
166 prompt "Architecture level"
167 depends on ARCH_SUPPORT_ARCH
170 GCC uses this name to determine what kind of instructions it can emit
171 when generating assembly code. This option can be used in conjunction
172 with or instead of the ARCH_CPU option (above), or a (command-line)
175 This is the configuration flag --with-arch=XXXX, and the runtime flag
178 Pick a value from the gcc manual for your choosen gcc version and your
181 Leave blank if you don't know, or if your target architecture does not
186 prompt "Generate code for the specific ABI"
187 depends on ARCH_SUPPORT_ABI
190 Generate code for the given ABI.
192 This is the configuration flag --with-abi=XXXX, and the runtime flag
195 Pick a value from the gcc manual for your choosen gcc version and your
198 Leave blank if you don't know, or if your target architecutre does not
203 prompt "Emit assembly for CPU"
204 depends on ARCH_SUPPORT_CPU
207 This specifies the name of the target processor. GCC uses this name
208 to determine what kind of instructions it can emit when generating
211 This is the configuration flag --with-cpu=XXXX, and the runtime flag
214 Pick a value from the gcc manual for your choosen gcc version and your
217 Leave blank if you don't know, or if your target architecture does not
222 prompt "Tune for CPU"
223 depends on ARCH_SUPPORT_TUNE
226 This option is very similar to the ARCH_CPU option (above), except
227 that instead of specifying the actual target processor type, and hence
228 restricting which instructions can be used, it specifies that GCC should
229 tune the performance of the code as if the target were of the type
230 specified in this option, but still choosing the instructions that it
231 will generate based on the cpu specified by the ARCH_CPU option
232 (above), or a (command-line) -mcpu= option.
234 This is the configuration flag --with-tune=XXXX, and the runtime flag
237 Pick a value from the gcc manual for your choosen gcc version and your
240 Leave blank if you don't know, or if your target architecture does not
245 prompt "Use specific FPU"
246 depends on ARCH_SUPPORT_FPU
249 On some targets (eg. ARM), you can specify the kind of FPU to emit
252 This is the configuration flag --with-fpu=XXX, and the runtime flag
255 See below wether to actually emit FP opcodes, or to emulate them.
257 Pick a value from the gcc manual for your choosen gcc version and your
260 Leave blank if you don't know, or if your target architecture does not
265 prompt "Floating point:"
269 prompt "hardware (FPU)"
271 Emit hardware floating point opcodes.
273 If you've got a processor with a FPU, then you want that.
274 If your hardware has no FPU, you still can use HW floating point, but
275 need to compile support for FPU emulation in your kernel. Needless to
276 say that emulating the FPU is /slooowwwww/...
278 One situation you'd want HW floating point without a FPU is if you get
279 binary blobs from different vendors that are compiling this way and
280 can't (don't wan't to) change.
286 Do not emit any hardware floating point opcode.
288 If your processor has no FPU, then you most probably want this, as it
289 is faster than emulating the FPU in the kernel.
295 prompt "Target CFLAGS"
298 Used to add specific options when compiling libraries of the toolchain,
299 that will run on the target (eg. libc.so).
301 Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
302 automaticaly used. You don't need to specify them here.
304 Leave blank if you don't know better.
306 config TARGET_LDFLAGS
308 prompt "Target LDFLAGS"
311 Used to add specific options when linking libraries of the toolchain,
312 that will run on your target.
314 Leave blank if you don't know better.