* [PATCH 2.4-ac] Proper APIC version identification
@ 2003-07-02 23:57 Pallipadi, Venkatesh
0 siblings, 0 replies; only message in thread
From: Pallipadi, Venkatesh @ 2003-07-02 23:57 UTC (permalink / raw)
To: alan; +Cc: linux-kernel, Bruno Cornec, Nakajima, Jun
[-- Attachment #1: Type: text/plain, Size: 1409 bytes --]
Hi,
The boot issue with DL760 G2 issue with Hyper-Threading (16-way
logical) was root-caused to be coming from hardcoding of apic-version
during the acpi boot-up code. The attached patch fixes the issue, by
reading in the actual apic version. This apic-version is used later in
the boot process, to identify whether the processor supports xAPIC or
not. And that in turn was resulting in boot failure.
Please include in the ac-patchset.
Refer following lkml threads for detailed the problem description:
Subject: SUMMARY: DL760 G2 issue with Hyper-Threading:
Subject: PROBLEM: DL760 G2 issue on 2.4.21 with Hyper-Threading
Thanks,
-Venkatesh
--- linux-2.4.21-ac2/arch/i386/kernel/mpparse.c.org 2003-06-30
12:52:21.000000000 -0700
+++ linux-2.4.21-ac2/arch/i386/kernel/mpparse.c 2003-07-01
16:07:40.000000000 -0700
@@ -999,7 +999,14 @@
processor.mpc_type = MP_PROCESSOR;
processor.mpc_apicid = id;
- processor.mpc_apicver = 0x10; /* TBD: lapic version */
+
+ /*
+ * mp_register_lapic_address() which is called before the
+ * current function does the fixmap of FIX_APIC_BASE.
+ * Read in the correct APIC version from there
+ */
+ processor.mpc_apicver = apic_read(APIC_LVR);
+
processor.mpc_cpuflag = (enabled ? CPU_ENABLED : 0);
processor.mpc_cpuflag |= (boot_cpu ? CPU_BOOTPROCESSOR : 0);
processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) |
[-- Attachment #2: acpi_apicversion.patch --]
[-- Type: application/octet-stream, Size: 721 bytes --]
--- linux-2.4.21-ac2/arch/i386/kernel/mpparse.c.org 2003-06-30 12:52:21.000000000 -0700
+++ linux-2.4.21-ac2/arch/i386/kernel/mpparse.c 2003-07-01 16:07:40.000000000 -0700
@@ -999,7 +999,14 @@
processor.mpc_type = MP_PROCESSOR;
processor.mpc_apicid = id;
- processor.mpc_apicver = 0x10; /* TBD: lapic version */
+
+ /*
+ * mp_register_lapic_address() which is called before the
+ * current function does the fixmap of FIX_APIC_BASE.
+ * Read in the correct APIC version from there
+ */
+ processor.mpc_apicver = apic_read(APIC_LVR);
+
processor.mpc_cpuflag = (enabled ? CPU_ENABLED : 0);
processor.mpc_cpuflag |= (boot_cpu ? CPU_BOOTPROCESSOR : 0);
processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) |
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-07-02 23:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-02 23:57 [PATCH 2.4-ac] Proper APIC version identification Pallipadi, Venkatesh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®