]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blob - include/asm-i386/mach-default/smpboot_hooks.h
[PATCH] i386: move apic init in init_IRQs
[linux-2.6-omap-h63xx.git] / include / asm-i386 / mach-default / smpboot_hooks.h
1 /* two abstractions specific to kernel/smpboot.c, mainly to cater to visws
2  * which needs to alter them. */
3
4 static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
5 {
6         CMOS_WRITE(0xa, 0xf);
7         local_flush_tlb();
8         Dprintk("1.\n");
9         *((volatile unsigned short *) TRAMPOLINE_HIGH) = start_eip >> 4;
10         Dprintk("2.\n");
11         *((volatile unsigned short *) TRAMPOLINE_LOW) = start_eip & 0xf;
12         Dprintk("3.\n");
13 }
14
15 static inline void smpboot_restore_warm_reset_vector(void)
16 {
17         /*
18          * Install writable page 0 entry to set BIOS data area.
19          */
20         local_flush_tlb();
21
22         /*
23          * Paranoid:  Set warm reset code and vector here back
24          * to default values.
25          */
26         CMOS_WRITE(0, 0xf);
27
28         *((volatile long *) phys_to_virt(0x467)) = 0;
29 }