On 10/4/06, Theo de Raadt <[EMAIL PROTECTED]> wrote:
The Broadcom 802.11 chipsets are the bastards of the industry. They are the most complicated and difficult to program. Broadcom's division is not interested in helping at all. A Linux team has managed to mostly reverse engineer a subset of the functionality and chip versions. That information can be found at: http://bcm-specs.sipsolutions.net/ http://bcm43xx.berlios.de/ Naturally... anyone can read this stuff, learn from it, and then from their knowledge write a BSD licensed driver. There is enough information there to create a driver, at least for some varients of the chips. As I said, it is probably the most complicated chip in the industry, and the specification is harrowing.. but it can be done, since the Linux people managed to produce a driver. Inside the OpenBSD developer community Broadcom wireless is not currently on anyone's plans. Drivers for other chips will be written first. Therefore it would be nice if someone from the outside took on this project.
After reading over the specs repeatedly, spending many nights studying their tangled tales and twisted methods, I have to agree with Theo: It would take an idiot to try writing a driver for these Broadcom chipsets. It would take an idiot to try doing it using only a laptop with a minipci card. #dmesg | grep ^bcw bcw0 at pci3 dev 2 function 0 "Broadcom BCM4318" rev 0x02: irq 10, address 00:14:a5:75:58:df # ifconfig bcw0 bcw0: flags=8a43<UP,BROADCAST,RUNNING,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:14:a5:75:58:df media: IEEE802.11 autoselect status: no network ieee80211: nwid "" 0dBm inet6 fe80::214:a5ff:fe75:58df%bcw0 prefixlen 64 scopeid 0x1 I have become that idiot. Experienced developers will observe that making a network card do the above is pretty simple, the hard part is making bits fly around the air. And I've been using this as a hobby to fill my time for the last few evenings, learning a lot about the kernel and network drivers. I'm not going to make any promises that this will eventually do anything more than occupy space on my hard drive. That said, I have a couple questions that I hope can be answered. 1. How are device driver names chosen? Was "bcw" a good choice? 2. Do these Broadcom chipsets exist on PCI cards? I've only found miniPCI ones, and that has led me to consider purchasing one of the miniPCI to PCI bridge cards and grabbing a few cheap OEM cards off ebay to get at least a couple different ones.
Good luck!
I sure need that. I spent many days in my youth doing hardware bit bashing in assembly with less detailed docs than the ones at http://bcm-specs.sipsolutions.net, and it's been rather enjoyable so far. Thanks for the challenge, and for OpenBSD in general. -- Jon