Loading PRI into cards with serial EEPROM only

Bjorn Wesen bjorn.wesen
Wed Oct 22 08:34:28 PDT 2003

I know this was discussed some months ago but I could never find any 
resolution to the matter.

I have now _three_ PRISM2 and 3 cards (CF cards in PCMCIA slots) from 
different manufacturers and all of them use the serial EEPROM instead of 
flash (to save cost). Thus they all require that the driver loads both the 
primary and secondary firmwares into RAM after reset.

In the current hostap driver, which supposedly supports genesis mode, you 
don't even get the possibility to do this (without hacking) because it exits 
as soon as it sees that there is no PRI RID in the card (only the NICID is 
there). Are there really noone here who has the same kind of cards ? All el 
cheapo 802.11b cards will use this method without flash, within some months. 
And I mean we are talking _cheap_ this time.

I hacked the driver so that it ignored this, and then tried prism2_srec to 
download using genesis mode, and then the appropriate code is called, which 
in effect does:

  1) normal cor softreset
  2) genesis reset
  3) testing the memory by AUX downloading and uploading 2 words
  4) if that works, download the PRI image
  5) soft reset again
  6) same procedure but with secondary firmware

Now, the driver fails at 3, but then again, it could not read the PDA's in 
the beginning either, so possibly the general fault is that the AUX transfer 
port is not working.

Any ideas why ? I don't have any PRISM2/3 datasheets, I have no idea when 
that AUX transfer port is supposed to work, or if the RAM memory always 
resides on 0x7e0000 even (but the PRI srecord file loads it there at least).

This is how the boot looks, using my patched hostap driver:

ISA-connected PCMCIA/CF adapter: mem=0xe4800000, pccard_io=0xe4600000
hostap_isa: CIS: 01 03 00 00 ff 17 ...
hostap_isa: manfid=0x0156, 0x0003
hostap_isa: cor_index=0x7 cor_offset=0x3e0
Prism2/2.5 PC Card detected
hostap_isa: Registered netdevice wlan0
ccsr: 0x80
iobase 0: 0x0
iobase 1: 0x0
wlan0: init command completed too quickly - retrying
prism2_hw_init: initialized in 20 ms
prism2_enable_aux_port: was not disabled!?
wlan0: trying to read PDA from 0x007f0000: failed
wlan0: trying to read PDA from 0x003f0000: failed
wlan0: trying to read PDA from 0x00390000: failed
prism2_enable_aux_port: was not enabled!?
Trying SWSUPPORT0 write/read...
get rid 0xfd0b
wlan0: NIC: id=0x0e v0.4.1
get rid 0xfd02
Could not get RID for component PRI
wlan0: Failed to read PRI f/w version - no Primary f/w present.

As you can see, it works partially - registers like SWSUPPORT0 seem to work, 
and it can issue commands etc. Only the AUX seems to fail.

What exactly does the EEPROM code do when it boots BTW ? The manufacturer 
tells me that it only makes the PCMCIA CIS and PDA's available. If that is 
true, then at least the PDA's should be there when the driver looks for 



More information about the Hostap mailing list