Changeset 2694


Ignore:
Timestamp:
Nov 21, 2011, 1:23:36 AM (4 years ago)
Author:
quozl
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dev/olpc/spiflash/spiui.fth

    r2561 r2694  
    124124   then                      ( sn$ )
    125125
    126    " disk:\" "temp place    ( sn$' )
    127 
    128    dup 8 >  if              ( sn$ )
    129       over 8 "temp $cat     ( sn$ )
    130       8 /string             ( sn$' )
    131       " ."   "temp $cat     ( sn$ )
    132    then                     ( sn$ )
    133    "temp $cat               ( )
    134    "temp count              ( filename$ )
     126   " u:\" "temp place        ( sn$' )
     127
     128   dup 8 >  if               ( sn$ )
     129      over 8 "temp $cat      ( sn$ )
     130      8 /string              ( sn$' )
     131      " ."   "temp $cat      ( sn$ )
     132   then                      ( sn$ )
     133   "temp $cat                ( )
     134   "temp count               ( filename$ )
    135135;
    136136
    137137: save-mfg-data  ( -- )
    138    make-sn-name      ( name$ )
    139    ." Creating " 2dup type cr
     138   flash-open
     139   make-sn-name                               ( name$ )
     140   ." Creating " 2dup type cr                 ( name$ )
    140141   $create-file                               ( ihandle )
    141142   dup 0= abort" Can't create file"   >r      ( r: ihandle )
    142143   mfg-data-buf /flash-block                  ( adr len  r: ihandle )
    143144   2dup mfg-data-offset  flash-read           ( adr len r: ihandle )
    144    " write" r@ $call-method                   ( r: ihandle )
    145    r> close-dev
     145   " write" r@ $call-method                   ( wlen r: ihandle )
     146   r> close-dev                               ( wlen r: ihandle )
     147   /flash-block <> abort" Can't write file"   ( r: ihandle )
     148   flash-close
    146149;
    147150: restore-mfg-data  ( "filename" -- )
     151   flash-open
    148152   reading
    149    ifd @ fsize  dup /flash-block <>  if  ( len )
    150       drop  ifd @ fclose                ( )
     153   ifd @ fsize  dup /flash-block <>  if       ( len )
     154      drop  ifd @ fclose                      ( )
    151155      true abort" File is the wrong size - should be 65536 bytes"
    152    then                                 ( len )
    153    mfg-data-buf  swap                   ( adr len )
    154    2dup ifd @ fgets drop                ( adr len )
    155    ifd @ fclose
    156 
    157    flash-write-enable
    158    mfg-data-offset flash-erase-block    ( adr len )
    159    mfg-data-offset flash-write          ( )
    160    flash-write-disable                  ( )
     156   then                                       ( len )
     157   mfg-data-buf  swap                         ( adr len )
     158   2dup ifd @ fgets drop                      ( adr len )
     159   ifd @ fclose                               ( adr len )
     160   flash-write-enable                         ( adr len )
     161   mfg-data-offset flash-erase-block          ( adr len )
     162   mfg-data-offset flash-write                ( )
     163   flash-write-disable                        ( )
     164   flash-close                                ( )
    161165;
    162166[then]
Note: See TracChangeset for help on using the changeset viewer.