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