Subject: Re: odd RTL8139 quirk.

From: Stephen Hemminger <[email-masked]>
Date: Wed, 30 Apr 2008 08:19:22 -0700

On Wed, 30 Apr 2008 07:13:48 -0400
Jeff Garzik <[email-masked]> wrote:

> Andrew Morton wrote:
> > On Tue, 29 Apr 2008 18:04:06 -0400
> > Jeff Garzik <[email-masked]> wrote:
> > 
> >> Dave Jones wrote:
> >>> On Tue, Apr 29, 2008 at 03:37:41PM -0400, Jeff Garzik wrote:
> >>>  > Dave Jones wrote:
> >>>  > > I've just been playing with a model 2 OQO, which has an RTL8139.
> >>>  > > It gets detected just fine, though it doesn't actually work..
> >>>  > > 
> >>>  > > eth0: RealTek RTL8139 at 0xf8830000, 00:00:00:00:00:00, IRQ 18
> >>>  > > eth0:  Identified 8139 chip type 'RTL-8139'
> >>>  > > 
> >>>  > > The null MAC address being one clue.  Another oddity is that
> >>>  > > ethtool reports that there's no link detected, even though there is.
> >>>  > > (Enough for it to PXE boot a kernel from at least :)
> >>>  > > 
> >>>  > > Futzing with the debug= modparam didn't yield anything extra at all.
> >>>  > > 
> >>>  > > Any clues?
> >>>  > 
> >>>  > Sounds like a broken EEPROM.  Does supplying a MAC via ifconfig prior to 
> >>>  > 'ifconfig ... up' help?
> >>>
> >>> Ah. This sounds enlightening: http://www.oqotalk.com/index.php/topic,1511.0.html
> >>> Seems a shame to have to choose PIO vs MMIO for a distro kernel though.
> >>> Would there be any objection to turning that into a modparam ?
> >>> (If we wanted to get really fancy, we could even quirk around it automatically
> >>>  when we detect broken hardware).
> >> Something like this?  :)
> >>
> >> http://www.linux.sgi.com/archives/netdev/2004-11/msg00226.html
> >>
> >> It did not go upstream but it needed some init-time bug fixing, IIRC. 
> >> Maybe akpm remembers more why my patch sucked... :)
> > 
> > Apart from its From: address you mean? ;)
> > 
> > I can find no record, sorry.
> 
> Yeah, it was in -mm for a while (via netdev-2.6.git#ALL most likely), 
> and a -mm tester reported that it consistently oops for him, or 
> something along those lines.
> 
> You continually (and rightly!) pestered me about it, and I withdrew the 
> patch from -mm since I didn't have time to futz with it.

Is there any possibility for the driver to discover broken MMIO at runtime?
Could it look for some portion like mac address or HW_REVID being all zeros or all ones?