summaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/trampoline.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel/trampoline.S')
-rw-r--r--arch/i386/kernel/trampoline.S43
1 files changed, 2 insertions, 41 deletions
diff --git a/arch/i386/kernel/trampoline.S b/arch/i386/kernel/trampoline.S
index 63bc51c5e..d0a726f6b 100644
--- a/arch/i386/kernel/trampoline.S
+++ b/arch/i386/kernel/trampoline.S
@@ -21,13 +21,9 @@
* and IP is zero. Thus, data addresses need to be absolute
* (no relocation) and are taken with regard to r_base.
*
- * On the transition to protected mode, this page appears at
- * address 8192, so protected mode addresses are with regard
- * to p_base.
- *
* If you work on this file, check the object module with objdump
* --full-contents --reloc to make sure there are no relocation
- * entries.
+ * entries except for the gdt one..
*/
#include <linux/linkage.h>
@@ -39,15 +35,10 @@
ENTRY(trampoline_data)
r_base = .
-p_base = . - 8192
mov %cs, %ax # Code and data in the same place
mov %ax, %ds
- mov %ax, %cx # Pass stack info to the 32bit boot
- shl $4, %cx # Segment -> Offset
- add $4096, %cx # End of page is wanted
-
mov $1, %bx # Flag an SMP trampoline
cli # We should be safe anyway
@@ -71,37 +62,7 @@ idt_48:
gdt_48:
.word 0x0800 # gdt limit = 2048, 256 GDT entries
- .word gdt - p_base, 0x0 # gdt base = gdt (first SMP CPU)
- # we load the others with first table
- # saves rewriting gdt_48 for each
-gdt:
- .word 0, 0, 0, 0 # dummy
-
- .word 0, 0, 0, 0 # unused
-
-# walken modif
-
- .word 0xFFFF # 4 Gb - (0x100000*0x1000 = 4Gb)
- .word 0x0000 # base address = 0
- .word 0x9A00 # code read / exec
- .word 0x00CF # granularity = 4096, 386 (+5th nibble of limit)
-
- .word 0xFFFF # 4 Gb - (0x100000*0x1000 = 4Gb)
- .word 0x0000 # base address = 0
- .word 0x9200 # data read / write
- .word 0x00CF # granularity = 4096, 386 (+5th nibble of limit)
-
-# walken modif
-
-# .word 0x07FF # 8 Mb - limit = 2047 (2048 * 4096 = 8 Mb)
-# .word 0x0000 # base address = 0
-# .word 0x9A00 # code read / exec
-# .word 0x00C0 # granularity = 4096, 386
-
-# .word 0x07FF # 8 Mb - limit = 2047 (2048 * 4096 = 8 Mb)
-# .word 0x0000 # base address = 0
-# .word 0x9200 # data read / write
-# .word 0x00C0 # granularity = 4096, 386
+ .long gdt-0xc0000000 # gdt base = gdt (first SMP CPU)
.globl SYMBOL_NAME(trampoline_end)
SYMBOL_NAME_LABEL(trampoline_end)