RTL8139A and Etherboot

Donald Becker becker@cesdis1.gsfc.nasa.gov
Mon Oct 11 11:51:16 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.

> 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

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

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

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.