[ previous ] [ next ] [ threads ]
 From:  Jim Thompson <jim at netgate dot com>
 To:  Anthony Mattke <tony at mattke dot net>
 Cc:  m0n0wall <m0n0wall at lists dot m0n0 dot ch>, Jamie Thompson <jamie at netgate dot com>, Bill Hallett <bill at netgate dot com>
 Subject:  Re: [m0n0wall] WAN = Wireless Client
 Date:  Fri, 27 Jan 2006 04:19:37 -1000
Anthony Mattke wrote:

>One thing that I'm also seeing in the logs that I should also mention is this..
>/kernel: wi0: watchdog timeout
>here is the full log from the Diagnostic Log..
>Jan 27 06:27:44 	/kernel: pci_cfgintr: 1:0 INTA routed to irq 3
>Jan 27 06:27:44 	/kernel: pcic0: <Ricoh RL5C475 PCI-CardBus Bridge>
>irq 3 at device 0.0 on pci1
>Jan 27 06:27:44 	/kernel: pcic0: PCI Memory allocated: 0x88000000
>Jan 27 06:27:44 	/kernel: pccard0: <PC Card 16-bit bus (classic)> on pcic0
>Jan 27 06:27:44 	/kernel: fxp0: <Intel 82801DB (ICH4) Pro/100 VE
>Ethernet> port 0xdc00-0xdc3f mem 0xff8ff000-0xff8fffff irq 7 at device
>8.0 on pci1
>Jan 27 06:27:44 	/kernel: fxp0: Ethernet address 00:07:e9:93:10:71
>Jan 27 06:27:44 	/kernel: inphy0: <i82562ET 10/100 media interface> on miibus0
>Jan 27 06:27:44 	/kernel: inphy0: 10baseT, 10baseT-FDX, 100baseTX,
>100baseTX-FDX, auto
>Jan 27 06:27:44 	/kernel: isab0: <PCI to ISA bridge (vendor=8086
>device=24c0)> at device 31.0 on pci0
>Jan 27 06:27:44 	/kernel: isa0: <ISA bus> on isab0
>Jan 27 06:27:44 	/kernel: atapci0: <Intel ICH4 ATA100 controller> port
>0xffa0-0xffaf,0-0x3,0-0x7,0-0x3,0-0x7 at device 31.1 on pci0
>Jan 27 06:27:44 	/kernel: ata0: at 0x1f0 irq 14 on atapci0
>Jan 27 06:27:44 	/kernel: ata1: at 0x170 irq 15 on atapci0
>Jan 27 06:27:44 	/kernel: pci0: <unknown card> (vendor=0x8086,
>dev=0x24c3) at 31.3 irq 5
>Jan 27 06:27:44 	/kernel: pmtimer0 on isa0
>Jan 27 06:27:44 	/kernel: fdc0: ready for input in output
>Jan 27 06:27:44 	/kernel: fdc0: cmd 3 failed at out byte 1 of 3
>Jan 27 06:27:44 	/kernel: atkbdc0: <Keyboard controller (i8042)> at
>port 0x60,0x64 on isa0
>Jan 27 06:27:44 	/kernel: atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
>Jan 27 06:27:44 	/kernel: kbd0 at atkbd0
>Jan 27 06:27:44 	/kernel: vga0: <Generic ISA VGA> at port 0x3c0-0x3df
>iomem 0xa0000-0xbffff on isa0
>Jan 27 06:27:44 	/kernel: sc0: <System console> at flags 0x100 on isa0
>Jan 27 06:27:44 	/kernel: sc0: VGA <16 virtual consoles, flags=0x300>
>Jan 27 06:27:44 	/kernel: sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
>Jan 27 06:27:44 	/kernel: sio0: type 16550A
>Jan 27 06:27:44 	/kernel: sio1 at port 0x2f8-0x2ff irq 3 on isa0
>Jan 27 06:27:44 	/kernel: sio1: type 16550A
>Jan 27 06:27:44 	/kernel: BRIDGE 020214 loaded
>Jan 27 06:27:44 	/kernel: IPsec: Initialized Security Association Processing.
>Jan 27 06:27:44 	/kernel: IP Filter: v3.4.35 initialized. Default =
>block all, Logging = enabled
>Jan 27 06:27:44 	/kernel: ad0: 7162MB <QUANTUM FIREBALLlct15 07>
>[15522/15/63] at ata0-master PIO4
>Jan 27 06:27:44 	/kernel: acd0: CD-RW <CR-48X9TE> at ata1-master PIO4
>Jan 27 06:27:44 	/kernel: Mounting root from ufs:/dev/md0c
>Jan 27 06:27:44 	/kernel: pccard: card inserted, slot 0
>Jan 27 06:27:44 	/kernel: wi0 at port 0x240-0x27f irq 3 slot 0 on pccard0
>Jan 27 06:27:44 	/kernel: wi0: 802.11 address: 00:02:6f:3a:5d:d9
>Jan 27 06:27:44 	/kernel: wi0: using RF:PRISM2.5 MAC:ISL3873
>Jan 27 06:27:44 	/kernel: wi0: Intersil Firmware: Primary 1.01.00,
>Station 1.04.09
>Jan 27 06:27:45 	dropbear[127]: Running in background
>Jan 27 06:27:46 	dhclient: DHCPDISCOVER on wi0 to port
>67 interval 8
>Jan 27 06:27:50 	/kernel: wi0: watchdog timeout
>Jan 27 06:27:54 	dhclient: DHCPDISCOVER on wi0 to port
>67 interval 8
>Jan 27 06:28:02 	dhclient: DHCPDISCOVER on wi0 to port
>67 interval 7
>Jan 27 06:28:09 	dhclient: DHCPDISCOVER on wi0 to port
>67 interval 10
>Jan 27 06:28:19 	dhclient: DHCPDISCOVER on wi0 to port
>67 interval 14
>Jan 27 06:28:23 	last message repeated 4 times
>Jan 27 06:28:33 	dhclient: DHCPDISCOVER on wi0 to port
>67 interval 12
>Jan 27 06:28:45 	dhclient: DHCPDISCOVER on wi0 to port
>67 interval 2
>Jan 27 06:28:47 	dhclient: No DHCPOFFERS received.
>Jan 27 06:28:47 	dhclient: No working leases in persistent database - sleeping.
OK, so you've got a Senao/EnGenius card (00:02:6F...) in a cardbus to 
PCI bridge that uses a Rioch RL5C475 chip.

The 'wi0: watchdog timeout' is indicative of the card having attempted 
to send a frame and not receiving a "transmt completed" interrupt.

On linux (using pcmcia_cs on a 2.4 or earlier kernel) you have to tell 
the driver (hostap) to set "irq_mode=0"  via:


in /etc/sysconfig/pcmcia.

The issue is that its not trivial to figure out if the bridge is 
connected to the ISA interrupt controller or not.  If it's connected, 
ISA interrupts are preferred because some PCMCIA drivers have problems 
sharing interrupts with the bridge itself.

If the bridge is a PCI card, it's not connected to the ISA interrupt 
controller.  Then the only option is to use the PCI interrupt line that 
is already used for the card insertion events.

The i82365 driver from pcmcia-cs (on linux) uses the existing state of 
the bridge if irq_mode is not specified.  This works fine for most 
laptops, but not for standalone PCI cards containing a Rioch bridge.

The kernel-based pcmcia driver (on linux) figures it out, and does the 
"right thing" as the situation warrants.

Given the age of the 4.11 FreeBSD kernel used on most releases of 
m0n0wall, I'd suspect that there is a largely similar issue at play, but 
I must stress that I'm guessing.

See, for example, this: 

You might try running a PCI<->miniPCI adapter, as this will eliminate 
the Rioch bridge.   Course, you'll need a miniPCI card too.

(Please note that I'm not trying to shill hardware.)

For something cheap, you might try running 1.2b7 to see if someone 
'fixed' the issue in FreeBSD 5.3.

p.s. I suppose I should tell our support people all of the above.  See: 
http://www.netgate.com/zz_faq.php#97 for what I'm talking about.