Changeset 3364


Ignore:
Timestamp:
Oct 12, 2012, 8:28:22 AM (18 months ago)
Author:
quozl
Message:

OLPC - rewrite SPI and EC flash animation scale calculation following review

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • cpu/arm/olpc/build-fw.fth

    r3354 r3364  
    854854         d# 1000 ms 
    855855      else 
    856          show-reflash 
    857          ['] show-reflash-dot to edi-progress 
     856         jots  ['] jot to edi-progress 
    858857         update-ec-flash 
    859858      then 
  • cpu/arm/olpc/edi.fth

    r3359 r3364  
    5151 
    5252d# 128 constant /flash-page 
    53 defer edi-progress  ' drop to edi-progress  ( n -- ) 
     53defer edi-progress  ' 2drop to edi-progress  ( offset size -- ) 
    5454 
    5555: edi-cmd,adr  ( offset cmd -- )   \ Send command plus 3 address bytes 
     
    196196; 
    197197 
    198 : .edi-progress  ( n -- ) 
    199    /ec-flash h# 8000 >  if  1  else  0  then  rshift    ( dot# ) 
    200    edi-progress                                         ( ) 
    201 ; 
    202  
    203198: edi-program-flash  ( adr len offset -- ) 
    204199   cr                                          ( adr len offset ) 
     
    209204         over i +  over i +  edi-program-page  ( adr offset ) 
    210205      then                                     ( adr offset ) 
    211       i .edi-progress                          ( adr offset ) 
     206      i /ec-flash  edi-progress                ( adr offset ) 
    212207   /flash-page +loop                           ( adr offset ) 
    213208   2drop                                       ( ) 
  • cpu/x86/pc/olpc/gui.fth

    r3194 r3364  
    391391; 
    392392 
    393 d# 834 value bar-y 
     393d# 32 value #dots 
     394d# 820 value bar-y 
    394395d# 150 value bar-x 
     396d# 1200 d# 26 - value bar-x-last 
    3953970 value dot-adr 
     3980 value dot-spacing 
     3990 value last-dot# 
    396400 
    397401: read-dot  ( -- )  \ rom: is unavailable during reflash 
     
    401405; 
    402406 
    403 : show-reflash  ( -- )  \ bottom left corner, chip and progress dots 
     407: jots  ( -- )  \ bottom left corner, chip and progress dots 
    404408   d# 25 d# 772 set-icon-xy " spi" show-icon 
    405    d# 992 bar-x + bar-y set-icon-xy " yellowdot" show-icon 
     409   bar-x-last bar-y set-icon-xy " yellowdot" show-icon 
    406410   read-dot 
    407 ; 
    408  
    409 : show-reflash-dot  ( n -- )  \ n to vary h# 0 to h# 8000 
    410    dup h# 400 mod 0=  if                   ( n ) 
    411       dot-adr 0=  if  drop exit  then      ( n ) 
    412       dot-adr swap h# 20 /  bar-x + bar-y  ( adr x y ) 
    413       image-width image-height             ( adr x y w h ) 
    414       " draw-transparent-rectangle" $call-screen 
     411   -1 to last-dot# 
     412   bar-x-last bar-x - #dots / to dot-spacing 
     413; 
     414 
     415: jot  ( offset size -- ) 
     416   dot-adr 0=  if  2drop exit  then                     ( offset size ) 
     417   #dots swap */                                        ( dot# ) 
     418   dup last-dot# <>  if                                 ( dot# ) 
     419      dup to last-dot#                                  ( dot# ) 
     420      dot-adr swap                                      ( adr dot# ) 
     421      dot-spacing *  bar-x + bar-y                      ( adr x y ) 
     422      image-width image-height                          ( adr x y w h ) 
     423      " draw-transparent-rectangle" $call-screen        ( ) 
    415424   else 
    416425      drop 
     
    419428 
    4204290 [if] 
    421 : test-reflash-dot 
    422    page show-reflash  t( h# 8000 0 do  i show-reflash-dot  h# 80 +loop )t 
     430: test-jots-flash  \ XO-4 B1 13ms 
     431   page jots t( /flash 0 do  i /flash jot /flash-page +loop )t 
     432; 
     433: test-jots-ec  \ XO-4 B1 3ms 
     434   page jots t( /ec-flash 0 do  i /ec-flash jot /flash-page +loop )t 
    423435; 
    424436[then] 
  • cpu/x86/pc/olpc/security.fth

    r3349 r3364  
    10071007   ec-indexed-io-off?  if 
    10081008      visible 
    1009       show-reflash 
     1009      jots 
    10101010      ." Restarting to enable SPI FLASH writing."  cr 
    10111011      d# 3000 ms 
     
    10171017   alternate?  if  [char] A h# 82 cmos!  then 
    10181018 
    1019    show-reflash 
    1020    ['] show-reflash-dot to spi-progress 
     1019   jots  ['] jot to spi-progress 
    10211020   reflash      \ Should power-off and reboot 
    10221021   show-x 
  • dev/olpc/spiflash/spiui.fth

    r3359 r3364  
    99h# 4000 constant /chunk   \ Convenient sized piece for progress reports 
    1010 
    11 defer spi-progress  ' drop to spi-progress  ( n -- ) 
    12  
    13 : .progress  ( offset -- ) 
    14    /flash h# 10.0000 >  if  6  else  5  then  rshift    ( dot# ) 
    15    dup spi-progress  h# 400 + spi-progress              ( ) 
    16 ; 
     11defer spi-progress  ' 2drop to spi-progress  ( offset size -- ) 
    1712 
    1813: write-flash-range  ( adr end-offset start-offset -- ) 
     
    3227         dup  /flash-block  i  flash-write  ( adr ) 
    3328      then 
    34       i .progress                           ( adr ) 
     29      i /flash  spi-progress                ( adr ) 
    3530      /flash-block +                        ( adr' ) 
    3631   /flash-block +loop                       ( adr ) 
     
    197192 
    198193   \ Don't write the block containing the manufacturing data 
    199    mfg-data-offset .progress 
     194   mfg-data-offset /flash  spi-progress 
    200195 
    201196   flash-buf mfg-data-end-offset +   /flash  mfg-data-end-offset  write-flash-range  \ Write last part 
     
    222217         verify-firmware 
    223218      then 
    224       /flash .progress 
     219      /flash dup  spi-progress 
    225220      flash-write-disable 
    226221   else 
Note: See TracChangeset for help on using the changeset viewer.