bcm-specs

[Specification

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

  1. If the PHY Type is an A PHY, a B PHY or a G PHY
    1. Set bit 2
  2. If this is a G PHY with PHY Revision 1
    1. Set bit 0x20
  3. If this is a G PHY with BoardFlags BFL_PACTRL set

    1. Set bit 0x40
  4. If this is a G PHY with PHY Revision < 3

    1. Set bit 8
  5. If BoardFlags BFL_XTAL is set

    1. Set bit 0x400
  6. If this is a B PHY
    1. Set bit 0x4
  7. If this is a 0x2050 radio with radio version 5 or less
    1. Set bit 0x40000
  8. If the device isn't up and this is a PCI bus with revision 10 or less
    1. Set bit 0x80000

Exported/Archived from the wiki to HTML on 2016-10-27