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

Reply via email to