Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Atheros wireless driver support ====== %%|%% [[dev/ath(4)|Driver]] | [[dev/ath_hal(4)|HAL]] | [[dev/ath_hal(4)/HardwareSupport|Supported Hardware]] | [[dev/ath(4)/80211n|802.11n support]] | [[dev/ath(4)/Debugging|Debugging]] | This is the driver for the Atheros PCI/PCIe NICs. ===== Supported Hardware ===== The in-tree driver supports all of the Atheros PCI/PCIe NICs. This includes the pre-11n chipsets and all 11n chipsets up to the AR9227/AR9287 (using sys/dev/ath/ath_hal/) and AR9380 and later (using sys/contrib/dev/ath/ath_hal/). Notably - this doesn't yet support the AR5513 MIMO 802.11abg NIC, the AR5523 NICs (AR5212 + USB), the AR7010 series USB NICs, or the AR9271 series USB NICs. Please see the [[dev/ath_hal(4)/HardwareSupport|Hal Hardware Support Page]] for further more information. ===== Operating Modes ===== * 802.11a (5GHz) * 802.11bg (2GHz) * Half and Quarter rate modes in 5GHz for AR5212 family NICs, AR5416, AR9130, AR9160, AR9280, AR9285 (specifically not AR9287 at the moment) * Turbo (static 40mhz mode) for AR5212 family NICs * 900mhz NIC support (TODO: which NICs) * 802.11na (5GHz) and 802.11ng (2.4GHz), 1, 2 and 3 stream operation (MCS0-23), HT/20 and HT/40 channel width, short-GI * Mesh, 802.11n support, TDMA support * STA powersave support * AP powersave support ===== Driver Components ===== * Rate control: Please see the [[dev/ath_rate(4)|rate control page]] for more information. * Ambient/Automatic Noise Immunity (ANI): Please see the [[dev/ath_hal(4)/AutomaticNoiseImmunity|ANI page]] for more information. * Radar pulse detection: Please see the [[dev/ath_hal(4)/RadarDetection|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 [[dev/ath(4)/RadarFFT]]. * 802.11n support: Please see the [[dev/ath(4)/80211n]] page for further information. * HAL: Please see the [[dev/ath_hal(4)|HAL device page]] for more information. ===== Bug List ===== * Check %%FreeBSD%% GNATS for [[http://www.freebsd.org/cgi/query-pr-summary.cgi?responsible=freebsd-wireless|bugs filed to freebsd-wireless]] ===== Work in progress ===== | RIFS | Unimplemented | Unimplemented | | Radar Detection | In progress | Unimplemented | | Non-aggregate software retry support | Planned | This requires some very strict retransmission behaviour in order to ensure frames aren't transmitted out of order | | AP PS-POLL and uAPSD support | In progress | PS-POLL done; uAPSD will follow | | 802.11n TDMA support | In progress | 802.11n rates work, A-MSDU support is needed to reach full 802.11n throughput | | 802.11n mesh support | Planned | Planned | | Add/document MCI bluetooth coex support | Planned | Planned | | PAPRD for AR9380 and later | Planned | Planned | ===== Small Project Wish List ===== 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? ===== Larger Project Wish List ===== * Support channel busy surveys (a la mac80211.) * (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 long link support for AR5416 and later chipsets * 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. ===== Completed Wish List ===== * (Re) Test Quarter/Half rate support for the AR5212/AR5213 and derivatives. * Implement Quarter/Half rate support for AR5416 and later chipsets - non-11n and 11n modes. * 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. * (Re) Test TDMA support for AR5212/AR5213 and derivatives. * Implement TDMA support for AR5416 and later chipsets - non-11n and 11n modes. * Implement per-packet TPC (Transmission Power Control) for chipsets which support it - required for full DFS support. * 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. ===== Fixed Issues ===== | 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 | ===== Useful Links ===== * Atheros Patent: Adaptive Noise Immunity: [[http://www.freepatentsonline.com/7349503.html]] * Atheros Patent: Noise Floor Calibration / Signal Strength Detection: [[http://www.freepatentsonline.com/7245893.html]] * Atheros Patent: Offset/Gain calibration for ADCs: [[http://www.freepatentsonline.com/7541952.html]] * Atheros Patent: Radar Pulse Detection/Estimation: [[http://ip.com/patent/US6891496]] * May 2008 IEEE: Atheros 2.4/5 Ghz 2x2 MIMO %%SoC%% (talk slides?): [[https://web.archive.org/web/20080830021352/http://www.ewh.ieee.org/r6/scv/ssc/May2008_WLAN.pdf]] dev/ath_4.txt Last modified: 2020/11/14 23:04by SashaVigole