Skip site navigation (1)Skip section navigation (2)
Date:      Fri,  4 Apr 1997 19:14:39 +0100 (BST)
From:      Mark Dawson <md@dcs.qmw.ac.uk>
To:        freebsd-hackers@freebsd.org
Subject:   NetBSD's if_de.c
Message-ID:  <8nFIIDS_9JY1FiIzR5@dcs.qmw.ac.uk>

next in thread | raw e-mail | index | archive | help
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;
            }

Mark



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8nFIIDS_9JY1FiIzR5>