madwifi/ath_hal
Pavel Roskin 19e85c5f13 Don't rely on typedef for struct ctl_table, it's going away 2014-06-17 11:52:02 -04:00
..
ar5210 Fix mismatching prototypes in HAL 2009-08-05 17:48:41 +00:00
ar5211 Fix typos found by codespell 2011-08-26 15:31:01 +00:00
ar5212 Fix typos found by codespell 2011-08-26 15:31:01 +00:00
ar5312 Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ar5416 Fix typos found by codespell 2011-08-26 15:31:01 +00:00
COPYRIGHT Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
Makefile Remove support for Linux kernels older than 2.6.13 2013-11-12 11:46:06 -05:00
Makefile.kernel Remove support for Linux kernels older than 2.6.13 2013-11-12 11:46:06 -05:00
README Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah.c Fix typos found by codespell 2011-08-26 15:31:01 +00:00
ah.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_debug.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_decode.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_desc.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_devid.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_eeprom.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_eeprom_v1.c Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_eeprom_v1.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_eeprom_v3.c Fix all instances of unused variables reported by gcc 4.6.0. 2011-05-03 21:56:02 +00:00
ah_eeprom_v3.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_eeprom_v14.c Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_eeprom_v14.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
ah_internal.h Port ah_writeIni and ar5416SpurMitigate from FreeBSD HAL 2010-01-13 06:48:05 +00:00
ah_os.c Don't rely on typedef for struct ctl_table, it's going away 2014-06-17 11:52:02 -04:00
ah_os.h Remove all references to _trace_regop() and MMIOTRACE 2009-05-07 21:11:03 +00:00
ah_osdep.h Remove support for Linux kernels older than 2.6.13 2013-11-12 11:46:06 -05:00
ah_regdomain.c Fix typos found by codespell 2011-08-26 15:31:01 +00:00
ah_soc.h Merge madwifi-free branch into the trunk 2009-04-07 01:26:53 +00:00
opt_ah.h Add support for AR9280 from FreeBSD HAL 2010-01-13 06:50:17 +00:00

README

$Id: //depot/sw/branches/sam_hal/README#3 $


Atheros Hardware Access Layer (HAL)
===================================

* Copyright (c) 2002-2008 Sam Leffler.
* Copyright (c) 2002-2008 Atheros Communications, Inc.
* All rights reserved.

Read the file COPYRIGHT for the complete copyright.

This code manages much of the chip-specific operation of the Atheros
driver.  The HAL is provided in a binary-only form in order to
comply with local regulatory agency rules.  In the United States
the FCC requires that a radio transmitter only be operated at power
levels and on frequency channels for which it is approved.  The FCC
requires that a software-defined radio cannot be configured by a
user to operate outside the approved power levels and frequency
channels.  This makes it difficult to open-source code that enforces
limits on the power levels, frequency channels and other parameters
of the radio transmitter.  See

http://ftp.fcc.gov/Bureaus/Engineering_Technology/Orders/2001/fcc01264.pdf

for the specific FCC regulation.  Because the module is provided
in a binary-only form it is marked "Proprietary" on Linux; this
means when you load it you will see messages that your system is
now "tainted".

If you wish to use this driver on a platform for which an ath_hal
module is not already provided please contact the author.  Note that
this is only necessary for new _architectures_; the HAL is not tied to
any specific version of your operating system.


Atheros Hardware
================
There are many generations of Atheros 802.11 wireless devices that
are typically referred to by their programming model:

5210	supports 11a only
5211	supports both 11a and 11b
5212	supports 11a, 11b, and 11g

These parts have been incorporated in a variety of retail products
including cardbus cards and mini-pci cards.  In addition many laptop
vendors use Atheros mini-pci cards for their builtin wireless
support.

The Atheors PCI vendor id is 0x168c.  The file ah_devid.h lists most
known PCI device id's but is not exhaustive.  Some vendors program
their own vendor and/or device id's to aid in BIOS-locking mini-pci
cards in laptops.

Atheros SoC Hardware
====================
In addition to the cardbus/pci devices Atheros makes System on Chip
(SoC) parts that integrate a MIPS cpu core and one or more MAC and
radio parts.  Binary support for these parts is necessarily built
for the embedded MIPS processor where the code is to be run.

Caveats
=======
The binary hal builds provided here include no floating point and
are operating system-independent.  However due to toolchain
peculiarities the .o files may be wrongly rejected by development
tools.  If that happens it may be possible to patch the file header
so that the native toolchain will accept the files.  In particular
this has been observed for various Linux MIPS installations for the
SoC parts.  If you have issues consult the associated .inc file in
the public directory; it explains exactly how the binary file was
created (e.g. toolchain and compilation options).