This may only be valid for chipsets with a single 802.11 core, so the combined 802.11a/b/g chipsets may not work properly.
- The saved Interrupts mask is set to 0xB007A864
Attach to the BackPlane
PowerControl Init
PowerControl set clock to fast
- If the Board Type (from SPROM) is 0x4324, 0x4319 or 0x4312
- There are two wireless cores
- Otherwise,
- There is only one
- If just one core is supported and the PCI product ID is not 0x4301:
SetPHY and connect the PHY if the PCI product ID is 0x4320 or 0x4325, disconnect otherwise
- Abort and roll back if that fails
- Loop over all 802.11 cores
80211CoreReset, requesting the PHY to be connected on and only on the first loop iteration (corresponding to the first core)
If ValidateChipAccess isn't successful, abort and roll back our initialization
- Refuse to attach to chips without valid PHY revisions, valid revisions are:
- A PHYs with revision 2, 3, 5, 6 or 7
- B PHYs with revision 2, 4 or 7
- G PHYs with revision 1, 2, 4, 6, 7 or 8
- Refuse to attach to chips without valid Radio versions, valid versions are:
- A PHYs with a 2060 radio
- B PHYs with a 205x radio
- G PHYs with a 2050 radio
- Switch the radio off
Fetch the antenna gain from the SPROM, if it is unset assume 2
- Multiply the antenna gain by 4
- Loop 3 times from 0 to 2
Retrieve the paXbY variables from the SPROM where X is 0 for A PHYs and 1 for B/G PHYs and Y is the loop position
- Retrieve the idle tssi target
Init the MicrocodeFlagsBitfield field value
Generate the TSSI to DBM Table with the paXbY values and the idle tssi target value
If we have >= 2 802.11 cores, use this core
PowerControl Crystal Off
Set the MAC address from the correct SPROM variable.
Setup the LEDs
Note, this is still missing a lot of initial values, we'll add them as they become needed.