- Add arch/cpu.h
[coreboot.git] / src / arch / i386 / smp / start_stop.c
index 018ec30705064852d39ba547c7566ae161423f0b..bf26437984c7000363f18c1c504eb795f7e7e1d2 100644 (file)
@@ -3,29 +3,20 @@
 #include <cpu/p6/apic.h>
 #include <delay.h>
 #include <string.h>
+#include <console/console.h>
+#include <arch/smp/lapic.h>
+#include <arch/hlt.h>
 
-#ifndef START_CPU_SEG
-#define START_CPU_SEG 0x90000
-#endif
-#if (START_CPU_SEG&0xffff) != 0
-#error START_CPU_SEG must be 64k aligned
-#endif
-
-static inline void hlt(void)
-{
-       asm("hlt");
-       return;
-}
 
 unsigned long this_processors_id(void)
 {
-       return apic_read(APIC_ID) >> 24;
+       return lapicid();
 }
 
 int processor_index(unsigned long apicid)
 {
        int i;
-       for(i = 0; i < MAX_CPUS; i++) {
+       for(i = 0; i < CONFIG_MAX_CPUS; i++) {
                if (initial_apicid[i] == apicid) {
                        return i;
                }
@@ -229,7 +220,7 @@ void startup_other_cpus(unsigned long *processor_map)
        int i;
 
        /* Assume the cpus are densly packed by apicid */
-       for(i = 0; i < MAX_CPUS; i++) {
+       for(i = 0; i < CONFIG_MAX_CPUS; i++) {
                unsigned long cpu_apicid = initial_apicid[i];
                if (cpu_apicid == -1) {
                        printk_err("CPU %d not found\n",i);