Stefan Reinauer wrote:
> 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.
> 
> Signed-off-by: Stefan Reinauer <[email protected]>


> +++ util/x86emu/x86_asm.S     (revision 0)
..
> +     movl    %cr0, %eax
> +     andl    $0xFFFFFFFE, %eax
> +     movl    %eax, %cr0

> +     movl    %cr0, %eax
> +     orl     $0x0000001, %eax /* PE = 1 */
> +     movl    %eax, %cr0

> +     movl    %cr0, %eax
> +     andl    $~1, %eax
> +     movl    %eax, %cr0

> +     movl    %cr0, %eax
> +     orl     $(1 << 0), %eax
> +     movl    %eax, %cr0

> +     movl    %cr0, %eax
> +     orl     $(1 << 0), %eax
> +     movl    %eax, %cr0

> +     movl    %cr0, %eax
> +     andl    $~(1 << 0), %eax
> +     movl    %eax, %cr0

It would be neat if these different ways of changing PE could be
streamlined a little.

And could it be good to cli/sti around the PE changes?

If not;

Acked-by: Peter Stuge <[email protected]>

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

Reply via email to