[realtek] D-Link DFE-538TX/R

John Roberts jroberts@surf.sno.laurentian.ca
Thu, 12 Apr 2001 22:34:55 -0400 (EDT)


Hi all,

I just purchased three DFE-538TX/R cards to build a small network at home.  With
a little bit of research, I've found out that the DFE-538TX cards use the
RTL 8139 chipset, so I built my Linux kernel (2.4.3-ac2, now ac5) with support
for the 8139.  No dice, the card wasn't even detected.

A glance at /proc/pci showed me that this card's PCI ID is 1186:0300, whereas
the TX is 1186:1300.  Seeing that the 0300 is not listed in 8139too.c, I added
it to the list of devices to detect.  I also gave it its own name string, so
/proc/pci shows its name as a DFE538TXR.  Please ignore the revision number, as
the line is just a cut'n'paste of the DFE538TX line.

Recompile, reboot, and the card is detected as eth1.  I configured it using
ifconfig, and that was successful, but I am still unable to ping any other
machines on my network (the other machine is a WinME machine, and the same
model of NIC works fine there).

Has anybody had any luck with a DFE-538TX/R under Linux?  Does anybody even know
what the difference between this and a TX is?  None of DLink's webpages even
acknowledge the existence of a TX/R.

Here are various useful debugging outputs:

# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr FF:FF:FF:FF:FF:FF  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:2147483647 overruns:0 frame:0
          TX packets:0 errors:0 dropped:36 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          Interrupt:5 Base address:0x4000 

# tail -2 /var/adm/messages
Apr 12 22:29:05 chaos kernel: NETDEV WATCHDOG: eth1: transmit timed out
Apr 12 22:29:05 chaos kernel: eth1: Setting 100mbps half-duplex based on auto-negotiated partner ability ffff.

# tail -5 /var/adm/debug
Apr 12 22:29:05 chaos kernel: eth1: Tx queue start entry 4  dirty entry 0.
Apr 12 22:29:05 chaos kernel: eth1:  Tx descriptor 0 is 00002000. (queue head)
Apr 12 22:29:05 chaos kernel: eth1:  Tx descriptor 1 is 00002000.
Apr 12 22:29:05 chaos kernel: eth1:  Tx descriptor 2 is 00002000.
Apr 12 22:29:05 chaos kernel: eth1:  Tx descriptor 3 is 00002000.

# lspci -vvv
02:0d.0 Ethernet controller: D-Link System Inc: Unknown device 0300 (rev 10)
	Subsystem: D-Link System Inc: Unknown device 0300
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR+
	Latency: 32 (8000ns min, 16000ns max)
	Interrupt: pin A routed to IRQ 5
	Region 0: I/O ports at b400 [size=256]
	Region 1: Memory at ec800000 (32-bit, non-prefetchable) [size=256]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1-,D2+,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

# tail /proc/pci
  Bus  2, device  13, function  0:
    Ethernet controller: D-Link System Inc DFE538TXR (rev 16).
      IRQ 5.
      Master Capable.  Latency=32.  Min Gnt=32.Max Lat=64.
      I/O at 0xb400 [0xb4ff].
      Non-prefetchable 32 bit memory at 0xec800000 [0xec8000ff].

Cheers, John Roberts