Subject: Re: NetBSD DWL-520+ Support
To: None <tech-kern@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-kern
Date: 01/09/2004 20:56:45
On Sat, Jan 10, 2004 at 02:10:36AM +0000, Sam Thigpen wrote:
> Anyone looking at this?  There is FreeBSD support at
> http://wlan.kewl.org/modules/mantis/main_page.php

At the author's request, I looked at this. The code looks very clean,
and I encourage you to port it.

I have some small concerns about licensing. Before porting to NetBSD,
make sure that there is not code in common with the Linux driver---I
don't think there is---and see what the terms on the firmware are.

> This uses the TI "acx100" chipset.  I was considering the best way to
> do this, adding another wi or an infrastructure in /usr/src/dev/ic or
> including this in the main driver code.

I don't fully understand what you're asking here. Maybe this will
answer your question.  The device deserves its own driver, acx(4),
with machine-independent files acxreg.h, acxvar.h, and acx.c in
src/sys/dev/ic/ and PCI/Cardbus attachment files in dev/pci/if_acx_pci.c
and dev/cardbus/if_acx_cardbus.c. The firmware will belong in
src/contrib/sys/dev/ic/, if it is not under BSD-compatible license.

The FreeBSD driver does not look like it makes enough use out of
ieee80211 #defines and structs. In if_acxtemplate.c, for example, I see
some opportunities to use `struct ieee80211_frame' and some IEEE80211_
constants. The code for assembling beacons should move up to the IEEE
802.11 layer, since it can be re-used by other drivers.

For ACX100, it is not clear to me what the division of labor between
the radio and the host is. Since the host has to assemble the beacon,
I imagined it would be responsible for all the other management frames,
but I do not see where it receives/transmits those.

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933