DWL-650 RevP does not work

Robin Schoonover end at endif.cjb.net
Wed Aug 11 19:13:12 PDT 2004

(This is on a 5.2.1 laptop, but I've ported small parts like ndis and
pccarddevs from -current back to my src tree)

I recently bought a DWL-650 revP 802.11b wireless pcmcia card with 
the expectation that it would work with FreeBSD.  Early revisions of
that card apparently do, but not revP.  I think this is a somewhat
known problem, but I'm trying to help document my troubles so maybe
someday we'll have it working. :)

Upon finding out that it does not work, I did some research.
Apparently, it uses the PRISM3 chipset, which according to the wi(4)
manpage is supported, but I do not see any cards listed with it there.
DWL-650 -is- listed there, but only applies to earlier versions of the
card (not revP)

Anyhow, an earlier thread on -current@ mentioned making some changes
so that wi(4) would know about this card from the wild, but for the
person involved it did not work with the message that the busy bit
would not clear.  It fails for me in the same way.  Supposedly this
is because the firmware is not loaded, and there are certain tools
available for windows and linux which will load it.  I tried the card
with a win2k laptop, and it worked fine (firmware was 1.8.0 I think).
Brought it back to FreeBSD, and the card still did not work.  Tried
ndis, that didn't work either (more on that later).

Apparently, from what I understand from my googling, it is the
responsibility of the  driver to load the firmware at startup because
the chip lacks the ROM to hold it (so it has to be loaded into card's
RAM instead?). (Hmm... Apparently this is called Short Serial Flash)

About my attempts to make it work with ndis: it simply did not work.
At first, ndiscvt had trouble with the .inf file.  There was no newline
at the end of file, but once I added one it was fine.  Managed to
compile the modules fine, tried to run it, and nope, still doesn't work.
The wi(4) driver would continue to try to grab it, so I compiled wi
out.  Nope...ndis did not appear to match itself with the card
at all.

In the end I ended up erasing the card entirely (I think...somehow?).
Oops. It doesn't work with the windows laptop anymore.  However, windows
keeps pulling the driver out of somewhere, so I haven't been able to get
it to deinstall/reinstall properly so I can possibly hopefully make the
card work again. Interestingly enough, FreeBSD complains about the busy
bit no matter if it happens to work in windows or not.

For reference, wi(4) displays this:
wi0: <D-Link DWL-650 Wireless PC Card RevP> at port 0x400-0x47f irq 11
function 0 config 1 on pccard1
wi0: wi_cmd: busy bit won't clear.
: init failed
device_probe_and_attach: wi0 attach returned 6

Robin Schoonover (aka End)
# "Did you know that black paint is an excellent stain remover?"
#                                        - Dogbert

More information about the freebsd-current mailing list