[openfirmware] [commit] r3039 - cpu/arm/olpc
repository service
svn at openfirmware.info
Fri Jul 6 09:46:38 CEST 2012
Author: quozl
Date: Fri Jul 6 09:46:38 2012
New Revision: 3039
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3039
Log:
TI BSL downloader - reverse polarity of test result report, cleanup messages, report timeout of flush, and initialise UART2 APB clocks and UART enable bit
Modified:
cpu/arm/olpc/bsl.fth
Modified: cpu/arm/olpc/bsl.fth
==============================================================================
--- cpu/arm/olpc/bsl.fth Wed Jul 4 18:18:52 2012 (r3038)
+++ cpu/arm/olpc/bsl.fth Fri Jul 6 09:46:38 2012 (r3039)
@@ -41,7 +41,12 @@
\ These are MMP2/3 dependent
: bsl-baud ( baud-rate -- ) \ 9600,8,e,1
- uart-base >r bsl-uart-base to uart-base baud h# 1b 3 uart! r> to uart-base
+ uart-base >r ( baud-rate r: uart-base )
+ bsl-uart-base to uart-base
+ h# 13 h# 30 apbc! \ enable the uart2 clocks
+ h# 40 1 uart! \ uart unit enable
+ baud h# 1b 3 uart! ( r: uart-base )
+ r> to uart-base ( )
;
: bsl-send ( char -- ) uart-base >r bsl-uart-base to uart-base uemit r> to uart-base ;
@@ -88,7 +93,16 @@
dly
bsl-test-gpio# gpio-clr
;
-: flush-bsl ( -- ) begin receive? while drop repeat ;
+
+: flush-bsl
+ get-msecs d# 2000 + ( limit )
+ begin
+ receive? 0= if exit then ( limit char )
+ drop dup get-msecs - 0< ( limit timeout? )
+ until
+ drop true abort" BSL flush timeout"
+;
+
: rst-bsl ( -- ) msp430-off start-bsl flush-bsl ;
d# 1000 constant timeout
@@ -102,6 +116,7 @@
until ( limit )
drop true abort" BSL data timeout"
;
+
: ack? ( -- okay? )
get-msecs timeout + ( limit )
begin ( limit )
@@ -262,7 +277,6 @@
;
: force-erase ( -- )
- ." Resetting/erasing" cr
rst-bsl
['] 00-password catch drop
rst-bsl
@@ -368,6 +382,7 @@
: $flash-bsl ( filename$ -- )
$read-open ( )
set-bsl-file-format ( )
+ ." Resetting/erasing" cr
force-erase ( )
." Programming" cr
begin ( )
@@ -428,7 +443,7 @@
." Erasing ..." force-erase cr
." Writing ..." bsl-test-data h# 8000 bsl-write cr ( )
." Verifying ..." bsl-test-data h# 8000 bsl-verify cr ( okay? )
- if ." FAILED!" else ." Good" then cr
+ if ." Good" else ." FAILED!" then cr
;
\ LICENSE_BEGIN
More information about the openfirmware
mailing list