From 829e8e65b93963d15367092cd3d364c230465720 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Mon, 30 Jan 2023 19:09:34 +0100 Subject: soc/intel: Use common codeflow for MP init This fixes MP init on xeon_sp SoCs which was broken by 69cd729 (mb/*: Remove lapic from devicetree). Alderlake cpu code was linked in romstage but unused so drop it. Change-Id: Ia822468a6f15565b97e57612a294a0b80b45b932 Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/c/coreboot/+/72604 Tested-by: build bot (Jenkins) Reviewed-by: Sean Rhodes Reviewed-by: Nico Huber Reviewed-by: Lean Sheng Tan --- src/soc/intel/common/block/cpu/mp_init.c | 8 ++------ .../intel/common/block/include/intelblocks/mp_init.h | 20 -------------------- 2 files changed, 2 insertions(+), 26 deletions(-) (limited to 'src/soc/intel/common') diff --git a/src/soc/intel/common/block/cpu/mp_init.c b/src/soc/intel/common/block/cpu/mp_init.c index 66d74edc00..66890476a9 100644 --- a/src/soc/intel/common/block/cpu/mp_init.c +++ b/src/soc/intel/common/block/cpu/mp_init.c @@ -135,16 +135,12 @@ void get_microcode_info(const void **microcode, int *parallel) * creation of the new node will be skipped. This node will have the APIC ID defined * in devicetree. */ -void init_cpus(void) +static void init_cpus(void) { struct device *dev = dev_find_path(NULL, DEVICE_PATH_CPU_CLUSTER); assert(dev != NULL); - /* In case link to APIC device is not found, create the one */ - if (!dev->link_list) - add_more_links(dev, 1); - - soc_init_cpus(dev->link_list); + mp_cpu_bus_init(dev); } static void coreboot_init_cpus(void *unused) diff --git a/src/soc/intel/common/block/include/intelblocks/mp_init.h b/src/soc/intel/common/block/include/intelblocks/mp_init.h index 9029c91c45..f7cdf87334 100644 --- a/src/soc/intel/common/block/include/intelblocks/mp_init.h +++ b/src/soc/intel/common/block/include/intelblocks/mp_init.h @@ -23,16 +23,6 @@ int get_cpu_count(void); */ void get_microcode_info(const void **microcode, int *parallel); -/* - * Perform BSP and AP initialization - * This function can be called in below cases - * 1. During coreboot is doing MP initialization as part of BS_DEV_INIT_CHIPS (exclude - * this call if user has selected USE_INTEL_FSP_MP_INIT) - * 2. coreboot would like to take APs control back after FSP-S has done with MP - * initialization based on user select USE_INTEL_FSP_MP_INIT - */ -void init_cpus(void); - /* * This function will perform any recommended CPU (BSP and AP) initialization * after coreboot has done the multiprocessor initialization (before FSP-S) @@ -52,14 +42,4 @@ void before_post_cpus_init(void); */ void soc_core_init(struct device *dev); -/* - * In this function SOC must fill required mp_ops params, also it - * should call these mp_ops callback functions by calling - * mp_init_with_smm() function from x86/mp_init.c file. - * - * Also, if there is any other SOC specific functionalities to be - * implemented before or after MP Init, it can be done here. - */ -void soc_init_cpus(struct bus *cpu_bus); - #endif /* SOC_INTEL_COMMON_BLOCK_MP_INIT_H */ -- cgit v1.2.3