[tulip] many tulip problems with a cogent 4port nic

Dave@keston.u-net.com Dave@keston.u-net.com
Sat, 14 Jul 2001 00:35:32


Dear Donald,
     i seem to be in the unfortunate position of owning a motherboard with an AMI bios, and a 4 port NIC.  The NIC is a cogent 4port thingy, with four DEC 21040 chips and the 21050 ( i think) pci-pci bridge. (i am sorry i cannot be more specific but i cant gain access to the card, and am working from memory on what it is)

      Firstly, i am running linux kernel 2.4.5, and using the tulip driver built with the kernel sources.
      It would seem that i have a problem with the probing of the card, ie, the card has one (S?)ROM and the probing is being done in the wrong order (apparently a bios problem, yes ?)

here is the output from dmesg with respect to the tulip driver:
Linux Tulip driver version 0.9.15-pre2 (May 16, 2001)
eth0: Digital DC21040 Tulip rev 36 at 0xfc80, EEPROM not present, 00:4C:69:6E:75:79, IRQ 11.
eth1: Digital DC21040 Tulip rev 36 at 0xfc00, EEPROM not present, 00:4C:69:6E:75:7A, IRQ 11.
eth2: Digital DC21040 Tulip rev 36 at 0xf880, EEPROM not present, 00:4C:69:6E:75:7B, IRQ 11.
eth3: Digital DC21040 Tulip rev 36 at 0xf800, 00:00:92:92:39:58, IRQ 3.

the first three eth ports have incorrect MAC addresses, bassed on \0LINUX (this is why i am guessing the probing is in the wrong order), and am i also correct in thinking the IRQ's are wrong ?

here is an output from # ./lspci -vv
00:0d.0 Class 0604: 1011:0001 (rev 02)
        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: 64, cache line size 08
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: 0000f000-0000ffff
        Memory behind bridge: ff900000-ff9fffff
        Prefetchable memory behind bridge: ff800000-ff8fffff
        BridgeCtl: Parity+ SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-

01:04.0 Class 0200: 1011:0002 (rev 24)
        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: 66
        Interrupt: pin A routed to IRQ 3
        Region 0: I/O ports at f800 [size=128]
        Region 1: Memory at ff9ff000 (32-bit, non-prefetchable) [size=128]

01:05.0 Class 0200: 1011:0002 (rev 24)
        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: 66
        Interrupt: pin A routed to IRQ 9
        Region 0: I/O ports at f880 [size=128]
        Region 1: Memory at ff9ff400 (32-bit, non-prefetchable) [size=128]

01:06.0 Class 0200: 1011:0002 (rev 24)
        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: 66
        Interrupt: pin A routed to IRQ 10
        Region 0: I/O ports at fc00 [size=128]
        Region 1: Memory at ff9ff800 (32-bit, non-prefetchable) [size=128]

01:07.0 Class 0200: 1011:0002 (rev 24)
        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: 66
        Interrupt: pin A routed to IRQ 11
        Region 0: I/O ports at fc80 [size=128]
        Region 1: Memory at ff9ffc00 (32-bit, non-prefetchable) [size=128]

which corresponds to  cat /proc/pci 

Bus  0, device  13, function  0:
    PCI bridge: Digital Equipment Corporation DECchip 21050 (rev 2).
      Master Capable.  Latency=64.  Min Gnt=3.
  Bus  1, device   7, function  0:
    Ethernet controller: Digital Equipment Corporation DECchip 21040 [Tulip] (#4) (rev 36).
      IRQ 11.
      Master Capable.  Latency=66.  
      I/O at 0xfc80 [0xfcff].
      Non-prefetchable 32 bit memory at 0xff9ffc00 [0xff9ffc7f].
  Bus  1, device   6, function  0:
    Ethernet controller: Digital Equipment Corporation DECchip 21040 [Tulip] (#3) (rev 36).
      IRQ 10.
      Master Capable.  Latency=66.  
      I/O at 0xfc00 [0xfc7f].
      Non-prefetchable 32 bit memory at 0xff9ff800 [0xff9ff87f].
  Bus  1, device   5, function  0:
    Ethernet controller: Digital Equipment Corporation DECchip 21040 [Tulip] (#2) (rev 36).
      IRQ 9.
      Master Capable.  Latency=66.  
      I/O at 0xf880 [0xf8ff].
      Non-prefetchable 32 bit memory at 0xff9ff400 [0xff9ff47f].
  Bus  1, device   4, function  0:
    Ethernet controller: Digital Equipment Corporation DECchip 21040 [Tulip] (rev 36).
      IRQ 3.
      Master Capable.  Latency=66.  
      I/O at 0xf800 [0xf87f].
      Non-prefetchable 32 bit memory at 0xff9ff000 [0xff9ff07f].


the things that stikes me there are the 'correct' (?) IRQ's and the difference in the revision.

oh, and for completeness :

root:~/tulip# ./tulip-diag -ee 
tulip-diag.c:v2.08 5/15/2001 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a Digital DC21040 Tulip adapter at 0xfc80.
 Port selection is half-duplex.
 Transmit stopped, Receive stopped, half-duplex.
  The Rx process state is 'Stopped'.
  The Tx process state is 'Stopped'.
  The transmit unit is set to store-and-forward.
EEPROM contents (64 words):
0x00:  0000 0000 0000 0000 0000 0000 0000 0000
0x08:  0000 0000 0000 0000 0000 0000 0000 0000
0x10:  0000 0000 0000 0000 0000 0000 0000 0000
0x18:  0000 0000 0000 0000 0000 0000 0000 0000
0x20:  0000 0000 0000 0000 0000 0000 0000 0000
0x28:  0000 0000 0000 0000 0000 0000 0000 0000
0x30:  0000 0000 0000 0000 0000 0000 0000 0000
0x38:  0000 0000 0000 0000 0000 0000 0000 0000
 ID block CRC 0xe3 (vs. 00).
  Full contents CRC 0x6523 (read as 0x0000).
Index #2: Found a Digital DC21040 Tulip adapter at 0xfc00.
 Port selection is half-duplex.
 Transmit stopped, Receive stopped, half-duplex.
  The Rx process state is 'Stopped'.
  The Tx process state is 'Stopped'.
  The transmit unit is set to store-and-forward.
EEPROM contents (64 words):
0x00:  0000 0000 0000 0000 0000 0000 0000 0000
0x08:  0000 0000 0000 0000 0000 0000 0000 0000
0x10:  0000 0000 0000 0000 0000 0000 0000 0000
0x18:  0000 0000 0000 0000 0000 0000 0000 0000
0x20:  0000 0000 0000 0000 0000 0000 0000 0000
0x28:  0000 0000 0000 0000 0000 0000 0000 0000
0x30:  0000 0000 0000 0000 0000 0000 0000 0000
0x38:  0000 0000 0000 0000 0000 0000 0000 0000
 ID block CRC 0xe3 (vs. 00).
  Full contents CRC 0x6523 (read as 0x0000).
Index #3: Found a Digital DC21040 Tulip adapter at 0xf880.
 Port selection is half-duplex.
 Transmit stopped, Receive stopped, half-duplex.
  The Rx process state is 'Stopped'.
  The Tx process state is 'Stopped'.
  The transmit unit is set to store-and-forward.
EEPROM contents (64 words):
0x00:  0000 0000 0000 0000 0000 0000 0000 0000
0x08:  0000 0000 0000 0000 0000 0000 0000 0000
0x10:  0000 0000 0000 0000 0000 0000 0000 0000
0x18:  0000 0000 0000 0000 0000 0000 0000 0000
0x20:  0000 0000 0000 0000 0000 0000 0000 0000
0x28:  0000 0000 0000 0000 0000 0000 0000 0000
0x30:  0000 0000 0000 0000 0000 0000 0000 0000
0x38:  0000 0000 0000 0000 0000 0000 0000 0000
 ID block CRC 0xe3 (vs. 00).
  Full contents CRC 0x6523 (read as 0x0000).
Index #4: Found a Digital DC21040 Tulip adapter at 0xf800.
 Port selection is half-duplex.
 Transmit started, Receive started, half-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Idle'.
  The transmit unit is set to store-and-forward.
EEPROM contents (64 words):
0x00:  0000 9292 5839 7d5e 5e7d 3958 9292 0000
0x08:  0000 9292 5839 7d5e 00ff aa55 00ff aa55
0x10:  0010 ffff ffff ffff 0000 9292 5939 7e5e
0x18:  5e7e 3959 9292 0000 0000 9292 5939 7e5e
0x20:  00ff aa55 00ff aa55 0010 ffff ffff ffff
0x28:  0000 9292 5a39 7f5e 5e7f 395a 9292 0000
0x30:  0000 9292 5a39 7f5e 00ff aa55 00ff aa55
0x38:  0010 ffff ffff ffff 0000 9292 5b39 805e
 ID block CRC 0x17 (vs. 00).
  Full contents CRC 0xb3ec (read as 0x805e).

i was under the impression that the drivers now didnt have a problem with reverse probing, the options in your latest sources apear to be depreciated, and dont exist anywhere else.

however, i am under the impression that your drivers are incompatable with the 2.4.x kernels (i cant get them to compile, and you say something about it on your site)

i have tried the de4x5 driver (in the kernel tree) and it doesnt seem to want to play ball either, however, it does seemingly get the IRQ's right.


the final thing, which may be related is the fact with either driver, tulip or de4x5 in the kernel tree, i can bring up any of the four interfaces, onely one of which works, however, if i try to bring up two interfaces the whole system locksup with out any messages of any sort.

i am just pulling a copy of the latest 2.2 kernel to play with that, although i really could do with the filtering in 2.4

if you have anyadvice on how to rectify the situation, or require more information, please dont hesitate to comment / ask.

Thankyou very much

Best regards,

Dave

----------------------------------------------------------
Generated by U-NET WebMail - http://www.webmail.u-net.net/

U-NET a VIA NET.WORKS company

A premier provider of internet services to business and 
serious internet users www.u-net.net Tel 0845-3308000
----------------------------------------------------------