|
@@ -1,3 +1,44 @@
|
|
|
|
+/*
|
|
|
|
+ * x86 SMP booting functions
|
|
|
|
+ *
|
|
|
|
+ * (c) 1995 Alan Cox, Building #3 <alan@redhat.com>
|
|
|
|
+ * (c) 1998, 1999, 2000 Ingo Molnar <mingo@redhat.com>
|
|
|
|
+ * Copyright 2001 Andi Kleen, SuSE Labs.
|
|
|
|
+ *
|
|
|
|
+ * Much of the core SMP work is based on previous work by Thomas Radke, to
|
|
|
|
+ * whom a great many thanks are extended.
|
|
|
|
+ *
|
|
|
|
+ * Thanks to Intel for making available several different Pentium,
|
|
|
|
+ * Pentium Pro and Pentium-II/Xeon MP machines.
|
|
|
|
+ * Original development of Linux SMP code supported by Caldera.
|
|
|
|
+ *
|
|
|
|
+ * This code is released under the GNU General Public License version 2 or
|
|
|
|
+ * later.
|
|
|
|
+ *
|
|
|
|
+ * Fixes
|
|
|
|
+ * Felix Koop : NR_CPUS used properly
|
|
|
|
+ * Jose Renau : Handle single CPU case.
|
|
|
|
+ * Alan Cox : By repeated request 8) - Total BogoMIPS report.
|
|
|
|
+ * Greg Wright : Fix for kernel stacks panic.
|
|
|
|
+ * Erich Boleyn : MP v1.4 and additional changes.
|
|
|
|
+ * Matthias Sattler : Changes for 2.1 kernel map.
|
|
|
|
+ * Michel Lespinasse : Changes for 2.1 kernel map.
|
|
|
|
+ * Michael Chastain : Change trampoline.S to gnu as.
|
|
|
|
+ * Alan Cox : Dumb bug: 'B' step PPro's are fine
|
|
|
|
+ * Ingo Molnar : Added APIC timers, based on code
|
|
|
|
+ * from Jose Renau
|
|
|
|
+ * Ingo Molnar : various cleanups and rewrites
|
|
|
|
+ * Tigran Aivazian : fixed "0.00 in /proc/uptime on SMP" bug.
|
|
|
|
+ * Maciej W. Rozycki : Bits for genuine 82489DX APICs
|
|
|
|
+ * Andi Kleen : Changed for SMP boot into long mode.
|
|
|
|
+ * Martin J. Bligh : Added support for multi-quad systems
|
|
|
|
+ * Dave Jones : Report invalid combinations of Athlon CPUs.
|
|
|
|
+ * Rusty Russell : Hacked into shape for new "hotplug" boot process.
|
|
|
|
+ * Andi Kleen : Converted to new state machine.
|
|
|
|
+ * Ashok Raj : CPU hotplug support
|
|
|
|
+ * Glauber Costa : i386 and x86_64 integration
|
|
|
|
+ */
|
|
|
|
+
|
|
#include <linux/init.h>
|
|
#include <linux/init.h>
|
|
#include <linux/smp.h>
|
|
#include <linux/smp.h>
|
|
#include <linux/module.h>
|
|
#include <linux/module.h>
|
|
@@ -44,6 +85,7 @@ u16 x86_bios_cpu_apicid_init[NR_CPUS] __initdata
|
|
void *x86_bios_cpu_apicid_early_ptr;
|
|
void *x86_bios_cpu_apicid_early_ptr;
|
|
DEFINE_PER_CPU(u16, x86_bios_cpu_apicid) = BAD_APICID;
|
|
DEFINE_PER_CPU(u16, x86_bios_cpu_apicid) = BAD_APICID;
|
|
EXPORT_PER_CPU_SYMBOL(x86_bios_cpu_apicid);
|
|
EXPORT_PER_CPU_SYMBOL(x86_bios_cpu_apicid);
|
|
|
|
+u8 apicid_2_node[MAX_APICID];
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/* State of each CPU */
|
|
/* State of each CPU */
|