[openfirmware] r1497 - dev/via

svn at openfirmware.info svn at openfirmware.info
Sun Nov 22 00:50:52 CET 2009


Author: wmb
Date: 2009-11-22 00:50:51 +0100 (Sun, 22 Nov 2009)
New Revision: 1497

Modified:
   dev/via/smi.fth
Log:
OLPC trac 9693 - fixed strange crash when exiting from SMI handler during Windows booting.


Modified: dev/via/smi.fth
===================================================================
--- dev/via/smi.fth	2009-11-21 03:40:50 UTC (rev 1496)
+++ dev/via/smi.fth	2009-11-21 23:50:51 UTC (rev 1497)
@@ -299,7 +299,7 @@
    smm-d16 # ax mov  ax ss mov  ax ds mov      \ Reload data and stack segments
 
    cr0 ax mov  1 invert # al and  ax cr0 mov   \ Exit protected mode
-   here 7 +  smi-handler - +smm-offset  smm-base 4 rshift #)  far jmp    \ Set CS for real mode
+   here 5 +  smi-handler - +smm-offset  smm-base 4 rshift #)  far jmp    \ Set CS for real mode
 
    wbinvd
 
@@ -360,6 +360,10 @@
 
 : smm-map?  ( vadr -- )  smm>physical  .  ;
 
+\ Linear address of the EIP, accounting for the code segment value
+\ This is the return address in the SMM handler's 0-based memory map.
+: smm-eip-la  ( -- adr )  smm-eip smm@  smm-cs-base smm@ +  ;
+
 \ Programs that write to the caller's data space should use this,
 \ as it works when called from paged V86 mode.
 : >caller-physical  ( vadr -- padr )




More information about the openfirmware mailing list