From owner-freebsd-current@FreeBSD.ORG Wed Aug 27 02:36:09 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 77ABD16A4BF for ; Wed, 27 Aug 2003 02:36:09 -0700 (PDT) Received: from mail.wrs.no (mail.wrs.no [213.236.173.130]) by mx1.FreeBSD.org (Postfix) with ESMTP id 33E3243FF2 for ; Wed, 27 Aug 2003 02:36:08 -0700 (PDT) (envelope-from freebsd@yazzy.org) Received: from h311r4iz3r.wrs (localhost [127.0.0.1]) by mail.wrs.no (Postfix) with SMTP id 4F3D14378; Wed, 27 Aug 2003 11:35:49 +0200 (CEST) Date: Wed, 27 Aug 2003 11:35:49 +0200 From: Martin Jessa To: freebsd-current@freebsd.org Message-Id: <20030827113549.5081576e.freebsd@yazzy.org> In-Reply-To: <27210.1061117953@critter.freebsd.dk> References: <27210.1061117953@critter.freebsd.dk> Organization: ezUnix.org X-Mailer: Sylpheed version 0.9.3claws (GTK+ 1.2.10; i386-portbld-freebsd5.1) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit cc: phk@phk.freebsd.dk Subject: Re: if_sis: performance tweaking X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Aug 2003 09:36:09 -0000 Hi Poul-Henning, guys. Are those changes included in 5.1-CURRENT now or should I patch my source in order to test it? On Sun, 17 Aug 2003 12:59:13 +0200 Poul-Henning Kamp wrote: > > This patch tweaks various thresholds in the DP8381[56] chip. > > On my Soekris 4801, the goes from 5-6 Mbit/sec to 30-40 Mbit/sec > with this patch. > > Also included is Sams patch for the "short cable" problem". > > Tests, comments etc most welcome. > > Poul-Henning > > Index: if_sis.c > =================================================================== > RCS file: /home/ncvs/src/sys/pci/if_sis.c,v > retrieving revision 1.80 > diff -u -r1.80 if_sis.c > --- if_sis.c 27 Jul 2003 14:36:02 -0000 1.80 > +++ if_sis.c 17 Aug 2003 10:46:59 -0000 > @@ -107,7 +107,7 @@ > static struct sis_type sis_devs[] = { > { SIS_VENDORID, SIS_DEVICEID_900, "SiS 900 10/100BaseTX" }, > { SIS_VENDORID, SIS_DEVICEID_7016, "SiS 7016 10/100BaseTX" }, > - { NS_VENDORID, NS_DEVICEID_DP83815, "NatSemi DP83815 10/100BaseTX" }, > + { NS_VENDORID, NS_DEVICEID_DP83815, "NatSemi DP83815/6 10/100BaseTX" }, > { 0, 0, NULL } > }; > > @@ -2031,6 +2031,10 @@ > */ > sis_stop(sc); > > + if (sc->sis_type == SIS_TYPE_83815) { > + CSR_WRITE_4(sc, NS_IHR, 0x120); > + } > + > mii = device_get_softc(sc->sis_miibus); > > /* Set MAC address */ > @@ -2121,7 +2125,7 @@ > if (CSR_READ_4(sc, SIS_CFG) & SIS_CFG_EDB_MASTER_EN) { > CSR_WRITE_4(sc, SIS_RX_CFG, SIS_RXCFG64); > } else { > - CSR_WRITE_4(sc, SIS_RX_CFG, SIS_RXCFG256); > + CSR_WRITE_4(sc, SIS_RX_CFG, SIS_RXCFG128); > } > > > @@ -2144,6 +2148,29 @@ > SIS_CLRBIT(sc, SIS_TX_CFG, > (SIS_TXCFG_IGN_HBEAT|SIS_TXCFG_IGN_CARR)); > SIS_CLRBIT(sc, SIS_RX_CFG, SIS_RXCFG_RX_TXPKTS); > + } > + > + if (sc->sis_type == SIS_TYPE_83815 && > + IFM_SUBTYPE(mii->mii_media_active) == IFM_100_TX) { > + uint32_t reg; > + > + /* > + * Some DP83815s experience problems when used with short > + * (< 30m/100ft) Ethernet cables in 100BaseTX mode. This > + * sequence adjusts the DSP's signal attenuation to fix the > + * problem. > + */ > + CSR_WRITE_4(sc, NS_PHY_PAGE, 0x0001); > + > + reg = CSR_READ_4(sc, NS_PHY_DSPCFG); > + CSR_WRITE_4(sc, NS_PHY_DSPCFG, (reg & 0xfff) | 0x1000); > + DELAY(100); > + reg = CSR_READ_4(sc, NS_PHY_TDATA); > + if ((reg & 0x0080) == 0 || (reg & 0xff) >= 0xd8) { > + CSR_WRITE_4(sc, NS_PHY_TDATA, 0x00e8); > + SIS_SETBIT(sc, NS_PHY_DSPCFG, 0x20); > + } > + CSR_WRITE_4(sc, NS_PHY_PAGE, 0); > } > > /* > Index: if_sisreg.h > =================================================================== > RCS file: /home/ncvs/src/sys/pci/if_sisreg.h,v > retrieving revision 1.22 > diff -u -r1.22 if_sisreg.h > --- if_sisreg.h 22 Jul 2003 01:35:09 -0000 1.22 > +++ if_sisreg.h 17 Aug 2003 10:50:12 -0000 > @@ -75,6 +75,7 @@ > #define SIS_GPIO 0xB8 > > /* NS DP83815 registers */ > +#define NS_IHR 0x1C > #define NS_CLKRUN 0x3C > #define NS_BMCR 0x80 > #define NS_BMSR 0x84 > @@ -237,12 +238,12 @@ > #define SIS_TXDMA_256BYTES 0x00700000 > > #define SIS_TXCFG_100 \ > - (SIS_TXDMA_64BYTES|SIS_TXCFG_AUTOPAD|\ > - SIS_TXCFG_FILL(64)|SIS_TXCFG_DRAIN(1536)) > + (SIS_TXDMA_128BYTES|SIS_TXCFG_AUTOPAD|\ > + SIS_TXCFG_FILL(1024)|SIS_TXCFG_DRAIN(128)) > > #define SIS_TXCFG_10 \ > (SIS_TXDMA_32BYTES|SIS_TXCFG_AUTOPAD|\ > - SIS_TXCFG_FILL(64)|SIS_TXCFG_DRAIN(1536)) > + SIS_TXCFG_FILL(64)|SIS_TXCFG_DRAIN(128)) > > #define SIS_RXCFG_DRAIN_THRESH 0x0000003E /* 8-byte units */ > #define SIS_RXCFG_DMABURST 0x00700000 > @@ -262,8 +263,8 @@ > #define SIS_RXDMA_128BYTES 0x00600000 > #define SIS_RXDMA_256BYTES 0x00700000 > > -#define SIS_RXCFG256 \ > - (SIS_RXCFG_DRAIN(64)|SIS_RXDMA_256BYTES) > +#define SIS_RXCFG128 \ > + (SIS_RXCFG_DRAIN(128)|SIS_RXDMA_128BYTES) > #define SIS_RXCFG64 \ > (SIS_RXCFG_DRAIN(64)|SIS_RXDMA_64BYTES) > > -- > Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 > phk@FreeBSD.ORG | TCP/IP since RFC 956 > FreeBSD committer | BSD since 4.3-tahoe > Never attribute to malice what can adequately be explained by incompetence. > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"