[eepro100] Intel 82562ET EEPRO/100 freezing problems

Matt Simmons simmonmt@eng.sun.com
Fri Jan 25 14:07:04 2002

>>>>> "DB" == Donald Becker <becker@scyld.com> writes:

    DB> On Fri, 25 Jan 2002, Matt Simmons wrote:
    >> 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.

    DB> To confirm: if it's an ICH the driver shouldn't send a
    DB> refresh-multicast-list command if no packets have been
    DB> received?
That seems to be what the Intel driver is doing.  Take a look at the
e100_watchdog() routine I mentioned.

    DB> What about normal multicast list updates?  Should the driver
    DB> always use the rx-all-multicast bit if any multicast traffic
    DB> is to be received?  Or should it fill the multicast list (with
    DB> CmdMulticastList / 0x30000) as it does with the other eepro100
    DB> chips?
I haven't a clue.  It looks like they're only doing the conditional
execution in the watchdog cases - I don't see any funkiness in the
other multicast routines.  If only Intel would let the world see an
SCCS'd version of the driver, so we could tell exactly what changed
when ICH3 support was added.

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

    DB> Yup, the speedo_timer() routine is the watchdog routine that
    DB> checks for the old Rx-hang bug that can be cleared by
    DB> resetting the multicast list.
Right.  My impression is that this workaround is no longer necessary,
and can in fact be fatal, like we're seeing now.


		 Matt Simmons - simmonmt@eng.sun.com
	   When someone tells you "The best things in life are free,"
	   it means one of two  things -- either they're a liar or...
		     well, I guess it only means one thing.