From: Michael Brown Date: Tue, 1 Mar 2011 16:03:44 +0000 (+0000) Subject: [prefix] Set the "size" bit in the GDT entry for the flat data segment X-Git-Tag: v1.20.1~2291 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90563f69be960d3b6fd9021445aa9ecdf6eb5db7;p=thirdparty%2Fipxe.git [prefix] Set the "size" bit in the GDT entry for the flat data segment 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 --- diff --git a/src/arch/i386/prefix/libprefix.S b/src/arch/i386/prefix/libprefix.S index b67798e5d..76f455862 100644 --- a/src/arch/i386/prefix/libprefix.S +++ b/src/arch/i386/prefix/libprefix.S @@ -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