summaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp
diff options
context:
space:
mode:
authorMarc Jones <marcjones@sysproconsulting.com>2020-10-28 17:00:31 -0600
committerMarc Jones <marc@marcjonesconsulting.com>2020-10-30 18:55:58 +0000
commit70907b00e6b16f7bf6407c3f58a06473209a1843 (patch)
treeaf93b5e390a76e2ff01b34a082dbbdc73fd7830d /src/soc/intel/xeon_sp
parent444fda45287822920d389809d9dd1f935f22c592 (diff)
soc/intel/xeon_sp: Call common soc_get_num_cpus()
Use a common function to get the number of CPUs for each soc. This removes a #if for different function names in the common code. Change-Id: I3348d37fcae72247731e465ec2a65d9583a2f180 Signed-off-by: Marc Jones <marcjones@sysproconsulting.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/46970 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/soc/intel/xeon_sp')
-rw-r--r--src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h2
-rw-r--r--src/soc/intel/xeon_sp/cpx/soc_util.c8
-rw-r--r--src/soc/intel/xeon_sp/nb_acpi.c8
-rw-r--r--src/soc/intel/xeon_sp/skx/include/soc/cpu.h1
-rw-r--r--src/soc/intel/xeon_sp/skx/include/soc/soc_util.h1
-rw-r--r--src/soc/intel/xeon_sp/skx/soc_util.c6
6 files changed, 10 insertions, 16 deletions
diff --git a/src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h b/src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h
index 3e19bac6e9..f0c257508a 100644
--- a/src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h
+++ b/src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h
@@ -19,7 +19,7 @@ void get_core_thread_bits(uint32_t *core_bits, uint32_t *thread_bits);
void get_cpu_info_from_apicid(uint32_t apicid, uint32_t core_bits, uint32_t thread_bits,
uint8_t *package, uint8_t *core, uint8_t *thread);
/* Return socket count, as obtained from FSP HOB */
-unsigned int xeon_sp_get_socket_count(void);
+unsigned int soc_get_num_cpus(void);
int get_platform_thread_count(void);
int get_threads_per_package(void);
diff --git a/src/soc/intel/xeon_sp/cpx/soc_util.c b/src/soc/intel/xeon_sp/cpx/soc_util.c
index 8debc6a236..bc4a1e15b1 100644
--- a/src/soc/intel/xeon_sp/cpx/soc_util.c
+++ b/src/soc/intel/xeon_sp/cpx/soc_util.c
@@ -22,7 +22,7 @@ int get_threads_per_package(void)
int get_platform_thread_count(void)
{
- return xeon_sp_get_socket_count() * get_threads_per_package();
+ return soc_get_num_cpus() * get_threads_per_package();
}
const struct SystemMemoryMapHob *get_system_memory_map(void)
@@ -86,7 +86,7 @@ const IIO_UDS *get_iio_uds(void)
return hob;
}
-unsigned int xeon_sp_get_socket_count(void)
+unsigned int soc_get_num_cpus(void)
{
/* The FSP IIO UDS HOB has field numCpus, it is actually socket count */
return get_iio_uds()->SystemStatus.numCpus;
@@ -119,7 +119,7 @@ void xeonsp_init_cpu_config(void)
if (num_apics > 1)
bubblesort(apic_ids, num_apics, NUM_ASCENDING);
- num_sockets = xeon_sp_get_socket_count();
+ num_sockets = soc_get_num_cpus();
cpu_read_topology(&core_count, &thread_count);
assert(num_apics == (num_sockets * thread_count));
@@ -310,7 +310,7 @@ void set_bios_init_completion(void)
* to receive the BIOS init completion message. So, we send it to all non-SBSP
* sockets first.
*/
- for (uint32_t socket = 0; socket < xeon_sp_get_socket_count(); ++socket) {
+ for (uint32_t socket = 0; socket < soc_get_num_cpus(); ++socket) {
if (socket == sbsp_socket_id)
continue;
set_bios_init_completion_for_package(socket);
diff --git a/src/soc/intel/xeon_sp/nb_acpi.c b/src/soc/intel/xeon_sp/nb_acpi.c
index 1329feb0d6..5955fa0e31 100644
--- a/src/soc/intel/xeon_sp/nb_acpi.c
+++ b/src/soc/intel/xeon_sp/nb_acpi.c
@@ -121,13 +121,7 @@ static unsigned long acpi_fill_srat(unsigned long current)
static unsigned long acpi_fill_slit(unsigned long current)
{
-#if (CONFIG(SOC_INTEL_COOPERLAKE_SP))
- unsigned int nodes = xeon_sp_get_socket_count();
-#endif /* SOC_INTEL_COOPERLAKE_SP */
-
-#if (CONFIG(SOC_INTEL_SKYLAKE_SP))
- int nodes = get_cpu_count();
-#endif /* SOC_INTEL_SKYLAKE_SP */
+ unsigned int nodes = soc_get_num_cpus();
uint8_t *p = (uint8_t *)current;
memset(p, 0, 8 + nodes * nodes);
diff --git a/src/soc/intel/xeon_sp/skx/include/soc/cpu.h b/src/soc/intel/xeon_sp/skx/include/soc/cpu.h
index 0e3028da74..433598b5c0 100644
--- a/src/soc/intel/xeon_sp/skx/include/soc/cpu.h
+++ b/src/soc/intel/xeon_sp/skx/include/soc/cpu.h
@@ -14,7 +14,6 @@
/* CPU bus clock is fixed at 100MHz */
#define CPU_BCLK 100
-int get_cpu_count(void);
void xeon_sp_init_cpus(struct device *dev);
#endif
diff --git a/src/soc/intel/xeon_sp/skx/include/soc/soc_util.h b/src/soc/intel/xeon_sp/skx/include/soc/soc_util.h
index 76f7c8be4b..25668301a4 100644
--- a/src/soc/intel/xeon_sp/skx/include/soc/soc_util.h
+++ b/src/soc/intel/xeon_sp/skx/include/soc/soc_util.h
@@ -26,5 +26,6 @@ int get_threads_per_package(void);
const struct SystemMemoryMapHob *get_system_memory_map(void);
void set_bios_init_completion(void);
+unsigned int soc_get_num_cpus(void);
#endif /* _SOC_UTIL_H_ */
diff --git a/src/soc/intel/xeon_sp/skx/soc_util.c b/src/soc/intel/xeon_sp/skx/soc_util.c
index 3b37ca3c48..7dd954fd66 100644
--- a/src/soc/intel/xeon_sp/skx/soc_util.c
+++ b/src/soc/intel/xeon_sp/skx/soc_util.c
@@ -264,7 +264,7 @@ void get_cpu_info_from_apicid(uint32_t apicid, uint32_t core_bits, uint32_t thre
*thread = (uint32_t)(apicid & ~((~0) << thread_bits));
}
-int get_cpu_count(void)
+unsigned int soc_get_num_cpus(void)
{
size_t hob_size;
const uint8_t fsp_hob_iio_universal_data_guid[16] = FSP_HOB_IIO_UNIVERSAL_DATA_GUID;
@@ -285,7 +285,7 @@ int get_threads_per_package(void)
int get_platform_thread_count(void)
{
- return get_cpu_count() * get_threads_per_package();
+ return soc_get_num_cpus() * get_threads_per_package();
}
uint8_t get_iiostack_info(struct iiostack_resource *info)
@@ -353,7 +353,7 @@ void xeonsp_init_cpu_config(void)
if (num_apics > 1)
bubblesort(apic_ids, num_apics, NUM_ASCENDING);
- num_cpus = get_cpu_count();
+ num_cpus = soc_get_num_cpus();
cpu_read_topology(&core_count, &thread_count);
assert(num_apics == (num_cpus * thread_count));