Subject: Re: MX98713 support for NetBSD?
To: None <current-users@netbsd.org>
From: KOUCHI Takayoshi <kouchi@kuis.kyoto-u.ac.jp>
List: current-users
Date: 11/05/1998 12:58:11
> > de0: abnormal interrupt: transmit underflow (raising TX threshold 96|256)
> > de0: abnormal interrupt: transmit underflow (raising TX threshold 128|512)

This probrem has been cleared.

When the driver transmitted packets, the card didn't interrupt that
transmission was done.  After all, the transmission never finished
and the card ran into transmit underflow.

The original driver does change interrupt mask after txpoll.
To generate correct interrupt, change interrupt before txpoll.
Change in if_de.c is at the end of this mail.

Though the underflow probrem is clear now, I have another problem.
When a large transmission (like ftp requests from foreign host) occurs,
the transmission stalls.

I tested on my desktop(MX98713) and my note pc(PCMCIA ne2000)
connected with cross cable. When 'ftp'ed from note pc and 'get netbsd',
about 500kbytes transmitted and stalled.  In addition, note pc's
ne0 driver output many messages:

ne0: NIC memory corrupt - invalid packet length 5614

The message were always '5614'bytes...???

What shall I do?

-----
Takayoshi Kouchi

***************
*** 4575,4584 ****
--- 4588,4602 ----
       * Flush the ownwership of the current descriptor
       */
      TULIP_TXDESC_PRESYNC(sc, nextout, sizeof(u_int32_t));
+ #if 0
      TULIP_CSR_WRITE(sc, csr_txpoll, 1);
+ #endif
      if ((sc->tulip_intrmask & TULIP_STS_TXINTR) == 0) {
        sc->tulip_intrmask |= TULIP_STS_TXINTR;
        TULIP_CSR_WRITE(sc, csr_intr, sc->tulip_intrmask);
      }
+ #if 1
+     TULIP_CSR_WRITE(sc, csr_txpoll, 1);
+ #endif
  }