[openfirmware] r1567 - cpu/x86/pc/olpc/via
svn at openfirmware.info
svn at openfirmware.info
Fri Dec 11 06:13:42 CET 2009
Author: wmb
Date: 2009-12-11 06:13:41 +0100 (Fri, 11 Dec 2009)
New Revision: 1567
Modified:
cpu/x86/pc/olpc/via/smttags.fth
Log:
OLPC SMT testing script - removed debugging code from tag writeback,
and automatically check for missing tags in server response.
Modified: cpu/x86/pc/olpc/via/smttags.fth
===================================================================
--- cpu/x86/pc/olpc/via/smttags.fth 2009-12-10 22:57:37 UTC (rev 1566)
+++ cpu/x86/pc/olpc/via/smttags.fth 2009-12-11 05:13:41 UTC (rev 1567)
@@ -113,7 +113,7 @@
\ Construct the filename used for communicating with the server
d# 20 buffer: filename-buf
-: smt-filename$ ( -- ) filename-buf count ;
+: smt-filename$ ( -- adr len ) filename-buf count ;
: set-filename ( -- )
board#$ " %s.txt" sprintf filename-buf place
;
@@ -170,6 +170,8 @@
0 0 2value response$
+false value any-tags?
+
\ If the server sends us tags in the response file, we put
\ them in the mfg data
: write-new-tags ( adr len -- )
@@ -178,6 +180,7 @@
?remove-cr ( rem$ line$ )
[char] = left-parse-string ( rem$ value$ key$ )
dup 2 = if ( rem$ value$ key$ )
+ true to any-tags? ( rem$ value$ key$ )
put-tag ( rem$ )
else ( rem$ value$ key$ )
4drop ( rem$ )
@@ -192,10 +195,6 @@
response$ nip 0= if ." Null manufacturing data" cr exit then
-." Type q to skip tag write " key dup emit cr [char] q = if
- 2drop false exit
-then
-
flash-write-enable
clear-mfg-buf ( )
@@ -205,14 +204,12 @@
\ " ASSY" " TS" put-ascii-tag ( )
\ " D3" " SG" put-ascii-tag ( )
\ board#$ " B#" put-ascii-tag ( )
- (put-mfg-data) ( )
+ any-tags? if (put-mfg-data) then
\ check-tags
no-kbc-reboot
kbc-on
-
- false
;
: silent-probe-usb ( -- )
@@ -248,7 +245,15 @@
begin d# 1000 ms silent-probe-usb usb-key? until
then
;
+: stall ( -- ) begin halt again ;
+: require-int-sd ( -- )
+ " int:0" open-dev ?dup if close-dev exit then
+ " Power off and insert internal SD card" .problem
+ stall
+;
+
: wait-connections ( -- )
+ require-int-sd
silent-probe-usb
wait-scanner
wait-lan
@@ -261,13 +266,12 @@
clear-screen
test-passed? if
." Selftest passed." cr cr cr
- d# 2000 ms
green-screen
else
." Selftest failed." cr cr cr
- d# 2000 ms
red-screen
then
+ d# 2000 ms
;
: finish-smt-test ( pass? -- )
@@ -281,6 +285,13 @@
." Writing tags " parse-smt-response ." Done" cr
then
+ any-tag? 0= if
+ cr cr cr
+ " WARNING: Invalid response from shop floor server - no tags." .problem
+ cr cr cr
+ begin halt again
+ then ( )
+
." Powering off ..." d# 2000 ms
power-off
;
@@ -321,5 +332,12 @@
false to diag-switch?
;
+dev /wlan
+: selftest ( -- error? )
+ true to force-open? open false to force-open? ( opened? )
+ if close false else true then ( error? )
+;
+dend
+
\ Automatically run the sequence
start-smt-test
More information about the openfirmware
mailing list