[openfirmware] r1626 - in cpu/x86/pc/olpc: . via

svn at openfirmware.info svn at openfirmware.info
Wed Dec 16 09:37:07 CET 2009


Author: wmb
Date: 2009-12-16 09:37:06 +0100 (Wed, 16 Dec 2009)
New Revision: 1626

Modified:
   cpu/x86/pc/olpc/rtcwake.fth
   cpu/x86/pc/olpc/via/probemem.fth
   cpu/x86/pc/olpc/via/rtcwake.fth
Log:
OLPC trac 9887 - added suspend/resume test to memory selftest.


Modified: cpu/x86/pc/olpc/rtcwake.fth
===================================================================
--- cpu/x86/pc/olpc/rtcwake.fth	2009-12-16 08:20:30 UTC (rev 1625)
+++ cpu/x86/pc/olpc/rtcwake.fth	2009-12-16 08:37:06 UTC (rev 1626)
@@ -51,7 +51,7 @@
 
 : show-rtc-wake  ." R"  ;
 
-d# 1 constant rtc-alarm-delay
+d# 1 value rtc-alarm-delay
 : pm-sleep-rtc  ( -- )
    0 acpi-l@ h# 400.0000 or  0 acpi-l!	\ Enable RTC SCI
    ['] show-rtc-wake  rtc-alarm-delay " set-alarm" clock-node @ $call-method
@@ -103,6 +103,22 @@
    autowack-off
 ;
 
+: s3-selftest  ( -- error? )
+   \ The general failure mode here is that it won't wake up, so
+   \ it's hard to return a real error code.  We just have to rely
+   \ on the operator.
+   ." Testing S3 suspend/resume"  cr
+   rtc-alarm-delay  >r
+   ." Sleeping for 1 second .. "   1 to rtc-alarm-delay  pm-sleep-rtc  cr
+   ." Sleeping for 4 seconds .. "  4 to rtc-alarm-delay  pm-sleep-rtc  cr
+   ." Sleeping for 8 seconds .. "  8 to rtc-alarm-delay  pm-sleep-rtc  cr
+   r> to rtc-alarm-delay
+   false
+;
+dev /memory
+[ifdef] test-s3  ' s3-selftest to test-s3  [then]
+dend
+
 stand-init: Century
    h# 20 cmos-century cmos!   \ The century is in BCD, hence h#
 ;

Modified: cpu/x86/pc/olpc/via/probemem.fth
===================================================================
--- cpu/x86/pc/olpc/via/probemem.fth	2009-12-16 08:20:30 UTC (rev 1625)
+++ cpu/x86/pc/olpc/via/probemem.fth	2009-12-16 08:37:06 UTC (rev 1626)
@@ -79,6 +79,7 @@
 : 8u.h  ( n -- )  push-hex (.8) type pop-base  ;
 [then]
 : .chunk  ( adr len -- )  ." Testing memory at: " swap 8u.h ."  size " 8u.h cr  ;
+defer test-s3  ( -- error? )  ' false is test-s3
 : selftest  ( -- error? )
    " available" get-my-property  if  ." No available property" cr true exit  then
 					 ( adr len )
@@ -88,7 +89,8 @@
       \ We maintain a 1-1 convenience mapping so explicit mapping is unnecessary
       memory-test-suite  if  2drop true exit  then	 ( rem$ )
    repeat  drop
-   false
+
+   test-s3
 ;
 
 device-end

Modified: cpu/x86/pc/olpc/via/rtcwake.fth
===================================================================
--- cpu/x86/pc/olpc/via/rtcwake.fth	2009-12-16 08:20:30 UTC (rev 1625)
+++ cpu/x86/pc/olpc/via/rtcwake.fth	2009-12-16 08:37:06 UTC (rev 1626)
@@ -51,7 +51,7 @@
 
 : show-rtc-wake  ." R"  ;
 
-d# 1 constant rtc-alarm-delay
+d# 1 value rtc-alarm-delay
 : pm-sleep-rtc  ( -- )
    0 acpi-l@ h# 400.0000 or  0 acpi-l!	\ Enable RTC SCI
    ['] show-rtc-wake  rtc-alarm-delay " set-alarm" clock-node @ $call-method
@@ -63,6 +63,19 @@
    begin  pm-sleep-rtc space dup . (cr 1+  key? until
    key drop
 ;
+: s3-selftest  ( -- error? )
+   \ The general failure mode here is that it won't wake up, so
+   \ it's hard to return a real error code.  We just have to rely
+   \ on the operator.
+   ." Testing S3 suspend/resume"  cr
+   rtc-alarm-delay  >r
+   ." Sleeping for 1 second .. "   1 to rtc-alarm-delay  pm-sleep-rtc  cr
+   ." Sleeping for 4 seconds .. "  4 to rtc-alarm-delay  pm-sleep-rtc  cr
+   ." Sleeping for 8 seconds .. "  8 to rtc-alarm-delay  pm-sleep-rtc  cr
+   r> to rtc-alarm-delay
+   false
+;
+dev /memory  ' s3-selftest to test-s3  dend
 
 stand-init: Century
    h# 20 cmos-century cmos!   \ The century is in BCD, hence h#




More information about the openfirmware mailing list