[openfirmware] r1227 - cpu/x86/pc/olpc cpu/x86/pc/olpc/via dev/olpc/kb3700
svn at openfirmware.info
svn at openfirmware.info
Sun Jun 28 03:14:50 CEST 2009
Author: rsmith
Date: 2009-06-28 03:14:50 +0200 (Sun, 28 Jun 2009)
New Revision: 1227
Modified:
cpu/x86/pc/olpc/rtcwake.fth
cpu/x86/pc/olpc/via/versions.fth
dev/olpc/kb3700/battery.fth
dev/olpc/kb3700/ecio.fth
Log:
- Add support for general purpose ec timer driven wakeups
- Add some test code for testing ec timer driven wakeups
- words for flipping of a LiFePO4 debug dump bit
- autowack support code update
- Make OFW pull EC version 1.9.4
Modified: cpu/x86/pc/olpc/rtcwake.fth
===================================================================
--- cpu/x86/pc/olpc/rtcwake.fth 2009-06-26 18:19:51 UTC (rev 1226)
+++ cpu/x86/pc/olpc/rtcwake.fth 2009-06-28 01:14:50 UTC (rev 1227)
@@ -69,6 +69,21 @@
key drop
;
+\ for testing wakeups from the EC
+: wackup-test-ec ( ms -- )
+ d# 3000 autowack-delay \ At small ms delays the host can miss the SCI so this
+ \ is the back up.
+ 0 begin ( ms count )
+ autowack-on swap dup ( count ms ms )
+ ec-wackup ( count ms )
+ s
+ swap dup ( ms count count )
+ space .d (cr 1+ key? ( ms count+1 )
+ until
+ key drop 2drop
+ autowack-off
+;
+
stand-init: Century
h# 20 cmos-century cmos! \ The century is in BCD, hence h#
;
Modified: cpu/x86/pc/olpc/via/versions.fth
===================================================================
--- cpu/x86/pc/olpc/via/versions.fth 2009-06-26 18:19:51 UTC (rev 1226)
+++ cpu/x86/pc/olpc/via/versions.fth 2009-06-28 01:14:50 UTC (rev 1227)
@@ -2,10 +2,10 @@
\ The overall firmware revision
macro: FW_MAJOR A
-macro: FW_MINOR 04a
+macro: FW_MINOR 04b
\ The EC microcode
-macro: EC_VERSION 1_9_1
+macro: EC_VERSION 1_9_4
\ Alternate command for getting EC microcode, for testing new versions.
\ Temporarily uncomment the line and modify the path as necessary
Modified: dev/olpc/kb3700/battery.fth
===================================================================
--- dev/olpc/kb3700/battery.fth 2009-06-26 18:19:51 UTC (rev 1226)
+++ dev/olpc/kb3700/battery.fth 2009-06-28 01:14:50 UTC (rev 1227)
@@ -134,10 +134,11 @@
: see-bstate
0 begin
- next-bstate dup .
- dup 4 = if
+ next-bstate
+ dup 0 = if
cr
- then key?
+ then
+ dup . key?
until
;
@@ -166,6 +167,13 @@
\ Turn off the trickle charger
: bat-disable-trickle ( -- ) fc23 ec@ 1 invert and fc23 ec! ;
+\ Turn on the EC lifepo4 dump
+: bat-enable-ec-life-dump ( -- ) f915 ec@ 8 or f915 ec! ;
+
+\ Turn on the EC lifepo4 dump
+: bat-disable-ec-life-dump ( -- ) f915 ec@ 8 invert and f915 ec! ;
+
+
\ Access the 1-wire data line via the EC GPIO ports
h# 383 constant dataport
Modified: dev/olpc/kb3700/ecio.fth
===================================================================
--- dev/olpc/kb3700/ecio.fth 2009-06-26 18:19:51 UTC (rev 1226)
+++ dev/olpc/kb3700/ecio.fth 2009-06-28 01:14:50 UTC (rev 1227)
@@ -20,10 +20,6 @@
iobase 3 + pc!
;
-: autowak! ( value -- ) f64f ec! ;
-: autowak-on ( -- ) 1 autowak! ;
-: autowak-off ( -- ) 0 autowak! ;
-: autowak-delay ( delay -- ) wbsplit f650 ec! f651 ec! ;
: kbc-debug-on ( -- ) 1 fbfe ec! ;
: kbc-debug-off ( -- ) 0 fbfe ec! ;
@@ -66,8 +62,10 @@
: ec-rw ( -- w ) ec-rb ec-rb swap bwjoin ;
: ec-ww ( -- w ) wbsplit ec-wb ec-wb ;
+: ec-wl ( -- l ) lbsplit ec-wb ec-wb ec-wb ec-wb ;
: (ec-cmd-b!) ( b cmd -- ) ec-cmd-out ec-wb ;
+: (ec-cmd-l!) ( l cmd -- ) ec-cmd-out ec-wl ;
: (ec-cmd-b@) ( cmd -- b ) ec-cmd-out ec-rb ;
: (ec-cmd-w@) ( cmd -- w ) ec-cmd-out ec-rw ;
@@ -94,6 +92,17 @@
loop ( b cmd )
too-many-retries
;
+
+: ec-cmd-l! ( l cmd -- )
+ #ec-retries 0 do ( b cmd )
+ 2dup ['] (ec-cmd-l!) catch 0= if ( b cmd )
+ 2drop unloop exit
+ then ( b cmd x x )
+ 2drop ( b cmd )
+ loop ( b cmd )
+ too-many-retries
+;
+
: ec-cmd-b@ ( cmd -- b )
#ec-retries 0 do ( cmd )
dup ['] (ec-cmd-b@) catch 0= if ( cmd b )
@@ -157,7 +166,7 @@
too-many-retries
;
-: ec-wakeup! ( wakeup -- ) lbsplit h# 36 ec-cmd-out ec-wb ec-wb ec-wb ec-wb ;
+: ec-wackup ( ms -- ) lbsplit h# 36 ec-cmd-out ec-wb ec-wb ec-wb ec-wb ;
: ec-abnormal@ ( -- b ) h# 1f ec-cmd-b@ ;
@@ -181,7 +190,10 @@
: sci-inhibit ( -- ) h# 32 ec-cmd ;
: sci-uninhibit ( -- ) h# 34 ec-cmd ;
-: sci-inhibit-delay ( delay -- ) wbsplit f64d ec! f64e ec! ;
+: autowack-on ( -- ) 1 33 ec-cmd-b! ;
+: autowack-off ( -- ) 0 33 ec-cmd-b! ;
+: autowack-delay ( delay -- ) wbsplit f650 ec! f651 ec! ;
+
: ec-indexed-io-off ( -- ) h# fe95 ec@ h# 40 invert and h# fe95 ec! ;
0 [if]
More information about the openfirmware
mailing list