[OpenBIOS] r694 - cpu/x86/pc/olpc dev/usb2/device/wlan

svn at openbios.org svn at openbios.org
Tue Oct 23 03:18:40 CEST 2007


Author: wmb
Date: 2007-10-23 03:18:40 +0200 (Tue, 23 Oct 2007)
New Revision: 694

Added:
   cpu/x86/pc/olpc/wlantest.fth
Modified:
   cpu/x86/pc/olpc/fw.bth
   cpu/x86/pc/olpc/rtcwake.fth
   dev/usb2/device/wlan/usb8388.fth
Log:
OLPC - Added rtc-wackup command for suspend-resume testing, and
made it slightly easier to include the WLAN version of auto-wakeup.


Modified: cpu/x86/pc/olpc/fw.bth
===================================================================
--- cpu/x86/pc/olpc/fw.bth	2007-10-23 00:59:11 UTC (rev 693)
+++ cpu/x86/pc/olpc/fw.bth	2007-10-23 01:18:40 UTC (rev 694)
@@ -336,6 +336,10 @@
 fload ${BP}/ofw/gui/ofpong.fth
 fload ${BP}/cpu/x86/pc/olpc/life.fth
 fload ${BP}/cpu/x86/pc/olpc/sound.fth
+[ifdef] wlan-wackup
+fload ${BP}/cpu/x86/pc/olpc/wlantest.fth
+[then]
+fload ${BP}/cpu/x86/pc/olpc/rtcwake.fth
 ' gx-power-off to power-off
 [then]
 
@@ -384,6 +388,7 @@
    then
 
    ec-reboot   \ Tell the EC to reboot us, so the EC can reset too
+   begin again
 ;
 ' dcon-reset-all to reset-all
 

Modified: cpu/x86/pc/olpc/rtcwake.fth
===================================================================
--- cpu/x86/pc/olpc/rtcwake.fth	2007-10-23 00:59:11 UTC (rev 693)
+++ cpu/x86/pc/olpc/rtcwake.fth	2007-10-23 01:18:40 UTC (rev 694)
@@ -1,16 +1,33 @@
-\ Suspend/resume test with RTC wakeup
-d# 2 value rtc-alarm-delay
+purpose: Suspend/resume test with RTC wakeup
+\ See license at end of file
 
-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-irq   ( -- )  h# a1 pc@ h# fe and h# a1 pc!  ;
+: disable-rtc-irq  ( -- )  h# a1 pc@     1 or  h# a1 pc!  ;
 
+0 value cmos-alarm-day			\ Offset of day alarm in CMOS
+0 value cmos-alarm-month		\ Offset of month alarm in CMOS
+
+: set-alarm-offsets  ( -- )
+   h# 10. h# 5140.0055 wrmsr
+   h# 11. h# 5140.0056 wrmsr
+
+   h# 5140.0055 rdmsr drop to cmos-alarm-day
+   h# 5140.0056 rdmsr drop to cmos-alarm-month
+;
+
+false value enable-rtc-irq?
+
+: rtc-handler  ( -- )  h# c cmos@ drop  ." R"  ;	\ Clear RTC interrupt flags
+
 : enable-rtc-alarm   ( -- )
+   ['] rtc-handler 8 interrupt-handler!
+
+   enable-rtc-irq?  if  enable-rtc-irq  then
    h# c cmos@ drop				\ Clear RTC interrupt flags
    h# b cmos@ h# 20 or h# b cmos!  
 ;
 : disable-rtc-alarm  ( -- )
+   disable-rtc-irq
    h# b cmos@ h# 20 invert and h# b cmos!  
 ;
 : bcd-cmos!  ( binary -- )  " bcd!" clock-node @ $call-method  ;
@@ -24,13 +41,42 @@
    5 bcd-cmos!  3 bcd-cmos!  1 bcd-cmos!	( )
    enable-rtc-alarm
 ;
-
-: rs  ( -- )
+d# 1 constant rtc-alarm-delay
+: pm-sleep-rtc  ( -- )
+   false to enable-rtc-irq?		\ Spec says that IRQ is not necessary
    rtc-alarm-delay set-rtc-alarm
+   h# 400.0000 0 acpi-l!		\ Enable RTC SCI
    s
    disable-rtc-alarm
+   0 0 acpi-l!				\ Disable RTC SCI
 ;
-patch 500.0000 100.0000 s3  \ Turn on RTC wakeup too
-: rss  begin  d# 50 ms rs  ." ."  key? until  ;
+: rtc-wackup
+   set-alarm-offsets
+   0
+   begin  pm-sleep-rtc space dup . (cr 1+  key? until
+   key drop
+;
 
-.( 'rs' does it once, 'rss' does it until you type a key) cr
+\ LICENSE_BEGIN
+\ Copyright (c) 2007 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Added: cpu/x86/pc/olpc/wlantest.fth
===================================================================
--- cpu/x86/pc/olpc/wlantest.fth	                        (rev 0)
+++ cpu/x86/pc/olpc/wlantest.fth	2007-10-23 01:18:40 UTC (rev 694)
@@ -0,0 +1,29 @@
+purpose: Wireless LAN auto-wakeup (requires modified WLAN firmware)
+
+0 value patched?
+: wackup
+   patched? 0=  if
+      " /wlan" find-device
+      " patch exit link-up? close" evaluate
+      dend
+      true to patched?
+   then
+
+   sci-wakeup
+
+   " /wlan" open-dev >r
+   " broadcast-wakeup" r@ $call-method
+   r> close-dev
+
+   0
+   begin
+      " /wlan" open-dev >r
+      " autostart" r@ $call-method
+      " sleep" r@ $call-method
+      r> close-dev
+      5 ms
+      s
+      1+ dup .
+      d# 500 ms
+   key? until
+;

Modified: dev/usb2/device/wlan/usb8388.fth
===================================================================
--- dev/usb2/device/wlan/usb8388.fth	2007-10-23 00:59:11 UTC (rev 693)
+++ dev/usb2/device/wlan/usb8388.fth	2007-10-23 01:18:40 UTC (rev 694)
@@ -1164,7 +1164,7 @@
 : broadcast-wakeup  ( -- )  wake-on-unicast wake-on-broadcast or  host-sleep-config  ;
 : sleep ( -- ) host-sleep-activate  ;
 
-[ifdef] notdef  \ This is test code that only works with a special debug version of the Libertas firmware
+[ifdef] wlan-wackup  \ This is test code that only works with a special debug version of the Libertas firmware
 : autostart  ( -- )
    h# 82 h# 9b ( CMD_MESH_ACCESS ) prepare-cmd
    5 +xw  \ CMD_ACT_SET_ANYCAST




More information about the OpenBIOS mailing list