Re: Patch for Pheecom card


From: Joerg Dorchain (joerg_at_dorchain.net)
Date: 2002-07-25 17:51:59 UTC



On Thu, Jul 25, 2002 at 07:12:18PM +0300, Jouni Malinen wrote:
> I added a cleaned up version of your patch to Host AP driver (CVS
> snapshot available from http://hostap.epitest.fi/). I used 1 ms delay
> (like the other delays in hostap_plx.o) between COR write and read, so
> let's see if it works or not.. In addition, I modified cor_sreset so
> that it should be able to reset the card also with TMD7160. If anyone
> with such a card tests the driver, I would certainly like to hear
> whether this works or not. I would like to hear whether the driver
> initializes the card correctly and whether COR sreset ('iwpriv wlan0
> reset 1') works.

When checking stuff out from cvs, the cvs checkout hangs after U hostap/utils/prism2_srec.c. Nevertheless the cvs modules looks complete.

Back to topic:
Here are the kernel messages from inserting the drivers:

hostap_crypt: registered algorithm 'NULL'
hostap_plx: hostap_plx.c 0.0.0 CVS (SSH Communications Security Corp, Jouni Malinen)
hostap_plx: (c) SSH Communications Security Corp <jkm_at_ssh.com>
PCI: Found IRQ 11 for device 00:0c.0
TMD7160 PCI/PCMCIA adapter: io=0xb800, irq=11, pccard_io=0xb400
hostap_plx: Registered netdevice wlan0
prism2_hw_init()
prism2_hw_config: initialized in 5628 iterations
wlan0: NIC: id=0x8003 v1.0.0
wlan0: PRI: id=0x15 v0.3.0

wlan0: STA: id=0x1f v0.8.3
wlan0: LinkStatus=2 (Disconnected)

At least, the card works principally.

The iwpriv command gives:
# iwpriv wlan0 reset 1
 Segmentation fault

Additionally, there are some kernel messages: wlan0: manual reset request(1)
hostap_plx: wlan0: resetting card
hostap_plx: Doing reset via direct COR access. Unable to handle kernel paging request at virtual address 0000b800  printing eip:
d9856562
*pde = 00000000
Oops: 0002
CPU: 0
EIP: 0010:[<d9856562>] Not tainted EFLAGS: 00010202
eax: 0000b800 ebx: 00000045 ecx: d1d70701 edx: 00000321 esi: d5cb9400 edi: cef33f6c ebp: d60cce00 esp: cef33dd4 ds: 0018 es: 0018 ss: 0018
Process iwpriv (pid: 1346, stackpage=cef33000) Stack: d5cb9400 d60cce00 d985265e d5cb9400 d98594c0 d60cce00 00000005 00000005

       d5cb9400 d60cce00 d98d6cf1 d60cce00 d60cce00 00000001 cef33f6c cef33f5c

       cef33f5c cef33f7c d98d76b8 d60cce00 cef33f6c 33323130 37363534 62613938
Call Trace: [<d985265e>] [<d98594c0>] [<d98d6cf1>] [<d98d76b8>] [<c012914c>]

   [<c012917a>] [<c012ef7c>] [<c0129090>] [<c0125918>] [<c0125ac8>] [<c01b86be>]

   [<c01b2cd9>] [<c01aaf9c>] [<c0141496>] [<c01088b3>]

Code: 88 18 c7 44 24 0c 70 85 41 00 5b 5e e9 8d 3f 99 e6 90 8b 96  

This run through ksymops gives:
ksymoops 2.4.6 on i586 2.4.19-pre10. Options used

     -v /usr/src/linux/vmlinux (specified)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.19-pre10/ (default)
     -m /System.map (specified)

Unable to handle kernel paging request at virtual address 0000b800 d9856562
*pde = 00000000
Oops: 0002
CPU: 0
EIP: 0010:[<d9856562>] Not tainted Using defaults from ksymoops -t elf32-i386 -a i386 EFLAGS: 00010202
eax: 0000b800 ebx: 00000045 ecx: d1d70701 edx: 00000321 esi: d5cb9400 edi: cef33f6c ebp: d60cce00 esp: cef33dd4 ds: 0018 es: 0018 ss: 0018
Process iwpriv (pid: 1346, stackpage=cef33000) Stack: d5cb9400 d60cce00 d985265e d5cb9400 d98594c0 d60cce00 00000005 00000005

       d5cb9400 d60cce00 d98d6cf1 d60cce00 d60cce00 00000001 cef33f6c cef33f5c 
       cef33f5c cef33f7c d98d76b8 d60cce00 cef33f6c 33323130 37363534 62613938 
Call Trace: [<d985265e>] [<d98594c0>] [<d98d6cf1>] [<d98d76b8>] [<c012914c>]

   [<c012917a>] [<c012ef7c>] [<c0129090>] [<c0125918>] [<c0125ac8>] [<c01b86be>]    [<c01b2cd9>] [<c01aaf9c>] [<c0141496>] [<c01088b3>] Code: 88 18 c7 44 24 0c 70 85 41 00 5b 5e e9 8d 3f 99 e6 90 8b 96

>>EIP; d9856562 <[hostap_plx]prism2_plx_cor_sreset+52/a8> <=====

>>ecx; d1d70701 <_end+11ad4015/1958b914>
>>esi; d5cb9400 <_end+15a1cd14/1958b914>
>>edi; cef33f6c <_end+ec97880/1958b914>
>>ebp; d60cce00 <_end+15e30714/1958b914>
>>esp; cef33dd4 <_end+ec976e8/1958b914>

Trace; d985265e <[hostap_plx]prism2_hw_reset+ae/d8>
Trace; d98594c0 <[hostap_plx].text.end+2869/2d39>
Trace; d98d6cf1 <[hostap]prism2_ioctl_priv_reset+6d/ac>
Trace; d98d76b8 <[hostap]hostap_ioctl+1a4/5b4>
Trace; c012914c <filemap_nopage+bc/210>
Trace; c012917a <filemap_nopage+ea/210>
Trace; c012ef7c <__alloc_pages+3c/190>
Trace; c0129090 <filemap_nopage+0/210>
Trace; c0125918 <do_no_page+48/1a0>
Trace; c0125ac8 <handle_mm_fault+58/c0>
Trace; c01b86be <wireless_process_ioctl+56e/590>
Trace; c01b2cd9 <dev_ioctl+329/390>
Trace; c01aaf9c <sock_ioctl+1c/20>

Trace; c0141496 <sys_ioctl+1a6/1d0>
Trace; c01088b3 <system_call+33/40>

Code; d9856562 <[hostap_plx]prism2_plx_cor_sreset+52/a8> 00000000 <_EIP>:
Code; d9856562 <[hostap_plx]prism2_plx_cor_sreset+52/a8> <=====

   0:   88 18                     mov    %bl,(%eax)   <=====
Code;  d9856564 <[hostap_plx]prism2_plx_cor_sreset+54/a8>
   2:   c7 44 24 0c 70 85 41      movl   $0x418570,0xc(%esp,1)
Code; d985656b <[hostap_plx]prism2_plx_cor_sreset+5b/a8>

   9: 00
Code; d985656c <[hostap_plx]prism2_plx_cor_sreset+5c/a8>

  1. 5b pop %ebx Code; d985656d <[hostap_plx]prism2_plx_cor_sreset+5d/a8>
  2. 5e pop %esi Code; d985656e <[hostap_plx]prism2_plx_cor_sreset+5e/a8>
  3. e9 8d 3f 99 e6 jmp e6993f9e <_EIP+0xe6993f9e> c01ea500 <__const_udelay+0/20> Code; d9856573 <[hostap_plx]prism2_plx_cor_sreset+63/a8>
  4. 90 nop Code; d9856574 <[hostap_plx]prism2_plx_cor_sreset+64/a8>
  5. 8b 96 00 00 00 00 mov 0x0(%esi),%edx

HTH, Joerg




This archive was generated by hypermail 2.1.4.