[openfirmware] [commit] r2572 - cpu/arm/olpc/1.75 dev ofw/wifi

repository service svn at openfirmware.info
Tue Oct 4 02:05:47 CEST 2011


Author: wmb
Date: Tue Oct  4 02:05:46 2011
New Revision: 2572
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2572

Log:
OLPC XO-1.75 - WLAN and LED selftest - reduced the overhead of the association test part of the WLAN selftest, and eliminated the console scanning messages that occur during the WLAN LED selftest.

Modified:
   cpu/arm/olpc/1.75/leds.fth
   dev/libertas.fth
   ofw/wifi/eapol.fth

Modified: cpu/arm/olpc/1.75/leds.fth
==============================================================================
--- cpu/arm/olpc/1.75/leds.fth	Mon Oct  3 23:36:09 2011	(r2571)
+++ cpu/arm/olpc/1.75/leds.fth	Tue Oct  4 02:05:46 2011	(r2572)
@@ -19,7 +19,7 @@
    ols-led-ec-control
    ols-assy-mode-on
 
-   " /wlan" test-dev  " /wlan" test-dev  \ Twice for longer flashing
+   " /wlan:quiet" test-dev  " /wlan:quiet" test-dev  \ Twice for longer flashing
 
    d# 20 0 do  hdd-led-on d# 100 ms hdd-led-off d# 100 ms  loop
    ols-assy-mode-off

Modified: dev/libertas.fth
==============================================================================
--- dev/libertas.fth	Mon Oct  3 23:36:09 2011	(r2571)
+++ dev/libertas.fth	Tue Oct  4 02:05:46 2011	(r2572)
@@ -1865,11 +1865,14 @@
 \ Normal operation should have force-open? be false.
 false instance value force-open?
 				
+false instance value quiet?
+
 : parse-args  ( $ -- )
    false to use-promiscuous?
    begin  ?dup  while
       ascii , left-parse-string
       2dup " debug" $=  if  debug-on  then
+      2dup " quiet" $=  if  true to quiet?  then   \ Used by LED selftest
       2dup " promiscuous" $=  if  true to use-promiscuous?  then
            " force" $=  if  true to force-open?  then
    repeat drop
@@ -2088,9 +2091,8 @@
 
 : reset  ( -- flag )  reset-nic  ;
 
-: test-association  ( -- error? )
-   passive-scan
-   " OLPCOFW" " scan-ssid?" $call-supplicant  if
+: test-association  ( adr len -- error? )
+   " OLPCOFW" " select-ssid?" $call-supplicant  if
       " (do-associate)" $call-supplicant  if
 	 \ Success
          " target-mac$" $call-supplicant disassociate
@@ -2103,7 +2105,6 @@
       \ There is no OLPCOFW access point, so we don't try associating
       false
    then
-   active-scan
 ;
 
 : (scan-wifi)  ( -- error? )
@@ -2123,9 +2124,15 @@
             ." ERROR: No access points seen" cr
             true
          then
-      else                  ( adr len )
-         drop .ssids        ( )
-         test-association   ( error? )
+      else                    ( adr len )
+	 \ Quiet mode is for the benefit of the LEDs test, so we can flash
+         \ the WLAN LEDS without distracting messages appearing on the screen
+         quiet?  if           ( adr len )
+            2drop false       ( error? )
+         else
+            over .ssids       ( adr len )
+            test-association  ( error? )
+         then                 ( error? )
       then
    then
 

Modified: ofw/wifi/eapol.fth
==============================================================================
--- ofw/wifi/eapol.fth	Mon Oct  3 23:36:09 2011	(r2571)
+++ ofw/wifi/eapol.fth	Tue Oct  4 02:05:46 2011	(r2572)
@@ -581,7 +581,7 @@
    swap /string				( adr' len' )  ( R: ie-type )
    r> (find-ie)				( adr' len' true | false )
 ;
-: find-ssid  ( ssid$ adr -- adr' true | false )
+: find-ssid  ( ssid$ scanbuf-adr -- ap-adr' true | false )
    false swap				( ssid$ flag adr )
    dup 3 +				( ssid$ flag 'ap )
    swap 2 + c@				( ssid$ flag 'ap #ap )
@@ -725,7 +725,7 @@
       kt-wep   of  wep-ok?  endof
       ( default )  pmk-ok? swap
    endcase
-   dup  if  ." found"  else  ." Keys in wifi-cfg are not valid"  then  cr
+   dup  0=  if  ." Keys in wifi-cfg are not valid - "  then
 ;
 
 h# 0050.f201 constant wpa-tag
@@ -777,19 +777,36 @@
    valid? 0= or
 ;
 
+: (select-ssid?)  ( ssid$ -- found? )
+   scanbuf find-ssid 0=  if  false exit  then    ( ap-adr )
+   init-common-rates                     ( ap-adr )
+   ssid-valid? 0=  if  false exit  then  ( )
+   true valid!                           ( )
+   report-associate-info                 ( )
+   true                                  ( found? )
+;
+: select-ssid?  ( volatile-scanbuf-adr,len ssid$ -- found? )
+   ssid!                                 ( volatile-scanbuf$ )
+   dup /buf >  if                        ( volatile-scanbuf$ )
+      ." Scan buffer too long" cr        ( volatile-scanbuf$ )
+      2drop false exit                   ( -- found? )
+   then                                  ( volatile-scanbuf$ )
+   scanbuf swap move                     ( )
+   ssid$ (select-ssid?)                  ( found? )
+;
+
 : scan-ssid?  ( ssid$ -- found? )
-   dup 0=  if  2drop false exit  then 
-   ssid!
-   ssid$  " set-ssid" $call-parent
-   ??cr ." Scan for: " ssid$ type space
-   scanbuf /buf scan 0=  if  ." not found" cr false exit  then
-   debug?  if  scanbuf .scan  then
-   ssid$ scanbuf find-ssid 0=  if  ." not found" cr false exit  then
-   init-common-rates
-   ssid-valid? 0=  if  exit  then
-   true valid!
-   report-associate-info
-   true
+   dup 0=  if  2drop false exit  then         ( ssid$ )
+   ssid!                                      ( )
+   ssid$  " set-ssid" $call-parent            ( )
+   ??cr ." Scan for: " ssid$ type space       ( )
+   scanbuf /buf scan  if                      ( )
+      debug?  if  scanbuf .scan  then         ( )
+      ssid$ (select-ssid?)                    ( found? )
+      dup  if  ." found"  else  ." failed"  then  cr
+   else                                       ( )
+      ." not found"  cr  false                ( found? )
+   then                                       ( found? )
 ;
 : try-scan  ( -- okay? )
    wifi-ssid$  scan-ssid?  if  true exit  then



More information about the openfirmware mailing list