[openfirmware] [commit] r3364 - cpu/arm/olpc cpu/x86/pc/olpc dev/olpc/spiflash
repository service
svn at openfirmware.info
Fri Oct 12 08:28:23 CEST 2012
Author: quozl
Date: Fri Oct 12 08:28:22 2012
New Revision: 3364
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3364
Log:
OLPC - rewrite SPI and EC flash animation scale calculation following review
Modified:
cpu/arm/olpc/build-fw.fth
cpu/arm/olpc/edi.fth
cpu/x86/pc/olpc/gui.fth
cpu/x86/pc/olpc/security.fth
dev/olpc/spiflash/spiui.fth
Modified: cpu/arm/olpc/build-fw.fth
==============================================================================
--- cpu/arm/olpc/build-fw.fth Fri Oct 12 00:55:19 2012 (r3363)
+++ cpu/arm/olpc/build-fw.fth Fri Oct 12 08:28:22 2012 (r3364)
@@ -853,8 +853,7 @@
." Skipping EC reflash, not enough power" cr
d# 1000 ms
else
- show-reflash
- ['] show-reflash-dot to edi-progress
+ jots ['] jot to edi-progress
update-ec-flash
then
then
Modified: cpu/arm/olpc/edi.fth
==============================================================================
--- cpu/arm/olpc/edi.fth Fri Oct 12 00:55:19 2012 (r3363)
+++ cpu/arm/olpc/edi.fth Fri Oct 12 08:28:22 2012 (r3364)
@@ -50,7 +50,7 @@
\ end KB9010 stuff...
d# 128 constant /flash-page
-defer edi-progress ' drop to edi-progress ( n -- )
+defer edi-progress ' 2drop to edi-progress ( offset size -- )
: edi-cmd,adr ( offset cmd -- ) \ Send command plus 3 address bytes
spi-cs-on ( offset cmd )
@@ -195,11 +195,6 @@
wait-flash-busy ( )
;
-: .edi-progress ( n -- )
- /ec-flash h# 8000 > if 1 else 0 then rshift ( dot# )
- edi-progress ( )
-;
-
: edi-program-flash ( adr len offset -- )
cr ( adr len offset )
swap 0 ?do ( adr offset )
@@ -208,7 +203,7 @@
dup i + erase-page ( adr offset )
over i + over i + edi-program-page ( adr offset )
then ( adr offset )
- i .edi-progress ( adr offset )
+ i /ec-flash edi-progress ( adr offset )
/flash-page +loop ( adr offset )
2drop ( )
;
Modified: cpu/x86/pc/olpc/gui.fth
==============================================================================
--- cpu/x86/pc/olpc/gui.fth Fri Oct 12 00:55:19 2012 (r3363)
+++ cpu/x86/pc/olpc/gui.fth Fri Oct 12 08:28:22 2012 (r3364)
@@ -390,9 +390,13 @@
d# 175 d# 790 ?adjust-y to icon-xy " sad" show-icon
;
-d# 834 value bar-y
+d# 32 value #dots
+d# 820 value bar-y
d# 150 value bar-x
+d# 1200 d# 26 - value bar-x-last
0 value dot-adr
+0 value dot-spacing
+0 value last-dot#
: read-dot ( -- ) \ rom: is unavailable during reflash
0 to dot-adr 0 0 to icon-xy ( )
@@ -400,26 +404,34 @@
prep-565 4drop to dot-adr ( )
;
-: show-reflash ( -- ) \ bottom left corner, chip and progress dots
+: jots ( -- ) \ bottom left corner, chip and progress dots
d# 25 d# 772 set-icon-xy " spi" show-icon
- d# 992 bar-x + bar-y set-icon-xy " yellowdot" show-icon
+ bar-x-last bar-y set-icon-xy " yellowdot" show-icon
read-dot
+ -1 to last-dot#
+ bar-x-last bar-x - #dots / to dot-spacing
;
-: show-reflash-dot ( n -- ) \ n to vary h# 0 to h# 8000
- dup h# 400 mod 0= if ( n )
- dot-adr 0= if drop exit then ( n )
- dot-adr swap h# 20 / bar-x + bar-y ( adr x y )
- image-width image-height ( adr x y w h )
- " draw-transparent-rectangle" $call-screen
+: jot ( offset size -- )
+ dot-adr 0= if 2drop exit then ( offset size )
+ #dots swap */ ( dot# )
+ dup last-dot# <> if ( dot# )
+ dup to last-dot# ( dot# )
+ dot-adr swap ( adr dot# )
+ dot-spacing * bar-x + bar-y ( adr x y )
+ image-width image-height ( adr x y w h )
+ " draw-transparent-rectangle" $call-screen ( )
else
drop
then
;
0 [if]
-: test-reflash-dot
- page show-reflash t( h# 8000 0 do i show-reflash-dot h# 80 +loop )t
+: test-jots-flash \ XO-4 B1 13ms
+ page jots t( /flash 0 do i /flash jot /flash-page +loop )t
+;
+: test-jots-ec \ XO-4 B1 3ms
+ page jots t( /ec-flash 0 do i /ec-flash jot /flash-page +loop )t
;
[then]
Modified: cpu/x86/pc/olpc/security.fth
==============================================================================
--- cpu/x86/pc/olpc/security.fth Fri Oct 12 00:55:19 2012 (r3363)
+++ cpu/x86/pc/olpc/security.fth Fri Oct 12 08:28:22 2012 (r3364)
@@ -1006,7 +1006,7 @@
ec-indexed-io-off? if
visible
- show-reflash
+ jots
." Restarting to enable SPI FLASH writing." cr
d# 3000 ms
ec-ixio-reboot
@@ -1016,8 +1016,7 @@
\ Latch alternate? flag for next startup
alternate? if [char] A h# 82 cmos! then
- show-reflash
- ['] show-reflash-dot to spi-progress
+ jots ['] jot to spi-progress
reflash \ Should power-off and reboot
show-x
" Reflash returned, unexpectedly" .security-failure
Modified: dev/olpc/spiflash/spiui.fth
==============================================================================
--- dev/olpc/spiflash/spiui.fth Fri Oct 12 00:55:19 2012 (r3363)
+++ dev/olpc/spiflash/spiui.fth Fri Oct 12 08:28:22 2012 (r3364)
@@ -8,12 +8,7 @@
h# 4000 constant /chunk \ Convenient sized piece for progress reports
-defer spi-progress ' drop to spi-progress ( n -- )
-
-: .progress ( offset -- )
- /flash h# 10.0000 > if 6 else 5 then rshift ( dot# )
- dup spi-progress h# 400 + spi-progress ( )
-;
+defer spi-progress ' 2drop to spi-progress ( offset size -- )
: write-flash-range ( adr end-offset start-offset -- )
." Writing" cr
@@ -31,7 +26,7 @@
i flash-erase-block
dup /flash-block i flash-write ( adr )
then
- i .progress ( adr )
+ i /flash spi-progress ( adr )
/flash-block + ( adr' )
/flash-block +loop ( adr )
cr drop ( )
@@ -196,7 +191,7 @@
[then]
\ Don't write the block containing the manufacturing data
- mfg-data-offset .progress
+ mfg-data-offset /flash spi-progress
flash-buf mfg-data-end-offset + /flash mfg-data-end-offset write-flash-range \ Write last part
;
@@ -221,7 +216,7 @@
write-firmware
verify-firmware
then
- /flash .progress
+ /flash dup spi-progress
flash-write-disable
else
.verify-msg
More information about the openfirmware
mailing list