Availability
Core revision > 4
QoS init
- enable the EDCF hostflag
set the Use EDCF (0x4) bit in the IFS control register
- set the QoS parameters
QoS parameters
should always be set with MAC suspended
The chipset supports at most four access categories.
The EDCF Q Info array in SHM contains four structs of 16 16-bit words, each containing:
offset (words) |
contents |
value |
0x00 |
TXOP |
TXOP in microseconds (not 32-usec periods!) |
0x01 |
CW_min |
2^(ECW_min)-1 (must be a contiguous bit mask with bit 0 set) |
0x02 |
CW_max |
2^(ECW_max)-1 (must be a contiguous bit mask with bit 0 set) |
0x03 |
CW_cur |
set to CW_min |
0x04 |
AIFS |
nothing special, just use required AIFS value |
0x05 |
bslots |
random value from [0, CW_cur] |
0x06 |
reggap |
bslots + AIFS |
0x07 |
status |
(see below) |
0x08 - 0x0F |
reserved |
zero |
The struct number to use is:
category |
info struct number / FIFO number |
background (1) |
0 |
best effort (0) |
1 |
video (2) |
2 |
voice (3) |
3 |
When changing any of the structs, overwrite all values except for the status, OR the status with 0x100 to indicate to the microcode that the struct was updated.
FIFOs
The hardware maintains up to 6 FIFOs, used as follows:
Number |
Use (transmit) |
Use (receive) |
0 |
Background |
Incoming frames |
1 |
Best Effort |
- |
2 |
Video |
- |
3 |
Voice |
TX status (only some core revisions) |
4 |
Broadcast/Multicast |
- |
5 |
ATIM window info |
- |