From 41c09574829b1f290b7f013ab1e86cb9c559b2f4 Mon Sep 17 00:00:00 2001 From: Magnus Christensson Date: Mon, 23 Nov 2009 14:01:19 +0100 Subject: [PATCH] Read APIC version from APIC instead of using a hard-coded value. Signed-off-by: Magnus Christensson --- src/mptable.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mptable.c b/src/mptable.c index f65bbeb..5357c03 100644 --- a/src/mptable.c +++ b/src/mptable.c @@ -36,6 +36,7 @@ mptable_init(void) // Detect cpu info u32 cpuid_signature, ebx, ecx, cpuid_features; cpuid(1, &cpuid_signature, &ebx, &ecx, &cpuid_features); + u8 apic_version = readl((u8*)BUILD_APIC_ADDR + 0x30) & 0xff; int pkgcpus = 1; if (cpuid_features & (1 << 28)) { /* Only populate the MPS tables with the first logical CPU in @@ -51,7 +52,7 @@ mptable_init(void) memset(cpu, 0, sizeof(*cpu)); cpu->type = MPT_TYPE_CPU; cpu->apicid = i; - cpu->apicver = 0x11; + cpu->apicver = apic_version; /* cpu flags: enabled, bootstrap cpu */ cpu->cpuflag = (i < CountCPUs) | ((i == 0) << 1); if (cpuid_signature) { -- 2.39.5