Following patch flushes the instruction queue when we set PE=0. This is normally

done by FAR JMP, but here it is more tricky because we run at EIP>1MB. Many
thanks to Marc and Kevin to tell me how to fix it

The trick is to use 0x66 prefix (done with ljmpl) it will allow to jump in real
mode to any EIP addresses  ;) 

Signed-off-by: Rudolf Marek <r.marek@assembler.cz>
Acked-by: Peter Stuge <peter@stuge.se>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4124 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Rudolf Marek 2009-04-16 21:09:56 +00:00
parent f9fab37ecb
commit e4be46b4c3
1 changed files with 2 additions and 0 deletions

View File

@ -45,6 +45,8 @@ reload_cs:
movl %cr0, %eax
andb $0xfe,%al
movl %eax, %cr0
ljmpl $0x0, $cpu_flushed
cpu_flushed:
movw $0x0, %ax
movw %ax, %ds
movw %ax, %es