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 source "config.gen/arch.in"
42 #--------------------------------------
43 comment "Generic target options"
45 config ARCH_SUPPORTS_BOTH_MMU
48 config ARCH_DEFAULT_HAS_MMU
53 prompt "Use the MMU" if ARCH_SUPPORTS_BOTH_MMU
54 default y if ARCH_DEFAULT_HAS_MMU
56 If your architecture has an MMU and you want to use it,
59 OTOH, if you don't want to use the MMU, or your arch
60 lacks an MMU, say 'N' here.
62 Note that some architectures (eg. ARM) has variants that
63 lacks an MMU (eg. ARM Cortex-M3), while other variants
64 have one (eg. ARM Cortex-A8).
66 #--------------------------------------
67 config ARCH_SUPPORTS_BOTH_ENDIAN
70 config ARCH_DEFAULT_BE
73 config ARCH_DEFAULT_LE
79 depends on ARCH_SUPPORTS_BOTH_ENDIAN
80 default ARCH_BE if ARCH_DEFAULT_BE
81 default ARCH_LE if ARCH_DEFAULT_LE
89 prompt "Little endian"
93 #--------------------------------------
94 config ARCH_SUPPORTS_32
97 config ARCH_SUPPORTS_64
100 config ARCH_DEFAULT_32
103 config ARCH_DEFAULT_64
108 default "32" if ARCH_32
109 default "64" if ARCH_64
114 default ARCH_32 if ARCH_DEFAULT_32
115 default ARCH_64 if ARCH_DEFAULT_64
120 depends on ARCH_SUPPORTS_32
125 depends on ARCH_SUPPORTS_64
129 #--------------------------------------
130 comment "Target optimisations"
132 config ARCH_SUPPORT_ARCH
135 config ARCH_SUPPORT_ABI
138 config ARCH_SUPPORT_CPU
141 config ARCH_SUPPORT_TUNE
144 config ARCH_SUPPORT_FPU
149 prompt "Architecture level"
150 depends on ARCH_SUPPORT_ARCH
153 GCC uses this name to determine what kind of instructions it can emit
154 when generating assembly code. This option can be used in conjunction
155 with or instead of the ARCH_CPU option (above), or a (command-line)
158 This is the configuration flag --with-arch=XXXX, and the runtime flag
161 Pick a value from the gcc manual for your choosen gcc version and your
164 Leave blank if you don't know, or if your target architecture does not
169 prompt "Generate code for the specific ABI"
170 depends on ARCH_SUPPORT_ABI
173 Generate code for the given ABI.
175 This is the configuration flag --with-abi=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 architecutre does not
186 prompt "Emit assembly for CPU"
187 depends on ARCH_SUPPORT_CPU
190 This specifies the name of the target processor. GCC uses this name
191 to determine what kind of instructions it can emit when generating
194 This is the configuration flag --with-cpu=XXXX, and the runtime flag
197 Pick a value from the gcc manual for your choosen gcc version and your
200 Leave blank if you don't know, or if your target architecture does not
205 prompt "Tune for CPU"
206 depends on ARCH_SUPPORT_TUNE
209 This option is very similar to the ARCH_CPU option (above), except
210 that instead of specifying the actual target processor type, and hence
211 restricting which instructions can be used, it specifies that GCC should
212 tune the performance of the code as if the target were of the type
213 specified in this option, but still choosing the instructions that it
214 will generate based on the cpu specified by the ARCH_CPU option
215 (above), or a (command-line) -mcpu= option.
217 This is the configuration flag --with-tune=XXXX, and the runtime flag
220 Pick a value from the gcc manual for your choosen gcc version and your
223 Leave blank if you don't know, or if your target architecture does not
228 prompt "Use specific FPU"
229 depends on ARCH_SUPPORT_FPU
232 On some targets (eg. ARM), you can specify the kind of FPU to emit
235 This is the configuration flag --with-fpu=XXX, and the runtime flag
238 See below wether to actually emit FP opcodes, or to emulate them.
240 Pick a value from the gcc manual for your choosen gcc version and your
243 Leave blank if you don't know, or if your target architecture does not
248 prompt "Floating point:"
252 prompt "hardware (FPU)"
254 Emit hardware floating point opcodes.
256 If you've got a processor with a FPU, then you want that.
257 If your hardware has no FPU, you still can use HW floating point, but
258 need to compile support for FPU emulation in your kernel. Needless to
259 say that emulating the FPU is /slooowwwww/...
261 One situation you'd want HW floating point without a FPU is if you get
262 binary blobs from different vendors that are compiling this way and
263 can't (don't wan't to) change.
269 Do not emit any hardware floating point opcode.
271 If your processor has no FPU, then you most probably want this, as it
272 is faster than emulating the FPU in the kernel.
278 prompt "Target CFLAGS"
281 Used to add specific options when compiling libraries of the toolchain,
282 that will run on the target (eg. libc.so).
284 Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
285 automaticaly used. You don't need to specify them here.
287 Leave blank if you don't know better.
289 config TARGET_LDFLAGS
291 prompt "Target LDFLAGS"
294 Used to add specific options when linking libraries of the toolchain,
295 that will run on your target.
297 Leave blank if you don't know better.
299 source "config.gen/arch.in.2"