aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/realmode/rm/trampoline_64.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/realmode/rm/trampoline_64.S')
-rw-r--r--arch/x86/realmode/rm/trampoline_64.S25
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S
index 66e26f088288..1b9e1bc1ac5e 100644
--- a/arch/x86/realmode/rm/trampoline_64.S
+++ b/arch/x86/realmode/rm/trampoline_64.S
@@ -125,4 +125,29 @@ ENTRY(startup_64)
125 # Now jump into the kernel using virtual addresses 125 # Now jump into the kernel using virtual addresses
126 jmpq *tr_start(%rip) 126 jmpq *tr_start(%rip)
127 127
128 .section ".rodata","a"
129 # Duplicate the global descriptor table
130 # so the kernel can live anywhere
131 .balign 16
132 .globl tr_gdt
133tr_gdt:
134 .short tr_gdt_end - tr_gdt - 1 # gdt limit
135 .long pa_tr_gdt
136 .short 0
137 .quad 0x00cf9b000000ffff # __KERNEL32_CS
138 .quad 0x00af9b000000ffff # __KERNEL_CS
139 .quad 0x00cf93000000ffff # __KERNEL_DS
140tr_gdt_end:
141
142 .bss
143 .balign PAGE_SIZE
144GLOBAL(trampoline_pgd) .space PAGE_SIZE
145
146 .balign 8
147GLOBAL(trampoline_header)
148 tr_start: .space 8
149 GLOBAL(tr_cr4) .space 4
150 GLOBAL(tr_efer) .space 8
151END(trampoline_header)
152
128#include "trampoline_common.S" 153#include "trampoline_common.S"