[OpenBIOS] r559 - cpu/x86/pc/olpc
svn at openbios.org
svn at openbios.org
Fri Aug 17 06:14:16 CEST 2007
Author: wmb
Date: 2007-08-17 06:14:16 +0200 (Fri, 17 Aug 2007)
New Revision: 559
Added:
cpu/x86/pc/olpc/rtcwake.fth
Log:
OLPC rtcwake.fth - Initial checkin of test code to wakeup from RTC alarm.
Added: cpu/x86/pc/olpc/rtcwake.fth
===================================================================
--- cpu/x86/pc/olpc/rtcwake.fth (rev 0)
+++ cpu/x86/pc/olpc/rtcwake.fth 2007-08-17 04:14:16 UTC (rev 559)
@@ -0,0 +1,36 @@
+\ Suspend/resume test with RTC wakeup
+d# 2 value rtc-alarm-delay
+
+h# 41 constant cmos-alarm-day \ CMOS offset of day alarm
+h# 40 constant cmos-alarm-month \ CMOS offset of month alarm
+cmos-alarm-day 0 h# 5140.0055 msr!
+cmos-alarm-month 0 h# 5140.0056 msr!
+
+: enable-rtc-alarm ( -- )
+ h# c cmos@ drop \ Clear RTC interrupt flags
+ h# b cmos@ h# 20 or h# b cmos!
+;
+: disable-rtc-alarm ( -- )
+ h# b cmos@ h# 20 invert and h# b cmos!
+;
+: bcd-cmos! ( binary -- ) " bcd!" clock-node @ $call-method ;
+: set-rtc-alarm ( secs -- )
+ disable-rtc-alarm
+ now ( secs s m h )
+ d# 60 * d# 60 * swap d# 60 * + + + ( s )
+ d# 60 /mod d# 60 /mod d# 24 mod ( s m h )
+ h# c0 cmos-alarm-month cmos! ( s m h ) \ Any day
+ h# c0 cmos-alarm-day cmos! ( s m h ) \ Any month
+ 5 bcd-cmos! 3 bcd-cmos! 1 bcd-cmos! ( )
+ enable-rtc-alarm
+;
+
+: rs ( -- )
+ rtc-alarm-delay set-rtc-alarm
+ s
+ disable-rtc-alarm
+;
+patch 500.0000 100.0000 s3 \ Turn on RTC wakeup too
+: rss begin d# 50 ms rs ." ." key? until ;
+
+.( 'rs' does it once, 'rss' does it until you type a key) cr
More information about the OpenBIOS
mailing list