diff options
author | Angel Pons <th3fanbus@gmail.com> | 2020-08-05 13:43:35 +0200 |
---|---|---|
committer | Angel Pons <th3fanbus@gmail.com> | 2020-08-06 22:33:02 +0000 |
commit | 0e0273a015f57e244015c80f0fa37192f1e569f3 (patch) | |
tree | 373e54a66e7623bf602a58466764b4b3418c12dd | |
parent | 3d813cbede650a89a519d5896652328e4ecf88c6 (diff) |
cpu/intel/common: Add `intel_ht_supported` function
Change-Id: I90c0378c4042dec39c8c86c1d2339a5cbcfe78e3
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/44210
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
-rw-r--r-- | src/cpu/intel/common/common.h | 7 | ||||
-rw-r--r-- | src/cpu/intel/common/hyperthreading.c | 10 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/cpu/intel/common/common.h b/src/cpu/intel/common/common.h index 57a5fe602c..df14668095 100644 --- a/src/cpu/intel/common/common.h +++ b/src/cpu/intel/common/common.h @@ -3,7 +3,7 @@ #ifndef _CPU_INTEL_COMMON_H #define _CPU_INTEL_COMMON_H -#include <stdint.h> +#include <types.h> void set_vmx_and_lock(void); void set_feature_ctrl_vmx(void); @@ -18,6 +18,11 @@ struct cppc_config; void cpu_init_cppc_config(struct cppc_config *config, u32 version); /* + * Returns true if CPU supports Hyper-Threading. + */ +bool intel_ht_supported(void); + +/* * Returns true if it's not thread 0 on a hyperthreading enabled core. */ bool intel_ht_sibling(void); diff --git a/src/cpu/intel/common/hyperthreading.c b/src/cpu/intel/common/hyperthreading.c index d68614974f..fce7576673 100644 --- a/src/cpu/intel/common/hyperthreading.c +++ b/src/cpu/intel/common/hyperthreading.c @@ -3,6 +3,13 @@ #include <cpu/x86/lapic.h> #include <cpu/intel/common/common.h> #include <arch/cpu.h> +#include <types.h> + +bool intel_ht_supported(void) +{ + /* Is HyperThreading supported? */ + return !!(cpuid_edx(1) & CPUID_FEAURE_HTT); +} /* * Return true if running thread does not have the smallest lapic ID @@ -13,8 +20,7 @@ bool intel_ht_sibling(void) struct cpuid_result result; unsigned int core_ids, apic_ids, threads; - /* Is Hyper-Threading supported */ - if (!(cpuid_edx(1) & CPUID_FEAURE_HTT)) + if (!intel_ht_supported()) return false; apic_ids = 1; |