config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Sep 15 09:43:35 2008 +0000 (2008-09-15)
changeset 854 f347a40db591
parent 850 ef8549b58b6f
child 920 44dd635202a4
permissions -rw-r--r--
Make bare-metal a kernel selection.

/trunk/config/kernel.in | 22 14 8 0 ++++++++++++++--------
/trunk/config/target.in | 13 0 13 0 -------------
2 files changed, 14 insertions(+), 21 deletions(-)
     1 # Target definition: architecture, optimisations, etc...
     2 
     3 menu "Target options"
     4 
     5 config ARCH
     6     string
     7 
     8 # Pre-declare target optimisation variables
     9 config ARCH_SUPPORT_ARCH
    10 config ARCH_SUPPORT_ABI
    11 config ARCH_SUPPORT_CPU
    12 config ARCH_SUPPORT_TUNE
    13 config ARCH_SUPPORT_FPU
    14 config ARCH_SUPPORTS_BOTH_ENDIAN
    15 config ARCH_DEFAULT_BE
    16 config ARCH_DEFAULT_LE
    17 config ARCH_ARCH
    18 config ARCH_ABI
    19 config ARCH_CPU
    20 config ARCH_TUNE
    21 config ARCH_FPU
    22 config ARCH_BE
    23 config ARCH_LE
    24 config ARCH_FLOAT_HW
    25 config ARCH_FLOAT_SW
    26 config TARGET_CFLAGS
    27 config TARGET_LDFLAGS
    28 
    29 comment "General target options"
    30 
    31 choice
    32     bool
    33     prompt "Target architecture:"
    34 
    35 source config.gen/arch.in
    36 
    37 endchoice
    38 
    39 config ARCH_SUPPORTS_BOTH_ENDIAN
    40     bool
    41     default n
    42 
    43 config ARCH_DEFAULT_BE
    44     bool
    45     default n
    46 
    47 config ARCH_DEFAULT_LE
    48     bool
    49     default n
    50 
    51 choice
    52     bool
    53     prompt "Endianness:"
    54     depends on ARCH_SUPPORTS_BOTH_ENDIAN
    55     default ARCH_BE if ARCH_DEFAULT_BE
    56     default ARCH_LE if ARCH_DEFAULT_LE
    57 
    58 config ARCH_BE
    59     bool
    60     prompt "Big endian"
    61 
    62 config ARCH_LE
    63     bool
    64     prompt "Little endian"
    65 
    66 endchoice
    67 
    68 comment "Target optimisations"
    69 
    70 config ARCH_SUPPORT_ARCH
    71     bool
    72     default n
    73 
    74 config ARCH_SUPPORT_ABI
    75     bool
    76     default n
    77 
    78 config ARCH_SUPPORT_CPU
    79     bool
    80     default n
    81 
    82 config ARCH_SUPPORT_TUNE
    83     bool
    84     default n
    85 
    86 config ARCH_SUPPORT_FPU
    87     bool
    88     default n
    89 
    90 config ARCH_ARCH
    91     string
    92     prompt "Architecture level"
    93     depends on ARCH_SUPPORT_ARCH
    94     default ""
    95     help
    96       GCC uses this name to determine what kind of instructions it can emit
    97       when generating assembly code. This option can be used in conjunction
    98       with or instead of the ARCH_CPU option (above), or a (command-line)
    99       -mcpu= option.
   100       
   101       This is the configuration flag --with-arch=XXXX, and the runtime flag
   102       -march=XXX.
   103       
   104       Pick a value from the gcc manual for your choosen gcc version and your
   105       target CPU.
   106       
   107       Leave blank if you don't know, or if your target architecture does not
   108       offer this option.
   109 
   110 config ARCH_ABI
   111     string
   112     prompt "Generate code for the specific ABI"
   113     depends on ARCH_SUPPORT_ABI
   114     default ""
   115     help
   116       Generate code for the given ABI.
   117 
   118       This is the configuration flag --with-abi=XXXX, and the runtime flag
   119       -mabi=XXX.
   120 
   121       Pick a value from the gcc manual for your choosen gcc version and your
   122       target CPU.
   123 
   124       Leave blank if you don't know, or if your target architecutre does not
   125       offer this option.
   126 
   127 config ARCH_CPU
   128     string
   129     prompt "Emit assembly for CPU"
   130     depends on ARCH_SUPPORT_CPU
   131     default ""
   132     help
   133       This specifies the name of the target processor. GCC uses this name
   134       to determine what kind of instructions it can emit when generating
   135       assembly code.
   136       
   137       This is the configuration flag --with-cpu=XXXX, and the runtime flag
   138       -mcpu=XXX.
   139 
   140       Pick a value from the gcc manual for your choosen gcc version and your
   141       target CPU.
   142       
   143       Leave blank if you don't know, or if your target architecture does not
   144       offer this option.
   145 
   146 config ARCH_TUNE
   147     string
   148     prompt "Tune for CPU"
   149     depends on ARCH_SUPPORT_TUNE
   150     default ""
   151     help
   152       This option is very similar to the ARCH_CPU option (above), except
   153       that instead of specifying the actual target processor type, and hence
   154       restricting which instructions can be used, it specifies that GCC should
   155       tune the performance of the code as if the target were of the type
   156       specified in this option, but still choosing the instructions that it
   157       will generate based on the cpu specified by the ARCH_CPU option
   158       (above), or a (command-line) -mcpu= option.
   159       
   160       This is the configuration flag --with-tune=XXXX, and the runtime flag
   161       -mtune=XXX.
   162       
   163       Pick a value from the gcc manual for your choosen gcc version and your
   164       target CPU.
   165       
   166       Leave blank if you don't know, or if your target architecture does not
   167       offer this option.
   168 
   169 config ARCH_FPU
   170     string
   171     prompt "Use specific FPU"
   172     depends on ARCH_SUPPORT_FPU
   173     default ""
   174     help
   175       On some targets (eg. ARM), you can specify the kind of FPU to emit
   176       code for.
   177 
   178       This is the configuration flag --with-fpu=XXX, and the runtime flag
   179       -mfpu=XXX.
   180       
   181       See below wether to actually emit FP opcodes, or to emulate them.
   182       
   183       Pick a value from the gcc manual for your choosen gcc version and your
   184       target CPU.
   185       
   186       Leave blank if you don't know, or if your target architecture does not
   187       offer this option.
   188 
   189 choice
   190     bool
   191     prompt "Floating point:"
   192 
   193 config ARCH_FLOAT_HW
   194     bool
   195     prompt "hardware (FPU)"
   196     help
   197       Emit hardware floating point opcodes.
   198       
   199       If you've got a processor with a FPU, then you want that.
   200       If your hardware has no FPU, you still can use HW floating point, but
   201       need to compile support for FPU emulation in your kernel. Needless to
   202       say that emulating the FPU is /slooowwwww/...
   203       
   204       One situation you'd want HW floating point without a FPU is if you get
   205       binary blobs from different vendors that are compiling this way and
   206       can't (don't wan't to) change.
   207 
   208 config ARCH_FLOAT_SW
   209     bool
   210     prompt "software"
   211     help
   212       Do not emit any hardware floating point opcode.
   213       
   214       If your processor has no FPU, then you most probably want this, as it
   215       is faster than emulating the FPU in the kernel.
   216 
   217 endchoice
   218 
   219 config TARGET_CFLAGS
   220     string
   221     prompt "Target CFLAGS"
   222     default ""
   223     help
   224       Used to add specific options when compiling libraries of the toolchain,
   225       that will run on the target (eg. libc.so).
   226       
   227       Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
   228       automaticaly used. You don't need to specify them here.
   229       
   230       Leave blank if you don't know better.
   231 
   232 config TARGET_LDFLAGS
   233     string
   234     prompt "Target LDFLAGS"
   235     default ""
   236     help
   237       Used to add specific options when linking libraries of the toolchain,
   238       that will run on your target.
   239       
   240       Leave blank if you don't know better.
   241 
   242 endmenu