aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86_64/cpufeature.h
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2005-05-01 11:58:49 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-01 11:58:49 -0400
commit5b7abc6fdcaf103f15e06c518ef0aec02a9c00e7 (patch)
treeaf36948e79774ea69ec398056ce8b5db0c682e34 /include/asm-x86_64/cpufeature.h
parenta6954ba2e8d344a07e066737827116eb7bc0fdcd (diff)
[PATCH] CPUID bug and inconsistency fix
The recent support for K8 multicore was misported from x86-64 to i386, due to an unnecessary inconsistency between the CPUID code. Sure, there is are no x86-64 VIA chips yet, but it should happen eventually. This patch fixes the i386 bug as well as makes x86-64 match i386 in the handing of the CPUID array. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-x86_64/cpufeature.h')
-rw-r--r--include/asm-x86_64/cpufeature.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/include/asm-x86_64/cpufeature.h b/include/asm-x86_64/cpufeature.h
index e68ad97a6319..aea308c65709 100644
--- a/include/asm-x86_64/cpufeature.h
+++ b/include/asm-x86_64/cpufeature.h
@@ -7,7 +7,7 @@
7#ifndef __ASM_X8664_CPUFEATURE_H 7#ifndef __ASM_X8664_CPUFEATURE_H
8#define __ASM_X8664_CPUFEATURE_H 8#define __ASM_X8664_CPUFEATURE_H
9 9
10#define NCAPINTS 6 10#define NCAPINTS 7 /* N 32-bit words worth of info */
11 11
12/* Intel-defined CPU features, CPUID level 0x00000001, word 0 */ 12/* Intel-defined CPU features, CPUID level 0x00000001, word 0 */
13#define X86_FEATURE_FPU (0*32+ 0) /* Onboard FPU */ 13#define X86_FEATURE_FPU (0*32+ 0) /* Onboard FPU */
@@ -74,9 +74,15 @@
74#define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */ 74#define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */
75#define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */ 75#define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */
76 76
77/* More extended AMD flags: CPUID level 0x80000001, ecx, word 5 */ 77/* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
78#define X86_FEATURE_LAHF_LM (5*32+ 0) /* LAHF/SAHF in long mode */ 78#define X86_FEATURE_XSTORE (5*32+ 2) /* on-CPU RNG present (xstore insn) */
79#define X86_FEATURE_CMP_LEGACY (5*32+ 1) /* If yes HyperThreading not valid */ 79#define X86_FEATURE_XSTORE_EN (5*32+ 3) /* on-CPU RNG enabled */
80#define X86_FEATURE_XCRYPT (5*32+ 6) /* on-CPU crypto (xcrypt insn) */
81#define X86_FEATURE_XCRYPT_EN (5*32+ 7) /* on-CPU crypto enabled */
82
83/* More extended AMD flags: CPUID level 0x80000001, ecx, word 6 */
84#define X86_FEATURE_LAHF_LM (6*32+ 0) /* LAHF/SAHF in long mode */
85#define X86_FEATURE_CMP_LEGACY (6*32+ 1) /* If yes HyperThreading not valid */
80 86
81#define cpu_has(c, bit) test_bit(bit, (c)->x86_capability) 87#define cpu_has(c, bit) test_bit(bit, (c)->x86_capability)
82#define boot_cpu_has(bit) test_bit(bit, boot_cpu_data.x86_capability) 88#define boot_cpu_has(bit) test_bit(bit, boot_cpu_data.x86_capability)