Timeout waiting for Tx RDC
Hi all,
I have a customised hardware with MPC855T processor, The error message is "eth1: timeout waiting for Tx RDC" coming from "void dma_block_output()" in "pcnet_cs.c" , The card is PCMCIA card , Netgear FA411 16bit PCMCIA Notebook Adapter, 10/100 Mbps fast ethernet .
Here are my log messages in continuation step by step...
When start the module....
# /etc/init.d/pcmcia start
Starting PCMCIA services: modules
Using /lib/modules/2.4.2_hhl20/pcmcia/pcmcia_core.o
Linux PCMCIA Card Services 3.1.24
kernel build: 2.4.2_hhl20 #540 Mon Dec 15 13:42:18 KST
2003
options: none
Using /lib/modules/2.4.2_hhl20/pcmcia/m8xx_pcmcia.o
m8xx_pcmcia: Version 0.03, 14-Feb-2000, Magnus Damm
Using /lib/modules/2.4.2_hhl20/pcmcia/ds.o
cardmgr.
cardmgr[718]: starting, version is 3.1.24
cardmgr[718]: watching 1 sockets
cardmgr[718]: initializing socket 0
cardmgr[718]: socket 0: NetGear FA411 Fast Ethernet
cardmgr[718]: executing: 'insmod
/lib/modules/2.4.2_hhl20/net/8390.o'
cardmgr[718]: + Using /lib/modules/2.4.2_hhl20/net/8390.o
cardmgr[718]: executing: 'insmod
/lib/modules/2.4.2_hhl20/pcmcia/pcnet_cs.o'
cardmgr[718]: + Using
/lib/modules/2.4.2_hhl20/pcmcia/pcnet_cs.o
Trying to free nonexistent resource <00000000-00000fff>
eth1: NE2000 Compatible: io 0x300, irq 9, hw_addr
00:09:5B:61:7B:A7
cardmgr[718]: executing: './network start eth1'
cardmgr[718]: Sending signal to the VTS Logger
When I configure the PCMCIA card as eth1.....
# ifconfig eth1 192.168.6.7 netmask
255.255.0.0
When I ping .....
# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=1.9 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=1.1 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=1.1 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=1.0 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=1.0 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=255 time=1.0 ms
64 bytes from 192.168.1.1: icmp_seq=6 ttl=255 time=1.0 ms
64 bytes from 192.168.1.1: icmp_seq=7 ttl=255 time=1.0 ms
--- 192.168.1.1 ping statistics ---
8 packets transmitted, 8 packets received, 0% packet loss
round-trip min/avg/max = 1.0/1.1/1.9 ms
When I down the my local network (eth0)....
# ifconfig eth0 down
When I ping after eth0 is down....
# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
eth1: timeout waiting for Tx RDC.
eth1: timeout waiting for Tx RDC.
64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=147.9 ms
eth1: timeout waiting for Tx RDC.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=78.5 ms
eth1: timeout waiting for Tx RDC.
64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=77.3 ms
eth1: timeout waiting for Tx RDC.
64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=78.0 ms
eth1: timeout waiting for Tx RDC.
64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=78.0 ms
eth1: timeout waiting for Tx RDC.
64 bytes from 192.168.1.1: icmp_seq=5 ttl=255 time=77.6 ms
--- 192.168.1.1 ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss
round-trip min/avg/max = 77.3/89.5/147.9 ms
Interrupts Allocatin Details........
# more /proc/interrupts
CPU0
2: 0 8xx SIU Edge ttyC
3: 4401 8xx SIU Edge fec
5: 9432 8xx SIU Edge cpm
9: 1612 8xx SIU Edge pcnet_cs
13: 0 8xx SIU Edge m8xx_pcmcia
15: 0 8xx SIU Edge tbint
I/O Ports Allocatin Details........
# more /proc/ioports
00000300-0000031f : pcnet_cs
ff100000-ff100007 : serial(auto)
ff100400-ff100407 : serial(auto)
ff100800-ff100807 : serial(auto)
ff100c00-ff100c07 : serial(auto)
ff101000-ff101007 : serial(auto)
ff101400-ff101407 : serial(auto)
ff101800-ff101807 : serial(auto)
ff101c00-ff101c07 : serial(auto)
This the log which I'm getting.....why I'm getting this error message "eth1: timeout waiting for Tx RDC" also the speed is drastically down.
I could solve the problem by comenting the below lines of code in pcnet_cs.c , Now I'm able to get quick respnse from the target if I ping.
I'm afraid how this affect other functionality , I don't have much knowledge on this driver...
while ((inb_p(nic_base + EN0_ISR) & ENISR_RDC) == 0)
if (jiffies - dma_start > PCNET_RDC_TIMEOUT) {
printk(KERN_NOTICE "%s: timeout waiting for Tx RDC.\n", dev->name);
pcnet_reset_8390(dev);
NS8390_init(dev, 1);
break;
}
please suggest me whether i can comnent it ...
Thanks
KP
|