From f4dff389ee90640cd2f9cd4b34f59ce14a738379 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Thu, 13 Apr 2023 12:20:30 +0200 Subject: [PATCH] cpu/x86/mp_init.c: Set topology on BSP The BSP might have non-zero lapicid so set the topology accordingly, without assuming it is 0. This fixes a cpu exception on at least Intel Meteorlake. This was caused by FSP CPU PPI being giving incorrect information about the BSP topology. This problem was introduced by 8b8400a "drivers/fsp2_0/mp_service_ppi: Use struct device to fill in buffer" which sets the PPI struct based on struct device. TESTED on google/rex Change-Id: I3fae5efa86d8efc474c129b48bdfa1d1e2306acf Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/c/coreboot/+/74374 Reviewed-by: Subrata Banik Reviewed-by: Kapil Porwal Reviewed-by: Tarun Tuli Tested-by: build bot (Jenkins) --- src/cpu/x86/mp_init.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c index 4e92b75954..28d6092d0d 100644 --- a/src/cpu/x86/mp_init.c +++ b/src/cpu/x86/mp_init.c @@ -554,6 +554,7 @@ static enum cb_err init_bsp(struct bus *cpu_bus) return CB_ERR; } bsp->path.apic.initial_lapicid = initial_lapicid(); + set_cpu_topology_from_leaf_b(bsp); /* Find the device structure for the boot CPU. */ set_cpu_info(0, bsp);