[OpenBIOS] r733 - cpu/x86/pc/olpc
svn at openbios.org
svn at openbios.org
Fri Nov 16 22:57:43 CET 2007
Author: wmb
Date: 2007-11-16 22:57:42 +0100 (Fri, 16 Nov 2007)
New Revision: 733
Modified:
cpu/x86/pc/olpc/resume.bth
Log:
OLPC trac 4981 - don't hang indefinitely if the suspend sequence fails
to power down the CPU.
Modified: cpu/x86/pc/olpc/resume.bth
===================================================================
--- cpu/x86/pc/olpc/resume.bth 2007-11-16 21:48:09 UTC (rev 732)
+++ cpu/x86/pc/olpc/resume.bth 2007-11-16 21:57:42 UTC (rev 733)
@@ -315,8 +315,16 @@
wrmsr \ Write GLD_MSR_PM to self-refresh memory
di dx mov bx ax mov ax dx out \ Write PM1_CNT to initial suspend
- begin again \ Spin in this cache line while going down
+ h# fff # cx mov begin nop loopa \ Spin in this cache line while going down
+ \ If the processor didn't really go down, perhaps because a wakeup event was
+ \ already pending, restart the memory clocks and proceed as with a wakeup
+ h# 0. h# 2000.2004 set-msr \ GLD_MSR_PM MSR number
+ h# 2000.0018 rmsr h# 5000 bitset h# 2000.0018 wmsr \ Set refresh interval
+
+ \ Increment the CMOS byte at offset 3f
+ h# 3f # al mov al h# 70 # out h# 71 # al in al inc al h# 71 # out
+
\ Resume code
here resume-entry put-branch
More information about the OpenBIOS
mailing list