[openfirmware] [commit] r2694 - dev/olpc/spiflash
repository service
svn at openfirmware.info
Mon Nov 21 01:23:38 CET 2011
Author: quozl
Date: Mon Nov 21 01:23:36 2011
New Revision: 2694
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2694
Log:
OLPC - save-mfg-data, restore-mfg-data, use new flash interface, use u:\ instead of disk:\, tested on XO-1, XO-1.5, XO-1.75.
Modified:
dev/olpc/spiflash/spiui.fth
Modified: dev/olpc/spiflash/spiui.fth
==============================================================================
--- dev/olpc/spiflash/spiui.fth Sun Nov 20 23:23:51 2011 (r2693)
+++ dev/olpc/spiflash/spiui.fth Mon Nov 21 01:23:36 2011 (r2694)
@@ -123,41 +123,45 @@
drop ( sn$ )
then ( sn$ )
- " disk:\" "temp place ( sn$' )
+ " u:\" "temp place ( sn$' )
- dup 8 > if ( sn$ )
- over 8 "temp $cat ( sn$ )
- 8 /string ( sn$' )
- " ." "temp $cat ( sn$ )
- then ( sn$ )
- "temp $cat ( )
- "temp count ( filename$ )
+ dup 8 > if ( sn$ )
+ over 8 "temp $cat ( sn$ )
+ 8 /string ( sn$' )
+ " ." "temp $cat ( sn$ )
+ then ( sn$ )
+ "temp $cat ( )
+ "temp count ( filename$ )
;
: save-mfg-data ( -- )
- make-sn-name ( name$ )
- ." Creating " 2dup type cr
+ flash-open
+ make-sn-name ( name$ )
+ ." Creating " 2dup type cr ( name$ )
$create-file ( ihandle )
dup 0= abort" Can't create file" >r ( r: ihandle )
mfg-data-buf /flash-block ( adr len r: ihandle )
2dup mfg-data-offset flash-read ( adr len r: ihandle )
- " write" r@ $call-method ( r: ihandle )
- r> close-dev
+ " write" r@ $call-method ( wlen r: ihandle )
+ r> close-dev ( wlen r: ihandle )
+ /flash-block <> abort" Can't write file" ( r: ihandle )
+ flash-close
;
: restore-mfg-data ( "filename" -- )
+ flash-open
reading
- ifd @ fsize dup /flash-block <> if ( len )
- drop ifd @ fclose ( )
+ ifd @ fsize dup /flash-block <> if ( len )
+ drop ifd @ fclose ( )
true abort" File is the wrong size - should be 65536 bytes"
- then ( len )
- mfg-data-buf swap ( adr len )
- 2dup ifd @ fgets drop ( adr len )
- ifd @ fclose
-
- flash-write-enable
- mfg-data-offset flash-erase-block ( adr len )
- mfg-data-offset flash-write ( )
- flash-write-disable ( )
+ then ( len )
+ mfg-data-buf swap ( adr len )
+ 2dup ifd @ fgets drop ( adr len )
+ ifd @ fclose ( adr len )
+ flash-write-enable ( adr len )
+ mfg-data-offset flash-erase-block ( adr len )
+ mfg-data-offset flash-write ( )
+ flash-write-disable ( )
+ flash-close ( )
;
[then]
More information about the openfirmware
mailing list