[eepro100] sleep mode persistence
Frank Lenaerts
Frank Lenaerts <lenaerts.frank@pandora.be>
Sun Sep 29 10:47:01 2002
Hi,
I have a question regarding the sleep mode of the eepro100. Because
the sleep mode is enabled by default, I issued an eepro100-diag -ee -G
0 -w -w -f to disable the sleep mode. I then shutdown the machine with
a shutdown -h now, powered off but left the power cord connected. As I
am dealing with an ATX mobo, the power wasn't actually really cut
off. When I powered on the machine again, eepro100-diag -ee -f did not
show the sleep mode message anymore, and the network adapter worked
fine.
Later on however, I also unplugged the power cord. The next time I
booted, the network adapter did not seem to work anymore. The output
of eepro100-diag -ee -f showed an incorrect EEPROM checksum.
--- begin ---
escher:~# eepro100-diag -ee -f
eepro100-diag.c:v2.05 6/13/2001 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a Intel i82557/8/9 EtherExpressPro100 adapter at 0xb400.
EEPROM contents, size 256x16:
00: ffff ffff ffff ffff ffff ffff ffff ffff
0x08: ffff ffff ffff ffff ffff ffff ffff ffff
0x10: ffff ffff ffff ffff ffff ffff ffff ffff
0x18: ffff ffff ffff ffff ffff ffff ffff ffff
0x20: ffff ffff ffff ffff ffff ffff ffff ffff
0x28: ffff ffff ffff ffff ffff ffff ffff ffff
0x30: ffff ffff ffff ffff ffff ffff ffff ffff
0x38: ffff ffff ffff ffff ffff ffff ffff ffff
0x40: ffff ffff ffff ffff ffff ffff ffff ffff
0x48: ffff ffff ffff ffff ffff ffff ffff ffff
0x50: ffff ffff ffff ffff ffff ffff ffff ffff
0x58: ffff ffff ffff ffff ffff ffff ffff ffff
0x60: ffff ffff ffff ffff ffff ffff ffff ffff
0x68: ffff ffff ffff ffff ffff ffff ffff ffff
0x70: ffff ffff ffff ffff ffff ffff ffff ffff
0x78: ffff ffff ffff ffff ffff ffff ffff ffff
0x80: ffff ffff ffff ffff ffff ffff ffff ffff
0x88: ffff ffff ffff ffff ffff ffff ffff ffff
0x90: ffff ffff ffff ffff ffff ffff ffff ffff
0x98: ffff ffff ffff ffff ffff ffff ffff ffff
0xa0: ffff ffff ffff ffff ffff ffff ffff ffff
0xa8: ffff ffff ffff ffff ffff ffff ffff ffff
0xb0: ffff ffff ffff ffff ffff ffff ffff ffff
0xb8: ffff ffff ffff ffff ffff ffff ffff ffff
0xc0: ffff ffff ffff ffff ffff ffff ffff ffff
0xc8: ffff ffff ffff ffff ffff ffff ffff ffff
0xd0: ffff ffff ffff ffff ffff ffff ffff ffff
0xd8: ffff ffff ffff ffff ffff ffff ffff ffff
0xe0: ffff ffff ffff ffff ffff ffff ffff ffff
0xe8: ffff ffff ffff ffff ffff ffff ffff ffff
0xf0: ffff ffff ffff ffff ffff ffff ffff ffff
0xf8: ffff ffff ffff ffff ffff ffff ffff ffff
***** The EEPROM checksum is INCORRECT! *****
The checksum is 0xFF00, it should be 0xBABA!
Intel EtherExpress Pro 10/100 EEPROM contents:
Station address FF:FF:FF:FF:FF:FF.
Board assembly ffffff-255, Physical connectors present: RJ45 BNC AUI MII
Primary interface chip i82555 PHY #-1.
Secondary interface chip i82555, PHY -1.
Sleep mode is enabled. This is not recommended.
Under high load the card may not respond to
PCI requests, and thus cause a master abort.
escher:~#
--- end ---
This problem also seems to generate some other error messages as can
be noted in the dmesg output.
--- begin ---
eepro100: wait_for_cmd_done timeout!
eepro100: wait_for_cmd_done timeout!
eepro100: wait_for_cmd_done timeout!
eepro100: wait_for_cmd_done timeout!
eepro100: wait_for_cmd_done timeout!
eepro100: wait_for_cmd_done timeout!
eepro100: wait_for_cmd_done timeout!
--- end ---
I started doing some tests and noticed that this problem only occurs
after a complete (i.e. really no power to the mobo) power outage. When
I really cut off the power, and then boot the machine, I always get
this incorrect EEPROM checksum. If I just reboot or shutdown the
machine (without pulling the power cord out of the case) right after
the first boot, the problem is solved.
--- begin ---
escher:~# eepro100-diag -ee -f
eepro100-diag.c:v2.05 6/13/2001 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a Intel i82557/8/9 EtherExpressPro100 adapter at 0xb400.
EEPROM contents, size 64x16:
00: 0200 4cb3 0e1f 020b ffff 0201 4701 ffff
0x08: 7517 6704 50a0 0040 8086 fe73 ffff ffff
0x10: ffff ffff ffff ffff ffff ffff ffff ffff
0x18: ffff ffff ffff ffff ffff ffff ffff ffff
0x20: ffff ffff ffff 1229 ffff ffff ffff ffff
0x28: ffff ffff ffff ffff ffff ffff ffff ffff
0x30: 002c 4000 3003 ffff ffff ffff ffff ffff
0x38: ffff ffff ffff ffff ffff ffff ffff e4be
The EEPROM checksum is correct.
Intel EtherExpress Pro 10/100 EEPROM contents:
Station address 00:02:B3:4C:1F:0E.
Board assembly 751767-004, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
Secondary interface chip i82555, PHY -1.
escher:~#
--- end ---
As expected, there are not wait_for_cmd_done timeout error messages
anymore in this case.
According to me, this means that disabling the sleep mode bit must
have worked, because it is disabled after a reboot.
It seems however:
- that the contents of the EEPROM cannot be read when the machine is
powered on the first time
or
- that there is some trigger during the shutdown process so that the
EEPROM can be read during the next boot (as long as the mobo has
power) or reboot
Anyone any idea what might be the cause of this problem?
--
lenaerts.frank@pandora.be
Those who do not understand Unix are condemned to reinvent it, poorly."
-- Henry Spencer