config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Nov 10 19:32:11 2009 +0100 (2009-11-10)
changeset 1622 9ad2a3fd1fcc
parent 1345 27fec561af53
child 1633 95c28d483690
permissions -rw-r--r--
scripts: output renumbered patches in a new directory

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