Genica GN-788 on Linux 2.4.20

"andrew cooke" <[email protected]> Sat, 14 Jun 2003 23:31:30 -0400 (CLT)
Newsgroups gmane.linux.drivers.tulip.general
Message-ID <[email protected]>
Hi,

I have just bought a new network card and it doesn't appear to work.  I
would appreciate any suggestions - I'm not a network wizard, so I may have
done something stupid.

Since I have been trying to fix this for some time, I have a lot of
information.  Here I'll focus on comparing two cards (eth0 and eth1) - one
works and the other doesn't, in identical circumstances (as far as I can
tell - the one that doesn't work uses the Tulip driver).

The computer is a fairly modern Linux box, running a newly compiled
(today) 2.4.20 kernel (Debian).  The following is from the startup
messages:

tulip0:  MII transceiver #1 config 3100 status 7809 advertising 01e1.
eth0: Davicom DM9102/DM9102A rev 64 at 0xac00, 00:08:A1:23:AF:A8, IRQ 10.
eth1: ADMtek Comet rev 17 at 0xb000, 00:00:E8:12:B1:93, IRQ 11.
dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17)
8139too Fast Ethernet driver 0.9.26
eth2: RealTek RTL8139 Fast Ethernet at 0xf880d000, 00:30:84:73:45:4f, IRQ 11
eth2:  Identified 8139 chip type 'RTL-8139C'

eth0 is the new card, using a Tulip driver.  It's a Genica GN-788 and
comes with instructions for older kernels (2.2/2.3) that indicate that a
Tulip driver is required (they use their own "compatible" chipset).

Note that eth2 is a third card that I will not refer to here (it connects
to a cable modem - the idea is that eth0 and eth1 will connect to two
separate internal networks).

I am surprised by the IRQ numbers, but I guess they can be shared?

tonto:/etc/init.d# cat /proc/interrupts
           CPU0
  0:     129739          XT-PIC  timer
  1:       5980          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  4:       7625          XT-PIC  serial
  8:          4          XT-PIC  rtc
 10:         38          XT-PIC  eth0
 11:     110193          XT-PIC  sym53c8xx, sym53c8xx, usb-uhci, usb-uhci,
usb-uhci, nvidia, eth2, eth1
 12:      34716          XT-PIC  PS/2 Mouse
 14:          4          XT-PIC  ide0
NMI:          0
LOC:     129705
ERR:         36
MIS:          0

the sym... is a SCSI controller.

Looking at my BIO settings, it seems I have very little control over IRQ
distribution (all I can do is withold particular IRQs from PCI - I cannot
choose which IRQ is associated with which slot/card).  Neither network
card (eth0 or eth1) has any kind of jumper.

I rotated the positions of some cards, changing the ordering of eth1 and
eth0 physically, and changing the names associated with them, but the
problem remained.


Moving on, I can connect either eth0 or eth1 via a hub to another
computer, at 10.2.1.2.  When I connect eth1 everything works fine:

tonto:/etc/init.d# mii-diag eth1
Basic registers of MII PHY #1:  3100 7869 001d 2411 05e1 0081 0014 2001.
 Basic mode control register 0x3100: Auto-negotiation enabled.
 Basic mode status register 0x7869 ... 786d.
   Link status: previously broken, but now reestablished.
 Your link partner is generating 100baseTx link beat  (no autonegotiation).
   End of basic transceiver information.

tonto:/etc/init.d# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:08:A1:23:AF:A8
          inet addr:10.2.0.1  Bcast:10.2.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:21 dropped:0 overruns:0 carrier:21
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:1670 (1.6 KiB)
          Interrupt:10 Base address:0xac00

eth1      Link encap:Ethernet  HWaddr 00:00:E8:12:B1:93
          inet addr:10.2.1.1  Bcast:10.2.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:159 dropped:0 overruns:0 carrier:318
          collisions:0 txqueuelen:100
          RX bytes:610 (610.0 b)  TX bytes:0 (0.0 b)
          Interrupt:11 Base address:0xb000

eth2      Link encap:Ethernet  HWaddr 00:30:84:73:45:4F
          inet addr:200.83.177.66  Bcast:255.255.255.255  Mask:255.255.252.0
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10414 errors:0 dropped:0 overruns:0 frame:0
          TX packets:718 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:884313 (863.5 KiB)  TX bytes:120420 (117.5 KiB)
          Interrupt:11 Base address:0xd000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:7279 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7279 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2062866 (1.9 MiB)  TX bytes:2062866 (1.9 MiB)

tonto:/etc/init.d# ping 10.2.1.2
PING 10.2.1.2 (10.2.1.2): 56 data bytes
64 bytes from 10.2.1.2: icmp_seq=0 ttl=129 time=0.6 ms
64 bytes from 10.2.1.2: icmp_seq=1 ttl=129 time=0.6 ms

--- 10.2.1.2 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.6/0.6/0.6 ms


However, when I switch to eth0 (by altering network parameters and moving
cable) (new card, Tulip driver), ping fails:

tonto:/etc/init.d# mii-diag eth0
Basic registers of MII PHY #1:  3000 7829 0181 b841 01e1 0081 0000 0000.
 Basic mode control register 0x3000: Auto-negotiation enabled.
 Basic mode status register 0x7829 ... 782d.
   Link status: previously broken, but now reestablished.
 Your link partner is generating 100baseTx link beat  (no autonegotiation).
   End of basic transceiver information.

tonto:/etc/init.d# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:08:A1:23:AF:A8
          inet addr:10.2.1.1  Bcast:10.2.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:22 dropped:0 overruns:0 carrier:22
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:1670 (1.6 KiB)
          Interrupt:10 Base address:0xac00

eth1      Link encap:Ethernet  HWaddr 00:00:E8:12:B1:93
          inet addr:10.2.0.1  Bcast:10.2.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:182 dropped:0 overruns:0 carrier:364
          collisions:0 txqueuelen:100
          RX bytes:806 (806.0 b)  TX bytes:0 (0.0 b)
          Interrupt:11 Base address:0xb000

eth2      Link encap:Ethernet  HWaddr 00:30:84:73:45:4F
          inet addr:200.83.177.66  Bcast:255.255.255.255  Mask:255.255.252.0
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11507 errors:0 dropped:0 overruns:0 frame:0
          TX packets:763 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:958772 (936.3 KiB)  TX bytes:135148 (131.9 KiB)
          Interrupt:11 Base address:0xd000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8215 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8215 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2312111 (2.2 MiB)  TX bytes:2312111 (2.2 MiB)

tonto:/etc/init.d# ping 10.2.1.2
PING 10.2.1.2 (10.2.1.2): 56 data bytes

--- 10.2.1.2 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss


Interestingly, in both cases iptables logs the outgoing ICMP packet, but
only in the case of eth1 (when ping works) does iptraf notice any traffic.
 Does this identify the problem somewhere within the TCP/IP stack?

Note that switching between cards is fairly complex, and I do make
mistakes at times.  But I have done this *very* many times today/tonight
and it is 100% repeatable.  I can see the same basic behaviour without
iptables and connecting to other cards.

Any help would be appreciated.

Thanks,
Andrew

-- 
http://www.acooke.org/andrew
_______________________________________________
tulip mailing list, [email protected]
To change to digest mode or unsubscribe visit
http://www.scyld.com/mailman/listinfo/tulip