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:
parent
3d813cbede
commit
0e0273a015
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue