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>
This commit is contained in:
Angel Pons 2020-08-05 13:43:35 +02:00
parent 3d813cbede
commit 0e0273a015
2 changed files with 14 additions and 3 deletions

View File

@ -3,7 +3,7 @@
#ifndef _CPU_INTEL_COMMON_H #ifndef _CPU_INTEL_COMMON_H
#define _CPU_INTEL_COMMON_H #define _CPU_INTEL_COMMON_H
#include <stdint.h> #include <types.h>
void set_vmx_and_lock(void); void set_vmx_and_lock(void);
void set_feature_ctrl_vmx(void); void set_feature_ctrl_vmx(void);
@ -17,6 +17,11 @@ void set_feature_ctrl_lock(void);
struct cppc_config; struct cppc_config;
void cpu_init_cppc_config(struct cppc_config *config, u32 version); 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. * Returns true if it's not thread 0 on a hyperthreading enabled core.
*/ */

View File

@ -3,6 +3,13 @@
#include <cpu/x86/lapic.h> #include <cpu/x86/lapic.h>
#include <cpu/intel/common/common.h> #include <cpu/intel/common/common.h>
#include <arch/cpu.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 * 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; struct cpuid_result result;
unsigned int core_ids, apic_ids, threads; unsigned int core_ids, apic_ids, threads;
/* Is Hyper-Threading supported */ if (!intel_ht_supported())
if (!(cpuid_edx(1) & CPUID_FEAURE_HTT))
return false; return false;
apic_ids = 1; apic_ids = 1;