[openfirmware] [commit] r2488 - cpu/arm/olpc/1.75 cpu/x86/pc/olpc cpu/x86/pc/olpc/via dev/olpc/spiflash
repository service
svn at openfirmware.info
Wed Aug 31 07:35:11 CEST 2011
Author: quozl
Date: Wed Aug 31 07:35:10 2011
New Revision: 2488
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2488
Log:
OLPC XO-1.5 XO-1.75 - move storage LED manipulation to fw.bth for XO-1.5 and XO-1.75, use storage LED when writing to EC or OpenFirmware FLASH, show a display indicator of EC automatic reflash, fixes #11117. The indicator is on the bottom left of display, and is a green laptop followed by three grey dots as an ellipsis ... no progress reported to display, only to serial port.
Modified:
cpu/arm/olpc/1.75/devices.fth
cpu/arm/olpc/1.75/ecflash.fth
cpu/arm/olpc/1.75/fw.bth
cpu/arm/olpc/1.75/leds.fth
cpu/x86/pc/olpc/gui.fth
cpu/x86/pc/olpc/via/fw.bth
cpu/x86/pc/olpc/via/leds.fth
dev/olpc/spiflash/spiui.fth
Modified: cpu/arm/olpc/1.75/devices.fth
==============================================================================
--- cpu/arm/olpc/1.75/devices.fth Wed Aug 31 03:12:52 2011 (r2487)
+++ cpu/arm/olpc/1.75/devices.fth Wed Aug 31 07:35:10 2011 (r2488)
@@ -179,6 +179,10 @@
false constant tethered? \ We only support reprogramming our own FLASH
+: hdd-led-off ( -- ) d# 10 gpio-clr ;
+: hdd-led-on ( -- ) d# 10 gpio-set ;
+: hdd-led-toggle ( -- ) d# 10 gpio-pin@ if hdd-led-off else hdd-led-on then ;
+
fload ${BP}/dev/olpc/spiflash/spiui.fth \ User interface for SPI FLASH programming
\ fload ${BP}/dev/olpc/spiflash/recover.fth \ XO-to-XO SPI FLASH recovery
: ofw-fw-filename$ " disk:\boot\olpc.rom" ;
Modified: cpu/arm/olpc/1.75/ecflash.fth
==============================================================================
--- cpu/arm/olpc/1.75/ecflash.fth Wed Aug 31 03:12:52 2011 (r2487)
+++ cpu/arm/olpc/1.75/ecflash.fth Wed Aug 31 07:35:10 2011 (r2488)
@@ -37,6 +37,7 @@
\ Tells the EC to auto-restart after power cycling
: set-ec-reboot ( -- ) 1 h# f018 edi-b! ;
: reflash-ec
+ hdd-led-on
[ifdef] cl2-a1
" enter-updater" $call-ec
." Erasing ..." cr " erase-flash" $call-ec cr
@@ -53,6 +54,7 @@
load-base load-base /ec-flash + /ec-flash comp
abort" Miscompare!"
cr
+ hdd-led-off
[ifndef] cl2-a1
." Restarting EC and rebooting" cr
d# 2000 ms
@@ -92,7 +94,8 @@
bl left-parse-string 2nip ( version$ )
ec-name$ $caps-compare 0<= ( flag )
;
-: ?update-ec-flash ( -- )
+
+: update-ec-flash ( -- )
" ecimage.bin" find-drop-in if ( adr len )
2dup ec-up-to-date? if ( adr len )
free-mem ( )
@@ -110,6 +113,13 @@
then
;
+: update-ec-flash? ( -- flag )
+ " ecimage.bin" find-drop-in if ( adr len )
+ 2dup ec-up-to-date? 0= ( adr len flag )
+ >r free-mem r> ( flag )
+ then
+;
+
\ LICENSE_BEGIN
\ Copyright (c) 2010 FirmWorks
\
Modified: cpu/arm/olpc/1.75/fw.bth
==============================================================================
--- cpu/arm/olpc/1.75/fw.bth Wed Aug 31 03:12:52 2011 (r2487)
+++ cpu/arm/olpc/1.75/fw.bth Wed Aug 31 07:35:10 2011 (r2488)
@@ -333,10 +333,6 @@
fload ${BP}/cpu/x86/pc/olpc/via/nbrx.fth
fload ${BP}/cpu/x86/pc/olpc/via/blockfifo.fth
-: hdd-led-off ( -- ) d# 10 gpio-clr ;
-: hdd-led-on ( -- ) d# 10 gpio-set ;
-: hdd-led-toggle ( -- ) d# 10 gpio-pin@ if hdd-led-off else hdd-led-on then ;
-
alias fast-hash crypto-hash \ fast-hash uses acceleration when available
fload ${BP}/cpu/x86/pc/olpc/via/fsupdate.fth
fload ${BP}/cpu/x86/pc/olpc/via/fsverify.fth
@@ -478,7 +474,7 @@
show-child
- ?update-ec-flash
+ update-ec-flash? if show-reflash update-ec-flash then
install-alarm
?sound
Modified: cpu/arm/olpc/1.75/leds.fth
==============================================================================
--- cpu/arm/olpc/1.75/leds.fth Wed Aug 31 03:12:52 2011 (r2487)
+++ cpu/arm/olpc/1.75/leds.fth Wed Aug 31 07:35:10 2011 (r2488)
@@ -6,8 +6,6 @@
" leds" device-name
: open ( -- okay? ) true ;
: close ( -- ) ;
-: hdd-led-on ( -- ) d# 10 gpio-set ;
-: hdd-led-off ( -- ) d# 10 gpio-clr ;
: ols-led-on ( -- ) h# 57 ec-cmd ;
: ols-led-off ( -- ) h# 58 ec-cmd ;
: ols-assy-mode-on ( -- ) h# 59 ec-cmd ;
Modified: cpu/x86/pc/olpc/gui.fth
==============================================================================
--- cpu/x86/pc/olpc/gui.fth Wed Aug 31 03:12:52 2011 (r2487)
+++ cpu/x86/pc/olpc/gui.fth Wed Aug 31 07:35:10 2011 (r2488)
@@ -373,6 +373,12 @@
d# 588 d# 638 to icon-xy " bigdot" show-icon
" vga?" $call-screen 0= if dcon-unfreeze dcon-freeze then
;
+
+: show-reflash ( -- ) \ bottom left corner, laptop and ellipsis
+ d# 0 d# 810 to icon-xy " int" show-icon
+ d# 450 d# 150 do i d# 844 to icon-xy " bigdot" show-icon d# 100 +loop
+;
+
: show-x ( -- ) " x" show-icon ;
: show-sad ( -- )
icon-xy
Modified: cpu/x86/pc/olpc/via/fw.bth
==============================================================================
--- cpu/x86/pc/olpc/via/fw.bth Wed Aug 31 03:12:52 2011 (r2487)
+++ cpu/x86/pc/olpc/via/fw.bth Wed Aug 31 07:35:10 2011 (r2488)
@@ -110,6 +110,13 @@
fload ${BP}/cpu/x86/acpiio.fth \ ACPI register access
+: hdd-led@ h# 4c acpi-l@ ;
+: hdd-led! h# 4c acpi-l! ;
+h# 400000 constant hdd-led
+: hdd-led-toggle ( -- ) hdd-led@ hdd-led xor hdd-led! ;
+: hdd-led-off ( -- ) hdd-led@ hdd-led or hdd-led! ;
+: hdd-led-on ( -- ) hdd-led@ hdd-led invert and hdd-led! ;
+
fload ${BP}/cpu/x86/pc/olpc/via/probemem.fth \ Memory probing
[ifdef] virtual-mode
@@ -496,8 +503,7 @@
fload ${BP}/cpu/x86/pc/olpc/via/nbtx.fth
fload ${BP}/cpu/x86/pc/olpc/via/nbrx.fth
fload ${BP}/cpu/x86/pc/olpc/via/blockfifo.fth
-: hdd-led-toggle ( -- ) h# 4c acpi-l@ h# 400000 xor h# 4c acpi-l! ;
-: hdd-led-off ( -- ) h# 4c acpi-l@ h# 400000 or h# 4c acpi-l! ;
+
: fast-hash ( adr len hashname$ -- )
2dup " sha256" $= if ( eblock# hashname$ r: hash$ )
2drop sha-256 ( eblock# calc-hash$ r: hash$ )
Modified: cpu/x86/pc/olpc/via/leds.fth
==============================================================================
--- cpu/x86/pc/olpc/via/leds.fth Wed Aug 31 03:12:52 2011 (r2487)
+++ cpu/x86/pc/olpc/via/leds.fth Wed Aug 31 07:35:10 2011 (r2488)
@@ -6,10 +6,6 @@
" leds" device-name
: open ( -- okay? ) true ;
: close ( -- ) ;
-: gpio-lo ( mask -- ) h# 4c acpi-l@ swap invert and h# 4c acpi-l! ;
-: gpio-hi ( mask -- ) h# 4c acpi-l@ swap or h# 4c acpi-l! ;
-: hdd-led-on ( -- ) h# 400000 gpio-lo ;
-: hdd-led-off ( -- ) h# 400000 gpio-hi ;
: selftest ( -- )
." Flashing LEDs" cr
" /wlan" test-dev " /wlan" test-dev \ Twice for longer flashing
Modified: dev/olpc/spiflash/spiui.fth
==============================================================================
--- dev/olpc/spiflash/spiui.fth Wed Aug 31 03:12:52 2011 (r2487)
+++ dev/olpc/spiflash/spiui.fth Wed Aug 31 07:35:10 2011 (r2488)
@@ -192,6 +192,7 @@
;
: reflash ( -- ) \ Flash from data already in memory
+ hdd-led-on
?file
flash-write-enable
@@ -208,6 +209,7 @@
else
.verify-msg
then
+ hdd-led-off
;
defer fw-filename$ ' null$ to fw-filename$
More information about the openfirmware
mailing list