1cf8faa80SSam Leffler.\"- 26fd63a5dSSam Leffler.\" Copyright (c) 2002-2009 Sam Leffler, Errno Consulting 3cf8faa80SSam Leffler.\" All rights reserved. 4cf8faa80SSam Leffler.\"" 5cf8faa80SSam Leffler.\" Redistribution and use in source and binary forms, with or without 6cf8faa80SSam Leffler.\" modification, are permitted provided that the following conditions 7cf8faa80SSam Leffler.\" are met: 8cf8faa80SSam Leffler.\" 1. Redistributions of source code must retain the above copyright 9cf8faa80SSam Leffler.\" notice, this list of conditions and the following disclaimer, 10cf8faa80SSam Leffler.\" without modification. 11cf8faa80SSam Leffler.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer 12cf8faa80SSam Leffler.\" similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any 13cf8faa80SSam Leffler.\" redistribution must be conditioned upon including a substantially 14cf8faa80SSam Leffler.\" similar Disclaimer requirement for further binary redistribution. 15cf8faa80SSam Leffler.\" 16cf8faa80SSam Leffler.\" NO WARRANTY 17cf8faa80SSam Leffler.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18cf8faa80SSam Leffler.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19cf8faa80SSam Leffler.\" LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY 20cf8faa80SSam Leffler.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 21cf8faa80SSam Leffler.\" THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 22cf8faa80SSam Leffler.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23cf8faa80SSam Leffler.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24cf8faa80SSam Leffler.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25cf8faa80SSam Leffler.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26cf8faa80SSam Leffler.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 27cf8faa80SSam Leffler.\" THE POSSIBILITY OF SUCH DAMAGES. 28cf8faa80SSam Leffler.\" 29cf8faa80SSam Leffler.\" $FreeBSD$ 30cf8faa80SSam Leffler.\"/ 31*70c8948aSAdrian Chadd.Dd June 16, 2020 32cf8faa80SSam Leffler.Dt ATH 4 33cf8faa80SSam Leffler.Os 34cf8faa80SSam Leffler.Sh NAME 35cf8faa80SSam Leffler.Nm ath 363c9bf41dSChristian Brueffer.Nd "Atheros IEEE 802.11 wireless network driver" 37cf8faa80SSam Leffler.Sh SYNOPSIS 3816d78bb8STom RhodesTo compile this driver into the kernel, 3916d78bb8STom Rhodesplace the following lines in your 4090296834STom Rhodeskernel configuration file: 4186e3186eSTom Rhodes.Bd -ragged -offset indent 42cf8faa80SSam Leffler.Cd "device ath" 43e849bb3eSAdrian Chadd.Cd "device ath_pci" 4410626faeSHiten Pandya.Cd "device ath_hal" 45aa2fce50SSam Leffler.Cd "device ath_rate_sample" 4610626faeSHiten Pandya.Cd "device wlan" 4786e3186eSTom Rhodes.Ed 4886e3186eSTom Rhodes.Pp 4916d78bb8STom RhodesAlternatively, to load the driver as a 5016d78bb8STom Rhodesmodule at boot time, place the following line in 5186e3186eSTom Rhodes.Xr loader.conf 5 : 5286e3186eSTom Rhodes.Bd -literal -offset indent 5386e3186eSTom Rhodesif_ath_load="YES" 54e849bb3eSAdrian Chaddif_ath_pci_load="YES" 5586e3186eSTom Rhodes.Ed 56cf8faa80SSam Leffler.Sh DESCRIPTION 57cf8faa80SSam LefflerThe 58cf8faa80SSam Leffler.Nm 59cf8faa80SSam Lefflerdriver provides support for wireless network adapters based on 6061f78dd7SAdrian Chaddthe Atheros AR5210, AR5211, AR5212, AR5416 and AR9300 programming APIs. 61b032f27cSSam LefflerThese APIs are used by a wide variety of chips; most all chips with 62*70c8948aSAdrian Chadda PCI, PCIe and/or CardBus interface are supported. 63cf8faa80SSam Leffler.Pp 64cf8faa80SSam LefflerSupported features include 802.11 and 802.3 frames, power management, BSS, 65*70c8948aSAdrian ChaddIBSS, MBSS, WDS/DWDS TDMA, and host-based access point operation modes. 66cf8faa80SSam LefflerAll host/device interaction is via DMA. 67cf8faa80SSam Leffler.Pp 68e849bb3eSAdrian ChaddPlease note that from FreeBSD-9.0, the 69e849bb3eSAdrian Chadd.Nm 70e849bb3eSAdrian Chadddriver does not include the PCI/PCIe bus glue. 71e849bb3eSAdrian ChaddThe same driver supports multiple underlying bus types, including PCI/PCIe, 72e849bb3eSAdrian Chaddbut also embedded (AHB) and USB in the future. 73e849bb3eSAdrian Chadd.Pp 74e849bb3eSAdrian ChaddTo enable use for PCI/PCIe systems, see the 75e849bb3eSAdrian Chadd.Xr ath_pci 4 76e849bb3eSAdrian Chadddriver. 77e849bb3eSAdrian ChaddFor embedded systems which use the AHB to connect the wireless MAC, see the 78e849bb3eSAdrian Chadd.Xr ath_ahb 4 79e849bb3eSAdrian Chadddriver. 80e849bb3eSAdrian Chadd.Pp 81cf8faa80SSam LefflerThe 82cf8faa80SSam Leffler.Nm 83cf8faa80SSam Lefflerdriver encapsulates all IP and ARP traffic as 802.11 frames, however 84cf8faa80SSam Lefflerit can receive either 802.11 or 802.3 frames. 85cf8faa80SSam LefflerTransmit speed and operating mode is selectable 8691d89945SChristian Bruefferand depends on the specific chipset. 8759ddccc6SChristian BruefferAR5210-based devices support 802.11a operation with transmit speeds 88cf8faa80SSam Lefflerof 6 Mbps, 9 Mbps, 12 Mbps, 18 Mbps, 24 Mbps, 36 Mbps, 48 Mbps, and 54 Mbps. 89cf8faa80SSam LefflerAR5211-based devices support 802.11a and 802.11b operation with transmit 90cf8faa80SSam Lefflerspeeds as above for 802.11a operation and 91cf8faa80SSam Leffler1Mbps, 2Mbps, 5.5 Mbps and 11Mbps for 802.11b operation. 92cf8faa80SSam LefflerAR5212-based devices support 802.11a, 802.11b, and 802.11g operation 93cf8faa80SSam Lefflerwith transmit speeds appropriate to each. 9461f78dd7SAdrian ChaddAR5416 and later class devices are capable of 802.11n operation. 95aa2fce50SSam LefflerMost chips also support an Atheros Turbo Mode (TM) that operates in 961748d1e5SGavin Atkinsonthe 5GHz frequency range with 2x the transmit speeds. 971748d1e5SGavin AtkinsonSome chips also support Turbo mode in the 2.4GHz range with 802.11g 98aa2fce50SSam Lefflerthough this support is not presently available due to regulatory requirements. 99aa2fce50SSam Leffler(Note that Turbo modes are, however, 100aa2fce50SSam Leffleronly interoperable with other Atheros-based devices.) 10161f78dd7SAdrian ChaddAR5212-based and AR5416-based devices also support half- (10MHz) and quarter-width (5MHz) channels. 102cf8faa80SSam LefflerThe actual transmit speed used is dependent on signal quality and the 103702d4fc4SRuslan Ermilov.Dq "rate control" 104702d4fc4SRuslan Ermilovalgorithm employed by the driver. 105cf8faa80SSam LefflerAll chips support WEP encryption. 10661f78dd7SAdrian ChaddAR5212, AR5416 and later parts have hardware support for the 1076fd63a5dSSam LefflerAES-CCM, TKIP, and Michael cryptographic 108014be7fbSSam Leffleroperations required for WPA. 109cf8faa80SSam LefflerTo enable encryption, use 110cf8faa80SSam Leffler.Xr ifconfig 8 111cf8faa80SSam Leffleras shown below. 112cf8faa80SSam Leffler.Pp 113b032f27cSSam LefflerThe driver supports 114b032f27cSSam Leffler.Cm station , 115b032f27cSSam Leffler.Cm adhoc , 116b032f27cSSam Leffler.Cm adhoc-demo , 117b032f27cSSam Leffler.Cm hostap , 11859aa14a9SRui Paulo.Cm mesh , 119b032f27cSSam Leffler.Cm wds , 120b032f27cSSam Lefflerand 121b032f27cSSam Leffler.Cm monitor 122b032f27cSSam Lefflermode operation. 123b032f27cSSam LefflerMultiple 124b032f27cSSam Leffler.Cm hostap 125b032f27cSSam Lefflervirtual interfaces may be configured for simultaneous 12661f78dd7SAdrian Chadduse on cards that use a 5212 or later part. 127b032f27cSSam LefflerWhen multiple interfaces are configured each may have a separate 128b032f27cSSam Lefflermac address that is formed by setting the U/L bits in the mac 129b032f27cSSam Leffleraddress assigned to the underlying device. 130b032f27cSSam LefflerAny number of 131b032f27cSSam Leffler.Cm wds 132b032f27cSSam Lefflervirtual interfaces may be configured together with 133b032f27cSSam Leffler.Cm hostap 134b032f27cSSam Lefflerinterfaces. 135b032f27cSSam LefflerMultiple 136b032f27cSSam Leffler.Cm station 137b032f27cSSam Lefflerinterfaces may be operated together with 138b032f27cSSam Leffler.Cm hostap 139b032f27cSSam Lefflerinterfaces to construct a wireless repeater device. 1406fd63a5dSSam LefflerThe driver also support 1416fd63a5dSSam Leffler.Cm tdma 1426fd63a5dSSam Leffleroperation when compiled with 1436fd63a5dSSam Leffler.Cd "options IEEE80211_SUPPORT_TDMA" 144930034efSSam Leffler(which also enables the required 802.11 support). 145cf8faa80SSam LefflerFor more information on configuring this device, see 146cf8faa80SSam Leffler.Xr ifconfig 8 . 147cf8faa80SSam Leffler.Pp 148cf8faa80SSam LefflerDevices supported by the 149cf8faa80SSam Leffler.Nm 150*70c8948aSAdrian Chadddriver come in Cardbus, ExpressCard, Mini-PCI and Mini-PCIe packages. 151*70c8948aSAdrian ChaddWireless cards in Cardbus and ExpressCard slots may be inserted and 152*70c8948aSAdrian Chaddejected on the fly. 15371d4b49aSSimon L. B. Nielsen.Sh HARDWARE 154ab7350b7SGiorgos KeramidasThe 155ab7350b7SGiorgos Keramidas.Nm 156*70c8948aSAdrian Chadddriver supports all Atheros Cardbus, ExpressCard, PCI and PCIe cards, 157ab7350b7SGiorgos Keramidasexcept those that are based on the AR5005VL chipset. 158cf8faa80SSam Leffler.Sh EXAMPLES 159cf8faa80SSam LefflerJoin a specific BSS network with WEP encryption: 160cf8faa80SSam Leffler.Bd -literal -offset indent 161b032f27cSSam Lefflerifconfig wlan0 create wlandev ath0 162b032f27cSSam Lefflerifconfig wlan0 inet 192.168.0.20 netmask 0xffffff00 ssid my_net \e 163cf8faa80SSam Leffler wepmode on wepkey 0x8736639624 164cf8faa80SSam Leffler.Ed 165cf8faa80SSam Leffler.Pp 166cf8faa80SSam LefflerJoin/create an 802.11b IBSS network with network name 167cf8faa80SSam Leffler.Dq Li my_net : 168cf8faa80SSam Leffler.Bd -literal -offset indent 169b032f27cSSam Lefflerifconfig wlan0 create wlandev ath0 wlanmode adhoc 170b032f27cSSam Lefflerifconfig wlan0 inet 192.168.0.22 netmask 0xffffff00 ssid my_net \e 171b032f27cSSam Leffler mode 11b 172cf8faa80SSam Leffler.Ed 173cf8faa80SSam Leffler.Pp 174cf8faa80SSam LefflerCreate an 802.11g host-based access point: 175cf8faa80SSam Leffler.Bd -literal -offset indent 176b032f27cSSam Lefflerifconfig wlan0 create wlandev ath0 wlanmode hostap 177b032f27cSSam Lefflerifconfig wlan0 inet 192.168.0.10 netmask 0xffffff00 ssid my_ap \e 178b032f27cSSam Leffler mode 11g 179cf8faa80SSam Leffler.Ed 180cf8faa80SSam Leffler.Pp 18159aa14a9SRui PauloCreate an 802.11a mesh station: 18259aa14a9SRui Paulo.Bd -literal -offset indent 18359aa14a9SRui Pauloifconfig wlan0 create wlandev ath0 wlanmode mesh 18459aa14a9SRui Pauloifconfig wlan0 meshid my_mesh mode 11a inet 192.168.0.10/24 18559aa14a9SRui Paulo.Ed 18659aa14a9SRui Paulo.Pp 187b032f27cSSam LefflerCreate two virtual 802.11a host-based access points, one with 18850d922a0SGlen BarberWEP enabled and one with no security, and bridge them to 189b032f27cSSam Lefflerthe fxp0 (wired) device: 190cf8faa80SSam Leffler.Bd -literal -offset indent 191b032f27cSSam Lefflerifconfig wlan0 create wlandev ath0 wlanmode hostap \e 192b032f27cSSam Leffler ssid paying-customers wepmode on wepkey 0x1234567890 \e 193b032f27cSSam Leffler mode 11a up 194b032f27cSSam Lefflerifconfig wlan1 create wlandev ath0 wlanmode hostap bssid \e 195b032f27cSSam Leffler ssid freeloaders up 196b032f27cSSam Lefflerifconfig bridge0 create addm wlan0 addm wlan1 addm fxp0 up 197cf8faa80SSam Leffler.Ed 1986fd63a5dSSam Leffler.Pp 1996fd63a5dSSam LefflerCreate a master node in a two slot TDMA BSS configured to use 2006fd63a5dSSam Leffler2.5 millisecond slots. 2016fd63a5dSSam Leffler.Bd -literal -offset indent 2026fd63a5dSSam Lefflerifconfig wlan0 create wlandev ath0 wlanmode tdma \e 2036fd63a5dSSam Leffler ssid tdma-test tmdaslot 0 tdmaslotlen 2500 \e 2046fd63a5dSSam Leffler channel 36 up 2056fd63a5dSSam Leffler.Ed 206cf8faa80SSam Leffler.Sh DIAGNOSTICS 207cf8faa80SSam Leffler.Bl -diag 208cf8faa80SSam Leffler.It "ath%d: unable to attach hardware; HAL status %u" 209cf8faa80SSam LefflerThe Atheros Hardware Access Layer was unable to configure the hardware 210cf8faa80SSam Leffleras requested. 211cf8faa80SSam LefflerThe status code is explained in the HAL include file 2126cbaa952SMaxim Konovalov.Pa sys/dev/ath/ath_hal/ah.h . 213cf8faa80SSam Leffler.It "ath%d: failed to allocate descriptors: %d" 214cf8faa80SSam LefflerThe driver was unable to allocate contiguous memory for the transmit 21559ddccc6SChristian Bruefferand receive descriptors. 216cf8faa80SSam LefflerThis usually indicates system memory is scarce and/or fragmented. 217cf8faa80SSam Leffler.It "ath%d: unable to setup a data xmit queue!" 218cf8faa80SSam LefflerThe request to the HAL to set up the transmit queue for normal 219cf8faa80SSam Lefflerdata frames failed. 220cf8faa80SSam LefflerThis should not happen. 221cf8faa80SSam Leffler.It "ath%d: unable to setup a beacon xmit queue!" 222cf8faa80SSam LefflerThe request to the HAL to set up the transmit queue for 802.11 beacon frames 22350d922a0SGlen Barberfailed. 224cf8faa80SSam LefflerThis should not happen. 225cf8faa80SSam Leffler.It "ath%d: 802.11 address: %s" 226cf8faa80SSam LefflerThe MAC address programmed in the EEPROM is displayed. 227cf8faa80SSam Leffler.It "ath%d: hardware error; resetting" 228cf8faa80SSam LefflerAn unrecoverable error in the hardware occurred. 229cf8faa80SSam LefflerErrors of this sort include unrecoverable DMA errors. 230cf8faa80SSam LefflerThe driver will reset the hardware and continue. 231cf8faa80SSam Leffler.It "ath%d: rx FIFO overrun; resetting" 232cf8faa80SSam LefflerThe receive FIFO in the hardware overflowed before the data could be 233cf8faa80SSam Lefflertransferred to the host. 234cf8faa80SSam LefflerThis typically occurs because the hardware ran short of receive 235cf8faa80SSam Lefflerdescriptors and had no place to transfer received data. 236cf8faa80SSam LefflerThe driver will reset the hardware and continue. 237cf8faa80SSam Leffler.It "ath%d: unable to reset hardware; hal status %u" 238cf8faa80SSam LefflerThe Atheros Hardware Access Layer was unable to reset the hardware 239cf8faa80SSam Leffleras requested. 240cf8faa80SSam LefflerThe status code is explained in the HAL include file 2416cbaa952SMaxim Konovalov.Pa sys/dev/ath/ath_hal/ah.h . 242cf8faa80SSam LefflerThis should not happen. 243cf8faa80SSam Leffler.It "ath%d: unable to start recv logic" 244cf8faa80SSam LefflerThe driver was unable to restart frame reception. 245cf8faa80SSam LefflerThis should not happen. 246cf8faa80SSam Leffler.It "ath%d: device timeout" 247cf8faa80SSam LefflerA frame dispatched to the hardware for transmission did not complete in time. 248cf8faa80SSam LefflerThe driver will reset the hardware and continue. 249d562e82bSHideyuki KURASHINAThis should not happen. 250cf8faa80SSam Leffler.It "ath%d: bogus xmit rate 0x%x" 251cf8faa80SSam LefflerAn invalid transmit rate was specified for an outgoing frame. 252cf8faa80SSam LefflerThe frame is discarded. 253cf8faa80SSam LefflerThis should not happen. 25479649302SGavin Atkinson.It "ath%d: ath_chan_set: unable to reset channel %u (%u MHz)" 255cf8faa80SSam LefflerThe Atheros Hardware Access Layer was unable to reset the hardware 256cf8faa80SSam Lefflerwhen switching channels during scanning. 257cf8faa80SSam LefflerThis should not happen. 258cf8faa80SSam Leffler.It "ath%d: failed to enable memory mapping" 259cf8faa80SSam LefflerThe driver was unable to enable memory-mapped I/O to the PCI device registers. 260cf8faa80SSam LefflerThis should not happen. 261cf8faa80SSam Leffler.It "ath%d: failed to enable bus mastering" 262cf8faa80SSam LefflerThe driver was unable to enable the device as a PCI bus master for doing DMA. 263cf8faa80SSam LefflerThis should not happen. 264cf8faa80SSam Leffler.It "ath%d: cannot map register space" 265cf8faa80SSam LefflerThe driver was unable to map the device registers into the host address space. 266cf8faa80SSam LefflerThis should not happen. 267cf8faa80SSam Leffler.It "ath%d: could not map interrupt" 268cf8faa80SSam LefflerThe driver was unable to allocate an IRQ for the device interrupt. 269cf8faa80SSam LefflerThis should not happen. 270cf8faa80SSam Leffler.It "ath%d: could not establish interrupt" 271cf8faa80SSam LefflerThe driver was unable to install the device interrupt handler. 272cf8faa80SSam LefflerThis should not happen. 273cf8faa80SSam Leffler.El 274cf8faa80SSam Leffler.Sh SEE ALSO 275cf8faa80SSam Leffler.Xr ath_hal 4 , 276b032f27cSSam Leffler.Xr cardbus 4 , 277ca23ba6eSChristian Brueffer.Xr intro 4 , 278cf8faa80SSam Leffler.Xr pcic 4 , 279cf8faa80SSam Leffler.Xr wlan 4 , 280b032f27cSSam Leffler.Xr wlan_ccmp 4 , 281b032f27cSSam Leffler.Xr wlan_tkip 4 , 282b032f27cSSam Leffler.Xr wlan_wep 4 , 283b032f27cSSam Leffler.Xr wlan_xauth 4 , 284b032f27cSSam Leffler.Xr hostapd 8 , 285cf8faa80SSam Leffler.Xr ifconfig 8 , 286ca23ba6eSChristian Brueffer.Xr wpa_supplicant 8 287cf8faa80SSam Leffler.Sh HISTORY 288cf8faa80SSam LefflerThe 289cf8faa80SSam Leffler.Nm 290cf8faa80SSam Lefflerdevice driver first appeared in 291cf8faa80SSam Leffler.Fx 5.2 . 292cf8faa80SSam Leffler.Sh CAVEATS 293c6316a61SStefan EßerRevision A1 of the D-LINK DWL-G520 and DWL-G650 are based on an 294c6316a61SStefan EßerIntersil PrismGT chip and are not supported by this driver. 295cf8faa80SSam Leffler.Sh BUGS 296*70c8948aSAdrian ChaddThe driver does supports optional station mode power-save operation. 297aa2fce50SSam Leffler.Pp 29861f78dd7SAdrian ChaddThe AR5210 can only do WEP in hardware; consequently hardware assisted WEP 29961f78dd7SAdrian Chaddis disabled in order to allow software implementations of TKIP and CCMP to 30061f78dd7SAdrian Chaddfunction. 30161f78dd7SAdrian ChaddHardware WEP can be re-enabled by modifying the driver. 302