From owner-freebsd-isp Sun Jan 21 11:07:02 1996 Return-Path: owner-isp Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id LAA01170 for isp-outgoing; Sun, 21 Jan 1996 11:07:02 -0800 (PST) Received: from time.cdrom.com (time.cdrom.com [192.216.222.226]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id LAA01161 Sun, 21 Jan 1996 11:06:59 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by time.cdrom.com (8.6.12/8.6.9) with SMTP id LAA00853; Sun, 21 Jan 1996 11:05:19 -0800 To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) cc: andreas@knobel.gun.de (Andreas Klemm), jmb@FreeBSD.ORG, isp@FreeBSD.ORG, jkh@FreeBSD.ORG Subject: Re: FreeBSD-current Proxy Server in our company (vs. Sun) In-reply-to: Your message of "Sun, 21 Jan 1996 16:17:14 +0100." <199601211517.QAA25643@uriah.heep.sax.de> Date: Sun, 21 Jan 1996 11:05:19 -0800 Message-ID: <851.822251119@time.cdrom.com> From: "Jordan K. Hubbard" Sender: owner-isp@FreeBSD.ORG Precedence: bulk > As Andreas Klemm wrote: > For PCI, the DEC 2104X-based cards are certainly the first choice, or > the 3c590 with the `vx' driver pulled out of -current. See my other > mail. I've heard that the 3c595 doesn't run well yet (it's a 10/100 > Mbit/s board). Check this out: Subject: Patch and manual page for if_vx driver To: core@freebsd.org Date: Tue, 16 Jan 1996 00:43:43 -0600 (CST) X-Mailer: ELM [version 2.4 PL22] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit I have a patch for the if_vx driver for the 3Com 3c590/3c595 cards which I submitted a few months ago. I also have written a short manual page. I have appended both of these files to this message. You may also wish to add these cards to your list of supported devices, and especially you may want to add the driver to the kernel supplied on the boot floppy. Thanks for your help. -- Fred Gray -- fgray@owlnet.rice.edu ----- ----- cut here for if_vx.c.diff ----- ----- *** if_vx.c.orig Tue Jan 16 00:30:15 1996 --- if_vx.c Tue Jan 16 00:30:02 1996 *************** *** 173,178 **** --- 173,181 ---- { if(device_id == 0x590010b7ul) return "3Com 3c590 EtherLink III PCI"; + if(device_id == 0x595010b7ul || device_id == 0x595110b7ul || + device_id == 0x595210b7ul) + return "3Com 3c595 Fast EtherLink III PCI"; return NULL; } *************** *** 185,191 **** { struct vx_softc *sc; struct ifnet *ifp; ! u_short i, j, *p; struct ifaddr *ifa; struct sockaddr_dl *sdl; --- 188,195 ---- { struct vx_softc *sc; struct ifnet *ifp; ! u_short i, *p; ! u_long j; struct ifaddr *ifa; struct sockaddr_dl *sdl; *************** *** 205,211 **** sc->vx_connectors = 0; i = pci_conf_read(config_id, 0x48); ! j = inw(BASE + VX_W3_INTERNAL_CFG) >> INTERNAL_CONNECTOR_BITS; if (i & RS_AUI) { printf("aui"); sc->vx_connectors |= AUI; --- 209,216 ---- sc->vx_connectors = 0; i = pci_conf_read(config_id, 0x48); ! GO_WINDOW(3); ! j = inl(BASE + VX_W3_INTERNAL_CFG) >> INTERNAL_CONNECTOR_BITS; if (i & RS_AUI) { printf("aui"); sc->vx_connectors |= AUI; *************** *** 251,257 **** ifp->if_unit = unit; ifp->if_name = "vx"; ifp->if_mtu = ETHERMTU; ! ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_NOTRAILERS; ifp->if_init = vxinit; ifp->if_output = ether_output; ifp->if_start = vxstart; --- 256,262 ---- ifp->if_unit = unit; ifp->if_name = "vx"; ifp->if_mtu = ETHERMTU; ! ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX /*| IFF_NOTRAILERS*/; ifp->if_init = vxinit; ifp->if_output = ether_output; ifp->if_start = vxstart; *************** *** 403,410 **** outw(BASE + VX_W4_MEDIA_TYPE, ENABLE_UTP); GO_WINDOW(1); } else { ! GO_WINDOW(0); ! j = inw(BASE + VX_W3_INTERNAL_CFG) >> INTERNAL_CONNECTOR_BITS; GO_WINDOW(1); switch(j) { case ACF_CONNECTOR_UTP: --- 408,415 ---- outw(BASE + VX_W4_MEDIA_TYPE, ENABLE_UTP); GO_WINDOW(1); } else { ! GO_WINDOW(3); ! j = inl(BASE + VX_W3_INTERNAL_CFG) >> INTERNAL_CONNECTOR_BITS; GO_WINDOW(1); switch(j) { case ACF_CONNECTOR_UTP: ----- ----- cut here for vx.4 ----- ----- .\" .\" Copyright (c) 1996, Fred Gray .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by David Greenman. .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .Dd January 15, 1996 .Dt VX 4 i386 .Os .Sh NAME .Nm vx .Nd PCI Ethernet device driver .Sh SYNOPSIS .Cd "device vx0 at pci? port? net irq? vector vxintr" .Cd "device vx1 at pci? port? net irq? vector vxintr" .Cd "device vx2 at pci? port? net irq? vector vxintr" .Sh DESCRIPTION The .Nm vx driver provides support for the 3Com 3c590 and 3c595 EtherLink III and Fast EtherLink III PCI Ethernet cards in 10 Mbps mode. .Sh DIAGNOSTICS .Bl -diag .It "vx%d: not configured; kernel is built for only %d devices." There are not enough devices in the kernel configuration file for the number of adapters present in the system. Add devices to the configuration file, rebuild the kernel, and reboot. .Pp All other diagnostics indicate either a hardware problem or a bug in the driver. .Sh CAVEATS Some early-revision 3c590 cards are defective and suffer from many receive overruns, which cause lost packets. The author has attempted to implement a test for it based on the information supplied by 3Com, but the test resulted mostly in spurious warnings. .Pp The performance of this driver is somewhat limited by the fact that it uses only polled-mode I/O and does not make use of the bus-mastering capability of the cards. .Sh BUGS The .Nm vx driver is known not to reset the adapter correctly following a warm boot on some systems. .Pp The .Nm vx driver has not been exhaustively tested with all the models of cards that it claims to support. .Sh HISTORY The .Nm vx device driver first appeared in FreeBSD 2.1.0. It was derived from the .Nm ep driver, from which it inheirits most of its limitations. .Sh AUTHOR The .Nm vx device driver and this manual page were written by Fred Gray (fgray@rice.edu), based on the work of Herb Peyerl and with the assistance of numerous others.