bwn(4) - broadcom softmac driver
Introduction
This is the broadcom softmac driver. The aim is to support the BCM43xx chipsets which use the v4 firmware. The earlier BCM43xx chipsets (BCM4301, BCM4303, BCM4306) have less RAM and need to use the bwi(4) driver with the v3 firmware.
Supported chipsets
- BCM4309
- BCM4311
- BCM4312
- BCM4318
- BCM4319
- BCM4321
- BCM4322
Supported PHYs
- PHY-G (2.4GHz only)
- PHY-LP (2.4GHz only)
- PHY-N (GPL) (2.4GHz, 5GHz, 11abg, no 11n)
Supported firmware APIs
- 3xx (bwi era firmware)
- 4xx
- 5xx
- 6xx
Chipset / firmware documentation
There was a very large reverse engineering effort a few years ago by the linux development community.
Updating work
A lot of new code needs to be reimplemented from the linux b43 driver to avoid GPL issues.
The rough order of things so far is:
- SSB/BCMA bus code - look in B43 for CONFIG_B43_BCMA/B43_BUS_BCMA and CONFIG_B43_SSB/B43_BUS_SSB. The bwn(4) driver assumes SSB right now and isn't ready for the BCMA chipsets - so all of the bus specific bits to flip on and off cores + clocks needs to get ported.
- (Make a list of those - there's MAC and PHY things that need porting)
- Port/reimplement A-PHY from b43, for older chipsets
Completed work
- PHY-N has been ported (GPLv2)
- v5 firmware support
- OFDM/CCK transmit for PHY-LP and PHY-N
- 11a 5GHz transmit
Patents/documents
2003 era 11abg MAC/PHY/radio diagrams: http://www.yc-dz.com/productimages/1234351229.pdf
TODO
- TODO. yeah, I know.