aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/boot/trampoline.S
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-12 14:06:37 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-12 14:06:37 +0100
commitd46dd79904bf6ac05570d24bd11166d6b1043889 (patch)
tree8530e5453a5b1c8afaf36523a8f30f4ad02cb19e /xen/arch/x86/boot/trampoline.S
parent79e96982cade240531d7d84fa5b966b2b64c04af (diff)
downloadxen-d46dd79904bf6ac05570d24bd11166d6b1043889.tar.gz
xen-d46dd79904bf6ac05570d24bd11166d6b1043889.tar.bz2
xen-d46dd79904bf6ac05570d24bd11166d6b1043889.zip
x86: Initialise %ds when booting APs, otherwise data accesses go to
the wrong place. Signed-off-by: Kevin Tian <kevin.tian@intel.com> 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.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index 492d42aaab..b76a25a3e7 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -6,11 +6,13 @@
.globl trampoline_realmode_entry
trampoline_realmode_entry:
+ mov %cs,%ax
+ mov %ax,%ds
movb $0xA5,bootsym(trampoline_cpu_started)
cld
cli
- lidt %cs:bootsym(idt_48)
- lgdt %cs:bootsym(gdt_48)
+ lidt bootsym(idt_48)
+ lgdt bootsym(gdt_48)
xor %ax, %ax
inc %ax
lmsw %ax # CR0.PE = 1 (enter protected mode)