soc/intel/xeon_sp: Reduce code differences
Use get_platform_thread_count() instead of duplicated get_thread_count(), that is also less precise. Change-Id: I70c095c284aab6898b8351e82243f534963f333b Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/84845 Reviewed-by: Shuo Liu <shuo.liu@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
70546ebc40
commit
b4a4a76a71
3 changed files with 3 additions and 49 deletions
|
|
@ -173,22 +173,6 @@ static void pre_mp_init(void)
|
|||
x86_mtrr_check();
|
||||
}
|
||||
|
||||
static int get_thread_count(void)
|
||||
{
|
||||
unsigned int num_phys = 0, num_virts = 0;
|
||||
|
||||
cpu_read_topology(&num_phys, &num_virts);
|
||||
printk(BIOS_SPEW, "Detected %u cores and %u threads\n", num_phys, num_virts);
|
||||
/*
|
||||
* Currently we do not know a way to figure out how many CPUs we have total
|
||||
* on multi-socketed. So we pretend all sockets are populated with CPUs with
|
||||
* same thread/core fusing.
|
||||
* TODO: properly figure out number of active sockets OR refactor MPinit code
|
||||
* to remove requirements of having to know total number of CPUs in advance.
|
||||
*/
|
||||
return num_virts * CONFIG_MAX_SOCKET;
|
||||
}
|
||||
|
||||
static void post_mp_init(void)
|
||||
{
|
||||
/* Set Max Ratio */
|
||||
|
|
@ -203,7 +187,7 @@ static void post_mp_init(void)
|
|||
|
||||
static const struct mp_ops mp_ops = {
|
||||
.pre_mp_init = pre_mp_init,
|
||||
.get_cpu_count = get_thread_count,
|
||||
.get_cpu_count = get_platform_thread_count,
|
||||
.get_smm_info = get_smm_info,
|
||||
.pre_mp_smm_init = smm_southbridge_clear_state,
|
||||
.relocation_handler = smm_relocation_handler,
|
||||
|
|
|
|||
|
|
@ -63,21 +63,6 @@ static void pre_mp_init(void)
|
|||
x86_mtrr_check();
|
||||
}
|
||||
|
||||
static int get_thread_count(void)
|
||||
{
|
||||
unsigned int num_phys = 0, num_virts = 0;
|
||||
|
||||
/*
|
||||
* This call calculates the thread count which is corresponding to num_virts
|
||||
* (logical cores), while num_phys is corresponding to physical cores (in SMT
|
||||
* system, one physical core has multiple threads, a.k.a. logical cores).
|
||||
* Hence num_phys is not actually used.
|
||||
*/
|
||||
cpu_read_topology(&num_phys, &num_virts);
|
||||
printk(BIOS_SPEW, "Detected %u cores and %u threads\n", num_phys, num_virts);
|
||||
return num_virts * soc_get_num_cpus();
|
||||
}
|
||||
|
||||
static void post_mp_init(void)
|
||||
{
|
||||
if (CONFIG(HAVE_SMI_HANDLER))
|
||||
|
|
@ -86,7 +71,7 @@ static void post_mp_init(void)
|
|||
|
||||
static const struct mp_ops mp_ops = {
|
||||
.pre_mp_init = pre_mp_init,
|
||||
.get_cpu_count = get_thread_count,
|
||||
.get_cpu_count = get_platform_thread_count,
|
||||
#if CONFIG(HAVE_SMI_HANDLER)
|
||||
.get_smm_info = get_smm_info,
|
||||
.pre_mp_smm_init = smm_southbridge_clear_state,
|
||||
|
|
|
|||
|
|
@ -220,21 +220,6 @@ static void pre_mp_init(void)
|
|||
x86_mtrr_check();
|
||||
}
|
||||
|
||||
static int get_thread_count(void)
|
||||
{
|
||||
unsigned int num_phys = 0, num_virts = 0;
|
||||
|
||||
/*
|
||||
* This call calculates the thread count which is corresponding to num_virts
|
||||
* (logical cores), while num_phys is corresponding to physical cores (in SMT
|
||||
* system, one physical core has multiple threads, a.k.a. logical cores).
|
||||
* Hence num_phys is not actually used.
|
||||
*/
|
||||
cpu_read_topology(&num_phys, &num_virts);
|
||||
printk(BIOS_SPEW, "Detected %u cores and %u threads\n", num_phys, num_virts);
|
||||
return num_virts * soc_get_num_cpus();
|
||||
}
|
||||
|
||||
static void post_mp_init(void)
|
||||
{
|
||||
/* Set Max Ratio */
|
||||
|
|
@ -249,7 +234,7 @@ static void post_mp_init(void)
|
|||
|
||||
static const struct mp_ops mp_ops = {
|
||||
.pre_mp_init = pre_mp_init,
|
||||
.get_cpu_count = get_thread_count,
|
||||
.get_cpu_count = get_platform_thread_count,
|
||||
#if CONFIG(HAVE_SMI_HANDLER)
|
||||
.get_smm_info = get_smm_info,
|
||||
.pre_mp_smm_init = smm_southbridge_clear_state,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue