summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2024-10-23 18:10:28 +0200
committerLean Sheng Tan <sheng.tan@9elements.com>2024-11-16 20:19:06 +0000
commitb4a4a76a71fc72fe3d57f62e7e58ae04777184d5 (patch)
tree1938da0e07e6cf0c9c7b30d136497cd71c6c8b19
parent70546ebc4045f4805ee257172301364147fa7d80 (diff)
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>
-rw-r--r--src/soc/intel/xeon_sp/cpx/cpu.c18
-rw-r--r--src/soc/intel/xeon_sp/gnr/cpu.c17
-rw-r--r--src/soc/intel/xeon_sp/spr/cpu.c17
3 files changed, 3 insertions, 49 deletions
diff --git a/src/soc/intel/xeon_sp/cpx/cpu.c b/src/soc/intel/xeon_sp/cpx/cpu.c
index 14535e2ee7..aaac83b583 100644
--- a/src/soc/intel/xeon_sp/cpx/cpu.c
+++ b/src/soc/intel/xeon_sp/cpx/cpu.c
@@ -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,
diff --git a/src/soc/intel/xeon_sp/gnr/cpu.c b/src/soc/intel/xeon_sp/gnr/cpu.c
index 580503537c..71edd70e7c 100644
--- a/src/soc/intel/xeon_sp/gnr/cpu.c
+++ b/src/soc/intel/xeon_sp/gnr/cpu.c
@@ -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,
diff --git a/src/soc/intel/xeon_sp/spr/cpu.c b/src/soc/intel/xeon_sp/spr/cpu.c
index ad099ab70b..7af7f9a536 100644
--- a/src/soc/intel/xeon_sp/spr/cpu.c
+++ b/src/soc/intel/xeon_sp/spr/cpu.c
@@ -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,