[openfirmware] [commit] r1757 - cpu/x86/pc/olpc

repository service svn at openfirmware.info
Fri Feb 19 00:34:41 CET 2010


Author: wmb
Date: Fri Feb 19 00:34:41 2010
New Revision: 1757
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1757

Log:
OLPC trac 10022 - XO 1.0 Keyjector - power state check before bootfw2.zip

Modified:
   cpu/x86/pc/olpc/keyject.fth

Modified: cpu/x86/pc/olpc/keyject.fth
==============================================================================
--- cpu/x86/pc/olpc/keyject.fth	Thu Feb 18 23:24:50 2010	(r1756)
+++ cpu/x86/pc/olpc/keyject.fth	Fri Feb 19 00:34:41 2010	(r1757)
@@ -139,8 +139,36 @@
    2drop
 ;
 
+: ac-connected?  ( -- flag )  bat-status@ h# 10 and  0<>  ;
+
+\ Empirically, a weak-but-present battery can present the "trickle charge" (80)
+\ but not present the "present" bit (01).
+: battery-present?  ( -- flag )  bat-status@ h# 81 and  0<>  ;
+
+\ Similarly, a weak-but-present battery can present the "trickle charge" (80)
+\ but not present the "battery low" bit (04).
+: battery-strong?  ( -- flag )  bat-status@ h# 84 and  0=  ;
+
+: wait-enough-power  ( -- )
+   ac-connected?  0=  if
+      ." Please connect the AC adapter to continue..."
+      begin  d# 100 ms  ac-connected?  until
+      cr
+   then
+   battery-present?  0=  if
+      ." Please insert a well-charged battery to continue..."
+      begin  d# 100 ms  battery-present?  until
+      cr
+   then
+   battery-strong?  0=  if
+      ." The battery is low.  Please insert a charged one to continue..."
+      begin  d# 100 ms  battery-present? battery-strong? and  until
+   then
+;
+
 \ Firmware is in flash-buf
 : update-firmware  ( -- )
+   wait-enough-power
    write-firmware
 
    ['] verify-firmware catch  if



More information about the openfirmware mailing list