aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/boot/trampoline.S
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-02-14 11:24:49 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-02-14 11:24:49 +0000
commitdf5b25e9af9248d8e00d0ef7e4ce3eec9eb44f97 (patch)
tree3e02fd3063de7b4732f1eedf7c412dd44f8696ba /xen/arch/x86/boot/trampoline.S
parenta43d6abb4b879b46df6682d11f48307d70dfc53e (diff)
downloadxen-df5b25e9af9248d8e00d0ef7e4ce3eec9eb44f97.tar.gz
xen-df5b25e9af9248d8e00d0ef7e4ce3eec9eb44f97.tar.bz2
xen-df5b25e9af9248d8e00d0ef7e4ce3eec9eb44f97.zip
x86/64: Make BIOS call to declare our intention to enter long mode.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/boot/trampoline.S')
-rw-r--r--xen/arch/x86/boot/trampoline.S7
1 files changed, 7 insertions, 0 deletions
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index 2c92dc6a00..143612c91f 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -155,6 +155,13 @@ trampoline_boot_cpu_entry:
lidt bootsym(rm_idt)
sti
+#if defined(__x86_64__)
+ /* Declare that our target operating mode is long mode. */
+ movw $0xec00,%ax # declare target operating mode
+ movw $0x0002,%bx # long mode
+ int $0x15
+#endif
+
/*
* Do real-mode work:
* 1. Get memory map.