rtl8139 pci mem freeze (more info)
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, ioaddr + MAR0 + 0);
> > > + outl_f(mc_filter, ioaddr + MAR0 + 0);
> > > outl(mc_filter, 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
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 email@example.com
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center, Greenbelt, MD. 20771
| 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 firstname.lastname@example.org
| You will be unsubscribed as speedily as possible.