[OpenBIOS] r334 - dev/olpc/kb3700

svn at openbios.org svn at openbios.org
Sat Apr 28 00:23:29 CEST 2007


Author: wmb
Date: 2007-04-28 00:23:29 +0200 (Sat, 28 Apr 2007)
New Revision: 334

Modified:
   dev/olpc/kb3700/ecio.fth
Log:
dev/olpc/kb3700/ecio.fth - Added commands to access the new EC functions.




Modified: dev/olpc/kb3700/ecio.fth
===================================================================
--- dev/olpc/kb3700/ecio.fth	2007-04-27 22:22:30 UTC (rev 333)
+++ dev/olpc/kb3700/ecio.fth	2007-04-27 22:23:29 UTC (rev 334)
@@ -40,11 +40,81 @@
    true abort" EC didn't respond to port 66 command"
 ;
 
+: ec-release  ( -- )  h# ff h# 6c pc!  ;
+: ec-cmd@  ( -- b )  h# 6c pc@  ;
+: ec-wait-wr  ( -- )  begin  ec-cmd@ 2 and 0=  key? abort" wait wr"  until  ;
+: ec-wait-rd  ( -- )  begin  ec-cmd@ 1 and  key? abort" wait rd"  until  ;
+: ec-cmd!  ( b -- )  ec-wait-wr  h# 6c pc!  ec-wait-wr  ;
+: ec-dat@  ( -- b )  ec-wait-rd  h# 68 pc@  ;
+: ec-dat!  ( b -- )  ec-wait-wr  h# 68 pc!  ;
+: ec-rb    ( -- b )  0 ec-dat!  ec-dat@  ;
+: ec-rw    ( -- w )  ec-rb ec-rb swap bwjoin  ;
+: ec-wb    ( -- w )  ec-dat!  ;
+: ec-ww    ( -- w )  wbsplit ec-wb ec-wb  ;
+
+: flush-ec  ( -- )  begin  ec-cmd@  1 and  while  h# 68 pc@ drop  repeat  ;
+: ec-cmda  ( b -- )  flush-ec  ec-cmd!  ec-dat@ drop  ;
+
+: bat-voltage@   ( -- w )  h# 10 ec-cmda  ec-rw  ;
+: bat-current@   ( -- w )  h# 11 ec-cmda  ec-rw  ;
+: bat-acr@       ( -- w )  h# 12 ec-cmda  ec-rw  ;
+: bat-temp@      ( -- w )  h# 13 ec-cmda  ec-rw  ;
+: ambient-temp@  ( -- w )  h# 14 ec-cmda  ec-rw  ;
+: bat-status@    ( -- b )  h# 15 ec-cmda  ec-rb  ;
+: bat-soc@       ( -- b )  h# 16 ec-cmda  ec-rb  ;
+: bat-gauge-id@  ( -- l.sn4-7 l.sn0-3 )
+   h# 17 ec-cmda
+   ec-rw ec-rw swap wljoin  ec-rw ec-rw swap wljoin  swap
+;
+: bat-gauge@     ( -- b )  h# 18 ec-cmda  h# 31 ec-dat!  ec-dat@  ;  \ 31 is the EEPROM address
+: board-id@      ( -- b )  h# 19 ec-cmda  ec-rb  ;
+: sci-source@    ( -- b )  h# 1a ec-cmda  ec-rw  ;
+: sci-mask!      ( b -- )  h# 1b ec-cmda  ec-dat!  ;
+: sci-mask@      ( -- b )  h# 1c ec-cmda  ec-dat!  ;
+: game-key@      ( -- w )  h# 1d ec-cmda  ec-rw  ;
+: ec-date!       ( day month year -- )  h# 1e ec-cmda  ec-dat! ec-dat! ec-dat!  ;
+: ec-abnormal@   ( -- b )  h# 1f ec-cmda  ec-rb  ;  \ XXX is this byte or word?
+
+: bat-init-lifepo4 ( -- )  h# 21 ec-cmda  ;
+: bat-init-nimh    ( -- )  h# 22 ec-cmda  ;
+: wlan-off         ( -- )  h# 23 ec-cmda  0 ec-dat!  ;
+: wlan-on          ( -- )  h# 23 ec-cmda  1 ec-dat!  ;
+: wlan-wake        ( -- )  h# 24 ec-cmda  ;
+: wlan-rst         ( -- )  h# 25 ec-cmda  ;
+: dcon-disable     ( -- )  h# 26 ec-cmda  0 ec-dat!  ;
+: dcon-enable      ( -- )  h# 26 ec-cmda  1 ec-dat!  ;
+: reset-ec-warm    ( -- )  h# 27 ec-cmda  ;
+: reset-ec         ( -- )  h# 28 ec-cmda  ;
+: write-protect-fw ( -- )  h# 29 ec-cmda  ;
+\ : disable-ec-io    ( -- )  h# 2a ec-cmda  ;  \ ???
+
+\ EC mailbox access words
+
+: ec-mb-adr@   ( -- w )  h# 80 ec-cmda  ec-rw  ;
+: ec-mb-adr!   ( w -- )  h# 81 ec-cmda  ec-ww  ;
+: ec-mb-setup  ( cmd w -- )  ec-mb-adr!  ec-cmda  ;
+
+: ec-mb-b@    ( adr -- b )  h# 8a ec-mb-setup  h# 84 ec-cmda  ec-rb  ;
+: ec-mb-w@    ( adr -- w )  h# 88 ec-mb-setup  h# 82 ec-cmda  ec-rw  ;
+: ec-mb-b!    ( b adr -- )  h# 85 ec-mb-setup  ec-wb  h# 8b ec-cmda  ;
+: ec-mb-w!    ( w adr -- )  h# 83 ec-mb-setup  ec-ww  h# 89 ec-cmda  ;
+
+\ SCI source codes:
+\ SCI_WAKEUP_EVENT             0x01   // Game button,
+\ SCI_BATTERY_STATUS_CHANGE    0x02   // AC plugged/unplugged, ...
+\    Battery inserted/remove, Battery Low, Battery full, Battery destroy
+\ SCI_SOC_CHANGE               0x04   // SOC Change
+\ SCI_ABNORMAL_EVENT           0x08                              
+\ SCI_EB_MODE_CHANGE           0x10
+
 \ This command hard-resets the EC deeply enough for the SP write-protect to
 \ be off when the system is powered up again.
 
-: ec-reset  ( -- )  5  h# 6c pc!  ;
+: ec-reset  ( -- )  5  ec-cmd  ;
 
+: .gauge-sn  ( -- )
+;
+
 : kb3920?  ( -- flag )  h# 6c pc@ h# ff =  if  true exit  then   9 ec-cmd 9 =  ;
 
 \ While accessing the SPI FLASH, we have to turn off the keyboard controller,




More information about the OpenBIOS mailing list