OpenBSD Journal

Welcome bcw(4), the beginning of a driver

Contributed by deanna on from the our-kind-of-idiot dept.

Some of you may recall the unpleasant situation with Broadcom bcm43xx wireless devices and OpenBSD's lowered priority to support them, due to the fact that the vendor does not supply documentation. A community member set out to do something about it, and as a result, there is now the beginning of a driver in -current CVS.

Last month, a message was posted to misc@, explaining the situation:

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.

Good luck!
A month later, Jon Simola announced that he had started on such a driver:

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.

And so last week we saw the last bit of the beginning of the story of this driver.

(Comments are closed)


Comments
  1. By Anonymous Coward (89.191.97.92) on

    Kudos to John Simola and Deanna for leting us know!

  2. By Anonymous Coward (69.70.207.240) on

    Great work!

  3. By Anonymous Coward (143.166.255.41) on

    Great! This is a step towards OpenBSD on my iBook!

  4. By Janne Johansson (82.182.176.20) jj@inet6.se on

    This really sucks, my macppc iBook which had to resort to a rum(4)-based
    USB-wlan died on me, so I couldn't get to test this.
    How awful the timing was.

    Comments
    1. By Anonymous Coward (202.156.8.10) on

      > This really sucks, my macppc iBook which had to resort to a rum(4)-based
      > USB-wlan died on me, so I couldn't get to test this.
      > How awful the timing was.
      >

      I was ready to sell my iBook, but I think I will keep it as my home server now :-). Good timing for me! ;-)

  5. By Anonymous Coward (68.104.220.48) on

    Fantastic! This is awesome ambition and always good to see the community contributing. Best wishes with the driver development.

    Comments
    1. By ea1x (81.56.211.110) on

      this is the same card in the linksys wrt54g ?
      and the linux driver in it is not free
      so an openbsd port on mips with this driver for the linksys in the future ?:)

      Comments
      1. By srcq (151.136.100.2) on

        this MAY happen some day... ;)

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]