| # Target definition: architecture, optimisations, etc... |
| |
| menu "Target options" |
| |
| config ARCH |
| string |
| |
| # Pre-declare target optimisation variables |
| config ARCH_SUPPORTS_BOTH_MMU |
| config ARCH_SUPPORTS_BOTH_ENDIAN |
| config ARCH_SUPPORTS_32 |
| config ARCH_SUPPORTS_64 |
| config ARCH_SUPPORT_ARCH |
| config ARCH_SUPPORT_ABI |
| config ARCH_SUPPORT_CPU |
| config ARCH_SUPPORT_TUNE |
| config ARCH_SUPPORT_FPU |
| |
| config ARCH_DEFAULT_HAS_MMU |
| config ARCH_DEFAULT_BE |
| config ARCH_DEFAULT_LE |
| config ARCH_DEFAULT_32 |
| config ARCH_DEFAULT_64 |
| |
| config ARCH_ARCH |
| config ARCH_ABI |
| config ARCH_CPU |
| config ARCH_TUNE |
| config ARCH_FPU |
| config ARCH_BE |
| config ARCH_LE |
| config ARCH_32 |
| config ARCH_64 |
| config ARCH_BITNESS |
| config ARCH_FLOAT_HW |
| config ARCH_FLOAT_SW |
| config TARGET_CFLAGS |
| config TARGET_LDFLAGS |
| |
| source "config.gen/arch.in" |
| |
| #-------------------------------------- |
| comment "Generic target options" |
| |
| config ARCH_SUPPORTS_BOTH_MMU |
| bool |
| |
| config ARCH_DEFAULT_HAS_MMU |
| bool |
| |
| config ARCH_USE_MMU |
| bool |
| prompt "Use the MMU" if ARCH_SUPPORTS_BOTH_MMU |
| default y if ARCH_DEFAULT_HAS_MMU |
| help |
| If your architecture has an MMU and you want to use it, |
| say 'Y' here. |
| |
| OTOH, if you don't want to use the MMU, or your arch |
| lacks an MMU, say 'N' here. |
| |
| Note that some architectures (eg. ARM) has variants that |
| lacks an MMU (eg. ARM Cortex-M3), while other variants |
| have one (eg. ARM Cortex-A8). |
| |
| #-------------------------------------- |
| config ARCH_SUPPORTS_BOTH_ENDIAN |
| bool |
| |
| config ARCH_DEFAULT_BE |
| bool |
| |
| config ARCH_DEFAULT_LE |
| bool |
| |
| choice |
| bool |
| prompt "Endianness:" |
| depends on ARCH_SUPPORTS_BOTH_ENDIAN |
| default ARCH_BE if ARCH_DEFAULT_BE |
| default ARCH_LE if ARCH_DEFAULT_LE |
| |
| config ARCH_BE |
| bool |
| prompt "Big endian" |
| |
| config ARCH_LE |
| bool |
| prompt "Little endian" |
| |
| endchoice |
| |
| #-------------------------------------- |
| config ARCH_SUPPORTS_32 |
| bool |
| |
| config ARCH_SUPPORTS_64 |
| bool |
| |
| config ARCH_DEFAULT_32 |
| bool |
| |
| config ARCH_DEFAULT_64 |
| bool |
| |
| config ARCH_BITNESS |
| int |
| default "32" if ARCH_32 |
| default "64" if ARCH_64 |
| |
| choice |
| bool |
| prompt "Bitness:" |
| default ARCH_32 if ARCH_DEFAULT_32 |
| default ARCH_64 if ARCH_DEFAULT_64 |
| |
| config ARCH_32 |
| bool |
| prompt "32-bit" |
| depends on ARCH_SUPPORTS_32 |
| |
| config ARCH_64 |
| bool |
| prompt "64-bit" |
| depends on ARCH_SUPPORTS_64 |
| |
| endchoice |
| |
| #-------------------------------------- |
| comment "Target optimisations" |
| |
| config ARCH_SUPPORT_ARCH |
| bool |
| |
| config ARCH_SUPPORT_ABI |
| bool |
| |
| config ARCH_SUPPORT_CPU |
| bool |
| |
| config ARCH_SUPPORT_TUNE |
| bool |
| |
| config ARCH_SUPPORT_FPU |
| bool |
| |
| config ARCH_ARCH |
| string |
| prompt "Architecture level" |
| depends on ARCH_SUPPORT_ARCH |
| default "" |
| help |
| GCC uses this name to determine what kind of instructions it can emit |
| when generating assembly code. This option can be used in conjunction |
| with or instead of the ARCH_CPU option (above), or a (command-line) |
| -mcpu= option. |
| |
| This is the configuration flag --with-arch=XXXX, and the runtime flag |
| -march=XXX. |
| |
| Pick a value from the gcc manual for your choosen gcc version and your |
| target CPU. |
| |
| Leave blank if you don't know, or if your target architecture does not |
| offer this option. |
| |
| config ARCH_ABI |
| string |
| prompt "Generate code for the specific ABI" |
| depends on ARCH_SUPPORT_ABI |
| default "" |
| help |
| Generate code for the given ABI. |
| |
| This is the configuration flag --with-abi=XXXX, and the runtime flag |
| -mabi=XXX. |
| |
| Pick a value from the gcc manual for your choosen gcc version and your |
| target CPU. |
| |
| Leave blank if you don't know, or if your target architecture does not |
| offer this option. |
| |
| config ARCH_CPU |
| string |
| prompt "Emit assembly for CPU" |
| depends on ARCH_SUPPORT_CPU |
| default "" |
| help |
| This specifies the name of the target processor. GCC uses this name |
| to determine what kind of instructions it can emit when generating |
| assembly code. |
| |
| This is the configuration flag --with-cpu=XXXX, and the runtime flag |
| -mcpu=XXX. |
| |
| Pick a value from the gcc manual for your choosen gcc version and your |
| target CPU. |
| |
| Leave blank if you don't know, or if your target architecture does not |
| offer this option. |
| |
| config ARCH_TUNE |
| string |
| prompt "Tune for CPU" |
| depends on ARCH_SUPPORT_TUNE |
| default "" |
| help |
| This option is very similar to the ARCH_CPU option (above), except |
| that instead of specifying the actual target processor type, and hence |
| restricting which instructions can be used, it specifies that GCC should |
| tune the performance of the code as if the target were of the type |
| specified in this option, but still choosing the instructions that it |
| will generate based on the cpu specified by the ARCH_CPU option |
| (above), or a (command-line) -mcpu= option. |
| |
| This is the configuration flag --with-tune=XXXX, and the runtime flag |
| -mtune=XXX. |
| |
| Pick a value from the gcc manual for your choosen gcc version and your |
| target CPU. |
| |
| Leave blank if you don't know, or if your target architecture does not |
| offer this option. |
| |
| config ARCH_FPU |
| string |
| prompt "Use specific FPU" |
| depends on ARCH_SUPPORT_FPU |
| default "" |
| help |
| On some targets (eg. ARM), you can specify the kind of FPU to emit |
| code for. |
| |
| This is the configuration flag --with-fpu=XXX, and the runtime flag |
| -mfpu=XXX. |
| |
| See below wether to actually emit FP opcodes, or to emulate them. |
| |
| Pick a value from the gcc manual for your choosen gcc version and your |
| target CPU. |
| |
| Leave blank if you don't know, or if your target architecture does not |
| offer this option. |
| |
| choice |
| bool |
| prompt "Floating point:" |
| |
| config ARCH_FLOAT_HW |
| bool |
| prompt "hardware (FPU)" |
| help |
| Emit hardware floating point opcodes. |
| |
| If you've got a processor with a FPU, then you want that. |
| If your hardware has no FPU, you still can use HW floating point, but |
| need to compile support for FPU emulation in your kernel. Needless to |
| say that emulating the FPU is /slooowwwww/... |
| |
| One situation you'd want HW floating point without a FPU is if you get |
| binary blobs from different vendors that are compiling this way and |
| can't (don't wan't to) change. |
| |
| config ARCH_FLOAT_SW |
| bool |
| prompt "software" |
| help |
| Do not emit any hardware floating point opcode. |
| |
| If your processor has no FPU, then you most probably want this, as it |
| is faster than emulating the FPU in the kernel. |
| |
| endchoice |
| |
| config TARGET_CFLAGS |
| string |
| prompt "Target CFLAGS" |
| default "" |
| help |
| Used to add specific options when compiling libraries of the toolchain, |
| that will run on the target (eg. libc.so). |
| |
| Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be |
| automatically used. You don't need to specify them here. |
| |
| Leave blank if you don't know better. |
| |
| config TARGET_LDFLAGS |
| string |
| prompt "Target LDFLAGS" |
| default "" |
| help |
| Used to add specific options when linking libraries of the toolchain, |
| that will run on your target. |
| |
| Leave blank if you don't know better. |
| |
| source "config.gen/arch.in.2" |
| |
| endmenu |