Atheros turbo hack

Some Atheros cards come with turbo modes (108mbit/s transfer rate by doubling of channels) disabled, although the cards are physically capable of using them. This page details how to turn them on for some cards.

The information on this page is outdated. It is from the time when atheros AR5xxx wifi cards were standard and they mostly ran on MADWIFI drivers with closed source HAL. It can be possibly done in a much simpler way with the new open source ath5k drivers. If the text below is unintelligible, you probably don't want to do any modifications lest you run the risk of bricking your card.

First of all, you need to get drivers from the ath-driver project to work. If these don't work (and they may not!), trying this unnecessarily dangerous, as any slip will render your card useless, as Madwifi closed HAL won't load and you won't be able to access the EEPROM to repair the damage.

Download [1], or find another ar5k modified to do something similar and modify it to do what you want.

The capability bits, located at 0x00c2 are described in eeprom.c of ath-driver. You need to set the "Disable turbo A" and "Disable turbo G" bits to 0. Doing this straight away will however violate checksum for EEPROM, which is done XORing subsequent 2-bytes. They should XOR up to 0xffff. Therefore, if you modify these two bits, you need to add 0x8008 (or whatever orig^new^0xffff gives) somewhere where the EEPROM is not used, or find out the bits which are actually used for this. For example bytes around 0x00cc seem to be empty (but may not be with your card! Check it!). mod2.c contains two commented-out parts. The first can be used for the actual rewriting, the second to dump the relevant parts of EEPROM, which are 0x00c0 to 0x00c0+832. If anything bad happens, source code for the ath-driver can be of great help.

Note: On some IBM Wireless LAN Mini PCI Adapters (e.g. FRU 39T0081) the EEPROM is write protected. There is now known way (to me) to alter the bits (neither with wbemtest nor with linux)