On Fri, May 29, 2009 at 03:08:27PM +0200, svn@coreboot.org wrote:
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 stepan@coresystems.de Acked-by: Peter Stuge peter@stuge.se
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:
Is this correct?
Aren't some files supposed to be added and some supposed to be removed with this commit? At least i seem to remember something like that from the patch that was sent in a week or so ago, and the log message also points in this direction.
Luc Verhaegen.