]> xenbits.xensource.com Git - xen.git/commitdiff
x86_64: Initialise upper half of 32-bit parameter registers when
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 31 Mar 2008 15:32:33 +0000 (16:32 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 31 Mar 2008 15:32:33 +0000 (16:32 +0100)
making Target Mode BIOS call. Fixes boot problems with some buggy
BIOSes.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/boot/trampoline.S

index 143612c91f9f820c505436e50174cbea436ceeb6..af4de553a8216cb4de70a01e7a750087be1a273e 100644 (file)
@@ -156,9 +156,12 @@ trampoline_boot_cpu_entry:
         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
+        /*
+         * Declare that our target operating mode is long mode.
+         * Initialise 32-bit registers since some buggy BIOSes depend on it.
+         */
+        movl    $0xec00,%eax      # declare target operating mode
+        movl    $0x0002,%ebx      # long mode
         int     $0x15
 #endif