Changeset 2702


Ignore:
Timestamp:
Nov 24, 2011, 7:38:35 AM (3 years ago)
Author:
quozl
Message:

OLPC XO-1.75 - automatic EC reflash, use chip icon, show progress bar, show battery icon with sad face if not enough power

Location:
cpu
Files:
4 edited

Legend:

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

    r2502 r2702  
    102102         2dup load-base swap move    ( adr len )
    103103         free-mem                    ( )
    104          ['] ?enough-power catch  ?dup  if  ( error )
    105             .error
    106             ." Skipping EC reflash" cr
    107          else
    108             ." Updating EC code" cr
    109             reflash-ec
    110          then
     104         ." Updating EC code" cr
     105         reflash-ec
    111106      then
    112107   then
  • cpu/arm/olpc/1.75/edi.fth

    r2502 r2702  
    1515
    1616d# 128 constant /flash-page
     17defer edi-progress  ' drop to edi-progress  ( n -- )
    1718
    1819: edi-cmd,adr  ( offset cmd -- )   \ Send command plus 3 address bytes
     
    141142         over i +  over i +  edi-program-page  ( adr offset )
    142143      then                                     ( adr offset )
     144      i edi-progress                           ( adr offset )
    143145   /flash-page +loop                           ( adr offset )
    144146   2drop                                       ( )
  • cpu/arm/olpc/1.75/fw.bth

    r2692 r2702  
    515515   show-child
    516516
    517    update-ec-flash?  if  show-reflash  update-ec-flash  then
     517   update-ec-flash?  if
     518      ['] ?enough-power catch  ?dup  if  ( error )
     519         show-no-power
     520         .error
     521         ." Skipping EC reflash, not enough power" cr
     522         d# 1000 ms
     523      else
     524         show-reflash
     525         ['] show-reflash-dot to edi-progress
     526         update-ec-flash
     527      then
     528   then
    518529
    519530   install-alarm
  • cpu/x86/pc/olpc/gui.fth

    r2488 r2702  
    375375;
    376376
    377 : show-reflash ( -- )  \ bottom left corner, laptop and ellipsis
    378    d# 0 d# 810 to icon-xy " int" show-icon
    379    d# 450 d# 150 do i d# 844 to icon-xy " bigdot" show-icon d# 100 +loop
    380 ;
     377: show-no-power  ( -- )  \ chip, battery, overlaid sad face
     378   d#  25 d# 772 to icon-xy " spi"     show-icon
     379   d# 175 d# 772 to icon-xy " battery" show-icon
     380   d# 175 d# 790 to icon-xy " sad"     show-icon
     381;
     382
     383d# 834 value bar-y
     384d# 150 value bar-x
     3850 value dot-adr
     386
     387: read-dot  ( -- )  \ rom: is unavailable during reflash
     388   0 to dot-adr  0 0 to icon-xy         ( )
     389   " darkdot" $get-image if exit then   ( )
     390   prep-565  4drop  to dot-adr          ( )
     391;
     392
     393: show-reflash  ( -- )  \ bottom left corner, chip and progress dots
     394   d# 25 d# 772 to icon-xy " spi" show-icon
     395   d# 992 bar-x + bar-y to icon-xy " yellowdot" show-icon
     396   read-dot
     397;
     398
     399: show-reflash-dot  ( n -- )  \ n to vary h# 0 to h# 8000
     400   dup h# 400 mod 0=  if                   ( n )
     401      dot-adr 0=  if  drop exit  then      ( n )
     402      dot-adr swap h# 20 /  bar-x + bar-y  ( adr x y )
     403      image-width image-height             ( adr x y w h )
     404      " draw-transparent-rectangle" $call-screen
     405   else
     406      drop
     407   then
     408;
     409
     4100 [if]
     411: test-reflash-dot
     412   page show-reflash  t( h# 8000 0 do  i show-reflash-dot  h# 80 +loop )t
     413;
     414[then]
    381415
    382416: show-x  ( -- )  " x" show-icon  ;
Note: See TracChangeset for help on using the changeset viewer.