summaryrefslogtreecommitdiff
path: root/arch/x86/realmode/rm/header.S
diff options
context:
space:
mode:
authorJarkko Sakkinen <jarkko.sakkinen@intel.com>2012-05-08 21:22:43 +0300
committerH. Peter Anvin <hpa@linux.intel.com>2012-05-08 11:48:45 -0700
commitf37240f16bec91f15ce564515f70a6ca9715ce96 (patch)
treed1e98241650bfed0d87f60e3e71a8ad716782f6d /arch/x86/realmode/rm/header.S
parentc4845474a01f699966272536e8416222e3f2d2cb (diff)
downloadlinux-next-f37240f16bec91f15ce564515f70a6ca9715ce96.tar.gz
x86, realmode: header for trampoline code
Added header for trampoline code that can be used to supply input data to it. This makes interface between real mode code and kernel cleaner and simpler. Replaced two confusing pointers to level4 pgt in trampoline_64.S with a single pointer to the beginning of the page table. Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@intel.com> Link: http://lkml.kernel.org/r/1336501366-28617-21-git-send-email-jarkko.sakkinen@intel.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/realmode/rm/header.S')
-rw-r--r--arch/x86/realmode/rm/header.S35
1 files changed, 16 insertions, 19 deletions
diff --git a/arch/x86/realmode/rm/header.S b/arch/x86/realmode/rm/header.S
index c83005c4d455..b4c32632bf16 100644
--- a/arch/x86/realmode/rm/header.S
+++ b/arch/x86/realmode/rm/header.S
@@ -7,28 +7,25 @@
#include <linux/linkage.h>
#include <asm/page_types.h>
- .section ".header", "a"
+ .section ".header", "a"
GLOBAL(real_mode_header)
- .long pa_text_start
- .long pa_ro_end
-#ifdef CONFIG_X86_32
- .long pa_machine_real_restart_asm
-#endif
- /* SMP trampoline */
- .long pa_trampoline_data
- .long pa_trampoline_status
-#ifdef CONFIG_X86_32
- .long pa_startup_32_smp
- .long pa_boot_gdt
-#else
- .long pa_startup_64_smp
- .long pa_level3_ident_pgt
- .long pa_level3_kernel_pgt
+ .long pa_text_start
+ .long pa_ro_end
+ /* SMP trampoline */
+ .long pa_trampoline_start
+ .long pa_trampoline_status
+ .long pa_trampoline_header
+#ifdef CONFIG_X86_64
+ .long pa_trampoline_pgd;
#endif
- /* ACPI sleep */
+ /* ACPI S3 wakeup */
#ifdef CONFIG_ACPI_SLEEP
- .long pa_wakeup_start
- .long pa_wakeup_header
+ .long pa_wakeup_start
+ .long pa_wakeup_header
+#endif
+ /* APM/BIOS reboot */
+#ifdef CONFIG_X86_32
+ .long pa_machine_real_restart_asm
#endif
END(real_mode_header)