Add WIP support for Broadcom wireless chips:
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 8 Sep 2007 06:15:54 +0000 (06:15 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 8 Sep 2007 06:15:54 +0000 (06:15 +0000)
commit5f9672cda1ba77961e7706f0454685670dd6acff
tree39e22dd841ab1546be9586ab4e8d6221fa97abbe
parent4fdd8de151fbb55dc135720b88f406e0bc1bc8ba
Add WIP support for Broadcom wireless chips:
- STA and MONITOR operation mode are supported
- WPA/WPA2 is supported (host based)
- Use V3 firmware
- 11b/g mode is supported

TODOs (AKA defects ;)
- Add the missing part of PCIe initialization (need testers)
- Hook TX rate control support in our 802.11 layer
- HOSTAP and IBSS operation mode support
- Add radio tap support
- Use V4 firmware for newer chips
- Use firmware based crypto for V4 firmware
- V3 and V4 firmware coexist
- Make LED blink
- Make my 11b only card work :]
- Correctly configure CW and MAC level acknowledge rates based on the
  characteristic of the BSS/IBSS that we are going to join
And blah, blah, blah ...

Known to work devices, i.e. tested devices:
o  BCM4318 (Linksys WPC54G ver.3, cardbus)
   BBP: id 0x4318, rev 0x2, pkg 2
   MAC: rev 9
   PHY: type 2, rev 7, ver 3
   RF: BCM2050, rev 8
o  BCM4306 (Buffalo WLI2-PCI-G54S, PCI)
   BBP: id 0x4306, rev 0x3, pkg 0
   MAC: rev 5
   PHY: type 2, rev 2, ver 2
   RF: BCM2050, rev 2
o  BCM4319 (unknown vendor, mini-PCI)
   BBP: id 0x4318, rev 0x2, pkg 2
   MAC: rev 9
   PHY: type 2, rev 7, ver 3
   RF: BCM2050, rev 8
o  BCM4309 (unknown vendor, mini-PCI)
   BBP: id 0x4306, rev 0x3, pkg 1
   MAC: rev 5
   PHY: type 2, rev 2, ver 2
   RF: BCM2050, rev 2

TX performance of above devices at different OFDM rates (unit Mbits/s):
OFDM rate  54    48    36    24    18    12   9       6
TX perf    23.x  21.x  18.x  14.x  11.x  8.x  4.x(1)  6.x(2)

(1) BCM4319/BCM4306 listed above can only do 2.xMbits/s at 9Mbits/s
(2) BCM4319 listed above has unstable TX performance, 4.x-6.xMbits/s,
    at 6Mbits/s
(3) There is a bug(to be found) in driver which reverses 9Mbits/s and 6Mbits/s

Thank folks at bcm-specs.sipsolutions.net for their reverse engineering work.
Thank johill and mb on #bcm-specs IRC channel for answering my questions.

#
# Following devices are also known to work, but have poor TX performance.
# They have same characteristic that MAC rev is less than 5.
# o  BCM4306 (Dell TrueMobile 1300 rev A01, cardbus)
#    BBP: id 0x4306, rev 0x2, pkg 0
#    MAC: rev 4
#    PHY: type 2, rev 1, ver 1
#    RF: BCM2050, rev 2
# o  BCM4306 (unknown vendor, mini-PCI)
#    BBP: id 0x4306, rev 0x2, pkg 0
#    MAC: rev 4
#    PHY: type 2, rev 1, ver 1
#    RF: BCM2050, rev 2
#
# Certain 11b only cards may work depending on the PHY rev
#
sys/dev/netif/bwi/Makefile [new file with mode: 0644]
sys/dev/netif/bwi/bitops.h [new file with mode: 0644]
sys/dev/netif/bwi/bwimac.c [new file with mode: 0644]
sys/dev/netif/bwi/bwimac.h [new file with mode: 0644]
sys/dev/netif/bwi/bwiphy.c [new file with mode: 0644]
sys/dev/netif/bwi/bwiphy.h [new file with mode: 0644]
sys/dev/netif/bwi/bwirf.c [new file with mode: 0644]
sys/dev/netif/bwi/bwirf.h [new file with mode: 0644]
sys/dev/netif/bwi/if_bwi.c [new file with mode: 0644]
sys/dev/netif/bwi/if_bwireg.h [new file with mode: 0644]
sys/dev/netif/bwi/if_bwivar.h [new file with mode: 0644]