Changeset 2706


Ignore:
Timestamp:
Nov 28, 2011, 6:37:17 AM (4 years ago)
Author:
quozl
Message:

OLPC XO-1.75 - synchronise EC flags flash page when reprogramming manufacturing tags #11493 (thanks to Mitch for initial design on 22nd August), and fix flash-ec which was failing if any flags were set.

Location:
cpu
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • cpu/arm/olpc/1.75/ecflash.fth

    r2702 r2706  
    3737\ Tells the EC to auto-restart after power cycling
    3838: set-ec-reboot  ( -- )  1 h# f018 edi-b!  ;
     39: ?reflash-ec-flags  ( adr -- )
     40   use-edi-spi                          ( adr )
     41   spi-start                            ( adr )  \ avoids holding EC in reset
     42   load-base /flash-page ec-flags-offset edi-read-flash         ( adr )
     43   dup load-base /flash-page comp       ( adr different? )
     44   if
     45      edi-open                          ( adr )
     46      hdd-led-on                        ( adr )
     47      ec-flags-offset erase-page        ( adr )
     48      ec-flags-offset edi-program-page  ( )
     49      hdd-led-off
     50      set-ec-reboot
     51      unreset-8051                      \ should not return
     52      ec-power-cycle
     53   then
     54   drop                                 ( )
     55   use-ssp-spi
     56;
     57: ignore-ec-flags  ( adr -- )  ec-flags-offset +  /flash-page  erase  ;
    3958: reflash-ec
    4059   hdd-led-on
     
    5170   load-base /ec-flash + /ec-flash 0 edi-read-flash
    5271[then]
     72   load-base  ignore-ec-flags
     73   load-base  /ec-flash +  ignore-ec-flags
    5374   load-base  load-base /ec-flash +  /ec-flash  comp
    5475   abort"  Miscompare!"
     
    5778[ifndef] cl2-a1
    5879   ." Restarting EC and rebooting" cr
    59    d# 2000 ms
    6080   set-ec-reboot
    6181   unreset-8051
  • cpu/arm/olpc/1.75/edi.fth

    r2702 r2706  
    7070: unreset-8051  ( -- )  \ Reset 8-5
    7171   h# f010 edi-b@  1 invert and  h# f010 edi-b!
     72   d# 2000 ms
    7273;
    7374
  • cpu/x86/pc/olpc/setwp.fth

    r2575 r2706  
    3434
    3535: (put-mfg-data)
     36   hdd-led-on
    3637   mfg-data-buf  mfg-data-end-offset mfg-data-offset  write-flash-range
     38   hdd-led-off
    3739;
    3840
    3941: ram-find-tag  ( name$ -- false | data$ true )
    4042   mfg-data-buf /flash-block +  (find-tag)
     43;
     44
     45\ FIXME: ifdef XO-1.75
     46
     47: set-cp  ( adr -- )
     48   " CP" find-tag  if           ( adr len )
     49      2drop [char] C            ( expected )
     50   else                         ( )
     51      0                         ( expected )
     52   then                         ( expected )
     53   swap c!                      ( )
     54;
     55
     56: set-ap  ( adr -- )
     57   " AP" find-tag  if           ( adr len )
     58      2drop [char] A            ( expected )
     59   else                         ( )
     60      0                         ( expected )
     61   then                         ( expected )
     62   swap 1+ c!                   ( )
     63;
     64
     65/flash-page buffer: ec-flags-buf
     66: ?sync-ec  ( -- )
     67   ec-flags-buf /flash-page erase
     68   ec-flags-buf set-cp
     69   ec-flags-buf set-ap
     70   ec-flags-buf ?reflash-ec-flags
    4171;
    4272
     
    4575   spi-start spi-identify
    4676   (put-mfg-data)
     77   ?sync-ec
    4778   spi-reprogrammed
    4879;
Note: See TracChangeset for help on using the changeset viewer.