Changeset 3591


Ignore:
Timestamp:
Mar 6, 2013, 7:42:03 PM (20 months ago)
Author:
wmb
Message:

OLPC - WLAN driver - fixed build problem on XO-1 introduced by recent
changes to support Bluetooth.

Location:
dev
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • dev/libertas.fth

    r3569 r3591  
    4848 
    4949: init-buf  ( -- ) 
    50    outbuf 0=  if  /outbuf " alloc-buffer" $call-parent to outbuf  then 
     50   outbuf 0=  if  /outbuf alloc-buffer to outbuf  then 
    5151; 
    5252: free-buf  ( -- ) 
    53    outbuf  if  outbuf /outbuf " free-buffer" $call-parent  0 to outbuf  then 
     53   outbuf  if  outbuf /outbuf free-buffer  0 to outbuf  then 
    5454; 
    5555 
     
    176176 
    177177: outbuf-out  ( -- error? ) 
    178    outbuf  dup >fw-len le-w@ " cmd-out" $call-parent 
     178   outbuf  dup >fw-len le-w@ cmd-out 
    179179; 
    180180 
     
    609609 
    610610: check-for-rx  ( -- ) 
    611    " got-packet?" $call-parent  if      ( error | buf len type 0 ) 
     611   got-packet?  if      ( error | buf len type 0 ) 
    612612      0= if  process-rx  then   ( ) 
    613       " recycle-packet" $call-parent            ( ) 
     613      recycle-packet            ( ) 
    614614   then                         ( ) 
    615615; 
     
    698698 
    699699: reset-wlan  ( -- ) 
     700\   XXX wlan-reset evaluate 
     701 
    700702   driver-is-not-ready 
    701    " reset-host-bus" $call-parent 
     703   reset-host-bus 
    702704; 
    703705: sleep  ( -- )  reset-wlan  ; 
     
    713715; 
    714716 
     717\ Sometimes get-hw-spec fails the first time after 
     718\ the driver is reopened with the firmware still active. 
     719\ This has been seen with the 8388 USB version. 
     720: retry-get-hw-spec  ( -- true | adr false ) 
     721   get-hw-spec  dup if  drop get-hw-spec  then 
     722; 
     723 
    715724: set-fw-params  ( -- ) 
    716    get-hw-spec  0=  if   ( adr ) 
     725   retry-get-hw-spec  0=  if   ( adr ) 
    717726 
    718727      \ is 802.11n capable? 
     
    12321241   repeat                       ( adr len scan-adr scan-len err? r: chan ) 
    12331242   r> drop                      ( adr len scan-adr scan-len err? ) 
    1234    if  4drop false exit  then   ( adr len scan-adr scan-len ) 
     1243   if  2drop 2drop false exit  then   ( adr len scan-adr scan-len ) 
    12351244   rot min >r                   ( adr scan-adr r: actual ) 
    12361245   swap r@ move                 ( r: actual ) 
     
    18001809   h# 0002  0 +pkt-data  le-w!  \ Reason code: auth no longer valid 
    18011810   packet-buf  /802.11-header 2 +   wrap-802.11    ( adr len ) 
    1802    " data-out" $call-parent 
     1811   data-out 
    18031812   r> set-tx-ctrl 
    18041813; 
     
    21282137; 
    21292138 
    2130 \ Maybe handle this in parent's close method 
    2131 : release-bus-resources  ( -- )  " release-bus-resources" $call-parent  ; 
    2132  
    21332139: open  ( -- ok? ) 
    21342140   my-args parse-args 
     2141   set-parent-channel 
    21352142   " " set-ssid  \ Instance buffers aren't necessarily initially 0 
    2136    my-space " set-address" $call-parent \ Set SDIO function number if necessary 
    21372143   opencount @ 0=  if 
    21382144      init-buf 
     2145      setup-transport  if  free-buf false exit  then 
    21392146      ds-ready to driver-state 
    2140       " multifunction?" $call-parent  if  init-function  then 
     2147      multifunction?  if  init-function  then 
    21412148      ?make-mac-address-property  if  release-bus-resources free-buf false exit  then 
    21422149      set-fw-params 
     
    21702177      mac-off 
    21712178      supplicant-ih ?dup  if  close-package 0 to supplicant-ih  then 
    2172       " multifunction?" $call-parent  if  shutdown-function  then 
     2179      multifunction?  if  shutdown-function  then 
    21732180      release-bus-resources 
    21742181      driver-is-not-ready 
     
    21812188   tuck                                 ( actual adr len ) 
    21822189   wrap-ethernet                        ( actual adr' len' ) 
    2183    " data-out" $call-parent             ( actual ) 
     2190   data-out                             ( actual ) 
    21842191; 
    21852192 
    21862193: read-force  ( adr len -- actual ) 
    2187    " got-packet?" $call-parent  0=  if  ( adr len ) 
     2194   got-packet? 0=  if                   ( adr len ) 
    21882195      2drop  -2  exit 
    21892196   then                                 ( adr len [ error | buf actual type 0 ] ) 
    21902197 
    21912198   if   \ receive error                 ( adr len ) 
    2192       " recycle-packet" $call-parent    ( adr len ) 
     2199      recycle-packet                    ( adr len ) 
    21932200      2drop  -1  exit 
    21942201   then                                 ( adr len buf actual type ) 
     
    22032210   then                                 ( actual ) 
    22042211 
    2205    " recycle-packet" $call-parent       ( actual ) 
     2212   recycle-packet                       ( actual ) 
    22062213; 
    22072214 
     
    22362243   tuck   6 +pkt-data  swap  move                          ( tags-size ) 
    22372244   packet-buf  swap /802.11-header +  6 +   wrap-802.11    ( adr len ) 
    2238    " data-out" $call-parent 
     2245   data-out 
    22392246; 
    22402247 
     
    22462253    
    22472254   packet-buf  /802.11-header 6 +   wrap-802.11    ( adr len ) 
    2248    " data-out" $call-parent 
     2255   data-out 
    22492256; 
    22502257 
     
    22932300   begin  backlog 8 >=  while  process-mgmt-frame  repeat 
    22942301   backlog 1+ to backlog 
    2295    " data-out" " $call-parent                           ( len ) 
     2302   data-out                                             ( len ) 
    22962303   throttle 
    22972304; 
  • dev/mmc/sdhci/mv8686/loadpkg.fth

    r3569 r3591  
    14141 to my-space 
    1515my-space 1 reg 
     16fload ${BP}/dev/mmc/sdhci/mv8686/libertas-interface.fth         \ Marvell "Libertas" common code 
    1617fload ${BP}/dev/libertas.fth                    \ Marvell "Libertas" common code 
    1718finish-device 
  • dev/usb2/device/wlan/fw8388.fth

    r3569 r3591  
    8585: wait-cmd-fw-dl-ack  ( -- acked? ) 
    8686   d# 100 0  do                 ( ) 
    87       got-packet?  if           ( error | buf len type 0 ) 
     87      bulk-in-ready?  if        ( error | buf len type 0 ) 
    8888         if                     ( ) 
    8989            false               ( acked? ) 
    90          else                   ( buf len type ) 
    91             drop cmd-fw-dl-ok?  ( acked? ) 
     90         else                   ( buf len ) 
     91            cmd-fw-dl-ok?       ( acked? ) 
    9292         then                   ( acked? ) 
    9393         recycle-packet         ( acked? ) 
     
    100100 
    101101: download-fw-init  ( -- ) 
    102    fw-buf /boot-cmd erase 
    103    boot-magic fw-buf >boot-magic le-l! 
    104    cmd-fw-dl  fw-buf >boot-cmd   c! 
     102   outbuf /boot-cmd erase 
     103   boot-magic outbuf >boot-magic le-l! 
     104   cmd-fw-dl  outbuf >boot-cmd   c! 
    105105 
    106106   5 0  do 
    107       fw-buf /boot-cmd packet-out drop 
     107      outbuf /boot-cmd packet-out drop 
    108108      wait-cmd-fw-dl-ack  if  leave  then 
    109109   loop 
     
    119119: wait-fw-dl-ack  ( -- ) 
    120120   d# 500 0  do                         ( ) 
    121       got-packet?  if                   ( error | buf len tupe 0 ) 
    122          0= if  drop process-dl-resp  then      ( ) 
     121      bulk-in-ready?  if                ( error | buf len 0 ) 
     122         0= if  process-dl-resp  then   ( ) 
    123123         recycle-packet                 ( ) 
    124124         leave 
     
    131131   bounds  begin                ( end start ) 
    132132      dl-seq++                          \ Increment sequence number 
    133       dup fw-buf /dl-header move        \ Move header to outbuf 
    134       dl-seq fw-buf >dl-seq le-l!       \ Add sequence number to outbuf 
    135       dup /dl-header + fw-buf >dl-data 2 pick >dl-len le-l@ dup >r move 
    136                                         \ Move payload to fw-buf 
    137       fw-buf r@ /dl-header + 4 + packet-out drop 
     133      dup outbuf /dl-header move        \ Move header to outbuf 
     134      dl-seq outbuf >dl-seq le-l!       \ Add sequence number to outbuf 
     135      dup /dl-header + outbuf >dl-data 2 pick >dl-len le-l@ dup >r move 
     136                                        \ Move payload to outbuf 
     137      outbuf r@ /dl-header + 4 + packet-out drop 
    138138                                        \ Send command 
    139139      wait-fw-dl-ack                    \ Wait for ACK 
     
    181181 
    182182: load-all-fw  ( -- error? ) 
    183    d# 2048 dma-alloc to fw-buf    
     183   fw-loaded?  if  false exit  then 
    184184   wlan-fw find-fw  ( adr len ) 
    185    dup  if  download-fw  else  2drop true  then 
    186    fw-buf d# 2048 dma-free 
    187 ; 
     185   dup  if  download-fw  else  2drop true  then  ( error? ) 
     186   dup 0=  to fw-loaded?                         ( error? ) 
     187; 
     188: (setup-transport)  ( -- error? ) 
     189   setup-bus-io  ?dup  if  exit  then 
     190   load-all-fw  dup  if  release-bus-resources  then  ( error? ) 
     191; 
     192' (setup-transport) to setup-transport 
    188193 
    189194\ LICENSE_BEGIN 
  • dev/usb2/device/wlan/usb8388.bth

    r3569 r3591  
    1414fload ${BP}/dev/usb2/device/wlan/common.fth     \ Ethernet common variables and routines 
    1515fload ${BP}/dev/usb2/device/wlan/usb8388.fth    \ USB I/O interface for Marvell 8388 
     16fload ${BP}/dev/libertas.fth                    \ Marvell "Libertas" common code 
    1617fload ${BP}/dev/usb2/device/wlan/fw8388.fth     \ Marvell firmware download for USB 
    17 fload ${BP}/dev/libertas.fth                    \ Marvell "Libertas" common code 
    1818\ fload ${BP}/dev/usb2/device/wlan/wlan.fth     \ External interface methods 
    1919 
  • dev/usb2/device/wlan/usb8388.fth

    r3569 r3591  
    7171         decode-header  0       ( dadr dlen type 0 ) 
    7272      then                      ( error | buf len 0 ) 
     73      true 
    7374   else                         ( ) 
    7475      false                     ( false ) 
     
    9697: release-bus-resources  ( -- )  end-bulk-in end-out-ring  ; 
    9798 
    98 : reset-host-bus  ( -- )  " wlan-reset" evaluate  ; 
     99false value fw-loaded? 
     100: reset-host-bus  ( -- )  " wlan-reset" evaluate  false to fw-loaded?  ; 
    99101 
    1001020 value vid 
     
    109111 
    110112init 
    111 XXX need open and close methods and open needs to call setup-bus-io 
    112 XXX need alloc-buffer and free-buffer method 
     113 
     114: open  ( -- okay? )  setup-bus-io 0=  ; 
     115: close  ( -- )  ; 
     116: alloc-buffer  ( len -- adr )  /fw-transport +  dma-alloc  /fw-transport +  ; 
     117: free-buffer  ( adr len -- )  /fw-transport negate /string  dma-free  ; 
     118 
     119defer setup-transport  ( -- error? )  ' true to setup-transport 
    113120 
    114121\ LICENSE_BEGIN 
Note: See TracChangeset for help on using the changeset viewer.