diff options
author | Keir Fraser <keir@xensource.com> | 2007-10-22 07:44:25 +0100 |
---|---|---|
committer | Keir Fraser <keir@xensource.com> | 2007-10-22 07:44:25 +0100 |
commit | f72027fbb24d2209ca14cc875278e3cf018f3f0b (patch) | |
tree | 5bfe8840de260bf20e02d6c1136b6c9d443ac4c6 /xen/arch/x86/boot/trampoline.S | |
parent | 88561d305804fe7a5d1a864a6e74854f57f80f2a (diff) | |
download | xen-f72027fbb24d2209ca14cc875278e3cf018f3f0b.tar.gz xen-f72027fbb24d2209ca14cc875278e3cf018f3f0b.tar.bz2 xen-f72027fbb24d2209ca14cc875278e3cf018f3f0b.zip |
x86: Allow BOOT_TRAMPOLINE to be changed without needing manual
modification of the trampoline GDT. Adjust trampoline base to
0x94000.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/boot/trampoline.S')
-rw-r--r-- | xen/arch/x86/boot/trampoline.S | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S index ca2337af23..ab4c46e728 100644 --- a/xen/arch/x86/boot/trampoline.S +++ b/xen/arch/x86/boot/trampoline.S @@ -22,13 +22,22 @@ trampoline_realmode_entry: idt_48: .word 0, 0, 0 # base = limit = 0 gdt_48: .word 6*8-1 .long bootsym_phys(trampoline_gdt) + .align 8 trampoline_gdt: - .quad 0x0000000000000000 /* 0x0000: unused */ - .quad 0x00cf9a000000ffff /* 0x0008: ring 0 code, 32-bit mode */ - .quad 0x00af9a000000ffff /* 0x0010: ring 0 code, 64-bit mode */ - .quad 0x00cf92000000ffff /* 0x0018: ring 0 data */ - .quad 0x00009a090000ffff /* 0x0020: real-mode code @ 0x90000 */ - .quad 0x000092090000ffff /* 0x0028: real-mode data @ 0x90000 */ + /* 0x0000: unused */ + .quad 0x0000000000000000 + /* 0x0008: ring 0 code, 32-bit mode */ + .quad 0x00cf9a000000ffff + /* 0x0010: ring 0 code, 64-bit mode */ + .quad 0x00af9a000000ffff + /* 0x0018: ring 0 data */ + .quad 0x00cf92000000ffff + /* 0x0020: real-mode code @ BOOT_TRAMPOLINE */ + .long 0x0000ffff | ((BOOT_TRAMPOLINE & 0x00ffff) << 16) + .long 0x00009a00 | ((BOOT_TRAMPOLINE & 0xff0000) >> 16) + /* 0x0028: real-mode data @ BOOT_TRAMPOLINE */ + .long 0x0000ffff | ((BOOT_TRAMPOLINE & 0x00ffff) << 16) + .long 0x00009200 | ((BOOT_TRAMPOLINE & 0xff0000) >> 16) cpuid_ext_features: .long 0 @@ -142,7 +151,7 @@ trampoline_boot_cpu_entry: mov %ax,%es mov %ax,%ss - /* Stack grows down from 0x93000. Initialise IDT and enable irqs. */ + /* Stack grows down from +0x3000. Initialise IDT and enable irqs. */ mov $0x3000,%sp lidt bootsym(rm_idt) sti |