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.