[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

The 8139/8129 ethernet driver



Hi,
 I have this strange problem with my Ethernet driver, and I am not sure if
what
I plan to ask belongs to the Linux-India-Help mail-list.
 My system has a Realtek 8139(10/100M) Ethernet card. Windows shows it
as an DFE-538TX 10/100 PCI Fast Ethernet NIC. I dont have any problems
with it in Windows. In Linux, the card is detected fine, but any attempt to
send
data across it fails in a strange manner. As an example, "ping" to any
system in
the local n/w reports reply to the first response immediately, the next
packet
gets a response only after about 76 seconds(I dont wait for the response
from
other packets). Pinging to the IP address of the NIC also has the same
problem. ARP requests and all else I know timeout unsuccessfully.

Any attempt to monitor traffic, such as using "tcpdump" shows the packets
flowing around in the network. The only problem seems to occur in injecting
packets into the network. The network driver is an LKM, so I reloaded it
with "debug=5", and redirected some of the output (through syslogd) to a
file

<Some of the KERN_DEBUG messages I got>
Oct 27 14:51:55 flint kernel: rtl8139.c:v1.07 5/6/99 Donald Becker
http://cesdis.gsfc.nasa.gov/linux/drivers/rtl8139.html
Oct 27 14:51:55 flint kernel: eth0: RealTek RTL8139 Fast Ethernet at 0xc000,
IRQ 11, 00:50:ba:d7:12:78.
Oct 27 14:52:07 flint kernel: eth0: Setting 10mbps full-duplex based on
auto-negotiated partner ability 4461.
Oct 27 14:52:07 flint kernel: eth0:   set_rx_mode(1042) done -- Rx config
00009c00.
Oct 27 14:52:07 flint kernel: eth0: rtl8129_open() ioaddr 0xc000 IRQ 11 GP
Pins 18 half-duplex.
Oct 27 14:52:07 flint kernel: eth0:   set_rx_mode(1043) done -- Rx config
00009c0e.
Oct 27 14:52:07 flint last message repeated 2 times
Oct 27 14:52:07 flint kernel: eth0: exiting interrupt,
intr_status=0x4000000.
Oct 27 14:52:09 flint last message repeated 13 times
Oct 27 14:52:09 flint kernel: eth0: Setting full-duplex based on MII #32
link partner ability of 4461.
Oct 27 14:52:09 flint kernel: eth0: Media selection tick, Link partner 4461.
Oct 27 14:52:09 flint kernel: eth0:  Other registers are IntMask c07f
IntStatus 0000 RxStatus 5280d0a.
Oct 27 14:52:09 flint kernel: eth0:  Chip config 13 6c.
Oct 27 14:52:10 flint kernel: eth0: exiting interrupt,
intr_status=0x4000000.
Oct 27 14:52:41 flint last message repeated 240 times
</Some of the KERN_DEBUG messages I got>

I believe the problem lies somewhere in the rtl8129_open() function. The
RX/TX gets enabled, but maybe the
auto-negotiation with the hub is not proper. I tried fooling around with the
full_duplex value, but without much
results. BTW, 10mbps with full-duplex works fine in Windows. Also,
cesdis.gsfc.nasa.gov seems to be down,
and so I am unable to get newer versions of the driver.

I tried all this out on a RH6.2 system, first with the default kernel, and
then tried recompiling the kernel to check if
it helped (it didnt). Newer 2.2.x kernels also seem to have the same version
of the rtl8139 driver. Also, I am
reluctant to migrate to 2.3.x or 2.4-test* yet.

Could someone pleeeeeeease help me out? It seems like a small problem,
especially since "tcpdump" works so fine!!!

-vml