Problems with Cogent EM110 TX PCI [LONG]

Haim Dimermanas Haim.Dimermanas@epita.fr
Fri Apr 9 12:19:36 1999


Hello,

 It is my first post to this mailing list, but I already read some archives
on Greg Siekas web site.

 In short (the details will be explained below), I have Media recognition
problems with a Cogent EM110 TX PCI network card. The network card do not
want to be put in a 10baseT media.


What I have :
-----------

 A COGENT EM110 TX PCI Card with a Digital 21140-AB chip.
 Linux 2.0.36 on a Debian 2.1
 I use the latest tulip driver (v0.90Z) as a module
 A brain (fully fonctionnal I guess)


What's happening :
----------------

 At the boot (complete dmesg at the end of the mail) I have

---8<------CUT_HERE-----8<-------
eth0: Digital DS21140 Tulip rev 18 at 0xfc80, 00:00:92:96:13:61, IRQ 11.
eth0: Old format EEPROM on 'Cogent EM100' board.  Using substitute media
control info.
eth0:  EEPROM default media type Autosense.
eth0:  Index #0 - Media 100baseFx (#7) described by a 21140 non-MII (0)
block.
eth0:  Index #1 - Media 100baseFx-FD (#8) described by a 21140 non-MII (0)
block.
eth0:  Index #2 - Media 100baseTx (#3) described by a 21140 non-MII (0)
block.
---8<------CUT_HERE-----8<-------


What I did :
----------

 At first, I did a simple "ifconfig eth0 media 10baseT". The system
answered me : "SIOCSIFMAP: Operation not supported".

 I downloaded the latest tulip driver, and looked for the documentation
concerning the media types. I edited the driver, putting in the option 12
instead of 0, not working. I tried 9, neither. Each time I modified the
source code, I compiled it using the command described at the end of
tulip.c, then I copiede the tulip.o in the module directory
(/lib/modules/2.0.36/net), then a simple depmod -a, an then reboot.
 
 I need to precise that I also try to edit the conf.module file in
/etc. Just as the doc says (alias eth0 tulip, options ...etc). I tried a
lot of combinaisons (media specification in the source code but not in the
conf.module, the opposite, both, etc..) And nothing worked.
 
 I downloaded the tulip-diag.c file. Compilation ok. The output is locateed
at the very end of this message. I had this output using :
./tulip-diag -p 0xfc80 -f -e -v -v -v -a -e -e -m

 I needed to specify the port, because the program itself didn't find the
card at first. You will have an output of the /proc/pci in the references.


What should I do now :
--------------------

 I am asking you.


Thank you for reading all this, and thank you for advance for the solution
you will give me.

Haim.

REFERENCES :
----------

/proc/pci :
---8<------CUT_HERE-----8<-------
PCI devices found:
  Bus  0, device   5, function  0:
    SCSI storage controller: Adaptec AIC-7871 (rev 3).
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  Master Capable.
Latency=64.  Min Gnt=8.Max Lat=8.
      I/O at 0xe800.
      Non-prefetchable 32 bit memory at 0xffbde000.
  Bus  0, device   4, function  0:
    VGA compatible controller: S3 Inc. Trio32/Trio64 (rev 0).
      Medium devsel.  IRQ 11.  
      Non-prefetchable 32 bit memory at 0xfe000000.
  Bus  0, device   3, function  0:
    PCI bridge: DEC DC21050 (rev 2).
      Medium devsel.  Fast back-to-back capable.  Master Capable.
Latency=64.  Min Gnt=34.
  Bus  0, device   2, function  0:
    Non-VGA device: Intel 82375EB (rev 5).
      Medium devsel.  Master Capable.  Latency=248.  
  Bus  0, device   1, function  0:
    SCSI storage controller: Adaptec AIC-7870 (rev 3).
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.
Latency=64.  Min Gnt=8.Max Lat=8.
      I/O at 0xec00.
      Non-prefetchable 32 bit memory at 0xffbdf000.
  Bus  0, device   0, function  0:
    Host bridge: Intel 82434LX Mercury/Neptune (rev 17).
      Slow devsel.  Master Capable.  Latency=32.  
---8<------CUT_HERE-----8<-------

dmesg :

---8<------CUT_HERE-----8<-------
Memory: sized by int13 0e801h
Console: 16 point font, 400 scans
Console: colour VGA+ 80x25, 1 virtual console (max 63)
pcibios_init : BIOS32 Service Directory structure at 0x000f6f10
pcibios_init : BIOS32 Service Directory entry at 0xf6f20
pcibios_init : PCI BIOS revision 2.10 entry at 0xf6f41
Probing PCI hardware.
Calibrating delay loop.. ok - 66.56 BogoMIPS
Memory: 127868k/131072k available (696k kernel code, 384k reserved, 2124k
data)
Swansea University Computer Society NET3.035 for Linux 2.0
NET3: Unix domain sockets 0.13 for Linux NET3.035.
Swansea University Computer Society TCP/IP for NET3.034
IP Protocols: ICMP, UDP, TCP
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Checking 'hlt' instruction... Ok.
Intel Pentium with F0 0F bug - workaround enabled.
alias mapping IDT readonly ...  ... done
Linux version 2.0.36 (root@panda) (gcc version 2.7.2.3) #1 Thu Apr 8
15:19:19 EST 1999
Starting kswapd v 1.4.2.2 
Serial driver version 4.13 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16550A
tty01 at 0x02f8 (irq = 3) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
(scsi0) <Adaptec AIC-7870 SCSI host adapter> found at PCI 1/0
(scsi0) Narrow Channel, SCSI ID=7, 16/255 SCBs
(scsi0) Downloading sequencer code... 412 instructions downloaded
(scsi1) <Adaptec AHA-294X SCSI host adapter> found at PCI 5/0
(scsi1) Wide Channel, SCSI ID=7, 16/255 SCBs
(scsi1) Downloading sequencer code... 412 instructions downloaded
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.11/3.2.4
       <Adaptec AIC-7870 SCSI host adapter>
scsi1 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.11/3.2.4
       <Adaptec AHA-294X SCSI host adapter>
scsi : 2 hosts.
  Vendor: SONY      Model: CD-ROM CDU-76S    Rev: 1.1c
  Type:   CD-ROM                             ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 5, lun 0
(scsi0:0:5:0) Synchronous at 5.0 Mbyte/sec, offset 15.
  Vendor: HP        Model: C1533A            Rev: 9503
  Type:   Sequential-Access                  ANSI SCSI revision: 02
Detected scsi tape st0 at scsi0, channel 0, id 6, lun 0
(scsi0:0:6:0) Synchronous at 10.0 Mbyte/sec, offset 8.
  Vendor: SEAGATE   Model: ST15150N          Rev: 0011
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sda at scsi1, channel 0, id 1, lun 0
(scsi1:0:1:0) Synchronous at 10.0 Mbyte/sec, offset 15.
  Vendor: SEAGATE   Model: ST15150N          Rev: 0011
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdb at scsi1, channel 0, id 2, lun 0
(scsi1:0:2:0) Synchronous at 10.0 Mbyte/sec, offset 15.
  Vendor: SEAGATE   Model: ST15150N          Rev: 0019
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdc at scsi1, channel 0, id 3, lun 0
(scsi1:0:3:0) Synchronous at 10.0 Mbyte/sec, offset 15.
scsi : detected 1 SCSI tape 1 SCSI cdrom 3 SCSI disks total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 8388315 [4095 MB] [4.1
GB]
SCSI device sdb: hdwr sector= 512 bytes. Sectors= 8388315 [4095 MB] [4.1
GB]
SCSI device sdc: hdwr sector= 512 bytes. Sectors= 8388315 [4095 MB] [4.1
GB]
Partition check:
 sda: sda1 sda2 < sda5 sda6 sda7 sda8 >
 sdb: sdb1
 sdc: sdc1
VFS: Mounted root (ext2 filesystem) readonly.
Adding Swap: 130748k swap-space (priority -1)
Adding Swap: 130748k swap-space (priority -2)
Adding Swap: 130748k swap-space (priority -3)
Adding Swap: 130748k swap-space (priority -4)
PS/2 auxiliary pointing device detected -- driver installed.
eth0: Digital DS21140 Tulip rev 18 at 0xfc80, 00:00:92:96:13:61, IRQ 11.
eth0: Old format EEPROM on 'Cogent EM100' board.  Using substitute media
control info.
eth0:  EEPROM default media type Autosense.
eth0:  Index #0 - Media 100baseFx (#7) described by a 21140 non-MII (0)
block.
eth0:  Index #1 - Media 100baseFx-FD (#8) described by a 21140 non-MII (0)
block.
eth0:  Index #2 - Media 100baseTx (#3) described by a 21140 non-MII (0)
block.
---8<------CUT_HERE-----8<-------

tulip-diag :

---8<------CUT_HERE-----8<-------
localhost (/tmp) #./tulip-diag -p 0xfc80 -f -e -v -v -v -a -e -e -m
tulip-diag.c:v1.08 2/28/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Digital Tulip, unknown type Tulip chip registers at 0xfc80:
  fff88000 ffffffff ffffffff 00fff028 00fff228 fc660000 e3842002 ffffebef
  fffe0000 fffd97ff ffffffff fffe0000 ffffff81 ffffffff 1c09fdc0 fffffec8
 Port selection is 100mbps-SYM/PCS 100baseTx scrambler, half-duplex.
 Transmit started, Receive started, half-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Idle'.
  The transmit threshold is 128.
EEPROM contents:
  0000 9692 6113 8e38 388e 1361 9296 0000
  0000 9692 6113 8e38 00ff aa55 00ff aa55
  0314 ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
 ID CRC 0x9f (vs. 00), complete CRC 4e0561e8.
  * An old-style EEPROM layout was found.
  * The old-style layout does not contain transceiver control information.
  * This board may not work, or may work only with a subset of transceiver
  * options or data rates.
 mdio_read(0xfc80, 0, 1)..1 b1 b1 b1 b0 11 b1 b0 10 10 10 10 10 10 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 1, 1)..1 b1 b1 b1 b0 11 b1 b0 10 10 10 10 11 b0 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 2, 1)..1 b1 b1 b1 b0 11 b1 b0 10 10 10 11 b0 10 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 3, 1)..1 b1 b1 b1 b0 11 b1 b0 10 10 10 11 b1 b0 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 4, 1)..1 b1 b1 b1 b0 11 b1 b0 10 10 11 b0 10 10 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 5, 1)..1 b1 b1 b1 b0 11 b1 b0 10 10 11 b0 11 b0 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 6, 1)..1 b1 b1 b1 b0 11 b1 b0 10 10 11 b1 b0 10 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 7, 1)..1 b1 b1 b1 b0 11 b1 b0 10 10 11 b1 b1 b0 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 8, 1)..1 b1 b1 b1 b0 11 b1 b0 10 11 b0 10 10 10 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 9, 1)..1 b1 b1 b1 b0 11 b1 b0 10 11 b0 10 11 b0 10 10 10
11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 10, 1)..1 b1 b1 b1 b0 11 b1 b0 10 11 b0 11 b0 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 11, 1)..1 b1 b1 b1 b0 11 b1 b0 10 11 b0 11 b1 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 12, 1)..1 b1 b1 b1 b0 11 b1 b0 10 11 b1 b0 10 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 13, 1)..1 b1 b1 b1 b0 11 b1 b0 10 11 b1 b0 11 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 14, 1)..1 b1 b1 b1 b0 11 b1 b0 10 11 b1 b1 b0 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 15, 1)..1 b1 b1 b1 b0 11 b1 b0 10 11 b1 b1 b1 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 16, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b0 10 10 10 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 17, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b0 10 10 11 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 18, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b0 10 11 b0 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 19, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b0 10 11 b1 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 20, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b0 11 b0 10 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 21, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b0 11 b0 11 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 22, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b0 11 b1 b0 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 23, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b0 11 b1 b1 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 24, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b1 b0 10 10 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 25, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b1 b0 10 11 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 26, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b1 b0 11 b0 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 27, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b1 b0 11 b1 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 28, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b1 b1 b0 10 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 29, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b1 b1 b0 11 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 30, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b1 b1 b1 b0 10 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 mdio_read(0xfc80, 31, 1)..1 b1 b1 b1 b0 11 b1 b0 11 b1 b1 b1 b1 b0 10 10
10 11 b-> b c c c c c c c c c c c c c c c c c c c == 7ffff.
 ***WARNING***: No MII transceivers found!
---8<------CUT_HERE-----8<-------
-- 
 Haim DIMERMANAS     -     dudle     -     #linuxfr on IRCnet
            dudle@epita.fr  www.epita.fr/~dudle