Changeset 2706


Ignore:
Timestamp:
Nov 28, 2011, 6:37:17 AM (2 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.