[openfirmware] [commit] r2398 - cpu/arm/olpc/1.75 dev/usb2/hcd

repository service svn at openfirmware.info
Tue Aug 2 01:56:30 CEST 2011


Author: quozl
Date: Tue Aug  2 01:56:30 2011
New Revision: 2398
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2398

Log:
OLPC XO-1.75 - change final function USB test order for CL2 to match CL1B, remove test mask, implement a test sequence property.

Modified:
   cpu/arm/olpc/1.75/usb.fth
   dev/usb2/hcd/probehub.fth

Modified: cpu/arm/olpc/1.75/usb.fth
==============================================================================
--- cpu/arm/olpc/1.75/usb.fth	Mon Aug  1 21:11:37 2011	(r2397)
+++ cpu/arm/olpc/1.75/usb.fth	Tue Aug  2 01:56:30 2011	(r2398)
@@ -16,11 +16,15 @@
    : otg-set-host-mode  3 h# a8 ehci-reg!  ;  \ Force host mode
    ' otg-set-host-mode to set-host-mode
 
-   \ Port 1 on the hub (bit 0) is connected to unused pins on the
-   \ WLAN connector, so testing it is confusing
-   h# e  " hub-port-mask" integer-property
+   \ Port 1 on the hub is connected to unused pins on the WLAN connector,
+   \ so testing it is confusing
+   \ Port 2 is right upper
+   \ Port 3 is left
+   \ Port 4 is right lower
+   h# 03.04.02.00  " hub-port-seq" integer-property
+
 end-package
-   
+
 d# 300 config-int usb-delay  \ Milliseconds to wait before probing hub ports
 
 devalias u    /usb/disk

Modified: dev/usb2/hcd/probehub.fth
==============================================================================
--- dev/usb2/hcd/probehub.fth	Mon Aug  1 21:11:37 2011	(r2397)
+++ dev/usb2/hcd/probehub.fth	Tue Aug  2 01:56:30 2011	(r2398)
@@ -188,46 +188,57 @@
    probe-teardown                   ( error? )
 ;
 
-0 value hub-test-mask
+: (hub-selftest)  ( port -- stop? )
+   >r
+   hub-dev parent-set-target              ( )
+   r@ get-port-status  if                 ( )
+      ." Get-port-status failed for hub port " r@ u. cr
+      r> drop true exit                   ( -- true )
+   then                                   ( )
+   hub-buf c@ 8 and  if   \ Connected     ( )
+      ." Hub port " r@ u. ." in over current" cr
+      r> drop true exit                   ( -- true )
+   then                                   ( )
+   hub-buf c@ 1 and  if   \ Connected     ( )
+      ." Hub port " r@ u. ." in use" cr   ( )
+   else                                   ( )
+      diagnostic-mode?  if                ( )
+         ." Please connect a device to USB hub port " r@ u.  cr   ( )
+         r@ wait-hub-connect  if  r> drop true exit  then         ( )
+      else                                                        ( )
+         ." Fisheye pattern out to USB hub port " r@ u. cr        ( )
+         r@ 4 test-hub-port                                       ( )
+         d# 2,000 ms                                              ( )
+         r@ untest-hub-port                                       ( )
+         r@ reset-hub-port  r@ power-hub-port                     ( )
+      then                                                        ( )
+   then                                                           ( )
+   r> drop false
+;
+
 : hub-selftest  ( hub-dev -- error? )
-   to hub-dev                               ( )
+   to hub-dev                                           ( )
+
+   " hub-port-seq" get-inherited-property  if           ( )
+      hub-#ports 1+  1  ?do                             ( )
+         i (hub-selftest)  if  true unloop exit  then
+      loop                                              ( )
+   else                                                 ( propval$ )
+      decode-int nip nip                                ( seq )
+
+      4 0 do
+         dup h# ff000000 and d# 24 rshift h# ff and     ( seq port )
+         dup if                                         ( seq port )
+            (hub-selftest)  if  true exit  then
+         else
+            drop
+         then                                   ( seq )
+         d# 8 lshift                            ( seq' )
+      loop
+   then
 
-   " hub-port-mask" get-inherited-property  if	( )
-      -1					( mask )
-   else						( propval$ )
-      decode-int nip nip			( mask )
-   then						( mask )
-   to hub-test-mask				( )
-
-   hub-#ports 1+  1  ?do			( )
-      1  i 1-  lshift  hub-test-mask  and  if
-         hub-dev parent-set-target		( )
-         i get-port-status  if			( )
-            ." Get-port-status failed for hub port " i u. cr
-   	 true unloop exit			( -- true )
-         then					( )
-         hub-buf c@ 8 and  if	\ Connected	( )
-            ." Hub port " i u. ." in over current" cr
-            true unloop exit			( -- true )
-         then					( )
-         hub-buf c@ 1 and  if	\ Connected	( )
-            ." Hub port " i u. ." in use" cr	( )
-         else					( )
-            diagnostic-mode?  if		( )
-               ." Please connect a device to USB hub port " i u.  cr	( )
-               i wait-hub-connect  if  true unloop exit  then			( )
-            else							( )
-               ." Fisheye pattern out to USB hub port " i u. cr		( )
-               i 4 test-hub-port					( )
-               d# 2,000 ms						( )
-               i untest-hub-port					( )
-               i reset-hub-port  i power-hub-port			( )
-            then							( )
-         then								( )
-      then								( )
-   loop									( )
-   \ Mabye need to reset the entire hub here
-   false								( false )
+   \ Maybe need to reset the entire hub here
+   false                                        ( false )
 ;
 : hub-selftest-xt  ( -- xt )  ['] hub-selftest  ;
 



More information about the openfirmware mailing list