diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-03-31 16:32:33 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-03-31 16:32:33 +0100 |
commit | 0aa49ebc5e3f9061f5e9d2d94ec29a994f663493 (patch) | |
tree | 1807aa816459bb9703e90ba3e40a3fdd3757609e /xen/arch/x86/boot/trampoline.S | |
parent | c0b0636f388fcbdc168e8254188d7f145ecdab98 (diff) | |
download | xen-0aa49ebc5e3f9061f5e9d2d94ec29a994f663493.tar.gz xen-0aa49ebc5e3f9061f5e9d2d94ec29a994f663493.tar.bz2 xen-0aa49ebc5e3f9061f5e9d2d94ec29a994f663493.zip |
x86_64: Initialise upper half of 32-bit parameter registers when
making Target Mode BIOS call. Fixes boot problems with some buggy
BIOSes.
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.S | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S index 143612c91f..af4de553a8 100644 --- a/xen/arch/x86/boot/trampoline.S +++ b/xen/arch/x86/boot/trampoline.S @@ -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 |