[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.