D-Link 650P - getting closer

Jouni Malinen jkmaline
Tue Dec 30 08:00:40 PST 2003

On Wed, Dec 24, 2003 at 12:33:44AM -0500, Pavel Roskin wrote:

> Yes, I tried this later.  I even created a separate version of prism2_srec
> that doesn't request NICID, PRIID and the ranges.  At some point I
> realized that more changes are needed in the driver itself.
> I think there should be a separate mode for loading primary firmware into
> Prism3 devices without flash.  Even the genesis mode seems to make some
> incorrect assumptions.

I don't think this is needed. I added a new flag (local->no_pri) and
made the driver able to handle this state properly.

> The procedure for loading the firmware should be (based on the John's
> message, translated to the hostap terms):
> 1) Load primary firmware using PDA that only plugs Host ID.  prism2_srec
> doesn't support reading PDA from file yet, but in prism2dl format it would
> be:
> 0x0005, 0x0008, 0x8024, 0x0000, 0x0001, 0x0000,
> This means: 5 words, PDI 8, NICID 0x8024, variant 0, major 1, minor 0.

I don't think this is really needed, but apparently PDR 0x0400 needs to
be set correctly for PCI/PC Card and wlan card RAM setup (1x16 / 2x8).

> 2) Load the same primary firmware using PDA on the card.
> 3) Load secondary firmware.
> Steps 1 and 2 could be combined if we create a special mode for two-step
> loading primary firmware.

Well, maybe. However, keeping them separate makes this change simpler
and step 1 is not required for future hw resets because the PDA data is
already available. This makes persistent download working nicely even
with no-PRI f/w case.

> It should be 8024.  We'll know for sure after the primary firmware is
> loaded.

8024 is the PCI model; PC Card is 801d (well, at least D-Link DWL-650
P1 is).

> D-Link DWL-650 rev. P is sold in CompUSA for $50 ($10 mail in rebate).
> It's marked as DWL-650, but there is a sticker on the back that says "rev
> P1".  It looks like this: http://www.red-bean.com/~proski/tmp/dwl650p.jpg

Thanks for the info. I bought one today from CompUSA for $40 without any
rebates. The revision was indeed visible in the box so one can find the
correct revision without needing to open the box.

I added preliminary support for D-Link DWL-650 P1. This needs some more
cleanup, but should already be usable. In addition, PCI cards (DWL-520
E) may require a different value for PDR 0x0400. This should be doable
automatically since driver is able to fetch all the information. I'll
take a closer later. If someone wants to test this with PCI, the
hardcoded value in prism2_srec.c may be modified. These cards were also
available for $40 from CompUSA, but I did not buy one yet since I'm
hoping that I don't need one to fix the remaining small details.

Look for "Plugging PDR 0400 (NIC cfg) with hardcoded" in
plug_pdr_entries() and change the value on "*pos++ = 0x03;" line. I
think this should be 0x07 for PCI card, but it may also be 0x05 if the
card uses different memory configuration. If you test this, please let
me know whether it worked.

Currently, following steps are needed to initialize D-Link DWL-650 Rev.

- make sure that hostap_cs.conf gets updated (new card info needed)
- compile the driver with downloading support (volatile mode should be
- acquire suitable firmware images (these have to be compatible with the
  used wlan card)
- compile new version of prism2_srec

Load the driver with no_primary=1 option (this can be given as an option
to insmod/modprobe or added to the end of hostap_cs.conf ('module'

After successful driver initialization, the PRI f/w image needs to be
loaded without full PDA plugging:

prism2_srec -gs wlan0 PM010102.HEX

This makes PDA available.  The PRI f/w is reloaded using this
information (I used persistent mode, but it is not required; -i is
needed because the previous step did not update all component/range

prism2_srec -gip wlan0 PM010102.HEX

At this point, the card should have working PRI firmware. The station
firmware can now be loaded in the same way that is loaded for cards with
PRI f/w in the flash:

prism2_srec -rp wlan0 RF010802.HEX

Now, the card should be in fully operational condition. When persistent
download mode was used, hw reset (e.g., 'iwpriv wlan0 reset 1') seemed
to be working fine. This loads the plugged images so PRI f/w is loaded
only once.

Jouni Malinen                                            PGP id EFC895FA

More information about the Hostap mailing list