[openfirmware] [commit] r1917 - cpu/x86/pc/olpc dev/olpc/spiflash
repository service
svn at openfirmware.info
Thu Aug 5 21:03:44 CEST 2010
Author: wmb
Date: Thu Aug 5 21:03:43 2010
New Revision: 1917
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1917
Log:
OLPC - removed support for ancient manufacturing data location in EC code area.
Modified:
cpu/x86/pc/olpc/mfgdata.fth
dev/olpc/spiflash/spiui.fth
Modified: cpu/x86/pc/olpc/mfgdata.fth
==============================================================================
--- cpu/x86/pc/olpc/mfgdata.fth Thu Aug 5 02:47:11 2010 (r1916)
+++ cpu/x86/pc/olpc/mfgdata.fth Thu Aug 5 21:03:43 2010 (r1917)
@@ -44,11 +44,9 @@
true ( adr data$ name-adr true )
;
-\ Mfg data used to be at the end of the EC erase block, but
-\ is now in a block by itself.
+\ Mfg data is in a block by itself.
: mfg-data-top ( -- adr )
- flash-base h# 1.0000 + dup invalid-tag? ( old-top data-adr flag )
- nip if drop flash-base h# f.0000 + then
+ flash-base h# f.0000 +
;
: (find-tag) ( name$ top-adr -- false | data$ true )
Modified: dev/olpc/spiflash/spiui.fth
==============================================================================
--- dev/olpc/spiflash/spiui.fth Thu Aug 5 02:47:11 2010 (r1916)
+++ dev/olpc/spiflash/spiui.fth Thu Aug 5 21:03:43 2010 (r1917)
@@ -180,7 +180,6 @@
flash-write ( )
flash-write-disable ( )
;
-
[then]
: ?move-mfg-data ( -- )
@@ -188,43 +187,16 @@
tethered? 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 flash-read
-
- \ If there is no mfg data in the e.0000 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 )
- flash-read ( )
- then
exit
then
+ \ Copy the entire block containing the manufacturing data into the
+ \ memory buffer. This make verification easier.
- \ 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
- \ copy the EC bits from the beginning of the block
- mfg-data-range ( adr len )
- flash-buf mfg-data-end-offset + ( adr len ram-adr )
- over - swap ( adr ram-adr' len )
- 2dup 2>r move 2r> ( ram-adr len )
-
- \ Write from the memory buffer to the FLASH
- mfg-data-offset flash-erase-block ( ram-adr len )
- mfg-data-end-offset over - ( ram-adr len offset )
- flash-write ( )
- else
- \ Copy the entire block containing the manufacturing data into the
- \ memory buffer. This make verification easier.
-
- mfg-data-top /flash-block - ( src-adr )
- flash-buf mfg-data-offset + ( src-adr dst-adr )
- /flash-block move ( )
- then
+ mfg-data-top /flash-block - ( src-adr )
+ flash-buf mfg-data-offset + ( src-adr dst-adr )
+ /flash-block move ( )
;
: verify-firmware ( -- )
@@ -235,7 +207,6 @@
[then]
\ Don't verify the block containing the manufacturing data
-
flash-buf mfg-data-end-offset + /flash mfg-data-end-offset verify-flash-range \ Verify last part
;
: write-firmware ( -- )
More information about the openfirmware
mailing list