diff options
| -rw-r--r-- | arch/x86_64/kernel/setup.c | 10 | ||||
| -rw-r--r-- | include/asm-i386/cpufeature.h | 4 | ||||
| -rw-r--r-- | include/asm-x86_64/cpufeature.h | 14 |
3 files changed, 20 insertions, 8 deletions
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c index b18c114c7648..2959ce703df9 100644 --- a/arch/x86_64/kernel/setup.c +++ b/arch/x86_64/kernel/setup.c | |||
| @@ -977,7 +977,7 @@ void __init identify_cpu(struct cpuinfo_x86 *c) | |||
| 977 | if ((xlvl & 0xffff0000) == 0x80000000) { | 977 | if ((xlvl & 0xffff0000) == 0x80000000) { |
| 978 | if (xlvl >= 0x80000001) { | 978 | if (xlvl >= 0x80000001) { |
| 979 | c->x86_capability[1] = cpuid_edx(0x80000001); | 979 | c->x86_capability[1] = cpuid_edx(0x80000001); |
| 980 | c->x86_capability[5] = cpuid_ecx(0x80000001); | 980 | c->x86_capability[6] = cpuid_ecx(0x80000001); |
| 981 | } | 981 | } |
| 982 | if (xlvl >= 0x80000004) | 982 | if (xlvl >= 0x80000004) |
| 983 | get_model_name(c); /* Default name */ | 983 | get_model_name(c); /* Default name */ |
| @@ -1100,11 +1100,17 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
| 1100 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 1100 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
| 1101 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 1101 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
| 1102 | 1102 | ||
| 1103 | /* VIA/Cyrix/Centaur-defined */ | ||
| 1104 | NULL, NULL, "rng", "rng_en", NULL, NULL, "ace", "ace_en", | ||
| 1105 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
| 1106 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
| 1107 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
| 1108 | |||
| 1103 | /* AMD-defined (#2) */ | 1109 | /* AMD-defined (#2) */ |
| 1104 | "lahf_lm", "cmp_legacy", NULL, NULL, NULL, NULL, NULL, NULL, | 1110 | "lahf_lm", "cmp_legacy", NULL, NULL, NULL, NULL, NULL, NULL, |
| 1105 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 1111 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
| 1106 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 1112 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
| 1107 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL | 1113 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
| 1108 | }; | 1114 | }; |
| 1109 | static char *x86_power_flags[] = { | 1115 | static char *x86_power_flags[] = { |
| 1110 | "ts", /* temperature sensor */ | 1116 | "ts", /* temperature sensor */ |
diff --git a/include/asm-i386/cpufeature.h b/include/asm-i386/cpufeature.h index e147cabd3bfe..ff1187e80c32 100644 --- a/include/asm-i386/cpufeature.h +++ b/include/asm-i386/cpufeature.h | |||
| @@ -87,8 +87,8 @@ | |||
| 87 | #define X86_FEATURE_XCRYPT_EN (5*32+ 7) /* on-CPU crypto enabled */ | 87 | #define X86_FEATURE_XCRYPT_EN (5*32+ 7) /* on-CPU crypto enabled */ |
| 88 | 88 | ||
| 89 | /* More extended AMD flags: CPUID level 0x80000001, ecx, word 6 */ | 89 | /* More extended AMD flags: CPUID level 0x80000001, ecx, word 6 */ |
| 90 | #define X86_FEATURE_LAHF_LM (5*32+ 0) /* LAHF/SAHF in long mode */ | 90 | #define X86_FEATURE_LAHF_LM (6*32+ 0) /* LAHF/SAHF in long mode */ |
| 91 | #define X86_FEATURE_CMP_LEGACY (5*32+ 1) /* If yes HyperThreading not valid */ | 91 | #define X86_FEATURE_CMP_LEGACY (6*32+ 1) /* If yes HyperThreading not valid */ |
| 92 | 92 | ||
| 93 | #define cpu_has(c, bit) test_bit(bit, (c)->x86_capability) | 93 | #define cpu_has(c, bit) test_bit(bit, (c)->x86_capability) |
| 94 | #define boot_cpu_has(bit) test_bit(bit, boot_cpu_data.x86_capability) | 94 | #define boot_cpu_has(bit) test_bit(bit, boot_cpu_data.x86_capability) |
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) |
