config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Oct 21 23:45:55 2009 +0200 (2009-10-21)
changeset 1586 1fbb4a9d94fc
parent 1345 27fec561af53
child 1633 95c28d483690
permissions -rw-r--r--
config: add help for the MMU/noMMU entry
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