summaryrefslogtreecommitdiffstats
path: root/src/cpu/x86/mp_init.c
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2023-04-13 12:20:30 +0200
committerSubrata Banik <subratabanik@google.com>2023-04-13 11:32:38 +0000
commitf4dff389ee90640cd2f9cd4b34f59ce14a738379 (patch)
tree4b8e790025b1e45768f092dba37113b9f4b61ccd /src/cpu/x86/mp_init.c
parent6f1b7d79b389a0c694f4fc41afee3d4ad565376e (diff)
downloadcoreboot-f4dff389ee90640cd2f9cd4b34f59ce14a738379.tar.gz
coreboot-f4dff389ee90640cd2f9cd4b34f59ce14a738379.tar.bz2
coreboot-f4dff389ee90640cd2f9cd4b34f59ce14a738379.zip
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 <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/74374 Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Kapil Porwal <kapilporwal@google.com> Reviewed-by: Tarun Tuli <taruntuli@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/cpu/x86/mp_init.c')
-rw-r--r--src/cpu/x86/mp_init.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c
index 4e92b7595410..28d6092d0da7 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);