[eepro100] Intel 82562ET EEPRO/100 freezing problems
Matt Simmons
simmonmt@eng.sun.com
Fri Jan 25 03:59:01 2002
>>>>> "MR" == Michael Rozhavsky <mrozhavsky@opticalaccess.com> writes:
MR> The solution is to disable Standby Enable bit in eeprom of the
MR> chipset.
That may be one part of the problem, but I don't think it's the whole
thing.
In my case, an rsh from a Tecra 9000 (with an ICH3) over a 10Mbit link
to some other machine was enough to to send it to the moon. An rsh to
fire off a ufsdump would nail it 100% of the time.
I took a look at the Intel driver. I'd love to quote source, but I
don't know if their license will let me. Sigh.
In e100_found1(), they force the revision to 0xff, and then to 0x1 if
the device ID is (0x1030,0x1039), which mine is (mine is a 0x1031).
The device ID causes the IS_ICH bit to be set in flags, and the
coerced revision causes rfd_size to be set to 16. I ignored the rfd
setting, with no obvious ill effect.
In e100_watchdog(), they use the coerced revision and the IS_ICH bit
to skip the multicast command.
I changed our driver to skip the multicast command in this case, and
all seems well. I've been rshing a ufsdump to /dev/null for about 20
minutes now, and it's still going. It used to die in less than a
minute.
Looking at the eepro100 driver, I think the speedo_timer() routine is
doing the offending multicast command that should be skipped. I don't
run Linux, so I can't verify it.
Hope this helps,
Matt
--
Matt Simmons - simmonmt@eng.sun.com
Those who live by the sword get shot by those who don't.