diff options
Diffstat (limited to 'src/soc')
-rw-r--r-- | src/soc/intel/xeon_sp/cpx/cpu.c | 18 | ||||
-rw-r--r-- | src/soc/intel/xeon_sp/gnr/cpu.c | 17 | ||||
-rw-r--r-- | src/soc/intel/xeon_sp/spr/cpu.c | 17 |
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, |