The microcode flags bitfield is a 32 bit value in the SHM. It consists of the two 16 bit values at 0x5E (bits 0 - 15) and 0x60 (bits 16 - 31).
Bitfield
Mask |
Function |
0x00000001 |
AntennaDiversity set to Automatic |
0x00000002 |
Turned on during init for non N phys |
0x00000004 |
Turned on during chip initialisation if we have a B phy |
0x00000010 |
Unknown |
0x00000020 |
Turned on for revision 1 G phys, turned off for revision>=2 B phys with a 2050 radio |
0x00000040 |
Turned on for G phys if BoardFlags have BFL_PACTRL |
0x00000080 |
May be changed during channel switching: turn off if country is Japan and current channel is 14, turn on if country is not Japan. No clue what that means, can someone enlighten us about the Japanese specialties? |
0x00000200 |
Unknown |
0x00000400 |
Turned on if BFL_XTAL is set |
0x00000800 |
Enabled and disabled by ACI on older chipsets |
0x00002000 |
APHY Radar Detection Enabled/Disabled |
0x00008000 |
Afterburner Enabled/Disabled |
0x00040000 |
Turned on for 0x2050 radio with radio version 5 or less |
0x00080000 |
Enabled for PCI Buses with revision 10 or less |
0x00100000 |
Enable MAC Beacon Promiscuity |
0x00400000 |
MAC Promiscuity |
0x01000000 |
MAC Promiscuity |
0x40000000 |
Enable hardware frame decryption |
Init
When attaching to the board, the contents of the microcode bitfield is defined as below, start with no bits set
- If the PHY Type is an A PHY, a B PHY or a G PHY
- Set bit 2
- If this is a G PHY with PHY Revision 1
- Set bit 0x20
If this is a G PHY with BoardFlags BFL_PACTRL set
- Set bit 0x40
If this is a G PHY with PHY Revision < 3
- Set bit 8
If BoardFlags BFL_XTAL is set
- Set bit 0x400
- If this is a B PHY
- Set bit 0x4
- If this is a 0x2050 radio with radio version 5 or less
- Set bit 0x40000
- If the device isn't up and this is a PCI bus with revision 10 or less
- Set bit 0x80000