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 _______________________________________________ freebsd-wireless@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-wireless To unsubscribe, send any mail to "freebsd-wireless-unsubscr...@freebsd.org"