can't read PDA or update firmware

Andy Lutomirski luto
Fri Dec 5 01:45:05 PST 2003


Jouni Malinen wrote:

> On Thu, Dec 04, 2003 at 10:20:34PM -0800, Andy Lutomirski wrote:
> 
> 
>>>>wifi0: trying to read PDA from 0x007f0000: failed
>>>>wifi0: trying to read PDA from 0x003f0000: failed
>>>>wifi0: trying to read PDA from 0x00390000: failed
> 
> 
>># dd if=$AUXF of=aux-007F0000 bs=1k count=1 skip=8128
> 
> 
> Thanks. That sure looked odd.. Have you upgraded the card firmware or
> changed PDA before? It looks like 0x007f0000 (and 0x003f0000 probably
> giving the same memory area) contains a valid PDA; however, start offset
> is off by two bytes.. The first two bytes (zeroes) should not really be
> there..

No.  This is straight out of the retail box two days ago.

> 
> A quick test would be to change pda_addr addresses in the beginning of
> prism2_read_pda() in driver/modules/hostap_download.c so that read would
> start at 0x7f0002, not 0x7f0000.. This change might be enough to make
> the driver able to read the PDA. prism2_srec should also work, because
> it just reads PDA from the proc file. You might consider trying a RAM
> download first before writing anything to flash, though.

I changed the driver, but I can't find a RAM image to download, and I'm 
a bit afraid to download into flash.  Do you know where I can find RAM 
firmware for 8013?


BTW, would a patch like this be likely to be accepted (not tested but 
obviously correct, for some odd definition of correct)?

--- ./hostap_download.c.orig    2003-11-02 19:00:44.000000000 -0800
+++ ./hostap_download.c 2003-12-05 01:42:10.505702845 -0800
@@ -182,11 +182,12 @@
  {
         u8 *buf;
         int res, i, found = 0;
-#define NUM_PDA_ADDRS 3
+#define NUM_PDA_ADDRS 4
         unsigned int pda_addr[NUM_PDA_ADDRS] = {
                 0x7f0000 /* others than HFA3841 */,
                 0x3f0000 /* HFA3841 */,
-               0x390000 /* apparently used in older cards */
+               0x390000 /* apparently used in older cards */,
+               0x7f0002 /* strange Intel card */
         };

         buf = (u8 *) kmalloc(PRISM2_PDA_SIZE, GFP_KERNEL);

I wonder if anyone else has seen this...

Thanks,
Andy





More information about the Hostap mailing list