]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[prefix] Set the "size" bit in the GDT entry for the flat data segment
authorMichael Brown <mcb30@ipxe.org>
Tue, 1 Mar 2011 16:03:44 +0000 (16:03 +0000)
committerMichael Brown <mcb30@ipxe.org>
Tue, 1 Mar 2011 16:09:09 +0000 (16:09 +0000)
The "size" bit (aka the D/B) bit should (as far as I can tell) be
irrelevant for accesses to a non-code, non-stack, expand-upwards
segment.  However, VirtualBox fails on some accesses via this segment
if this bit is not set.

This change allows iPXE to boot under VirtualBox without having to
disable VT-x/AMD-V support.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/i386/prefix/libprefix.S

index b67798e5d5f8cdf0928d33946dc593e7c2ac2c53..76f45586247ccd1f7661137ae1ce0daa69a29f3e 100644 (file)
@@ -332,7 +332,7 @@ process_bytes:
 
        /* Construct GDT on stack (since .prefix may not be writable) */
        .equ    PM_DS, 0x18     /* Flat data segment */
-       pushl   $0x008f9300
+       pushl   $0x00cf9300
        pushl   $0x0000ffff
        .equ    PM_SS, 0x10     /* Stack segment based at %ss:0000 */
        pushl   $0x008f0930