User Tools

Site Tools


en:users:drivers:wil6210

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
en:users:drivers:wil6210 [2015/11/12 15:08]
Vladimir Kondratiev wip - adjust for recent state of the driver (as in v4.3)
en:users:drivers:wil6210 [2015/11/15 07:58]
Vladimir Kondratiev
Line 15: Line 15:
  
 wil6210 device, ''​1ae9:​0310'',​ has one 2Mb BAR; it supports MSI interrupt. wil6210 device, ''​1ae9:​0310'',​ has one 2Mb BAR; it supports MSI interrupt.
 +
 +Since 60GHz is emerging technology and hardware is completely new, driver provides lots of features
 +for experimenting,​ and can be used as researcher workbench.
  
  
Line 23: Line 26:
 wil6210 use cfg80211 framework, but not mac80211. ​ wil6210 use cfg80211 framework, but not mac80211. ​
  
 +==== Firmware ====
  
-===== What works =====+We need to get this publicly available...  
 + 
 +Firmware has to be downloaded to the card; card will not work without firmware.  
 + 
 +==== What works ====
   * managed mode, aka station. Fully functional. Require up-to-date wpa_supplicant. ​   * managed mode, aka station. Fully functional. Require up-to-date wpa_supplicant. ​
   * sniffer. May be configured to captures either only CP (control PHY) or all frames ​   * sniffer. May be configured to captures either only CP (control PHY) or all frames ​
Line 30: Line 38:
   * security. supported is GCMP, it is the only allowed cipher accordingly to the spec.   * security. supported is GCMP, it is the only allowed cipher accordingly to the spec.
  
-==== iw commands supported ​====+==== TODO ==== 
 +  * P2P and FST flows  
 +  * various offloads
  
-iw link: query link statusReport current MCS+==== Status ==== 
 +  * Basic support for 802.11ad merged into kernel 3.6  
 +  * The driver merged into kernel 3.8.  
 +  * Patches for hostapd/​wpa_supplicant submitted, some part is already merged
  
  
-===== Module parameters ​===== +==== iw commands supported ​====
- +
-^ Parameter ​              ^ Type    ^ Default ​ ^ Comment ​                                                                                                                                           ^ +
-| use_msi ​                | bool    | true     | Use MSI or INTx (pin) interrupt ​                                                                                                                   | +
-| mtu_max ​                | uint    | 1986     | Maximum supported MTU, [68..7912] ​                                                                                                                 | +
-| rx_ring_order ​          | uint    | 10       | Rx sing size is ''​1 << order'',​ [5..15] ​                                                                                                           | +
-| tx_ring_order ​          | uint    | 10       | Tx sing size is ''​1 << order'',​ [5..15] ​                                                                                                           | +
-| bcast_ring_order ​       | uint    | 7        | Broadcast Tx sing size is ''​1 << order'',​ [5..15] ​                                                                                                 | +
-| max_assoc_sta ​          | uint    | 8        | Max number of stations associated to the AP, [1..8] ​                                                                                               | +
-| agg_wsize ​              | int     | 0        | Window size for Tx Block Ack after connect; 0 - use default; < 0 - don't auto-establish. Writeable, new value used when new block ack established ​ | +
-| rx_ring_overflow_thrsh ​ | ushort ​ | 0        | RX ring overflow threshold in descriptors. ​                                                                                                        | +
-| no_fw_recovery ​         | bool    | false    | disable automatic FW error recovery ​                                                                                                               | +
-| debug_fw ​               | bool    | false    | do not perform card reset. For FW debug                                                                                                            | +
-| rx_align_2 ​             | bool    | false    | align Rx buffers on 4*n+2                                                                                                                          | +
-| rtap_include_phy_info ​  | bool    | false    | Include PHY info in the radiotap header ​                                                                                                           | +
- +
- +
-wil6210 support of interrupt handling modes:  +
- +
-  * MSI - MSI interrupt. This is the default mode. +
-  * INTx - legacy pin interrupt. Do not use if possible. +
- +
-When **debug_fw** set to true, driver probe will not fail if firmware do not report "​ready"​ event. This is to aid firmware boot issues debugging. ​+
  
 +iw link: query link status. Report current MCS. 
  
-===== Sniffer ​=====+==== Sniffer ====
  
 To configure wil6210 in sniffer mode (assume $WLAN set to network interface name): ​ To configure wil6210 in sniffer mode (assume $WLAN set to network interface name): ​
Line 81: Line 73:
 <​code>#​ ifconfig $WLAN up</​code>​ <​code>#​ ifconfig $WLAN up</​code>​
  
-===== TODO ===== +==== AP mode ====
-    *                     * P2P and FST flows  +
-    *                     * various offloads  +
-===== Status ===== +
-    *                       * Basic support for 802.11ad merged into kernel 3.6  +
-    *                       * The driver merged into kernel 3.8.  +
-    *                       * Patches for hostapd/​wpa_supplicant submitted, some part is already merged.  +
-===== Firmware ===== +
- +
-We need to get this publicly available...  +
- +
-In the current version, firmware stored in the flash memory on the NIC and not downloaded by the driver. Firmware flashing required for the upgrade only.  +
- +
- +
-===== How to =====+
  
 To start AP mode, use recent wpa_supplicant (assume relevant patches already merged). Sample config for non-secure mode:  To start AP mode, use recent wpa_supplicant (assume relevant patches already merged). Sample config for non-secure mode: 
Line 124: Line 102:
 }</​code>​ }</​code>​
  
-===== WMI commands ​=====+===== For developer ===== 
 + 
 + 
 + 
 +==== Module parameters ==== 
 + 
 +^ Parameter ​              ^ Type    ^ Default ​ ^ Comment ​                                                                                                                                           ^ 
 +| use_msi ​                | bool    | true     | Use MSI or INTx (pin) interrupt ​                                                                                                                   | 
 +| mtu_max ​                | uint    | 1986     | Maximum supported MTU, [68..7912] ​                                                                                                                 | 
 +| rx_ring_order ​          | uint    | 10       | Rx sing size is ''​1 << order'',​ [5..15] ​                                                                                                           | 
 +| tx_ring_order ​          | uint    | 10       | Tx sing size is ''​1 << order'',​ [5..15] ​                                                                                                           | 
 +| bcast_ring_order ​       | uint    | 7        | Broadcast Tx sing size is ''​1 << order'',​ [5..15] ​                                                                                                 | 
 +| max_assoc_sta ​          | uint    | 8        | Max number of stations associated to the AP, [1..8] ​                                                                                               | 
 +| agg_wsize ​              | int     | 0        | Window size for Tx Block Ack after connect; 0 - use default; < 0 - don't auto-establish. Writeable, new value used when new block ack established ​ | 
 +| rx_ring_overflow_thrsh ​ | ushort ​ | 0        | RX ring overflow threshold in descriptors. ​                                                                                                        | 
 +| no_fw_recovery ​         | bool    | false    | disable automatic FW error recovery ​                                                                                                               | 
 +| debug_fw ​               | bool    | false    | do not perform card reset. For FW debug                                                                                                            | 
 +| rx_align_2 ​             | bool    | false    | align Rx buffers on 4*n+2                                                                                                                          | 
 +| rtap_include_phy_info ​  | bool    | false    | Include PHY info in the radiotap header ​                                                                                                           | 
 + 
 + 
 +wil6210 support of interrupt handling modes:  
 + 
 +  * MSI - MSI interrupt. This is the default mode. 
 +  * INTx - legacy pin interrupt. Do not use if possible. 
 + 
 +When **debug_fw** set to true, driver probe will not fail if firmware do not report "​ready"​ event. This is to aid firmware boot issues debugging.  
 + 
 + 
 + 
 +==== WMI commands ====
  
 Control communication with the card is done through so called WMI commands and events. Target access to the mailbox within memory in BAR0 used. There are 2 similar mailbox structures: one for host->​card commands, and one for card->​host events. ​ Control communication with the card is done through so called WMI commands and events. Target access to the mailbox within memory in BAR0 used. There are 2 similar mailbox structures: one for host->​card commands, and one for card->​host events. ​
  
  
-===== Tx/Rx =====+==== Tx/Rx ====
  
 DMA using '​vring'​ structures. Vring in consistent memory; hold descriptors that points to the data buffers. Card to write status back to the descriptor. ​ DMA using '​vring'​ structures. Vring in consistent memory; hold descriptors that points to the data buffers. Card to write status back to the descriptor. ​
Line 136: Line 144:
  
  
-===== Firmware error recovery ​=====+==== Firmware error recovery ====
  
 Should firmware crash, or in case of scan timeout, driver try to recover from error by resetting card. This works for **station** only. In the **AP** mode, driver will not perform recovery. It will, however, report error to the user space. There are 2 modes of firmware recovery, depending on the driver parameter **no_fw_recovery**: ​ Should firmware crash, or in case of scan timeout, driver try to recover from error by resetting card. This works for **station** only. In the **AP** mode, driver will not perform recovery. It will, however, report error to the user space. There are 2 modes of firmware recovery, depending on the driver parameter **no_fw_recovery**: ​
Line 149: Line 157:
 If **state** is //​pending//,​ it is time to collect all crash information as desired, and continue with recovery by writing **run** into **recovery**: ​ If **state** is //​pending//,​ it is time to collect all crash information as desired, and continue with recovery by writing **run** into **recovery**: ​
     *                         ​* ​    * <​code>​echo -n "​run"​ > /​sys/​kernel/​debug/​ieee80211/​phy/​wil6210/​recovery</​code>​     *                         ​* ​    * <​code>​echo -n "​run"​ > /​sys/​kernel/​debug/​ieee80211/​phy/​wil6210/​recovery</​code>​
-===== Debug facilities ===== 
  
 +==== Debug facilities ====
  
-==== Dynamic debug ====+ 
 +=== Dynamic debug ===
  
 Almost all messages printed to the dmesg, are "​dynamic debug" ones. See Documentation/​dynamic-debug-howto.txt for details. Module "​wil6210"​ uses format prefixes to identify message groups: ​ Almost all messages printed to the dmesg, are "​dynamic debug" ones. See Documentation/​dynamic-debug-howto.txt for details. Module "​wil6210"​ uses format prefixes to identify message groups: ​
Line 162: Line 171:
  
  
-==== Debugfs ​====+=== Debugfs ===
  
 All debugfs files placed under standard location for the cfg80211 devices, $DEBUGFS/​ieee80211/​$PHY/​ where $PHY is phy name like '​phy1'​. ​ All debugfs files placed under standard location for the cfg80211 devices, $DEBUGFS/​ieee80211/​$PHY/​ where $PHY is phy name like '​phy1'​. ​
Line 265: Line 274:
  
 You should subscribe to this page so you can get e-mail updates on changes and news for ath9k automatically. You'll get an e-mail as soon as this page gets updated. ​ You should subscribe to this page so you can get e-mail updates on changes and news for ath9k automatically. You'll get an e-mail as soon as this page gets updated. ​
- 
en/users/drivers/wil6210.txt · Last modified: 2015/11/15 14:34 by Vladimir Kondratiev