Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Jan 1996 11:05:19 -0800
From:      "Jordan K. Hubbard" <jkh@time.cdrom.com>
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) 
Message-ID:  <851.822251119@time.cdrom.com>
In-Reply-To: Your message of "Sun, 21 Jan 1996 16:17:14 %2B0100." <199601211517.QAA25643@uriah.heep.sax.de> 

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




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