rtl8139 pci mem freeze (more info)

Donald Becker becker@cesdis1.gsfc.nasa.gov
Tue Sep 28 11:04:47 1999


On Tue, 28 Sep 1999, Daniel Kobras wrote:

[[ Background: This topic is about getting the RTL8139 to work in memory
rather than I/O mode on certain Intel chipset motherboards. ]]

> > >  	/* We can safely update without stopping the chip. */
> > >  	outb(rx_mode, ioaddr + RxConfig);
> > > -	outl(mc_filter[0], ioaddr + MAR0 + 0);
> > > +	outl_f(mc_filter[0], ioaddr + MAR0 + 0);
> > >  	outl(mc_filter[1], ioaddr + MAR0 + 4);
> > 
> > Hmmm, this one might have to stay.
> 
> Actually this one was a little bit less deterministic than I had liked.
> Moving the flush up outb will work as well. Move it down to the second
> outl and it locks. 

Ahhh, then it might be that the outb() must instead be an outl(), e.g. 
+	struct rtl8129_private *tp = dev->priv;
...
-  	outb(rx_mode, ioaddr + RxConfig);
+  	outl(tp->rx_config | rx_mode, ioaddr + RxConfig);

[[ Background: the outb() and outl() are actually macro expanded to readb()
/ readl() when in memory mode. ]]

> > My K6 system has a SiS chipset.  I wonder if this is Intel-chipset-specific.
> 
> I know of three machines around here that choke on the rtl's mem mode and
> all are Intel equipped (1 FX, 1 HX, 1 BX). I'll try to test on an ALI
> based board later this week but that's a machine I can't play games easily
> with. 

My current theory is that the something about those Intel chipset causes
memory mode to not work when writing bytes of RTL8139 registers that have a
larger natural size.  The driver *does* work on my PR-440FX motherboards.

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.