diff options
| -rw-r--r-- | arch/x86/include/asm/cpufeature.h | 2 | ||||
| -rw-r--r-- | arch/x86/include/asm/msr-index.h | 17 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/scattered.c | 2 |
3 files changed, 19 insertions, 2 deletions
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h index 4be50ddd4d79..817aa316b180 100644 --- a/arch/x86/include/asm/cpufeature.h +++ b/arch/x86/include/asm/cpufeature.h | |||
| @@ -166,6 +166,8 @@ | |||
| 166 | #define X86_FEATURE_CPB (7*32+ 2) /* AMD Core Performance Boost */ | 166 | #define X86_FEATURE_CPB (7*32+ 2) /* AMD Core Performance Boost */ |
| 167 | #define X86_FEATURE_EPB (7*32+ 3) /* IA32_ENERGY_PERF_BIAS support */ | 167 | #define X86_FEATURE_EPB (7*32+ 3) /* IA32_ENERGY_PERF_BIAS support */ |
| 168 | #define X86_FEATURE_XSAVEOPT (7*32+ 4) /* Optimized Xsave */ | 168 | #define X86_FEATURE_XSAVEOPT (7*32+ 4) /* Optimized Xsave */ |
| 169 | #define X86_FEATURE_PLN (7*32+ 5) /* Intel Power Limit Notification */ | ||
| 170 | #define X86_FEATURE_PTS (7*32+ 6) /* Intel Package Thermal Status */ | ||
| 169 | 171 | ||
| 170 | /* Virtualization flags: Linux defined, word 8 */ | 172 | /* Virtualization flags: Linux defined, word 8 */ |
| 171 | #define X86_FEATURE_TPR_SHADOW (8*32+ 0) /* Intel TPR Shadow */ | 173 | #define X86_FEATURE_TPR_SHADOW (8*32+ 0) /* Intel TPR Shadow */ |
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h index 7cc4a026331c..4ea2a7ca7a4b 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h | |||
| @@ -224,12 +224,14 @@ | |||
| 224 | #define MSR_IA32_THERM_CONTROL 0x0000019a | 224 | #define MSR_IA32_THERM_CONTROL 0x0000019a |
| 225 | #define MSR_IA32_THERM_INTERRUPT 0x0000019b | 225 | #define MSR_IA32_THERM_INTERRUPT 0x0000019b |
| 226 | 226 | ||
| 227 | #define THERM_INT_LOW_ENABLE (1 << 0) | 227 | #define THERM_INT_HIGH_ENABLE (1 << 0) |
| 228 | #define THERM_INT_HIGH_ENABLE (1 << 1) | 228 | #define THERM_INT_LOW_ENABLE (1 << 1) |
| 229 | #define THERM_INT_PLN_ENABLE (1 << 24) | ||
| 229 | 230 | ||
| 230 | #define MSR_IA32_THERM_STATUS 0x0000019c | 231 | #define MSR_IA32_THERM_STATUS 0x0000019c |
| 231 | 232 | ||
| 232 | #define THERM_STATUS_PROCHOT (1 << 0) | 233 | #define THERM_STATUS_PROCHOT (1 << 0) |
| 234 | #define THERM_STATUS_POWER_LIMIT (1 << 10) | ||
| 233 | 235 | ||
| 234 | #define MSR_THERM2_CTL 0x0000019d | 236 | #define MSR_THERM2_CTL 0x0000019d |
| 235 | 237 | ||
| @@ -241,6 +243,17 @@ | |||
| 241 | 243 | ||
| 242 | #define MSR_IA32_ENERGY_PERF_BIAS 0x000001b0 | 244 | #define MSR_IA32_ENERGY_PERF_BIAS 0x000001b0 |
| 243 | 245 | ||
| 246 | #define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1 | ||
| 247 | |||
| 248 | #define PACKAGE_THERM_STATUS_PROCHOT (1 << 0) | ||
| 249 | #define PACKAGE_THERM_STATUS_POWER_LIMIT (1 << 10) | ||
| 250 | |||
| 251 | #define MSR_IA32_PACKAGE_THERM_INTERRUPT 0x000001b2 | ||
| 252 | |||
| 253 | #define PACKAGE_THERM_INT_HIGH_ENABLE (1 << 0) | ||
| 254 | #define PACKAGE_THERM_INT_LOW_ENABLE (1 << 1) | ||
| 255 | #define PACKAGE_THERM_INT_PLN_ENABLE (1 << 24) | ||
| 256 | |||
| 244 | /* MISC_ENABLE bits: architectural */ | 257 | /* MISC_ENABLE bits: architectural */ |
| 245 | #define MSR_IA32_MISC_ENABLE_FAST_STRING (1ULL << 0) | 258 | #define MSR_IA32_MISC_ENABLE_FAST_STRING (1ULL << 0) |
| 246 | #define MSR_IA32_MISC_ENABLE_TCC (1ULL << 1) | 259 | #define MSR_IA32_MISC_ENABLE_TCC (1ULL << 1) |
diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c index 9815364b477e..34b4dad6f0b8 100644 --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c | |||
| @@ -33,6 +33,8 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c) | |||
| 33 | static const struct cpuid_bit __cpuinitconst cpuid_bits[] = { | 33 | static const struct cpuid_bit __cpuinitconst cpuid_bits[] = { |
| 34 | { X86_FEATURE_IDA, CR_EAX, 1, 0x00000006, 0 }, | 34 | { X86_FEATURE_IDA, CR_EAX, 1, 0x00000006, 0 }, |
| 35 | { X86_FEATURE_ARAT, CR_EAX, 2, 0x00000006, 0 }, | 35 | { X86_FEATURE_ARAT, CR_EAX, 2, 0x00000006, 0 }, |
| 36 | { X86_FEATURE_PLN, CR_EAX, 4, 0x00000006, 0 }, | ||
| 37 | { X86_FEATURE_PTS, CR_EAX, 6, 0x00000006, 0 }, | ||
| 36 | { X86_FEATURE_APERFMPERF, CR_ECX, 0, 0x00000006, 0 }, | 38 | { X86_FEATURE_APERFMPERF, CR_ECX, 0, 0x00000006, 0 }, |
| 37 | { X86_FEATURE_EPB, CR_ECX, 3, 0x00000006, 0 }, | 39 | { X86_FEATURE_EPB, CR_ECX, 3, 0x00000006, 0 }, |
| 38 | { X86_FEATURE_XSAVEOPT, CR_EAX, 0, 0x0000000d, 1 }, | 40 | { X86_FEATURE_XSAVEOPT, CR_EAX, 0, 0x0000000d, 1 }, |
