summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/realmode.h
diff options
context:
space:
mode:
authorJarkko Sakkinen <jarkko.sakkinen@intel.com>2012-05-08 20:22:28 +0200
committerH. Peter Anvin <hpa@linux.intel.com>2012-05-08 20:41:51 +0200
commit48927bbb97c7d4cf343c05827ab9ac30c60678cb (patch)
tree715b2efa48c5678ada3d02a73f87e1538fe8c9b2 /arch/x86/include/asm/realmode.h
parentx86, realmode: Move reboot_32.S to unified realmode code (diff)
downloadlinux-48927bbb97c7d4cf343c05827ab9ac30c60678cb.tar.xz
linux-48927bbb97c7d4cf343c05827ab9ac30c60678cb.zip
x86, realmode: Move SMP trampoline to unified realmode code
Migrated SMP trampoline code to the real mode blob. SMP trampoline code is not yet removed from .x86_trampoline because it is needed by the wakeup code. [ hpa: always enable compiling startup_32_smp in head_32.S... it is only a few instructions which go into .init on UP builds, and it makes the rest of the code less #ifdef ugly. ] Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@intel.com> Link: http://lkml.kernel.org/r/1336501366-28617-6-git-send-email-jarkko.sakkinen@intel.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/include/asm/realmode.h')
-rw-r--r--arch/x86/include/asm/realmode.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
index bf26b0681931..9b4a5da5e22e 100644
--- a/arch/x86/include/asm/realmode.h
+++ b/arch/x86/include/asm/realmode.h
@@ -13,6 +13,17 @@ struct real_mode_header {
#ifdef CONFIG_X86_32
u32 machine_real_restart_asm;
#endif
+ /* SMP trampoline */
+ u32 trampoline_data;
+ u32 trampoline_status;
+#ifdef CONFIG_X86_32
+ u32 startup_32_smp;
+ u32 boot_gdt;
+#else
+ u32 startup_64_smp;
+ u32 level3_ident_pgt;
+ u32 level3_kernel_pgt;
+#endif
} __attribute__((__packed__));
extern struct real_mode_header real_mode_header;
@@ -25,6 +36,13 @@ extern unsigned long initial_gs;
extern unsigned char real_mode_blob[];
extern unsigned char real_mode_relocs[];
+#ifdef CONFIG_X86_32
+extern unsigned char startup_32_smp[];
+extern unsigned char boot_gdt[];
+#else
+extern unsigned char secondary_startup_64[];
+#endif
+
extern void __init setup_real_mode(void);
#endif /* _ARCH_X86_REALMODE_H */