[openfirmware] [commit] r1888 - in cpu/x86/pc/olpc: . via
repository service
svn at openfirmware.info
Tue Jul 20 01:32:54 CEST 2010
Author: wmb
Date: Tue Jul 20 01:32:54 2010
New Revision: 1888
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1888
Log:
OLPC XO-1.5 - Implemented secure NANDblaster mode .
Modified:
cpu/x86/pc/olpc/nandcastui.fth
cpu/x86/pc/olpc/nb15tx.fth
cpu/x86/pc/olpc/via/blockfifo.fth
cpu/x86/pc/olpc/via/fsupdate.fth
cpu/x86/pc/olpc/via/mcnand-version.fth
cpu/x86/pc/olpc/via/nbrx.fth
cpu/x86/pc/olpc/wifichannel.fth
Modified: cpu/x86/pc/olpc/nandcastui.fth
==============================================================================
--- cpu/x86/pc/olpc/nandcastui.fth Mon Jul 19 23:55:55 2010 (r1887)
+++ cpu/x86/pc/olpc/nandcastui.fth Tue Jul 20 01:32:54 2010 (r1888)
@@ -20,17 +20,6 @@
ifd @ fclose ( adr len actual )
over <> abort" Can't read file" cr ( adr len )
;
-: load-read ( filename$ -- )
- open-dev dup 0= abort" Can't open file" >r ( r: ih )
- load-base " load" r@ $call-method !load-size
- r> close-dev
-;
-
-: secure$ ( -- adr len )
- secure? security-off? 0= and if " secure" else null$ then
-;
-
-d# 20 value redundancy
: #nb-clone ( channel# -- )
depth 1 < abort" Usage: channel# #nb-clone"
Modified: cpu/x86/pc/olpc/nb15tx.fth
==============================================================================
--- cpu/x86/pc/olpc/nb15tx.fth Mon Jul 19 23:55:55 2010 (r1887)
+++ cpu/x86/pc/olpc/nb15tx.fth Tue Jul 20 01:32:54 2010 (r1888)
@@ -28,24 +28,36 @@
2drop
then
;
-: $nb15-tx ( redundancy$ filename$ channel$ -- )
+
+: $nb-tx ( filename$ channel# -- )
+ >r 2>r redundancy 2r> r>
?load-thin-wlan-fw
false to already-go?
- " boot rom:nb_tx thinmac:OLPC-NANDblaster,%s %s %s 131072" sprintf eval
+ " boot rom:nb_tx thinmac:OLPC-NANDblaster,%d %s %d 131072" sprintf eval
;
-: nb15-tx: ( "filename" [ "redundancy" ] -- )
- safe-parse-word ( filename$ )
- parse-word ( filename$ redundancy$ )
- dup 0= if 2drop " 20" then ( filename$ redundancy$' )
- 2swap ( redundancy$ filename$ )
- nb-auto-channel ( redundancy$ filename$ channel# )
+
+: nb-tx: ( "filename" -- )
+ redundancy ( redundancy )
+ safe-parse-word ( redundancy filename$ )
+ nb-auto-channel ( redundancy filename$ channel# )
?load-thin-wlan-fw
false to already-go?
- " boot rom:nb_tx thinmac:OLPC-NANDblaster,%d %s %s 131072" sprintf eval
+ " boot rom:nb_tx thinmac:OLPC-NANDblaster,%d %s %d 131072" sprintf eval
;
+: #nb-secure ( zip-filename$ image-filename$ channel# -- )
+ depth 5 < abort" #nb-secure-update - too few arguments"
+ >r 2>r ( placement-filename$ r: channel# image-filename$ )
+ load-read sig$ ?save-string swap ( siglen sigadr r: channel# image-filename$ )
+ img$ ?save-string swap ( siglen sigadr speclen specadr r: channel# image-filename$ )
+ redundancy 2r> r> ( siglen sigadr speclen specadr redundancy image-filename$ channel# )
+ " rom:nb_tx thinmac:OLPC-NANDblaster,%d %s %d 131072 %d %d %d %d" sprintf boot-load go
+;
+: #nb-secure-def ( channel# -- ) >r " u:\fs.zip" " u:\fs.zd" r> #nb-secure ;
+
+: nb-secure ( -- ) nb-auto-channel #nb-secure-def ;
[ifdef] use-nb15-precomputed
\ NANDblaster sender using thin firmware on XO-1.5, with precomputed
Modified: cpu/x86/pc/olpc/via/blockfifo.fth
==============================================================================
--- cpu/x86/pc/olpc/via/blockfifo.fth Mon Jul 19 23:55:55 2010 (r1887)
+++ cpu/x86/pc/olpc/via/blockfifo.fth Tue Jul 20 01:32:54 2010 (r1888)
@@ -11,6 +11,7 @@
0 instance value write-index
0 instance value max-depth
false instance value synchronous?
+0 value debug?
: #queued ( -- n )
write-index read-index -
@@ -106,7 +107,9 @@
: drain-queue ( -- )
synchronous? 0= if
- ." Max queue depth was " max-depth .d ." , current is " #queued .d cr
+ debug? if
+ ." Max queue depth was " max-depth .d ." , current is " #queued .d cr
+ then
true to synchronous?
then
begin empty? 0= while poll repeat
Modified: cpu/x86/pc/olpc/via/fsupdate.fth
==============================================================================
--- cpu/x86/pc/olpc/via/fsupdate.fth Mon Jul 19 23:55:55 2010 (r1887)
+++ cpu/x86/pc/olpc/via/fsupdate.fth Tue Jul 20 01:32:54 2010 (r1888)
@@ -92,12 +92,18 @@
;
: data: ( "filename" -- )
- safe-parse-word fn-buf place
- " ${DN}${PN}\${CN}${FN}" expand$ image-name-buf place
- image-name$ r/o open-file if
+ safe-parse-word ( filename$ )
+ nb-zd-#sectors if ( filename$ )
+ 2drop " /nb-updater" ( filename$' )
+ else ( filename$ )
+ fn-buf place ( )
+ " ${DN}${PN}\${CN}${FN}" expand$ image-name-buf place
+ image-name$ ( filename$' )
+ then ( filename$ )
+ r/o open-file if ( fd )
drop ." Can't open " image-name$ type cr
true " " ?nand-abort
- then to filefd
+ then to filefd ( )
linefeed filefd force-line-delimiter
true to secure-fsupdate?
;
Modified: cpu/x86/pc/olpc/via/mcnand-version.fth
==============================================================================
--- cpu/x86/pc/olpc/via/mcnand-version.fth Mon Jul 19 23:55:55 2010 (r1887)
+++ cpu/x86/pc/olpc/via/mcnand-version.fth Tue Jul 20 01:32:54 2010 (r1888)
@@ -3,6 +3,6 @@
\ With a specific ID, mcastnand.bth will download a tarball without .git stuff.
\ With "test", mcastnand.bth will clone the git head if build/multicast-nand/
\ is not already present, then you can modify the git subtree as needed.
-macro: MCNAND_VERSION af0cadd1cbfb17ddfa7dcf299c4c3662ad7120a4
+macro: MCNAND_VERSION 506d22f97f71632efa353dc347646d24570024b1
\ macro: MCNAND_VERSION test
\ macro: MCNAND_VERSION HEAD
Modified: cpu/x86/pc/olpc/via/nbrx.fth
==============================================================================
--- cpu/x86/pc/olpc/via/nbrx.fth Mon Jul 19 23:55:55 2010 (r1887)
+++ cpu/x86/pc/olpc/via/nbrx.fth Tue Jul 20 01:32:54 2010 (r1888)
@@ -10,7 +10,8 @@
: nandblaster ( -- )
false to already-go?
-1 to nb-zd-#sectors
- " boot rom:nb15_rx ssid:OLPC-NANDblaster" sprintf eval
+ secure$
+ " boot rom:nb15_rx ssid:OLPC-NANDblaster %s" sprintf eval
;
alias nb nandblaster
Modified: cpu/x86/pc/olpc/wifichannel.fth
==============================================================================
--- cpu/x86/pc/olpc/wifichannel.fth Mon Jul 19 23:55:55 2010 (r1887)
+++ cpu/x86/pc/olpc/wifichannel.fth Tue Jul 20 01:32:54 2010 (r1888)
@@ -320,6 +320,19 @@
: nb-update ( -- ) nb-auto-channel #nb-update-def ;
[then]
+: load-read ( filename$ -- )
+ open-dev dup 0= abort" Can't open file" >r ( r: ih )
+ load-base " load" r@ $call-method !load-size
+ r> close-dev
+;
+
+: secure$ ( -- adr len )
+ secure? security-off? 0= and if " secure" else null$ then
+;
+
+d# 20 value redundancy
+
+
\ LICENSE_BEGIN
\ Copyright (c) 2008 FirmWorks
\
More information about the openfirmware
mailing list