| .. | .. |
|---|
| 4 | 4 | prompt "Processor family" |
|---|
| 5 | 5 | default M686 if X86_32 |
|---|
| 6 | 6 | default GENERIC_CPU if X86_64 |
|---|
| 7 | | - ---help--- |
|---|
| 7 | + help |
|---|
| 8 | 8 | This is the processor type of your CPU. This information is |
|---|
| 9 | 9 | used for optimizing purposes. In order to compile a kernel |
|---|
| 10 | 10 | that can run on all supported x86 CPU types (albeit not |
|---|
| .. | .. |
|---|
| 50 | 50 | See each option's help text for additional details. If you don't know |
|---|
| 51 | 51 | what to do, choose "486". |
|---|
| 52 | 52 | |
|---|
| 53 | | -config M486 |
|---|
| 54 | | - bool "486" |
|---|
| 53 | +config M486SX |
|---|
| 54 | + bool "486SX" |
|---|
| 55 | 55 | depends on X86_32 |
|---|
| 56 | | - ---help--- |
|---|
| 56 | + help |
|---|
| 57 | + Select this for an 486-class CPU without an FPU such as |
|---|
| 58 | + AMD/Cyrix/IBM/Intel SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5S. |
|---|
| 59 | + |
|---|
| 60 | +config M486 |
|---|
| 61 | + bool "486DX" |
|---|
| 62 | + depends on X86_32 |
|---|
| 63 | + help |
|---|
| 57 | 64 | Select this for an 486-class CPU such as AMD/Cyrix/IBM/Intel |
|---|
| 58 | | - 486DX/DX2/DX4 or SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S. |
|---|
| 65 | + 486DX/DX2/DX4 and UMC U5D. |
|---|
| 59 | 66 | |
|---|
| 60 | 67 | config M586 |
|---|
| 61 | 68 | bool "586/K5/5x86/6x86/6x86MX" |
|---|
| 62 | 69 | depends on X86_32 |
|---|
| 63 | | - ---help--- |
|---|
| 70 | + help |
|---|
| 64 | 71 | Select this for an 586 or 686 series processor such as the AMD K5, |
|---|
| 65 | 72 | the Cyrix 5x86, 6x86 and 6x86MX. This choice does not |
|---|
| 66 | 73 | assume the RDTSC (Read Time Stamp Counter) instruction. |
|---|
| .. | .. |
|---|
| 68 | 75 | config M586TSC |
|---|
| 69 | 76 | bool "Pentium-Classic" |
|---|
| 70 | 77 | depends on X86_32 |
|---|
| 71 | | - ---help--- |
|---|
| 78 | + help |
|---|
| 72 | 79 | Select this for a Pentium Classic processor with the RDTSC (Read |
|---|
| 73 | 80 | Time Stamp Counter) instruction for benchmarking. |
|---|
| 74 | 81 | |
|---|
| 75 | 82 | config M586MMX |
|---|
| 76 | 83 | bool "Pentium-MMX" |
|---|
| 77 | 84 | depends on X86_32 |
|---|
| 78 | | - ---help--- |
|---|
| 85 | + help |
|---|
| 79 | 86 | Select this for a Pentium with the MMX graphics/multimedia |
|---|
| 80 | 87 | extended instructions. |
|---|
| 81 | 88 | |
|---|
| 82 | 89 | config M686 |
|---|
| 83 | 90 | bool "Pentium-Pro" |
|---|
| 84 | 91 | depends on X86_32 |
|---|
| 85 | | - ---help--- |
|---|
| 92 | + help |
|---|
| 86 | 93 | Select this for Intel Pentium Pro chips. This enables the use of |
|---|
| 87 | 94 | Pentium Pro extended instructions, and disables the init-time guard |
|---|
| 88 | 95 | against the f00f bug found in earlier Pentiums. |
|---|
| .. | .. |
|---|
| 90 | 97 | config MPENTIUMII |
|---|
| 91 | 98 | bool "Pentium-II/Celeron(pre-Coppermine)" |
|---|
| 92 | 99 | depends on X86_32 |
|---|
| 93 | | - ---help--- |
|---|
| 100 | + help |
|---|
| 94 | 101 | Select this for Intel chips based on the Pentium-II and |
|---|
| 95 | 102 | pre-Coppermine Celeron core. This option enables an unaligned |
|---|
| 96 | 103 | copy optimization, compiles the kernel with optimization flags |
|---|
| .. | .. |
|---|
| 100 | 107 | config MPENTIUMIII |
|---|
| 101 | 108 | bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" |
|---|
| 102 | 109 | depends on X86_32 |
|---|
| 103 | | - ---help--- |
|---|
| 110 | + help |
|---|
| 104 | 111 | Select this for Intel chips based on the Pentium-III and |
|---|
| 105 | 112 | Celeron-Coppermine core. This option enables use of some |
|---|
| 106 | 113 | extended prefetch instructions in addition to the Pentium II |
|---|
| .. | .. |
|---|
| 109 | 116 | config MPENTIUMM |
|---|
| 110 | 117 | bool "Pentium M" |
|---|
| 111 | 118 | depends on X86_32 |
|---|
| 112 | | - ---help--- |
|---|
| 119 | + help |
|---|
| 113 | 120 | Select this for Intel Pentium M (not Pentium-4 M) |
|---|
| 114 | 121 | notebook chips. |
|---|
| 115 | 122 | |
|---|
| 116 | 123 | config MPENTIUM4 |
|---|
| 117 | 124 | bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon" |
|---|
| 118 | 125 | depends on X86_32 |
|---|
| 119 | | - ---help--- |
|---|
| 126 | + help |
|---|
| 120 | 127 | Select this for Intel Pentium 4 chips. This includes the |
|---|
| 121 | 128 | Pentium 4, Pentium D, P4-based Celeron and Xeon, and |
|---|
| 122 | 129 | Pentium-4 M (not Pentium M) chips. This option enables compile |
|---|
| .. | .. |
|---|
| 152 | 159 | config MK6 |
|---|
| 153 | 160 | bool "K6/K6-II/K6-III" |
|---|
| 154 | 161 | depends on X86_32 |
|---|
| 155 | | - ---help--- |
|---|
| 162 | + help |
|---|
| 156 | 163 | Select this for an AMD K6-family processor. Enables use of |
|---|
| 157 | 164 | some extended instructions, and passes appropriate optimization |
|---|
| 158 | 165 | flags to GCC. |
|---|
| .. | .. |
|---|
| 160 | 167 | config MK7 |
|---|
| 161 | 168 | bool "Athlon/Duron/K7" |
|---|
| 162 | 169 | depends on X86_32 |
|---|
| 163 | | - ---help--- |
|---|
| 170 | + help |
|---|
| 164 | 171 | Select this for an AMD Athlon K7-family processor. Enables use of |
|---|
| 165 | 172 | some extended instructions, and passes appropriate optimization |
|---|
| 166 | 173 | flags to GCC. |
|---|
| 167 | 174 | |
|---|
| 168 | 175 | config MK8 |
|---|
| 169 | 176 | bool "Opteron/Athlon64/Hammer/K8" |
|---|
| 170 | | - ---help--- |
|---|
| 177 | + help |
|---|
| 171 | 178 | Select this for an AMD Opteron or Athlon64 Hammer-family processor. |
|---|
| 172 | 179 | Enables use of some extended instructions, and passes appropriate |
|---|
| 173 | 180 | optimization flags to GCC. |
|---|
| .. | .. |
|---|
| 175 | 182 | config MCRUSOE |
|---|
| 176 | 183 | bool "Crusoe" |
|---|
| 177 | 184 | depends on X86_32 |
|---|
| 178 | | - ---help--- |
|---|
| 185 | + help |
|---|
| 179 | 186 | Select this for a Transmeta Crusoe processor. Treats the processor |
|---|
| 180 | 187 | like a 586 with TSC, and sets some GCC optimization flags (like a |
|---|
| 181 | 188 | Pentium Pro with no alignment requirements). |
|---|
| .. | .. |
|---|
| 183 | 190 | config MEFFICEON |
|---|
| 184 | 191 | bool "Efficeon" |
|---|
| 185 | 192 | depends on X86_32 |
|---|
| 186 | | - ---help--- |
|---|
| 193 | + help |
|---|
| 187 | 194 | Select this for a Transmeta Efficeon processor. |
|---|
| 188 | 195 | |
|---|
| 189 | 196 | config MWINCHIPC6 |
|---|
| 190 | 197 | bool "Winchip-C6" |
|---|
| 191 | 198 | depends on X86_32 |
|---|
| 192 | | - ---help--- |
|---|
| 199 | + help |
|---|
| 193 | 200 | Select this for an IDT Winchip C6 chip. Linux and GCC |
|---|
| 194 | 201 | treat this chip as a 586TSC with some extended instructions |
|---|
| 195 | 202 | and alignment requirements. |
|---|
| .. | .. |
|---|
| 197 | 204 | config MWINCHIP3D |
|---|
| 198 | 205 | bool "Winchip-2/Winchip-2A/Winchip-3" |
|---|
| 199 | 206 | depends on X86_32 |
|---|
| 200 | | - ---help--- |
|---|
| 207 | + help |
|---|
| 201 | 208 | Select this for an IDT Winchip-2, 2A or 3. Linux and GCC |
|---|
| 202 | 209 | treat this chip as a 586TSC with some extended instructions |
|---|
| 203 | 210 | and alignment requirements. Also enable out of order memory |
|---|
| .. | .. |
|---|
| 207 | 214 | config MELAN |
|---|
| 208 | 215 | bool "AMD Elan" |
|---|
| 209 | 216 | depends on X86_32 |
|---|
| 210 | | - ---help--- |
|---|
| 217 | + help |
|---|
| 211 | 218 | Select this for an AMD Elan processor. |
|---|
| 212 | 219 | |
|---|
| 213 | 220 | Do not use this option for K6/Athlon/Opteron processors! |
|---|
| .. | .. |
|---|
| 215 | 222 | config MGEODEGX1 |
|---|
| 216 | 223 | bool "GeodeGX1" |
|---|
| 217 | 224 | depends on X86_32 |
|---|
| 218 | | - ---help--- |
|---|
| 225 | + help |
|---|
| 219 | 226 | Select this for a Geode GX1 (Cyrix MediaGX) chip. |
|---|
| 220 | 227 | |
|---|
| 221 | 228 | config MGEODE_LX |
|---|
| 222 | 229 | bool "Geode GX/LX" |
|---|
| 223 | 230 | depends on X86_32 |
|---|
| 224 | | - ---help--- |
|---|
| 231 | + help |
|---|
| 225 | 232 | Select this for AMD Geode GX and LX processors. |
|---|
| 226 | 233 | |
|---|
| 227 | 234 | config MCYRIXIII |
|---|
| 228 | 235 | bool "CyrixIII/VIA-C3" |
|---|
| 229 | 236 | depends on X86_32 |
|---|
| 230 | | - ---help--- |
|---|
| 237 | + help |
|---|
| 231 | 238 | Select this for a Cyrix III or C3 chip. Presently Linux and GCC |
|---|
| 232 | 239 | treat this chip as a generic 586. Whilst the CPU is 686 class, |
|---|
| 233 | 240 | it lacks the cmov extension which gcc assumes is present when |
|---|
| .. | .. |
|---|
| 239 | 246 | config MVIAC3_2 |
|---|
| 240 | 247 | bool "VIA C3-2 (Nehemiah)" |
|---|
| 241 | 248 | depends on X86_32 |
|---|
| 242 | | - ---help--- |
|---|
| 249 | + help |
|---|
| 243 | 250 | Select this for a VIA C3 "Nehemiah". Selecting this enables usage |
|---|
| 244 | 251 | of SSE and tells gcc to treat the CPU as a 686. |
|---|
| 245 | 252 | Note, this kernel will not boot on older (pre model 9) C3s. |
|---|
| .. | .. |
|---|
| 247 | 254 | config MVIAC7 |
|---|
| 248 | 255 | bool "VIA C7" |
|---|
| 249 | 256 | depends on X86_32 |
|---|
| 250 | | - ---help--- |
|---|
| 257 | + help |
|---|
| 251 | 258 | Select this for a VIA C7. Selecting this uses the correct cache |
|---|
| 252 | 259 | shift and tells gcc to treat the CPU as a 686. |
|---|
| 253 | 260 | |
|---|
| 254 | 261 | config MPSC |
|---|
| 255 | 262 | bool "Intel P4 / older Netburst based Xeon" |
|---|
| 256 | 263 | depends on X86_64 |
|---|
| 257 | | - ---help--- |
|---|
| 264 | + help |
|---|
| 258 | 265 | Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey |
|---|
| 259 | 266 | Xeon CPUs with Intel 64bit which is compatible with x86-64. |
|---|
| 260 | 267 | Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the |
|---|
| .. | .. |
|---|
| 264 | 271 | |
|---|
| 265 | 272 | config MCORE2 |
|---|
| 266 | 273 | bool "Core 2/newer Xeon" |
|---|
| 267 | | - ---help--- |
|---|
| 274 | + help |
|---|
| 268 | 275 | |
|---|
| 269 | 276 | Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and |
|---|
| 270 | 277 | 53xx) CPUs. You can distinguish newer from older Xeons by the CPU |
|---|
| .. | .. |
|---|
| 273 | 280 | |
|---|
| 274 | 281 | config MATOM |
|---|
| 275 | 282 | bool "Intel Atom" |
|---|
| 276 | | - ---help--- |
|---|
| 283 | + help |
|---|
| 277 | 284 | |
|---|
| 278 | 285 | Select this for the Intel Atom platform. Intel Atom CPUs have an |
|---|
| 279 | 286 | in-order pipelining architecture and thus can benefit from |
|---|
| .. | .. |
|---|
| 283 | 290 | config GENERIC_CPU |
|---|
| 284 | 291 | bool "Generic-x86-64" |
|---|
| 285 | 292 | depends on X86_64 |
|---|
| 286 | | - ---help--- |
|---|
| 293 | + help |
|---|
| 287 | 294 | Generic x86-64 CPU. |
|---|
| 288 | 295 | Run equally well on all x86-64 CPUs. |
|---|
| 289 | 296 | |
|---|
| .. | .. |
|---|
| 292 | 299 | config X86_GENERIC |
|---|
| 293 | 300 | bool "Generic x86 support" |
|---|
| 294 | 301 | depends on X86_32 |
|---|
| 295 | | - ---help--- |
|---|
| 302 | + help |
|---|
| 296 | 303 | Instead of just including optimizations for the selected |
|---|
| 297 | 304 | x86 variant (e.g. PII, Crusoe or Athlon), include some more |
|---|
| 298 | 305 | generic optimizations as well. This will make the kernel |
|---|
| .. | .. |
|---|
| 312 | 319 | int |
|---|
| 313 | 320 | default "7" if MPENTIUM4 || MPSC |
|---|
| 314 | 321 | default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU |
|---|
| 315 | | - default "4" if MELAN || M486 || MGEODEGX1 |
|---|
| 322 | + default "4" if MELAN || M486SX || M486 || MGEODEGX1 |
|---|
| 316 | 323 | default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX |
|---|
| 317 | 324 | |
|---|
| 318 | 325 | config X86_F00F_BUG |
|---|
| 319 | 326 | def_bool y |
|---|
| 320 | | - depends on M586MMX || M586TSC || M586 || M486 |
|---|
| 327 | + depends on M586MMX || M586TSC || M586 || M486SX || M486 |
|---|
| 321 | 328 | |
|---|
| 322 | 329 | config X86_INVD_BUG |
|---|
| 323 | 330 | def_bool y |
|---|
| 324 | | - depends on M486 |
|---|
| 331 | + depends on M486SX || M486 |
|---|
| 325 | 332 | |
|---|
| 326 | 333 | config X86_ALIGNMENT_16 |
|---|
| 327 | 334 | def_bool y |
|---|
| 328 | | - depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1 |
|---|
| 335 | + depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486SX || M486 || MVIAC3_2 || MGEODEGX1 |
|---|
| 329 | 336 | |
|---|
| 330 | 337 | config X86_INTEL_USERCOPY |
|---|
| 331 | 338 | def_bool y |
|---|
| .. | .. |
|---|
| 378 | 385 | |
|---|
| 379 | 386 | config X86_DEBUGCTLMSR |
|---|
| 380 | 387 | def_bool y |
|---|
| 381 | | - depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486) && !UML |
|---|
| 388 | + depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486SX || M486) && !UML |
|---|
| 389 | + |
|---|
| 390 | +config IA32_FEAT_CTL |
|---|
| 391 | + def_bool y |
|---|
| 392 | + depends on CPU_SUP_INTEL || CPU_SUP_CENTAUR || CPU_SUP_ZHAOXIN |
|---|
| 393 | + |
|---|
| 394 | +config X86_VMX_FEATURE_NAMES |
|---|
| 395 | + def_bool y |
|---|
| 396 | + depends on IA32_FEAT_CTL && X86_FEATURE_NAMES |
|---|
| 382 | 397 | |
|---|
| 383 | 398 | menuconfig PROCESSOR_SELECT |
|---|
| 384 | 399 | bool "Supported processor vendors" if EXPERT |
|---|
| 385 | | - ---help--- |
|---|
| 400 | + help |
|---|
| 386 | 401 | This lets you choose what x86 vendor support code your kernel |
|---|
| 387 | 402 | will include. |
|---|
| 388 | 403 | |
|---|
| 389 | 404 | config CPU_SUP_INTEL |
|---|
| 390 | 405 | default y |
|---|
| 391 | 406 | bool "Support Intel processors" if PROCESSOR_SELECT |
|---|
| 392 | | - ---help--- |
|---|
| 407 | + help |
|---|
| 393 | 408 | This enables detection, tunings and quirks for Intel processors |
|---|
| 394 | 409 | |
|---|
| 395 | 410 | You need this enabled if you want your kernel to run on an |
|---|
| .. | .. |
|---|
| 402 | 417 | config CPU_SUP_CYRIX_32 |
|---|
| 403 | 418 | default y |
|---|
| 404 | 419 | bool "Support Cyrix processors" if PROCESSOR_SELECT |
|---|
| 405 | | - depends on M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT) |
|---|
| 406 | | - ---help--- |
|---|
| 420 | + depends on M486SX || M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT) |
|---|
| 421 | + help |
|---|
| 407 | 422 | This enables detection, tunings and quirks for Cyrix processors |
|---|
| 408 | 423 | |
|---|
| 409 | 424 | You need this enabled if you want your kernel to run on a |
|---|
| .. | .. |
|---|
| 416 | 431 | config CPU_SUP_AMD |
|---|
| 417 | 432 | default y |
|---|
| 418 | 433 | bool "Support AMD processors" if PROCESSOR_SELECT |
|---|
| 419 | | - ---help--- |
|---|
| 434 | + help |
|---|
| 420 | 435 | This enables detection, tunings and quirks for AMD processors |
|---|
| 421 | 436 | |
|---|
| 422 | 437 | You need this enabled if you want your kernel to run on an |
|---|
| .. | .. |
|---|
| 426 | 441 | |
|---|
| 427 | 442 | If unsure, say N. |
|---|
| 428 | 443 | |
|---|
| 444 | +config CPU_SUP_HYGON |
|---|
| 445 | + default y |
|---|
| 446 | + bool "Support Hygon processors" if PROCESSOR_SELECT |
|---|
| 447 | + select CPU_SUP_AMD |
|---|
| 448 | + help |
|---|
| 449 | + This enables detection, tunings and quirks for Hygon processors |
|---|
| 450 | + |
|---|
| 451 | + You need this enabled if you want your kernel to run on an |
|---|
| 452 | + Hygon CPU. Disabling this option on other types of CPUs |
|---|
| 453 | + makes the kernel a tiny bit smaller. Disabling it on an Hygon |
|---|
| 454 | + CPU might render the kernel unbootable. |
|---|
| 455 | + |
|---|
| 456 | + If unsure, say N. |
|---|
| 457 | + |
|---|
| 429 | 458 | config CPU_SUP_CENTAUR |
|---|
| 430 | 459 | default y |
|---|
| 431 | 460 | bool "Support Centaur processors" if PROCESSOR_SELECT |
|---|
| 432 | | - ---help--- |
|---|
| 461 | + help |
|---|
| 433 | 462 | This enables detection, tunings and quirks for Centaur processors |
|---|
| 434 | 463 | |
|---|
| 435 | 464 | You need this enabled if you want your kernel to run on a |
|---|
| .. | .. |
|---|
| 443 | 472 | default y |
|---|
| 444 | 473 | bool "Support Transmeta processors" if PROCESSOR_SELECT |
|---|
| 445 | 474 | depends on !64BIT |
|---|
| 446 | | - ---help--- |
|---|
| 475 | + help |
|---|
| 447 | 476 | This enables detection, tunings and quirks for Transmeta processors |
|---|
| 448 | 477 | |
|---|
| 449 | 478 | You need this enabled if you want your kernel to run on a |
|---|
| .. | .. |
|---|
| 456 | 485 | config CPU_SUP_UMC_32 |
|---|
| 457 | 486 | default y |
|---|
| 458 | 487 | bool "Support UMC processors" if PROCESSOR_SELECT |
|---|
| 459 | | - depends on M486 || (EXPERT && !64BIT) |
|---|
| 460 | | - ---help--- |
|---|
| 488 | + depends on M486SX || M486 || (EXPERT && !64BIT) |
|---|
| 489 | + help |
|---|
| 461 | 490 | This enables detection, tunings and quirks for UMC processors |
|---|
| 462 | 491 | |
|---|
| 463 | 492 | You need this enabled if you want your kernel to run on a |
|---|
| .. | .. |
|---|
| 466 | 495 | CPU might render the kernel unbootable. |
|---|
| 467 | 496 | |
|---|
| 468 | 497 | If unsure, say N. |
|---|
| 498 | + |
|---|
| 499 | +config CPU_SUP_ZHAOXIN |
|---|
| 500 | + default y |
|---|
| 501 | + bool "Support Zhaoxin processors" if PROCESSOR_SELECT |
|---|
| 502 | + help |
|---|
| 503 | + This enables detection, tunings and quirks for Zhaoxin processors |
|---|
| 504 | + |
|---|
| 505 | + You need this enabled if you want your kernel to run on a |
|---|
| 506 | + Zhaoxin CPU. Disabling this option on other types of CPUs |
|---|
| 507 | + makes the kernel a tiny bit smaller. Disabling it on a Zhaoxin |
|---|
| 508 | + CPU might render the kernel unbootable. |
|---|
| 509 | + |
|---|
| 510 | + If unsure, say N. |
|---|