Skip to content

Commit f323c49

Browse files
committed
Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 cpu changes from Ingo Molnar: "Two changes in this cycle: a Kconfig help text enhancement, and an AMD CLZERO instruction capability detection and enumeration" * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/cpu: Add CLZERO detection x86/Kconfig/cpus: Fix/complete CPU type help texts
2 parents 33d46f9 + 2167cea commit f323c49

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

arch/x86/Kconfig.cpu

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ choice
33
prompt "Processor family"
44
default M686 if X86_32
55
default GENERIC_CPU if X86_64
6-
7-
config M486
8-
bool "486"
9-
depends on X86_32
106
---help---
117
This is the processor type of your CPU. This information is
128
used for optimizing purposes. In order to compile a kernel
@@ -23,9 +19,9 @@ config M486
2319

2420
Here are the settings recommended for greatest speed:
2521
- "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
26-
SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
22+
SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
2723
- "586" for generic Pentium CPUs lacking the TSC
28-
(time stamp counter) register.
24+
(time stamp counter) register.
2925
- "Pentium-Classic" for the Intel Pentium.
3026
- "Pentium-MMX" for the Intel Pentium MMX.
3127
- "Pentium-Pro" for the Intel Pentium Pro.
@@ -34,17 +30,31 @@ config M486
3430
- "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
3531
- "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
3632
- "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
33+
- "Opteron/Athlon64/Hammer/K8" for all K8 and newer AMD CPUs.
3734
- "Crusoe" for the Transmeta Crusoe series.
3835
- "Efficeon" for the Transmeta Efficeon series.
3936
- "Winchip-C6" for original IDT Winchip.
4037
- "Winchip-2" for IDT Winchips with 3dNow! capabilities.
38+
- "AMD Elan" for the 32-bit AMD Elan embedded CPU.
4139
- "GeodeGX1" for Geode GX1 (Cyrix MediaGX).
4240
- "Geode GX/LX" For AMD Geode GX and LX processors.
4341
- "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
4442
- "VIA C3-2" for VIA C3-2 "Nehemiah" (model 9 and above).
4543
- "VIA C7" for VIA C7.
44+
- "Intel P4" for the Pentium 4/Netburst microarchitecture.
45+
- "Core 2/newer Xeon" for all core2 and newer Intel CPUs.
46+
- "Intel Atom" for the Atom-microarchitecture CPUs.
47+
- "Generic-x86-64" for a kernel which runs on any x86-64 CPU.
48+
49+
See each option's help text for additional details. If you don't know
50+
what to do, choose "486".
4651

47-
If you don't know what to do, choose "486".
52+
config M486
53+
bool "486"
54+
depends on X86_32
55+
---help---
56+
Select this for an 486-class CPU such as AMD/Cyrix/IBM/Intel
57+
486DX/DX2/DX4 or SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
4858

4959
config M586
5060
bool "586/K5/5x86/6x86/6x86MX"

arch/x86/include/asm/cpufeature.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include <asm/disabled-features.h>
1313
#endif
1414

15-
#define NCAPINTS 13 /* N 32-bit words worth of info */
15+
#define NCAPINTS 14 /* N 32-bit words worth of info */
1616
#define NBUGINTS 1 /* N 32-bit bug flags */
1717

1818
/*
@@ -255,6 +255,9 @@
255255
/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:1 (edx), word 12 */
256256
#define X86_FEATURE_CQM_OCCUP_LLC (12*32+ 0) /* LLC occupancy monitoring if 1 */
257257

258+
/* AMD-defined CPU features, CPUID level 0x80000008 (ebx), word 13 */
259+
#define X86_FEATURE_CLZERO (13*32+0) /* CLZERO instruction */
260+
258261
/*
259262
* BUG word(s)
260263
*/

arch/x86/kernel/cpu/common.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,7 @@ void get_cpu_cap(struct cpuinfo_x86 *c)
670670

671671
c->x86_virt_bits = (eax >> 8) & 0xff;
672672
c->x86_phys_bits = eax & 0xff;
673+
c->x86_capability[13] = cpuid_ebx(0x80000008);
673674
}
674675
#ifdef CONFIG_X86_32
675676
else if (cpu_has(c, X86_FEATURE_PAE) || cpu_has(c, X86_FEATURE_PSE36))

0 commit comments

Comments
 (0)