x86, realmode: header for trampoline code
[cascardo/linux.git] / arch / x86 / realmode / rm / trampoline_32.S
index 279f82e..6fc064b 100644 (file)
  *
  *     We jump into arch/x86/kernel/head_32.S.
  *
- *     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, we load CS to the physical segment
  *     of the real mode code before doing anything further.
- *
- *     The structure real_mode_header includes entries that need
- *     to be set up before executing this code:
- *
- *     startup_32_smp
- *     boot_gdt
  */
 
 #include <linux/linkage.h>
 
        .text
        .code16
-       .globl trampoline_data
 
-       .balign PAGE_SIZE
-trampoline_data:
+       .balign PAGE_SIZE
+ENTRY(trampoline_start)
        wbinvd                  # Needed for NUMA-Q should be harmless for others
 
        LJMPW_RM(1f)
@@ -46,7 +39,7 @@ trampoline_data:
 
        cli                     # We should be safe anyway
 
-       movl    startup_32_smp, %eax    # where we need to go
+       movl    tr_start, %eax  # where we need to go
 
        movl    $0xA5A5A5A5, trampoline_status
                                # write marker for master knows we're running
@@ -57,8 +50,8 @@ trampoline_data:
         * operand size is 16bit. Use lgdtl instead to force operand size
         * to 32 bit.
         */
-       lidtl   boot_idt_descr          # load idt with 0, 0
-       lgdtl   boot_gdt_descr          # load gdt with whatever is appropriate
+       lidtl   tr_idt                  # load idt with 0, 0
+       lgdtl   tr_gdt                  # load gdt with whatever is appropriate
 
        movw    $1, %dx                 # protected mode (PE) bit
        lmsw    %dx                     # into protected mode
@@ -70,20 +63,4 @@ trampoline_data:
 ENTRY(startup_32)                      # note: also used from wakeup_asm.S
        jmp     *%eax
 
-       .data
-       .globl startup_32_smp, boot_gdt, trampoline_status
-       .balign 4
-boot_gdt_descr:
-       .word   __BOOT_DS + 7                   # gdt limit
-boot_gdt:
-       .long   0                               # gdt base
-
-boot_idt_descr:
-       .word   0                               # idt limit = 0
-       .long   0                               # idt base = 0L
-
-trampoline_status:
-       .long   0
-
-startup_32_smp:
-       .long   0
+#include "trampoline_common.S"