Microcode
uCode Revision 297 and newer use a different txheader!
802.11 Core Version
File Name
Notes
30
ucode30_mimo
Only for N PHY
29
ucode29_mimo
only for HT PHY
28,25
ucode25_mimo
Only for N PHY
28,25
ucode25_lcn
Only for LCN PHY
27, 22, 20
ucode20_sslpn
Only for SSLPN PHY
26
ucode26_mimo
Only for HT PHY
24
ucode24_lcn
Only for LCN PHY
24
ucode24_mimo
Only for N PHY
23
ucode16_mimo
Only for N PHY
21
ucode21_sslpn
Only for SSLP N
19, 18, 17, 16
ucode16_lp
For LP PHY
19, 18, 17, 16
ucode16_sslpn
For SSLPN PHY
19, 18, 17, 16
ucode16_mimo
For N PHY
15
ucode15 (1)
14
ucode14
13
ucode13 (1)
11-12
ucode11 (1)
9
ucode9 (2)
5-8
ucode5
4
ucode4
(1) Value for standard 3-wire configuration. (2) Only used for multiple-BSS (mBSS) devices.
PCM Microcode
802.11 Core Version
File Name
4
pcm4
5-11
pcm5
Initial Values
802.11 Core Version
File Name
Special
30
n16initvals30
Only for N PHY
29
ht0initvals29
Only for HT PHY
28, 25
n0initvals25
Only for N and LCN PHYs
24
n0initvals24
Only for N and LCN PHYs
23, 20, 19, 18, 17, 16
n0initvals16
Only for N PHY
27, 22, 21
sslpn3initvals21
Only for SSLP N PHY
20, 19, 18, 17, 16
sslpn0initvals16
Only for SSLP N PHY
20, 19, 18, 17, 16
lp0initvals16
LP PHY
15
lp0initvals15
LP PHY
14
lp0initvals14
LP PHY
13
lp0initvals13
LP PHY
13
b0g0initvals13
G PHY
13
a0g1initvals13
A PHY with 2.4 GHz avail.
11-12
n0initvals11
N PHY only
9
a0g1initvals9
A PHY with mBSS and 2.4 GHz avail
9
a0g0initvals9
A PHY with mBSS - no 2.4 GHz
9
b0g0initvals9
not A PHY, but with mBSS
5-8
a0g1initvals5
A PHY with 2.4 GHz avail
5-8
a0g0initvals5
A PHY without 2.4 GHz avail
5-5
b0g0initvals5
not A PHY
4
a0g0initvals4
A PHY
4
b0g0initvals4
not A PHY
Band Switch Initial Values
802.11 Core Version
File Name
Special
30
????
29
????
28, 25
????
27, 23, 22
n0bsinitvals22
N PHY
24
n0bsinitvals24
N PHY
>= 21
sslpn3initvals21
error if not SSLP N PHY
>= 16
n0bsinitvals16
N PHY
>= 16
lp0initvals16
LP PHY
15
lp0initvals15
error if not LP PHY
14
lp0initvals14
error if not LP PHY
13
lp0initvals13
LP PHY
13
b0g0initvals13
G PHY
13
a0g1initvals13
A PHY with 2.4 GHz avail.
11-12
n0initvals11
N PHY only
9
a0g1initvals9
A PHY with mBSS and 2.4 GHz avail
9
a0g0initvals9
A PHY with mBSS - no 2.4 GHz
9
b0g0initvals9
not A PHY, but with mBSS
5-8
a0g1initvals5
A PHY with 2.4 GHz avail
5-8
a0g0initvals5
A PHY without 2.4 GHz avail
5-5
b0g0initvals5
not A PHY
4
a0g0initvals4
A PHY
4
b0g0initvals4
not A PHY
TX FIFO Size
Core revision
Size
11
9, 58, 22, 14, 14, 5
12
9, 58, 22, 14, 14, 5
13
10, 14, 11, 9, 14, 5
14
10, 14, 11, 9, 14, 2
15
10, 14, 11, 9, 14, 2
16
9, 58, 22, 14, 14, 5
Firmware Fixup
In some special instances that are not understand, the TX FIFO sizes supported by the hardware are different (larger?) than used by the microcode. In those instances, the following routine is needed.
- If the 802.11 core revision is greater or equal 15 and mBSS is implemented
- The FIFO start block is 65
- Otherwise
- The FIFO start block is 6
- Loop through all 6 FIFOs (0-5)
- Calculate the FIFO End Block = Start Block + TX FIFO size for this FIFO
- Calculate FIFO mask as (Start Block) | ((End Block - 1) left shifted by 8)
Generate FIFO command as (1 << 15) | (loop number) << 8
- Write command to MIMO register 0x540
- Write mask to MIMO register 0x520
- Write command MIMO to register 0x540
- Copy the End Block to the Start Block
- Left shift the size of TX FIFO 1 by 8 and bitwise mask it with the size of TX FIFO 0
- Write the value to SHM Location 0x98
- Left shift the size of TX FIFO 3 by 8 and bitwise mask it with the size of TX FIFO 2
- Write the value to SHM Location 0x9A
- Left shift the size of TX FIFO 5 by 8 and bitwise mask it with the size of TX FIFO 4
- Write the value to SHM Location 0x9C
- Write 0 to SHM Location 0x9E