I recently bought a compact-flash WLAN card for my PDA - a BUFFALO WLI-CF-S11G which came with a fucking old firmware (1.3.4) so I could not get WPA working with wpa_supplicant.
On the net I found several hints, I should update my firmware to 1.7.4 or something like it. I also found a nice howto by jun sun how actually to do the update and also where to get the firmware-files.
ffs the hostap driver of my PDA was not compiled with CONFIG_HOSTAP_FIRMWARE=y and CONFIG_HOSTAP_FIRMWARE_NVRAM=y so I couldn't update the firmware directly on the PDA. So I got a cheap (8.50EUR incl shipping) CF to PCMCIA adaptor (Panasonic BN-CFADPP3) and tried my luck with my Debian laptop.
Off course my kernel was without hostap support - why should it if I have only Intel and Atheros cards here? Recompiled, installed and got weird errors during modprobe:
hostap: disagrees about version of symbol skb_queue_purge
and so on - after a reboot it worked - don't ask me why, usually recompiling the modules and running depmod -a is sufficient.
I also built hostap-utils 0.4.7 from source, because Debian still has 0.4.0 :(
As root I ran
./prism2_srec -v wlan0 pk010101.hex sf010704.hex
./prism2_srec -v -f wlan0 pk010101.hex sf010704.hex
from the dir with the hostap-utils and the downloaded firmware-files.
Now I get
Host AP driver diagnostics information for 'wlan0'
NICID: id=0x800c v1.0.0 (PRISM II (2.5) PCMCIA (SST parallel flash))
PRIID: id=0x0015 v1.1.1
STAID: id=0x001f v1.7.4 (station firmware)
And WPA is working like a charm ;)