D-Link 650P - getting closer

Pavel Roskin proski
Tue Dec 23 21:33:44 PST 2003

On Tue, 23 Dec 2003, Jouni Malinen wrote:

> On Sun, Dec 21, 2003 at 01:26:59AM -0500, Pavel Roskin wrote:
> > I just want to post what I have achieved so far with D-Link 650P.  I'm
> > using the CVS version of hostap with the two patches I've just posted.
> >
> > What I run:
> >
> > cardctl eject
> > modprobe hostap_cs no_primary=1
> > cardctl insert
> > prism2_srec -g wifi0 pm010102.hex
> I would assume you would need to add '-s' flag for this command to skip
> PDA reading.

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.

The only success story so far is here:

I had a private discussion with John Luebs, and he told me that the
firmware he was using was pm010102.hex and rf010706.hex.  I don't have the
later, but rf010800.hex should be fine.  Anyway, the problem is with
primary software at this point.

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

0x0005, 0x0008, 0x8024, 0x0000, 0x0001, 0x0000,

This means: 5 words, PDI 8, NICID 0x8024, variant 0, major 1, minor 0.

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.

> > 0xFD0B is HFA384X_RID_NICID.  I'm actually not sure that pm010102.hex is
> > what I should load.
> Do you know what the NICID is? If it is 8024, that image seems to be
> correct.

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

> > It should be possible to make no_primary a per-device setting and set it
> > automatically for known cards without flash.
> It could be automatically tried if the normal initialization fails.
> Other than that, there may not be much else that can be done to identify
> the cards unless they have unique manfids..

I think they do.  The case when Intersil and Lucent cards had the same ID
was an exception.

# cardctl ident
Socket 0:
  product info: "D-Link", "DWL-650 Wireless PC Card RevP", "ISL37101P-10", "A3"
  manfid: 0x000b, 0x7110
  function: 6 (network)

ISL37101P is Prism3.

> > # prism2_srec -g wifi0 pm010102.hex
> >
> > wifi0: hfa384x_cmd_issue: cmd reg was busy for 5000 usec
> > wifi0: hfa384x_cmd_issue - timeout - reg=0x8ce2
> > wifi0: hfa384x_cmd: entry still in list? (entry=f1070f78, type=0, res=-1)
> > wifi0: hfa384x_cmd: interrupted; err=-110
> > wifi0: hfa384x_get_rid: CMDCODE_ACCESS failed (res=-110, rid=fd0b, len=1008)
> This is due to prism2_srec trying to read the RID. This should be
> skipped. In addition, download code may need some changes so that it
> will continue even if something fails in the beginning (only for RAM
> downloads, though).

Again, it would be safer to have a special "deep genesis" mode rather than
relaxing checks for normal operations.

I'll be on vacation next two weeks.  I'll be away from the hardware, but
I'll try to reply to e-mails.

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

Pavel Roskin

More information about the Hostap mailing list