Add an initial driver for the AR9170 series draft-11n hardware from

Atheros.

Thanks to OpenBSD for providing a driver based on the original
Atheros open source driver circa 2008.  This uses the early, pre-carl9170
atheros provided firmware.

It only supports 11bg at the moment.  I've not tested it with 11a
(and so the TX rate control logic may be slightly wrong!) so if
you do have the dual-band version of this hardware please do let me know.

Tested:

* AR9170, TP-Link WN821N 2GHz.

TODO:

* Hook this up to a non-module build.
This commit is contained in:
Adrian Chadd 2015-09-26 07:08:35 +00:00
parent 4c794fa51a
commit a9fcb51fbb
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=288253
10 changed files with 4210 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,47 @@
Copyright (c) 2008, Atheros Communications, Inc.
All rights reserved.
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
* Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of Atheros Communications, Inc. nor the names of
its suppliers may be used to endorse or promote products derived
from this software without specific prior written permission.
* No reverse engineering, decompilation, or disassembly of this
software is permitted.
Limited patent license. Atheros Communications, Inc. grants a
world-wide, royalty-free, non-exclusive license under patents it
now or hereafter owns or controls to make, have made, use, import,
offer to sell and sell ("Utilize") this software, but solely to
the extent that any such patent is necessary to Utilize the software
alone, or in combination with an operating system licensed under an
approved Open Source license as listed by the Open Source Initiative
at http://opensource.org/licenses. The patent license shall not
apply to any other combinations which include this software. No
hardware per se is licensed hereunder.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The following files are under this license:
otus-init otus-main
These files are needed by otus(4) devices.

Binary file not shown.

3099
sys/dev/otus/if_otus.c Normal file

File diff suppressed because it is too large Load Diff

1025
sys/dev/otus/if_otusreg.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -270,6 +270,8 @@ SUBDIR= \
${_nxge} \
${_opensolaris} \
oce \
otus \
otusfw \
ow \
${_padlock} \
${_padlock_rng} \

10
sys/modules/otus/Makefile Normal file
View File

@ -0,0 +1,10 @@
# $FreeBSD$
.PATH: ${.CURDIR}/../../dev/otus
KMOD = if_otus
SRCS = if_otus.c if_otusreg.h \
bus_if.h device_if.h \
opt_bus.h opt_usb.h usb_if.h usbdevs.h
.include <bsd.kmod.mk>

View File

@ -0,0 +1,5 @@
# $FreeBSD$
SUBDIR=otusfw_init otusfw_main
.include <bsd.subdir.mk>

View File

@ -0,0 +1,11 @@
# $FreeBSD$
KMOD= otusfw_init
FIRMWS= otusfw_init:otusfw_init:1
CLEANFILES= otus_init
otusfw_init: ${.CURDIR}/../../../contrib/dev/otus/otus-init
cp ${.CURDIR}/../../../contrib/dev/otus/otus-init ${.TARGET}
.include <bsd.kmod.mk>

View File

@ -0,0 +1,11 @@
# $FreeBSD$
KMOD= otusfw_main
FIRMWS= otusfw_main:otusfw_main:1
CLEANFILES= otusfw_main
otusfw_main: ${.CURDIR}/../../../contrib/dev/otus/otus-main
cp ${.CURDIR}/../../../contrib/dev/otus/otus-main ${.TARGET}
.include <bsd.kmod.mk>