Date: Fri, 18 Apr 1997 15:18:12 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: adrian@virginia.edu Cc: terry@lambert.org, hackers@freebsd.org Subject: Re: DEC 21140-Ax problems resolved? Message-ID: <199704182218.PAA03086@phaeton.artisoft.com> In-Reply-To: <Pine.SUN.3.90.970418174147.20169E-100000@stretch.cs.Virginia.edu> from "Adrian T. Filipi-Martin" at Apr 18, 97 05:45:17 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > If that fails, the NetBSD driver was recently announced as ported > > on the -current list (which is probably a better place to look, > > especially if the 'x' in your '-Ax' is recent, since your card > > may have overflow problems which need to be worked around in software). > > Specifically the chip is a 21140-AC. That's not too new. Which > files do I need to get in addition to if_de.c? I tried this route, but I > must have mised something, because it wouldn't compile. You need the new driver. The 'C' is a known rogue. There were some issues with the 21x40-?? where x=0 worked and x=1 didn't, but they were (I thought) resolved in -current. Here is Mark Dawson's posting on the subject of the hangup stuff... with fix. Like I said, you'd do better searching the -current archives. Note that this does not fully update the driver to the NetBSD state (from what I recall). Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. ======================================================================== NetBSD's de driver (1.83 1997/03/25 21:12:17) has a fix for 21140A hangup's which is absent in FreeBSD's version... in tulip_pci_attach(): if (chipid == TULIP_21140A && revinfo <= 0x22) sc->tulip_features |= TULIP_HAVE_RXBUGGY; in tulip_intr_handler(): /* * Pass 2.[012] of the 21140A-A[CDE] may hang and/or corrupt data * on receive overflows. */ if ((misses & 0x0FFE0000) && (sc->tulip_features & TULIP_HAVE_RXBUGGY)) { /* * Stop the receiver process and spin until it's stopped. * Tell rx_intr to drop the packets it dequeues. */ TULIP_CSR_WRITE(sc, csr_command, sc->tulip_cmdmode & ~TULIP_CMD_RXRUN); while ((TULIP_CSR_READ(sc, csr_status) & TULIP_STS_RXSTOPPED) == 0) ; TULIP_CSR_WRITE(sc, csr_status, TULIP_STS_RXSTOPPED); sc->tulip_flags |= TULIP_RXBAD; } ========================================================================
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704182218.PAA03086>