[OpenBIOS] r413 - cpu/x86/pc/olpc dev/olpc/spiflash
svn at openbios.org
svn at openbios.org
Wed May 23 00:50:23 CEST 2007
Author: wmb
Date: 2007-05-23 00:50:22 +0200 (Wed, 23 May 2007)
New Revision: 413
Modified:
cpu/x86/pc/olpc/devices.fth
dev/olpc/spiflash/recover.fth
dev/olpc/spiflash/spiui.fth
Log:
Added "recover <device_specifier>" and "clone" commands, for rewriting another
machine's SPI FLASH.
Modified: cpu/x86/pc/olpc/devices.fth
===================================================================
--- cpu/x86/pc/olpc/devices.fth 2007-05-22 01:52:08 UTC (rev 412)
+++ cpu/x86/pc/olpc/devices.fth 2007-05-22 22:50:22 UTC (rev 413)
@@ -285,6 +285,7 @@
fload ${BP}/dev/olpc/spiflash/spiflash.fth \ SPI FLASH programming
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" ;
' ofw-fw-filename$ to fw-filename$
Modified: dev/olpc/spiflash/recover.fth
===================================================================
--- dev/olpc/spiflash/recover.fth 2007-05-22 01:52:08 UTC (rev 412)
+++ dev/olpc/spiflash/recover.fth 2007-05-22 22:50:22 UTC (rev 413)
@@ -30,7 +30,6 @@
." Getting a copy of this machine's FLASH" cr
h# fff0.0000 flash-buf /flash move
true to file-loaded?
- flash-buf ec-buf /ec move \ Save a copy for merging
(serial-flash)
;
Modified: dev/olpc/spiflash/spiui.fth
===================================================================
--- dev/olpc/spiflash/spiui.fth 2007-05-22 01:52:08 UTC (rev 412)
+++ dev/olpc/spiflash/spiui.fth 2007-05-22 22:50:22 UTC (rev 413)
@@ -153,6 +153,24 @@
: ?move-mfg-data ( -- )
." Merging existing manufacturing data" cr
+ flash-base -1 = if
+ \ Read the manufacturing data from the other FLASH
+ \ First try the new location in the e.0000 block
+ flash-buf mfg-data-offset + /flash-block mfg-data-offset read-spi-flash
+
+ \ If there is no mfg data in the e.000 block, get whatever is in the
+ \ last 2K of the 0 block, where the mfg data used to live.
+ flash-buf mfg-data-end-offset + invalid-tag? if
+ flash-buf mfg-data-offset + /flash-block h# ff erase
+
+ flash-buf mfg-data-end-offset + h# 800 - h# 800 ( adr len )
+ mfg-data-end-offset h# 800 - ( adr len offset )
+ read-spi-flash ( )
+ then
+ exit
+ then
+
+
\ If the system has mfg data in the old place, move it to the new place
mfg-data-top flash-base h# 1.0000 + = if
\ Copy just the manufacturing data into the memory buffer; don't
More information about the OpenBIOS
mailing list