summaryrefslogtreecommitdiff
path: root/arch/x86/realmode/rm/trampoline_64.S
diff options
context:
space:
mode:
authorJarkko Sakkinen <jarkko.sakkinen@intel.com>2012-05-08 18:22:43 (GMT)
committerH. Peter Anvin <hpa@linux.intel.com>2012-05-08 18:48:45 (GMT)
commitf37240f16bec91f15ce564515f70a6ca9715ce96 (patch)
treed1e98241650bfed0d87f60e3e71a8ad716782f6d /arch/x86/realmode/rm/trampoline_64.S
parentc4845474a01f699966272536e8416222e3f2d2cb (diff)
downloadlinux-f37240f16bec91f15ce564515f70a6ca9715ce96.tar.xz
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/trampoline_64.S')
-rw-r--r--arch/x86/realmode/rm/trampoline_64.S18
1 files changed, 5 insertions, 13 deletions
diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S
index f71ea08..3f72932 100644
--- a/arch/x86/realmode/rm/trampoline_64.S
+++ b/arch/x86/realmode/rm/trampoline_64.S
@@ -10,7 +10,7 @@
* trampoline page to make our stack and everything else
* is a mystery.
*
- * On entry to trampoline_data, the processor is in real mode
+ * On entry to trampoline_start, the processor is in real mode
* with 16-bit addressing and 16-bit data. CS has some value
* and IP is zero. Thus, data addresses need to be absolute
* (no relocation) and are taken with regard to r_base.
@@ -37,7 +37,7 @@
.balign PAGE_SIZE
.code16
-ENTRY(trampoline_data)
+ENTRY(trampoline_start)
cli # We should be safe anyway
wbinvd
@@ -97,7 +97,7 @@ ENTRY(startup_32)
movl %eax, %cr4 # Enable PAE mode
# Setup trampoline 4 level pagetables
- movl $pa_level3_ident_pgt, %eax
+ movl $pa_trampoline_pgd, %eax
movl %eax, %cr3
movl $MSR_EFER, %ecx
@@ -122,7 +122,7 @@ ENTRY(startup_32)
.balign 4
ENTRY(startup_64)
# Now jump into the kernel using virtual addresses
- jmpq *startup_64_smp(%rip)
+ jmpq *tr_start(%rip)
.section ".rodata","a"
.balign 16
@@ -143,12 +143,4 @@ tgdt:
.quad 0x00cf93000000ffff # __KERNEL_DS
tgdt_end:
- .bss
-
- .balign PAGE_SIZE
-GLOBAL(level3_ident_pgt) .space 511*8
-GLOBAL(level3_kernel_pgt) .space 8
-
- .balign 8
-GLOBAL(startup_64_smp) .space 8
-GLOBAL(trampoline_status) .space 4
+#include "trampoline_common.S"