summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2020-08-05 13:43:35 +0200
committerAngel Pons <th3fanbus@gmail.com>2020-08-06 22:33:02 +0000
commit0e0273a015f57e244015c80f0fa37192f1e569f3 (patch)
tree373e54a66e7623bf602a58466764b4b3418c12dd
parent3d813cbede650a89a519d5896652328e4ecf88c6 (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.h7
-rw-r--r--src/cpu/intel/common/hyperthreading.c10
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;