[eepro100-bug] Tx timeout on HP Omnibook XE3/GF (not sleep mode bit)

Michele Bergonzoni bergonz@labs.it
Fri Jul 26 07:00:01 2002


Hello everybody,

I have an HP Omnibook XE3/GF, with embedded Intel chip. I am running Linux
2.4.18.

I usually have no problems when using my ethernet attached to a "normal"
network, i.e. with an IP address assigned. I can generate and receive lots
of traffic at 100 Mbit/s without problems.

I have timeouts when I use the PC at home with PPPoE. I am using the PPPoE
driver in the 2.4 kernel. When I do long downloads, I see that the data is
interrupted for 20-30 seconds, and than restarts. In the dmesg I see the
dreaded "Transmit timed out" messages. Here are the details:

This is the output of eepro-100-diag: as you can see, I disabled the sleep
mode bit as suggested:


eepro100-diag.c:v2.09 7/15/2002 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a Intel Pro/100 VE (type 1031) adapter at 0x2400.
i82557 chip registers at 0x2400:
  00000000 00000000 00000000 00080002 18203100 00000000
  No interrupt sources are pending.
   The transmit unit state is 'Idle'.
   The receive unit state is 'Idle'.
  This status is unusual for an activated interface.
EEPROM contents, size 64x16:
    00: 0200 313f 9813 1b03 0000 0201 4701 0000
  0x08: 0000 0000 49b0 0021 103c 007f 0000 0000
      ...
  0x20: 0000 0000 0000 1031 0000 0000 0000 0000
      ...
  0x30: 002c 4000 4012 0000 0000 0000 0000 0000
  0x38: 0000 0000 0000 4030 0000 0000 0000 6038
 The EEPROM checksum is correct.
Intel EtherExpress Pro 10/100 EEPROM contents:
  Station address 00:02:3F:31:13:98.
  Board assembly 000000-000, Physical connectors present: RJ45
  Primary interface chip i82555 PHY #1.


This is the dmesg of the driver when loaded:

eepro100.c:v1.23 6/5/2002 Donald Becker <becker@scyld.com>
  http://www.scyld.com/network/eepro100.html
eth0: OEM Intel Pro/100 VE (type 1031) at 0xd07d8000, 00:02:3F:31:13:98,
IRQ 9.  Board assembly 000000-000, Physical connectors present: RJ45
  Primary interface chip i82555 PHY #1.
  General self-test: passed.
  Serial sub-system self-test: passed.
  Internal registers self-test: passed.
  ROM checksum self-test: passed (0x04f4518b).

This is the dmesg when trouble happens:


eth0: Transmit timed out: status 0050  0080 at 458/460 commands 000c0000
400c0000 000ca000.
Command 0080 was not immediately accepted, 10001 ticks!
eth0: Tx ring dump,  Tx queue 460 / 458:
eth0:   0 000ca000.
eth0:   1 000ca000.
eth0:   2 000ca000.
eth0:   3 000ca000.
eth0:   4 000ca000.
eth0:   5 000ca000.
eth0:   6 000ca000.
eth0:   7 000ca000.
eth0:   8 000ca000.
eth0:   9 000ca000.
eth0: * 10 000c0000.
eth0:   11 400c0000.
eth0:  =12 000ca000.
eth0:   13 000ca000.
eth0:   14 000ca000.
eth0:   15 000ca000.
eth0:   16 000ca000.
eth0:   17 000ca000.
eth0:   18 000ca000.
eth0:   19 000ca000.
eth0:   20 000ca000.
eth0:   21 000ca000.
eth0:   22 000ca000.
eth0:   23 000ca000.
eth0:   24 000ca000.
eth0:   25 000ca000.
eth0:   26 000ca000.
eth0:   27 000ca000.
eth0:   28 000ca000.
eth0:   29 000ca000.
eth0:   30 000ca000.
eth0:   31 000ca000.
eth0:Printing Rx ring (next to receive into 613).
  Rx ring entry 0  00000001.
  Rx ring entry 1  00000001.
  Rx ring entry 2  00000001.
  Rx ring entry 3  00000001.
  Rx ring entry 4  c0000001.
  Rx ring entry 5  00000001.
  Rx ring entry 6  00000001.
  Rx ring entry 7  00000001.
  Rx ring entry 8  00000001.
  Rx ring entry 9  00000001.
  Rx ring entry 10  00000001.
  Rx ring entry 11  00000001.
  Rx ring entry 12  00000001.
  Rx ring entry 13  00000001.
  Rx ring entry 14  00000001.
  Rx ring entry 15  00000001.
  Rx ring entry 16  00000001.
  Rx ring entry 17  00000001.
  Rx ring entry 18  00000001.
  Rx ring entry 19  00000001.
  Rx ring entry 20  00000001.
  Rx ring entry 21  00000001.
  Rx ring entry 22  00000001.
  Rx ring entry 23  00000001.
  Rx ring entry 24  00000001.
  Rx ring entry 25  00000001.
  Rx ring entry 26  00000001.
  Rx ring entry 27  00000001.
  Rx ring entry 28  00000001.
  Rx ring entry 29  00000001.
  Rx ring entry 30  00000001.
  Rx ring entry 31  00000001.
  PHY index 1 register 0 is 3100.
  PHY index 1 register 1 is 782d.
  PHY index 1 register 2 is 02a8.
  PHY index 1 register 3 is 0330.
  PHY index 1 register 4 is 05e1.
  PHY index 1 register 5 is 0021.
  PHY index 1 register 21 is 0000.
eth0: Restarting the chip..



I hope this info will help improve the quality of this already fine driver.
I someone needs further details, please don't hesitate to ask.

I am now connecting to the ADSL modem with a 3com PCMCIA, which works fine,
but of course this is just a workaround.


Regards,
                                       Bergonz

-- 
Ing. Michele Bergonzoni - Laboratori Fondazione Guglielmo Marconi
info and PGP key at http://www.labs.it/bergonz/
Phone:+39-051-6781926 Fax:+39-051-846479 e-mail: bergonz@labs.it
Telecommunications consultants, Microwave systems & circuits development.