Regarding Chipset selection By the driver

malepati vishnuvardhan malepativishnuvardhan1997 at gmail.com
Fri Dec 6 10:20:00 UTC 2019


Hi,
Thanks a lot for the information.



On Fri, Dec 6, 2019 at 2:01 PM Adrian Chadd <adrian.chadd at gmail.com> wrote:

> Hi!
>
> I've documented the layout in the wiki:
>
> wiki.freebsd.org/dev/ath(4) and wiki.freebsd.org/dev/ath_hal(4) . You
> should start there.
>
> The HAL code is a bit twisty:
>
> * the driver - if_ath_*[ch] is common for everything;
> * the if_ath_pci.c code detects the NIC and creates the if_ath context
> and sets up the driver;
> * the ar9287 related bits are in sys/dev/ath/ath_hal/ar9002/ar9287_*.[ch]
> * I think it also uses a bit of code in the ar9280_.*[ch] and the RF
> frontend in that directory
> * the bulk of the MAC support is the same as the other 11n chips, and
> that's in sys/dev/ath/ath_hal/ar5416/ ; and
> * to save code duplication, the ar5416 HAL actually uses the code in
> sys/dev/ath/ath_hal/ar5212/ where the chipset support is the same.
>
> The reasons are!
>
> * The AR5416 is the first 11n chipset by atheros, and although the
> radio and chunks of the MAC are different (to do 11n!), the queue and
> airtime management parts of the MAC are the same as as the AR5212. So
> to save on code duplication, the original contributor called the
> AR5212 routines from the AR5416 HAL where the hardware was the same;
> * The AR9287 is an evolution of the AR9280 NIC, albeit 2G only with
> some specific extensions which we don't support.
>
> I hope that helps!
>
>
>
> -adrian
>


More information about the freebsd-wireless mailing list