From 96499840aa3f5376ae8cfa1cefb6fd98800019a9 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Mon, 25 Mar 2024 17:05:05 +0100 Subject: cpu/x86/topology: Add node ID parser Currently the SRAT table only exposes one proximity group as it uses the LAPIC node_id, which is always initialized to 0. Use CPUID leaf 0x1f or 0xb to gather the node ID and fill it to make sure that at least one proximity group for every socket is advertised. For now the SNC config isn't taken into account. Change-Id: Ia3ed1e5923aa18ca7619b32cde491fdb4da0fa0d Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/c/coreboot/+/81515 Tested-by: build bot (Jenkins) Reviewed-by: Shuo Liu Reviewed-by: Arthur Heymans --- src/include/cpu/x86/topology.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/include') diff --git a/src/include/cpu/x86/topology.h b/src/include/cpu/x86/topology.h index db29d09f5b..d66f2eb821 100644 --- a/src/include/cpu/x86/topology.h +++ b/src/include/cpu/x86/topology.h @@ -11,4 +11,9 @@ */ void set_cpu_topology_from_leaf_b(struct device *cpu); +/* Fill in the topology node ID in struct path APIC based CPUID EAX=0x1f + * or CPUID EAX=0xb. If those leaves aren't supported then the node ID + * won't be updated. + */ +void set_cpu_node_id_leaf_1f_b(struct device *cpu); #endif -- cgit v1.2.3