[OpenBIOS] r716 - cpu/x86/pc/olpc ofw/wifi

svn at openbios.org svn at openbios.org
Wed Nov 7 08:37:40 CET 2007


Author: wmb
Date: 2007-11-07 08:37:39 +0100 (Wed, 07 Nov 2007)
New Revision: 716

Modified:
   cpu/x86/pc/olpc/fsupdate.fth
   cpu/x86/pc/olpc/fw.bth
   ofw/wifi/data.fth
   ofw/wifi/eapol.fth
   ofw/wifi/wifi-cfg.fth
Log:
OLPC trac 2740 - Added the ability to associate with one of a list
of Access Point SSIDs and fixed the IP address of the school server.
Filesystem update over the network is now working.


Modified: cpu/x86/pc/olpc/fsupdate.fth
===================================================================
--- cpu/x86/pc/olpc/fsupdate.fth	2007-11-07 07:34:31 UTC (rev 715)
+++ cpu/x86/pc/olpc/fsupdate.fth	2007-11-07 07:37:39 UTC (rev 716)
@@ -180,8 +180,8 @@
    repeat                             ( rem$ )
    2drop
 ;
-: update-devices  " disk: sd: http:\\177.18.16.1"  ;
+: update-devices  " disk: sd: http:\\172.18.0.1"  ;
 : try-fs-update  ( -- )
    ." Searching for a NAND file system update image." cr
-   all-devices$ fs-update-from-list
+   update-devices fs-update-from-list
 ;

Modified: cpu/x86/pc/olpc/fw.bth
===================================================================
--- cpu/x86/pc/olpc/fw.bth	2007-11-07 07:34:31 UTC (rev 715)
+++ cpu/x86/pc/olpc/fw.bth	2007-11-07 07:37:39 UTC (rev 716)
@@ -413,9 +413,11 @@
 support-package: supplicant
 fload ${BP}/ofw/wifi/loadpkg.fth
 end-support-package
-stand-init:
-   " ??,OLPCOFW" $wifi
+
+: olpc-ssids  ( -- $ )
+   " OLPCOFW"nschool-mesh-0"nschool-mesh-1"nschool-mesh-2"
 ;
+' olpc-ssids to default-ssids
 
 [ifdef] use-ppp
 fload ${BP}/ofw/ppp/loadppp.fth

Modified: ofw/wifi/data.fth
===================================================================
--- ofw/wifi/data.fth	2007-11-07 07:34:31 UTC (rev 715)
+++ ofw/wifi/data.fth	2007-11-07 07:37:39 UTC (rev 716)
@@ -12,7 +12,7 @@
 : enable-rsn   ( -- )  " enable-rsn"  $call-parent drop  ;
 : disable-rsn  ( -- )  " disable-rsn" $call-parent drop  ;
 : disable-wep  ( -- )  " disable-wep" $call-parent drop  ;
-: set-wep    ( wep4$ wep3$ wep2$ wep1$ -- )  " set-wep"   $call-parent drop  ;
+: set-wep    ( wep4$ wep3$ wep2$ wep1$ idx -- )  " set-wep"   $call-parent drop  ;
 : associate  ( ch ssid$ target-mac$ -- ok? )     " associate" $call-parent  ;
 : supported-rates$  ( -- adr len )  " supported-rates$" $call-parent  ;
 : set-common-rates  ( adr len -- )  " set-common-rates" $call-parent  ;
@@ -80,15 +80,80 @@
 1 constant at-eap
 2 constant at-preshared
 
-0 0 2value country-ie			\ Address of country IE
+\ =====================================================================
+\ Country/region tables
 
+: $, ( adr len -- )  here over allot  swap move  ;
 
-\ =======================================================================
-\ Instance data 
+create countries
+   " US " $, h# 10 c,	\ US FCC
+   " CA " $, h# 10 c,	\ IC Canada
+   " SG " $, h# 10 c,	\ Singapore
+   " EU " $, h# 30 c,	\ ETSI
+   " AU " $, h# 30 c,	\ Australia
+   " KR " $, h# 30 c,	\ Republic of Korea
+   " ES " $, h# 31 c,	\ Spain
+   " FR " $, h# 32 c,	\ France
+   " JP " $, h# 40 c,	\ Japan
+   "    " $, h#  0 c,   \ END OF LIST
 
+: country>region  ( country$ -- region )
+   countries  begin  dup 3 + c@  while   ( country$ adr )
+      3dup swap comp  0=  if             ( country$ adr )
+         nip nip 3 + c@ exit
+      then                               ( country$ adr )
+      4 +                                ( country$ adr' )
+   repeat                                ( country$ adr' )
+   3drop 0
+;
+
+create regions
+   \ US        Len   	Channels 1-11, 100mW
+   h# 10 c,    3 c,     1 c, d# 11 c, d# 20 c,	
+
+   \ EU        Len 	Channels 1-13, 100mW
+   h# 30 c,    3 c,     1 c, d# 13 c, d# 20 c,
+
+   \ ES        Len 	Channels 10-11, 100mW
+   h# 31 c,    3 c,     d# 10 c, 2 c, d# 20 c,
+
+   \ FR        Len 	Channels 10-13, 100mW
+   h# 32 c,    3 c,     d# 10 c, 4 c, d# 20 c,
+
+   \ JP        Len 	Channels 1-13, 50mW	Channel 14, 50mW
+   h# 40 c,    6 c,     1 c, d# 13 c, d# 16 c,  d# 14 c, 1 c, d# 16 c,	
+
+   0 c,   \ END OF LIST
+
+\ Seach the regions table
+: region>ch/pwr  ( region-code -- ch-adr,len )
+   regions  begin  dup c@  while   ( region-code adr )
+      2dup c@ =  if                ( region-code adr )
+         nip ca1+ count exit       ( region-code adr )
+      then                         ( region-code adr )
+      ca1+ count +                 ( region-code adr' )
+   repeat                          ( region-code adr )
+   2drop null$
+;
+
+d# 15 3 * dup constant /country-ie   buffer: country-ie-buf
+
+\ country>ie fills country-ie with the country followed by the region info
+
+0 instance value country-ie-len
+
+: set-country-ie  ( country$ -- )
+   country-ie-buf /country-ie erase                   ( country$ )
+   2dup country>region ?dup 0=  if  2drop exit  then  ( country$ region# )
+   region>ch/pwr dup 0=  if  4drop exit  then         ( country$ ch-adr,len )
+   tuck country-ie-buf 3 + swap move                  ( country$ len )
+   over + to country-ie-len                           ( country$ )
+   3 max country-ie-buf swap move                     ( )
+;
+
 false instance value debug?
 false instance value scan?
-false instance value country?
+
 0 instance value wifi			\ Current wifi-node
 
 : ptk  ( -- adr )  wifi >ptk  ;
@@ -142,23 +207,6 @@
    last-rcnt /rcnt ff fill
 ;
 
-
-\ =======================================================================
-\ wifi-cfg data
-
-: adrlen@   ( src -- adr len )  dup @ swap na1+ @  ;
-: wifi-ssid$  ( -- $ )  wifi-cfg >wc-ssid adrlen@  ;
-: wifi-pmk$   ( -- $ )  wifi-cfg >wc-pmk  adrlen@  ;
-: wifi-wep1$  ( -- $ )  wifi-cfg >wc-wep1 adrlen@  ;
-: wifi-wep2$  ( -- $ )  wifi-cfg >wc-wep2 adrlen@  ;
-: wifi-wep3$  ( -- $ )  wifi-cfg >wc-wep3 adrlen@  ;
-: wifi-wep4$  ( -- $ )  wifi-cfg >wc-wep4 adrlen@  ; 
-: wifi-wep-idx   ( -- n )  wifi-cfg >wc-wep-idx @ 1- 0 max 4 min  ;
-: wifi-country$  ( -- $ )  wifi-cfg >wc-country 3  ;
-
-: set-country  ( adr len -- )  2dup upper  country>ie to country-ie  ;
-
-
 \ LICENSE_BEGIN
 \ Copyright (c) 2007 FirmWorks
 \ 

Modified: ofw/wifi/eapol.fth
===================================================================
--- ofw/wifi/eapol.fth	2007-11-07 07:34:31 UTC (rev 715)
+++ ofw/wifi/eapol.fth	2007-11-07 07:37:39 UTC (rev 716)
@@ -626,8 +626,8 @@
 
 : set-bss-type  ( bss-type -- )  dup to bss-type  set-bss-type  ;
 
-: set-country-info  ( adr len -- )
-   country?  if  2drop country-ie  then	\ Overwrite the country IE
+: do-set-country-info  ( adr len -- )
+   country-ie-len  if  2drop country-ie-buf country-ie-len  then  \ Override the country IE
    3 / 3 *				\ Remove pad byte
    ?dup 0=  if  drop exit  then		\ Nothing to set
    set-country-info
@@ -680,7 +680,7 @@
       kt-wep   of  wep-ok?  endof
       ( default )  pmk-ok? swap
    endcase
-   dup 0=  if  ." Keys in wifi-cfg are not valid" cr  then
+   dup  if  ." found"  else  ." Keys in wifi-cfg are not valid"  then  cr
 ;
 
 h# 0050.f201 constant wpa-tag
@@ -707,15 +707,16 @@
    dup 3 find-ie 0=  if  ." Cannot locate the channel #" cr drop false exit  then
    drop c@ channel!				\ Channel number
    dup 6 find-ie  if  drop 2 + le-w@ set-atim-window  then	\ ATIM window
-   dup 7 find-ie 0=  if  null$  then  set-country-info	\ Country channel/power info
+   dup 7 find-ie 0=  if  null$  then  do-set-country-info	\ Country channel/power info
    dup d# 48 find-ie  if  set-wpa2-ktype drop key-ok? exit  then	\ Favor RSN(WPA2) over WPA
    dup d# 221 find-ie  if  2 pick process-wpa-ie  then
    drop key-ok?
 ;
 
 : (do-associate)  ( -- ok? )
-   ??cr ." Associate with: " ssid$ type cr
+   ??cr ." Associate with: " ssid$ type space
    channel ssid$ target-mac$ associate 0=  if  false exit  then
+   cr
    ktype=wpa?  if
       do-key-handshakes
       done-group-key?
@@ -724,23 +725,40 @@
    then
 ;
 
-: do-scan?  ( -- scan? )   wifi-ssid$ ssid$ $= not  scan? or  valid? 0= or  ;
+\ Don't rescan the second time unless forced to
+: must-scan?  ( -- flag )
+   ssid-reset?   false to ssid-reset?    ( flag )
+   scan? or  false to scan?              ( flag' )
+   valid? 0= or
+;
 
+: 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
+;
+: try-scan  ( -- okay? )
+   wifi-ssid$  scan-ssid?  if  true exit  then
+   default-ssids  begin  dup  while   ( rem$ )
+      newline left-parse-string       ( rem$' ssid$ )
+      scan-ssid?  if  2drop true exit  then  ( rem$ )
+   repeat                             ( rem$ )
+   2drop false
+;
+
 : do-associate  ( -- ok? )
    disable-protection
-   do-scan?  if
-      wifi-ssid$ ssid!
-      wifi-ssid$  " set-ssid" $call-parent
-      ??cr ." Scan for: " ssid$ type cr
-      scanbuf /buf scan 0=  if  ." Failed to find: " ssid$ type cr false exit  then
-      debug?  if  scanbuf .scan  then
-      ssid$ scanbuf find-ssid 0=  if  ." Cannot find: " ssid$ type cr false exit  then
-      init-common-rates
-      ssid-valid? 0=  if  false exit  then
-      true valid!
-      report-associate-info
-   then
-   (do-associate)
+   must-scan?  if  try-scan  0= if  false exit  then  then
+   (do-associate)  dup 0=  if  true to scan?  then
 ;
 
 
@@ -771,17 +789,15 @@
       ascii , left-parse-string
       2dup " debug" $=  if  true to debug?  then
       2dup " scan"  $=  if  true to scan?   then	\ Force scan even if ssid$ is same
-      2dup drop " country" comp 0=  if		\ Force different country IE
+      2dup drop " country" comp 0=  if		        \ Force different country IE
          2dup [char] = left-parse-string  2drop
-         set-country
-         true to country?
+         2dup upper  set-country-ie
       then
       2drop
    repeat drop
 ;
 
 : open  ( -- ok? )
-   wifi-country$ set-country
    my-args parse-args
    mac-adr$ init-wifi-data
    first-open?  if

Modified: ofw/wifi/wifi-cfg.fth
===================================================================
--- ofw/wifi/wifi-cfg.fth	2007-11-07 07:34:31 UTC (rev 715)
+++ ofw/wifi/wifi-cfg.fth	2007-11-07 07:37:39 UTC (rev 716)
@@ -1,155 +1,69 @@
 purpose: /package/supplicant configuration data
 \ See license at end of file
 
-
 \ =====================================================================
 \ Arguments passed onto the /supplicant support package
 
 struct
-    3     field >wc-country		\ Country code
-    /n 3 - +				\ Padding
-    /n 2* field >wc-ssid		\ adr len (upto 32 ascii bytes)
-    /n    field >wc-wep-idx		\ 1-4
-    /n 2* field >wc-wep1		\ adr len (binary, len=5 or 13)
-    /n 2* field >wc-wep2		\ adr len
-    /n 2* field >wc-wep3		\ adr len
-    /n 2* field >wc-wep4		\ adr len
-    /n 2* field >wc-pmk			\ adr len (binary, len=32)
+    /n field >wc-ssid		\ pstr (upto 32 ASCII characters)
+    /n field >wc-wep-idx	\ 1-4
+    /n field >wc-wep1		\ pstr (binary, len=5 or 13)
+    /n field >wc-wep2		\ pstr (binary, len=5 or 13)
+    /n field >wc-wep3		\ pstr (binary, len=5 or 13)
+    /n field >wc-wep4		\ pstr (binary, len=5 or 13)
+    /n field >wc-pmk		\ pstr (binary, len=32)
 constant /wifi-cfg
 
-/wifi-cfg buffer: wifi-cfg
+/wifi-cfg buffer: ram-wifi-cfg
+defer wifi-cfg  ' ram-wifi-cfg to wifi-cfg
 
 
-\ =====================================================================
-\ Country/region tables
+\ =======================================================================
+\ wifi-cfg data
 
-: $, ( adr len -- )  here over allot  swap move  ;
-
-create country-region
-here
-	" US " $, 10 c,			\ US FCC
-	" CA " $, 10 c,			\ IC Canada
-	" SG " $, 10 c,			\ Singapore
-	" EU " $, 30 c,			\ ETSI
-	" AU " $, 30 c,			\ Australia
-	" KR " $, 30 c,			\ Republic of Korea
-	" ES " $, 31 c,			\ Spain
-	" FR " $, 32 c,			\ France
-	" JP " $, 40 c,			\ Japan
-here swap - 4 / constant #country-region
-
-create region-ie-US
-here
-   1 c, d# 11 c, d# 20 c,		\ Channels 1-11, 100mW
-here swap - constant /region-ie-US
-
-create region-ie-EU
-here
-   1 c, d# 13 c, d# 20 c,		\ Channels 1-13, 100mW
-here swap - constant /region-ie-EU
-
-create region-ie-ES
-here
-   d# 10 c, 2 c, d# 20 c,		\ Channels 10-11, 100mW
-here swap - constant /region-ie-ES
-
-create region-ie-FR
-here
-   d# 10 c, 4 c, d# 20 c,		\ Channels 10-13, 100mW
-here swap - constant /region-ie-FR
-
-create region-ie-JP
-here
-   1 c, d# 13 c, d# 16 c,		\ Channels 1-13, 50mW
-   d# 14 c, 1 c, d# 16 c,		\ Channel 14, 50mW
-here swap - constant /region-ie-JP
-
-d# 15 3 * dup constant /country-ie   buffer: country-ie
-
-: country>region  ( country$ -- region )
-   0 -rot #country-region 0  do		( region adr len )
-      country-region i 4 * + 2 pick 2 pick comp
-      0=  if  rot drop country-region i 4 * + 3 + c@ -rot  leave  then
-   loop  2drop				( region )
+\ Make a packed string of $, optimizing for the case where
+\ $ is already in the dictionary as a packed string.
+: $>pstr  ( $ -- pstr )
+   over in-dictionary?  if     ( $ )
+      over c@ over =  if  drop 1-  exit  then
+   then                        ( $ )
+   here >r  ",  r>             ( pstr )
 ;
 
-: region>ch/pwr  ( region -- ch-adr,len )
-   case
-      10  of  region-ie-US /region-ie-US  endof
-      30  of  region-ie-EU /region-ie-EU  endof
-      31  of  region-ie-ES /region-ie-ES  endof
-      32  of  region-ie-FR /region-ie-FR  endof
-      40  of  region-ie-JP /region-ie-JP  endof
-      ( default ) null$ rot
-   endcase
-;
+: pstr!  ( adr len dst -- )  >r  $>pstr r> !  ;
 
-: country>ie  ( country$ -- ie-adr,len )
-   country-ie /country-ie erase
-   2dup country>region ?dup 0=  if  2drop null$ exit  then
-   region>ch/pwr ?dup 0=  if  3drop null$ exit  then
-   tuck country-ie 3 + swap move
-   over + -rot 3 max country-ie swap move
-   country-ie swap
-;
+: pstr@   ( src -- adr len )  @ ?dup  if  count  else  " "  then  ;
+: wifi-ssid$     ( -- $ )  wifi-cfg >wc-ssid pstr@  ;
+: wifi-pmk$      ( -- $ )  wifi-cfg >wc-pmk  pstr@  ;
+: wifi-wep1$     ( -- $ )  wifi-cfg >wc-wep1 pstr@  ;
+: wifi-wep2$     ( -- $ )  wifi-cfg >wc-wep2 pstr@  ;
+: wifi-wep3$     ( -- $ )  wifi-cfg >wc-wep3 pstr@  ;
+: wifi-wep4$     ( -- $ )  wifi-cfg >wc-wep4 pstr@  ; 
+: wifi-wep-idx   ( -- n )  wifi-cfg >wc-wep-idx @ 1- 0 max 4 min  ;
 
+defer default-ssids  ( -- $ )  ' null$ to default-ssids
 
-\ =====================================================================
-\ Scan wireless networks
-
-: wifi-children  ( -- )
-   \ Ignore nodes that do not have device_type = wireless-network
-   " device_type" get-property  if  exit  then
-   get-encoded-string " wireless-network" $=  if
-      " scan-wifi" method-name 2!  do-method?
-   then
-;
-
-: scan-wifi  ( -- )
-   optional-arg-or-/$  ['] wifi-children scan-subtree
-;
-
-: adrlen!  ( adr len dst -- )  tuck na1+ ! !  ;
-
-\ Some syntactic sugar
-: preserve$  ( $ -- $' )
-   over in-dictionary?  if  exit  then  ( $ )
-   here >r  ",  r> count   
-;
-
-: $wifi  ( country,ssid$ -- )
-   dup 0= abort" Empty country,SSID string"
+0 value ssid-reset?
+: $essid  ( essid$ -- )
+   dup 0= abort" Empty ESSID string"
    wifi-cfg  /wifi-cfg erase    ( adr len )
-   wifi-cfg  3 blank            ( adr len )
-   [char] , left-parse-string   ( tail$ head$ )
-   2 pick  0=  if               ( null$ ssid$ )  
-      2swap 2drop  " US"        ( ssid$ country$ )
-   then                         ( ssid$ country$ )
-   dup 3 >  if
-      type ."  is too long to be a country name." cr
-      abort
-   then
-   wifi-cfg >wc-country swap move   ( ssid$ )
-   preserve$                        ( ssid$' )  \ Save the string
-   wifi-cfg >wc-ssid adrlen!        ( )
+   wifi-cfg >wc-ssid pstr!      ( )
+   true to ssid-reset?
 ;
 
 : $wep  ( wep$ -- )
    dup 5 <>  over d# 13 <>  and  abort" WEP key must be 5 or 13 bytes"
-   preserve$                             ( wep$' )
    wifi-cfg >wc-wep-idx   dup @          ( wep$ adr idx )
    dup 4 >=  abort" Too many WEP keys"   ( wep$ adr idx )
    2dup 1+ swap !                        ( wep$ adr idx )
-   2* na+ na1+  adrlen!                  ( )
+   2* na+ na1+  pstr!                    ( )
 ;
 
 : $pmk  ( pmk$ -- )
    dup d# 32 <>  abort" PMK must be 32 bytes"
-   preserve$                 ( pmk$' )
-   wifi-cfg >wc-pmk adrlen!  ( )
+   wifi-cfg >wc-pmk pstr!  ( )
 ;
 
-
 \ Stores the result at here
 : decode-hex  ( hex$ -- bin$ )
    here >r
@@ -163,56 +77,40 @@
    r>  here over -                       ( bin-adr bin-len )
 ;
 
-: wifi  ( "country,ssid" -- )  0 parse $wifi  ;
+: essid  ( "ssid" -- )  0 parse $essid  ;
+alias wifi essid
+alias ssid essid
 : wep  ( "wep" -- )  parse-word  decode-hex  $wep  ;
 : pmk  ( "pmk" -- )  parse-word  decode-hex  $pmk  ;
 
 
+\ =====================================================================
+\ Scan wireless networks
+
+: wifi-children  ( -- )
+   \ Ignore nodes that do not have device_type = wireless-network
+   " device_type" get-property  if  exit  then
+   get-encoded-string " wireless-network" $=  if
+      " scan-wifi" method-name 2!  do-method?
+   then
+;
+
+: scan-wifi  ( -- )
+   optional-arg-or-/$  ['] wifi-children scan-subtree
+;
+
+
 0 [if]
 
 \ Sample usage:
 
-: us$  ( -- $ )  " US "  ;
-: dlink-ssid  ( -- $ )  " dlink"  ;
-: dlink-wep1  ( -- $ )  " "(11 22 33 44 55)"  ;
-: dlink-pmk   ( -- $ )  " "(db 91 ee 34 a9 3c 73 48 18 35 a2 64 5b 11 d1 34 ec f3 b3 a2 ee ae 33 96 a9 0b 7d b5 1f 2f 48 78)"  ;
-: bad-pmk     ( -- $ )  " "(00 91 ee 34 a9 3c 73 48 18 35 a2 64 5b 11 d1 34 ec f3 b3 a2 ee ae 33 96 a9 0b 7d b5 1f 2f 48 78)"  ;
 : set-dlink-wifi-cfg  ( -- )
-   wifi-cfg  /wifi-cfg erase
-   us$        wifi-cfg >wc-country swap move
-   dlink-ssid wifi-cfg >wc-ssid adrlen!
-   1          wifi-cfg >wc-wep-idx    !
-   dlink-wep1 wifi-cfg >wc-wep1 adrlen!
-   dlink-pmk  wifi-cfg >wc-pmk  adrlen!
+   " dlink"  $ssid
+   " "(11 22 33 44 55)" $wep
+   " "(db 91 ee 34 a9 3c 73 48 18 35 a2 64 5b 11 d1 34 ec f3 b3 a2 ee ae 33 96 a9 0b 7d b5 1f 2f 48 78)" $pmk
 ;
 set-dlink-wifi-cfg
 
-: us$  ( -- $ )  " US "  ;
-: linksys-ssid  ( -- $ )  " linksys"  ;
-: linksys-wep1  ( -- $ )  " "(11 22 33 44 55)"  ;
-: linksys-pmk   ( -- $ )  " "(35 8b b7 41 ac fc 04 08 73 67 fb 79 11 cb 18 38 36 ca 54 47 49 73 cd 7a 59 35 e8 6c 4f 20 5f 13)" ;
-: set-linksys-wifi-cfg  ( -- )
-   wifi-cfg    /wifi-cfg erase
-   us$          wifi-cfg >wc-country swap move
-   linksys-ssid wifi-cfg >wc-ssid adrlen!
-   1            wifi-cfg >wc-wep-idx    !
-   linksys-wep1 wifi-cfg >wc-wep1 adrlen!
-   linksys-pmk  wifi-cfg >wc-pmk  adrlen!
-;
-set-linksys-wifi-cfg
-
-: us$  ( -- $ )  " US "  ;
-: olpc-ssid  ( -- $ )  " olpc"  ;
-: olpc-wep1  ( -- $ )  " "(11 22 33 44 55)"  ;
-: set-olpc-wifi-cfg  ( -- )
-   wifi-cfg /wifi-cfg erase
-   us$       wifi-cfg >wc-country swap move
-   olpc-ssid wifi-cfg >wc-ssid adrlen!
-   1         wifi-cfg >wc-wep-idx    !
-   olpc-wep1 wifi-cfg >wc-wep1 adrlen!
-;
-set-olpc-wifi-cfg
-
 [then]
 
 \ LICENSE_BEGIN




More information about the OpenBIOS mailing list