Author: wmb
Date: Fri Jun 3 03:51:11 2011
New Revision: 2241
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2241
Log:
OLPC XO-1.75 - Access to manufacturing data was failing due to an initialization order problem.
Modified:
cpu/arm/olpc/1.75/devices.fth
cpu/arm/olpc/1.75/getmfgdata.fth
Modified: cpu/arm/olpc/1.75/devices.fth
==============================================================================
--- cpu/arm/olpc/1.75/devices.fth Fri Jun 3 03:49:09 2011 (r2240)
+++ cpu/arm/olpc/1.75/devices.fth Fri Jun 3 03:51:11 2011 (r2241)
@@ -94,9 +94,12 @@
init-timers
init-twsi
;
-stand-init:
+warning @ warning off
+: stand-init-io
+ stand-init-io
init-stuff
;
+warning !
fload ${BP}/cpu/arm/mmp2/irq.fth
Modified: cpu/arm/olpc/1.75/getmfgdata.fth
==============================================================================
--- cpu/arm/olpc/1.75/getmfgdata.fth Fri Jun 3 03:49:09 2011 (r2240)
+++ cpu/arm/olpc/1.75/getmfgdata.fth Fri Jun 3 03:51:11 2011 (r2241)
@@ -1,17 +1,18 @@
purpose: Get the manufacturing data into memory where it can be manipulated
-/flash-block buffer: mfg-data-buf
+\ It is tempting to use buffer: for this, but that fails because
+\ we need to access manufacturing data very early (for security),
+\ in stand-init-io before the call to clear-buffer:s in init.
+0 value mfg-data-buf
: get-mfg-data ( -- )
+ mfg-data-buf if exit then
+ /flash-block alloc-mem to mfg-data-buf
flash-open
mfg-data-buf /flash-block mfg-data-offset flash-read
;
-0 value mfg-data-read?
: mfg-data-top ( -- adr )
- mfg-data-read? 0= if
- get-mfg-data
- true to mfg-data-read?
- then
+ get-mfg-data
mfg-data-buf /flash-block +
;