yann@1: # Target definition: architecture, optimisations, etc... yann@1: yann@1: menu "Target options" yann@1: yann@1: comment "General target options" yann@1: yann@47: config ARCH yann@47: string yann@47: default "arm" if ARCH_ARM yann@47: default "mips" if ARCH_MIPS yann@47: default "x86" if ARCH_x86 yann@47: default "x86_64" if ARCH_x86_64 yann@47: yann@1: choice yann@1: bool yann@1: prompt "Target architecture:" yann@1: default ARCH_x86 yann@1: yann@1: config ARCH_ARM yann@1: bool yann@1: prompt "arm" yann@136: select ARCH_SUPPORTS_BOTH_ENDIAN yann@1: yann@1: config ARCH_MIPS yann@1: bool yann@1: prompt "mips" yann@136: select ARCH_SUPPORTS_BOTH_ENDIAN yann@1: yann@1: config ARCH_x86 yann@1: bool yann@1: prompt "x86" yann@1: yann@1: config ARCH_x86_64 yann@1: bool yann@1: prompt "x86_64" yann@1: yann@1: endchoice yann@1: yann@136: config ARCH_SUPPORTS_BOTH_ENDIAN yann@35: bool yann@35: default n yann@35: yann@1: choice yann@1: bool yann@1: prompt "Endianness:" yann@136: depends on ARCH_SUPPORTS_BOTH_ENDIAN yann@1: yann@1: config ARCH_BE yann@1: bool yann@1: prompt "Big endian" yann@1: yann@1: config ARCH_LE yann@1: bool yann@1: prompt "Little endian" yann@1: yann@1: endchoice yann@1: yann@1: comment "Target optimisations" yann@1: yann@47: config ARCH_ARCH yann@47: string yann@47: prompt "Achitecture level" yann@47: default "" yann@47: help yann@47: GCC uses this name to determine what kind of instructions it can emit yann@47: when generating assembly code. This option can be used in conjunction yann@47: with or instead of the ARCH_CPU option (above), or a (command-line) yann@47: -mcpu= option. yann@47: yann@47: This is the configuration flag --with-arch=XXXX, and the runtime flag yann@47: -march=XXX. yann@47: yann@47: Pick a value from the gcc manual for your choosen gcc version and your yann@47: target CPU. yann@47: yann@47: Leave blank if you don't know, or if your target architecture does not yann@47: offer this option. yann@47: yann@45: config ARCH_ABI yann@45: string yann@45: prompt "Generate code for the specific ABI" yann@45: default "" yann@45: help yann@45: Generate code for the given ABI. yann@45: yann@47: This is the configuration flag --with-abi=XXXX, and the runtime flag yann@47: -mabi=XXX. yann@47: yann@45: Pick a value from the gcc manual for your choosen gcc version and your yann@45: target CPU. yann@45: yann@45: Leave blank if you don't know, or if your target architecutre does not yann@45: offer this option. yann@45: yann@1: config ARCH_CPU yann@1: string yann@1: prompt "Emit assembly for CPU" yann@1: default "" yann@1: help yann@283: This specifies the name of the target processor. GCC uses this name yann@1: to determine what kind of instructions it can emit when generating yann@1: assembly code. yann@1: yann@47: This is the configuration flag --with-cpu=XXXX, and the runtime flag yann@47: -mcpu=XXX. yann@47: yann@1: Pick a value from the gcc manual for your choosen gcc version and your yann@1: target CPU. yann@1: yann@1: Leave blank if you don't know, or if your target architecture does not yann@1: offer this option. yann@1: yann@1: config ARCH_TUNE yann@1: string yann@1: prompt "Tune for CPU" yann@1: default "" yann@1: help yann@1: This option is very similar to the ARCH_CPU option (above), except yann@1: that instead of specifying the actual target processor type, and hence yann@1: restricting which instructions can be used, it specifies that GCC should yann@1: tune the performance of the code as if the target were of the type yann@1: specified in this option, but still choosing the instructions that it yann@1: will generate based on the cpu specified by the ARCH_CPU option yann@1: (above), or a (command-line) -mcpu= option. yann@1: yann@47: This is the configuration flag --with-tune=XXXX, and the runtime flag yann@47: -mtune=XXX. yann@1: yann@1: Pick a value from the gcc manual for your choosen gcc version and your yann@1: target CPU. yann@1: yann@1: Leave blank if you don't know, or if your target architecture does not yann@1: offer this option. yann@1: yann@1: config ARCH_FPU yann@1: string yann@47: prompt "Use specific FPU" yann@1: default "" yann@1: help yann@1: On some targets (eg. ARM), you can specify the kind of FPU to emit yann@1: code for. yann@47: yann@47: This is the configuration flag --with-fpu=XXX, and the runtime flag yann@47: -mfpu=XXX. yann@1: yann@1: See below wether to actually emit FP opcodes, or to emulate them. yann@1: yann@1: Pick a value from the gcc manual for your choosen gcc version and your yann@1: target CPU. yann@1: yann@1: Leave blank if you don't know, or if your target architecture does not yann@1: offer this option. yann@1: yann@1: choice yann@1: bool yann@1: prompt "Floating point:" yann@1: yann@1: config ARCH_FLOAT_HW yann@1: bool yann@1: prompt "hardware (FPU)" yann@1: help yann@1: Emit hardware floating point opcodes. yann@1: yann@1: If you've got a processor with a FPU, then you want that. yann@1: If your hardware has no FPU, you still can use HW floating point, but yann@1: need to compile support for FPU emulation in your kernel. Needless to yann@1: say that emulating the FPU is /slooowwwww/... yann@1: yann@1: One situation you'd want HW floating point without a FPU is if you get yann@1: binary blobs from different vendors that are compiling this way and yann@1: can't (don't wan't to) change. yann@1: yann@1: config ARCH_FLOAT_SW yann@1: bool yann@1: prompt "software" yann@1: help yann@1: Do not emit any hardware floating point opcode. yann@1: yann@1: If your processor has no FPU, then you most probably want this, as it yann@1: is faster than emulating the FPU in the kernel. yann@1: yann@1: endchoice yann@1: yann@1: config TARGET_CFLAGS yann@1: string yann@41: prompt "Target CFLAGS" yann@1: default "" yann@1: help yann@1: Used to add specific options when compiling libraries of the toolchain, yann@1: that will run on the target (eg. libc.so). yann@1: yann@1: Note that the options above for CPU, tune, arch and FPU will be yann@1: automaticaly used. You don't need to specify them here. yann@1: yann@1: Leave blank if you don't know better. yann@1: yann@1: endmenu