Author: stepan
Date: 2009-05-29 15:08:27 +0200 (Fri, 29 May 2009)
New Revision: 4323

Modified:
   trunk/coreboot-v2/src/arch/i386/lib/c_start.S
Log:
drop most of the crappy vm86 code and replace it with a rewritten
version that has all assembler in a .S file and all C code in a .c
file. Also, remove requirement to move around between GDTs.

This version includes the suggestions from Peter to clean up CR0 manipulation
and to guard critical code paths by cli/sti. Tested and working on my hardware.

Signed-off-by: Stefan Reinauer <[email protected]>
Acked-by: Peter Stuge <[email protected]>



Modified: trunk/coreboot-v2/src/arch/i386/lib/c_start.S
===================================================================
--- trunk/coreboot-v2/src/arch/i386/lib/c_start.S       2009-05-29 03:44:47 UTC 
(rev 4322)
+++ trunk/coreboot-v2/src/arch/i386/lib/c_start.S       2009-05-29 13:08:27 UTC 
(rev 4323)
@@ -253,7 +253,7 @@
 
        /* This is the gdt for GCC part of coreboot.
         * It is different from the gdt in ROMCC/ASM part of coreboot
-        * which is defined in entry32.inc */
+        * which is defined in entry32.inc */ /* BUT WHY?? */
 gdt:
        /* selgdt 0, unused */
        .word   0x0000, 0x0000          /* dummy */
@@ -275,6 +275,13 @@
        .word   0x0000, 0x0000          /* dummy */
        .byte   0x00, 0x00, 0x00, 0x00
 
+       /* selgdt 0x28 16-bit 64k code at 0x00000000 */
+       .word   0xffff, 0x0000
+       .byte   0, 0x9a, 0, 0
+
+       /* selgdt 0x30 16-bit 64k data at 0x00000000 */
+       .word   0xffff, 0x0000
+       .byte   0, 0x92, 0, 0
 gdt_end:
 
 idtarg:


-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to