[OpenBIOS] r368 - cpu/x86/pc/olpc dev/olpc/kb3700
svn at openbios.org
svn at openbios.org
Wed May 9 20:42:03 CEST 2007
Author: wmb
Date: 2007-05-09 20:42:03 +0200 (Wed, 09 May 2007)
New Revision: 368
Modified:
cpu/x86/pc/olpc/devices.fth
cpu/x86/pc/olpc/fw.bth
dev/olpc/kb3700/ecio.fth
Log:
OLPC - Fixed a problem with the EC command protocol and reverted to
the use of it for board ID and game-key interaction.
Modified: cpu/x86/pc/olpc/devices.fth
===================================================================
--- cpu/x86/pc/olpc/devices.fth 2007-05-07 21:32:22 UTC (rev 367)
+++ cpu/x86/pc/olpc/devices.fth 2007-05-09 18:42:03 UTC (rev 368)
@@ -242,8 +242,7 @@
h# a18
else
lx? if
-\ board-id@ case
- snoop-board-id@ case
+ board-id@ case
h# b2 of h# b30 endof \ preB3
( board-id ) dup h# 10 * 8 + swap \ E.g. b3 -> b38
endcase
Modified: cpu/x86/pc/olpc/fw.bth
===================================================================
--- cpu/x86/pc/olpc/fw.bth 2007-05-07 21:32:22 UTC (rev 367)
+++ cpu/x86/pc/olpc/fw.bth 2007-05-09 18:42:03 UTC (rev 368)
@@ -432,7 +432,7 @@
: user-switch? ( -- flag )
[ifdef] lx-devel false exit [then]
-true exit
+ atest? if true exit then
game-key@ 0<> dup if
." Release the game key to continue" cr
begin d# 100 ms game-key@ 0= until
Modified: dev/olpc/kb3700/ecio.fth
===================================================================
--- dev/olpc/kb3700/ecio.fth 2007-05-07 21:32:22 UTC (rev 367)
+++ dev/olpc/kb3700/ecio.fth 2007-05-09 18:42:03 UTC (rev 368)
@@ -44,18 +44,18 @@
: ec-release ( -- ) h# ff h# 6c pc! 1 ms h# 68 pc@ drop ;
: ec-wait-wr ( -- )
- d# 70 0 do
+ d# 140 0 do
ec-cmd@ 2 and 0= if unloop exit then
- d# 10 ms
+ 5 ms
loop
." EC write timed out" cr
;
\ Empirically, it can take a long time for the EC to sense the game
\ keys when several are down at once. 500 mS is not enough.
: ec-wait-rd ( -- )
- d# 70 0 do
+ d# 700 0 do
ec-cmd@ 1 and if unloop exit then
- d# 10 ms
+ d# 1 ms
loop
." EC read timed out" cr
;
@@ -70,7 +70,7 @@
ec-cmd@ ( 6c-val )
repeat ( 6c-val )
;
-: ec-cmd! ( b -- ) ec-wait-wr h# 6c pc! ( ec-wait-wr ) ;
+: 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! ;
@@ -94,9 +94,9 @@
: ambient-temp@ ( -- w ) h# 14 ec-cmd-w@ ;
: bat-status@ ( -- b ) h# 15 ec-cmd-b@ ;
: bat-soc@ ( -- b ) h# 16 ec-cmd-b@ ;
-: bat-gauge-id@ ( -- l.sn4-7 l.sn0-3 )
+: bat-gauge-id@ ( -- sn0 .. sn7 )
h# 17 ec-cmda
- ec-rw ec-rw swap wljoin ec-rw ec-rw swap wljoin swap
+ 8 0 do ec-rb loop
ec-release
;
: bat-gauge@ ( -- b ) h# 18 ec-cmda h# 31 ec-wb ec-dat@ ec-release ; \ 31 is the EEPROM address
More information about the OpenBIOS
mailing list