RTL8139A and Etherboot

Bryan Clingman bac@realtimeweb.com
Mon Oct 11 13:02:25 1999


> 
> On Mon, 11 Oct 1999, Bryan Clingman wrote:
> 
> > I have a 'noname' RTL8139A 10/100 PCI card that I'm using in a diskless Linux
> > box.  The system boots off of (for now) a floppy containing an etherboot-4.2.9
> > rom image that tftp's a kernel containing the RTL8139A driver.  I'm using
> > driver 1.08a in a 2.2.12 kernel.  This is on a 10mbps network, _not_ 100.
> 
> I'm uncertain of what rtl8139 code is in etherboot.

I don't know either.  I'd guess it's based on the linux code.  I'll
check tonight.

> 
> > When the kernel gets ready to NFS mount it's root filesystem, I get a several
> > kernel messages indicating
> > 
> > "Oversized Ethernet frame, status XXXXXXX"
> > If I increase the debugging level, I get
> > "eth0: Abnormal interrupt, status 0x00000020"
> > 
> > and the above message.  (This is an RxUnderrun status BTW).  These messages
> > repeat with no effective network usage. (i.e. system won't finish booting).
> 
> The new RTL8139 chips ('A' or 'B' suffix) overload the RxUnderrun bit.  It
> now means LinkChange, and you must read register 0x74 to figure out what
> happened.
> 
> > When the card initializes, I get:
> > "eth0: Setting half-duplex based on auto-negotiated partner ability 0000"
> > 
> > After a couple of tries at debugging, I decided to comment out the check for an
> > 8139 in mdio_read(), to try to get a value other than 0000 returned.  When I
> > did this, the card worked fine!!!!!  The system finished booting with no more
> > errors????  The mdio_read() function still returned 0000.  I double checked,
> > it's an 8139A with nothing else but the tranceiver on board.
> 
> Please clarify this: does the board have only the RTL8139A chip, or does it
> have a RTL8139 chip plus a second transceiver chip?

I'll look to double check later.  It's a bare-bones card.  Maybe I'm
thinking of another card.

> 
> > -	Could etherboot be leaving the card in an 8129 "emulation" mode and not
> > resetting the card?  If this is the case, who should reset the card?  Etherboot
> > or rtl8139.c?
> 
> The rtl8139.c driver should always reset the card, even if it's in a weird
> state.  The reset is only done in open(), not probe1(), since it shouldn't
> be necessary to detect the card.
> 
> > -	Is this just something to do with the RTL8139A?  I don't see anything
> > mentioned about it.  Maybe it's a new version of the silicon without a new PCI
> > ID.
> 
> There are two enhanced chips, the common 'A' version that adds WOL and fixes
> the "twister tuning" issue, and the new 'B' that adds CardBus support.  I've
> only seen one prototype 'B' card, but I expect most new shipments with use
> the latest version.
> 
> > Here's my patch to the driver....
> 
> This is pretty much evil, unless you actually have an MII transceiver on the
> board.

Agreed.  It was just to prove the point.  I still don't know why it
even worked.

> 
> Donald Becker					  becker@cesdis.gsfc.nasa.gov
> USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
> Code 930.5, Goddard Space Flight Center,  Greenbelt, MD.  20771
> 301-286-0882	     http://cesdis.gsfc.nasa.gov/people/becker/whoiam.html
> 
>  | To unsubscribe, send mail to Majordomo@cesdis.gsfc.nasa.gov, and within the
>  |  body of the mail, include only the text:
>  |   unsubscribe this-list-name youraddress@wherever.org
>  | You will be unsubscribed as speedily as possible.
> 


-- 
bac@realtimeweb.com
"Was it singin' through my nose that got me busted by the man?"
	--Waylon Jennings

 | To unsubscribe, send mail to Majordomo@cesdis.gsfc.nasa.gov, and within the
 |  body of the mail, include only the text:
 |   unsubscribe this-list-name youraddress@wherever.org
 | You will be unsubscribed as speedily as possible.