7937397e81
o define HAL_SOFTC, HAL_BUS_TAG, and HAL_BUS_HANDLE to be machine independent; this fixes portability issues with bsd systems o add ah_disable api for turning off operation of both MAC and PHY o add ah_getAntennaSwitch and ah_setAntennaSwitch api's for better control of antenna usage and diversity o add ah_setAckCTSRate and ah_setAckCTSRate for controlling tx rate of h/w generated frames o add ah_setBeaconTimers api for simpler setting of the beacon timer registers o remove ah_waitForBeaconDone api o add HAL_TXDESC_DURENA flag to enable h/w duration setting in tx descriptor o correct documentation of min/max tx power units (.5 dBm) o switch arm, mips, and powerpc builds to use functions for register read/write operations o fix sparc builds to not reference %g2 and %g3 registers o add public builds for SoC's MFC after: 1 month
74 lines
3.0 KiB
Plaintext
74 lines
3.0 KiB
Plaintext
$Id: //depot/sw/branches/sam_hal/README#2 $
|
|
|
|
|
|
Atheros Hardware Access Layer (HAL)
|
|
===================================
|
|
|
|
* Copyright (c) 2002-2006 Sam Leffler.
|
|
* Copyright (c) 2002-2006 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).
|