[openfirmware] [commit] r3242 - cpu/arm/olpc

repository service svn at openfirmware.info
Wed Aug 29 07:49:45 CEST 2012


Author: quozl
Date: Wed Aug 29 07:49:44 2012
New Revision: 3242
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3242

Log:
OLPC XO-4 - Neonode, rework test coverage based on new requirements, vendor recommends forced LED levels test

Modified:
   cpu/arm/olpc/nn-touchscreen.fth

Modified: cpu/arm/olpc/nn-touchscreen.fth
==============================================================================
--- cpu/arm/olpc/nn-touchscreen.fth	Wed Aug 29 07:04:41 2012	(r3241)
+++ cpu/arm/olpc/nn-touchscreen.fth	Wed Aug 29 07:49:44 2012	(r3242)
@@ -4,6 +4,17 @@
 0 0  " 4,50"  " /twsi" begin-package
 my-space encode-int  my-address encode-int encode+  " reg" property
 
+create nn-os            \ open short test
+create nn-fll           \ forced led levels test
+create nn-version       \ version display
+
+\ create nn-fss           \ optional fixed signal strength test
+\ create nn-ls            \ optional low signals test
+
+\ create nn-components    \ isolate test results to failed component identifier
+
+\ create nn-ir-pcb-rev-b  \ support for revision b of the ir pcb assembly
+
 \ XXX these are really platform-related, not touchscreen-related
 : targets?  ( -- flag )  final-test?  ;
 : .tsmsg  ( -- )  0 d# 27 at-xy  ." Touchscreen test.  Type a key to exit" cr  ;
@@ -65,6 +76,8 @@
    2drop                                ( )
 ;
 
+
+
 : read-boot-complete  ( -- )  h# 07 d# 0 anticipate  ;
 
 : initialise  ( -- )  h# 01 h# 01 h# ee  3 twsi-out  h# 01 d# 20 anticipate  ;
@@ -132,6 +145,17 @@
 ;
 
 
+
+0 value faults
+: fault  faults 1+ to faults  ;
+
+: 4sp  ."     "  ;
+
+: 8sp  ."         "  ;
+
+
+
+[ifdef] nn-version \ version display
 : (.version)  ( addr -- )
    dup c@  over 1+ c@  bwjoin           ( addr version )
    (.) type
@@ -154,14 +178,11 @@
    .version
    cr
 ;
+[then]
 
 
-0 value faults
-: fault  faults 1+ to faults  ;
 
-: 4sp  ."     "  ;
-
-: 8sp  ."         "  ;
+[ifdef] nn-os \ open short test
 
 [ifdef] nn-components
 \ optional decoding of component identifiers
@@ -352,6 +373,11 @@
    4sp ." X Axis" cr  0 test-os-axis
    4sp ." Y Axis" cr  1 test-os-axis
 ;
+[then]
+
+
+
+[ifdef] nn-fss \ fixed signal strength test
 
 [ifdef] nn-components
 d# 11 constant x-ir-0 \ first X axis IR component identifier
@@ -383,8 +409,6 @@
    \ Y axis, IR11 PD12, IR11 PD11, IR10 PD11 ... IR1 PD1
    \ X axis, IR12 PD13, IR12 PD14, IR13 PD14 ... IR26 PD28
 [then]
-   \ FIXME: using a light guide, characterise a low signal level,
-   \ detect, and fail self test
 ;
 
 : test-fss
@@ -392,6 +416,9 @@
    4sp ." X Axis" cr  0 test-fss-axis
    4sp ." Y Axis" cr  1 test-fss-axis
 ;
+[then]
+
+
 
 [ifdef] nn-ls \ low signals test
 : test-ls-axis  ( axis -- )
@@ -424,6 +451,8 @@
 ;
 [then]
 
+
+
 [ifdef] nn-fll \ forced LED levels test
 : test-fll-signal  ( signal# signal-value led-level -- )
    dup 0= if
@@ -442,7 +471,11 @@
       cr
       exit
    then
-   2drop ." pass on axis signal " .d cr
+   \ 2drop ." pass on axis signal " .d cr
+   3drop
+[ifdef] nn-components
+   \ FIXME: express forced led levels faults in terms of IR PCB component names.
+[then]
 ;
 
 : test-fll-axis  ( axis -- )
@@ -464,6 +497,8 @@
 ;
 [then]
 
+
+
 : press  ( line$ -- )
    type
    ." , press a key"
@@ -474,41 +509,64 @@
 : connect  " Connect IR PCB" press  ;
 : disconnect  " Disconnect IR PCB" press  ;
 
+: dump-events
+   begin
+      in?  if
+         ." rx: "  pbuf plen  bounds  do
+            i c@  2u.x  space
+         loop  cr
+      then
+      key?
+   until
+   key drop
+;
+
 : selftest  ( -- error? )
 
-   smt-test?  if
+   0 to faults
+
+   test-station h#  1 =  test-station h# 11 =  or  if  \ IR PCB SMT and MB SMT
       hold-reset  connect
-      0 to faults
       open  if  test-os  else  fault  then
       hold-reset  disconnect
       faults  exit
    then
 
+   test-station h# 12 =  if  \ IR PCB ASSY
+      hold-reset  connect
+      open  if  test-fll  else  fault  then
+      hold-reset  disconnect
+      faults  exit
+   then
+[ifdef] nn-ir-pcb-rev-b
+   test-station h#  2 =  if  \ MB ASSY
+      open  if  test-finger-down-each-edge  else  fault  then
+      faults  exit
+   then
+[then]
+
+   \ MB FINAL
+   \ MB SHIP
    open  0=  if
       ." No touchscreen present" cr  false exit
    then
 
    diagnostic-mode?  if
       0 to faults
-      test-version
-      test-os
-      test-fss
+      [ifdef] nn-version  test-version  [then]
+      [ifdef] nn-os       test-os       [then]
+      [ifdef] nn-fss      test-fss      [then]
+      [ifdef] nn-fll      test-fll      [then]
       faults  if  close  true  exit  then
    then
 
-   ." dumping events from touchscreen controller, press a key to stop" cr
-
+[ifdef] nn-ir-pcb-rev-b
    \ FIXME: graphically show data on screen until key
    \ ... waiting for revision B of IR PCB
-   begin
-      in?  if
-         ." rx: "  pbuf plen  bounds  do
-            i c@  2u.x  space
-         loop  cr
-      then
-      key?
-   until
-   key drop
+[else]
+   ." dumping events from touchscreen controller, press a key to stop" cr
+   dump-events
+[then]
 
    close false
 ;



More information about the openfirmware mailing list