This is an old revision of the document!


Atheros wireless driver support

Primary development is now in FreeBSD-HEAD.

This work attempts to bring in fixes both from Linux ath9k (from the wireless-testing branch), the Atheros HAL code (not currently open source) and from local testing.

The eventual aim is to support all current and past Atheros wireless devices with a clean, portable, documented driver and HAL.

Please see the HAL device page for more information.

Please see the Hal Hardware Support Page for more information.

  • 802.11a (5GHz)
  • 802.11bg (2GHz)
  • Half and Quarter rate modes in 5GHz for AR5212 family NICs
  • Turbo (static 40mhz mode) for AR5212 family NICs
  • 900mhz NIC support (TODO: which NICs)
  • 802.11na (5GHz) and 802.11ng (2.4GHz), 1 and 2 stream operation (MCS0-15), HT/20 and HT/40 channel width

Please see the rate control page for more information.

Please see the ANI page for more information.

The DFS machinery is driven by code in the net80211 stack. The driver simply reports that a radar event has been detected.

At this stage, ath(4) does not support radar detection. This may change in the future.

For an introduction to the radar detection/classification information currently available, please see the HAL Radar Detection page. This includes links to some relevant Atheros Patents.

There's also some initial software support for extracting the information out via userland at RadarFFT.

Please see the 80211n page for further information.

RIFS Unimplemented Unimplemented
Radar Detection In progress Unimplemented
AR9285 PCIe LOCAL_TIMEOUT Investigation Some people w/ AR9285's are seeing LOCAL_TIMEOUT errors (which are currently not fatal); add some debugging code to see what kinds of circumstances trigger these and try to repair it
AR9300/AR94xx/AR95xx support In progress In progress

The following is a set of simple projects which interested developers can use to get familiar with the ath/hal codebase.

  • Bluetooth Coexistence for AR9280/AR9285 - the routines have been ported; but require some integration work and testing.
  • RFKill for AR5416 and later (both software and hardware) - investigate how it's done for the previous chipsets (AR5212 in particular) and what ath9k does; then plan out a implementation and testing plan.
  • Tidy up the build structure for the ath tools so they can be included in the system by default?
  • Modify if_ath.c to report the per-radio control/extension noise floor and RSSI - net80211 has already been taught about it, ath_hal has been taught about how to export the statistics; all that's needed is the glue in if_ath.c.
  • Support channel busy surveys (a la mac80211.)
  • (Re) Test Quarter/Half rate support for the AR5212/AR5213 and derivatives.
  • (Re) Test long link support for AR5212/AR5213 and derivatives - this essentially tweaks the ACK, RTS, CTS and various IFS timings to support long distance links.
  • Implement Quarter/Half rate support for AR5416 and later chipsets - non-11n and 11n modes.
  • Implement long link support for AR5416 and later chipsets
  • (Re) Test TDMA support for AR5212/AR5213 and derivatives.
  • Implement TDMA support for AR5416 and later chipsets - non-11n and 11n modes.
  • Investigate and fix power saving mode(s).
  • ATIM?
  • Auto-sleep support in AR9280 and later?
  • AR9271 and USB support in the HAL - a pre-requisite for supporting the 11n NICs after the AR9170-based devices.
  • Implement per-packet TPC (Transmission Power Control) for chipsets which support it - required for full DFS support.

= Completed Wish List ==

  • Implement software TX aggregation and retransmit for AR5416 and later chipsets in 11n mode.
  • The HAL configuration variables are global (eg debug, beacon timer adjustments, ALQ logging.) It would be nice to have these per-HAL instance - so move them to the public part of the ath_hal struct and initialise them on device attach. They're not per-vif; they're per-device.
  • I've added quite a few more statistics to the per-device ioctl statistics (sys/dev/ath/if_athioctl.h); athstats needs to be taught about these new statistics so they can be reported.
ath multi-SSID support - < AR5416 Fixed This needs testing - both open and WEP/WPA
ath multi-SSID support - >= AR5416 Fixed Some further testing would be nice!
ath multicast search key support Fixed Fixed
ath 11n RX support Fixed Completed
net80211 HT/20 support - 2.4ghz Fixed Completed
net80211 HT/20 support - 5ghz Fixed Completed
net80211 HT/40 support Fixed Completed
net80211 short-GI support Fixed Completed
net80211 11n STA mode Fixed Completed
net80211 11n AP mode Fixed Completed
net80211 A-MPDU/A-MSDU RX support Fixed A-MPDU issues resolved; Ath cards require ampdudensity of 8
  • dev/ath_4.1347144620.txt.gz
  • Last modified: 2012/09/08 22:50
  • by AdrianChadd