Broadcom 802.11n support in b43

I've started hacking on b43 about a year ago when I got my [del]BCM4328[/del] BCM4321 as Christmas gift. Unfortunately after few months of programming I've lost access to notebook where I put this card and couln't develop b43 anymore. That way you didn't see any N-PHY b43 commits until... Francesco Gringoli appeared and offered me ssh access to machine with his [del]BCM4328[/del] BCM4321 :)



Today, after a lot of fixes and improvements I finally found the last issue that stopped card from receiving! It appeared we were missing single N-PHY-specific bit in common path in b43. After fixing that I finally saw scanning results and Francesco succesfully tested associating to open network!



Please note, all this work was only possible thanks to Larry Finger who created great specifications as result of his reverse engineering efforts!

So what is the current state?

- You need to clone wireless-testing git tree (and apply my patchset locally until John get it)

- Firmware can be extracted with b43-fwcutter 0.13 from 4.174.64.19

- It works with BCM4328, should work with any N-PHY with PHY revision below 3

- We support only SSB-based devices, for SSB-less devices there is brcm80211 driver



What do we still need?

- Check for WEP, WPA

- RX and TX calibration

- Support for 40 MHz wide channels

- Support for 5 GHz channels

- Support for PHYs rev3+

- Check for differences between b43 and wl

- Release MMIO tools

- In long term support for SSB-less devices maybe (brcm80211 does it)



It would be great if someone could donate me with card that has PHY revision 3 or higher. It's hard to find such a card in shop, as you generally can not check for PHY revision. In case you own some Broadcom 802.11n card, you can enable kernel debugging and check for revision in dmesg:

b43-phyX debug: Found PHY: Analog 5, Type 4, Revision 2