Linux and 3Com PCI EtherLink XL Vortex/Boomerang Cyclone Ethercards

Products Supported

This page contains Linux device drivers and information on the 3Com "Vortex", "Boomerang", "Cyclone", "Hurricane", and "Tornado" series ethercards. This covers all 3c590 series (3c592, 3c595, and 3c597) and 3c900 series (3c900, 3c905, 3c980 and 3c450) Ethernet adapters. The driver also supports all 3Com CardBus and mini-PCI adapters such as the 3c555, 556 655, 656 and 3c575.

The master copy of this page resides on the Scyld web server.

This driver was written to support Scyld Beowulf clusters. For commercial Beowulf support, contact SCYLD directly. For generic Beowulf information, read the Beowulf project web page.

Other Drivers

3Com Vendor-supported driver

A second driver implementation is now available for certain 3Com PCI boards.

In September 1999 3Com released a driver for the 3c905B and 3c905C series. This driver was written in-house, and is available under the GPL from. http://support.3com.com/infodeli/tools/nic/linux.htm

Note that the 3Com driver, named 3c90x.c, supports only recent production boards. The driver described on this page, named 3c59x.c, supports all generations of PCI boards. (See the complete list below.)

Supported boards

PCI boards

The supported models are the PCI EtherLink III 3c590 "Vortex" series, (3c590 and 3c595), the PCI EtherLink XL "Boomerang" series (3c900 and 3c905), the 3c905B "Cyclone" series, and the 3c905C "Tornado" series.

EISA boards

Also supported are 3c592 and 3c597 EISA boards.

CardBus cards

The "3c59x.c" driver source supports the 3Com CardBus Ethernet adapters. The driver must either be compiled with pci-scan support, or be compiled with the -DCARDBUS flag. If using the -DCARDBUS flag, the resulting driver binary differs from the PCI version and may only be used with the user-level PCMCIA package. The suggested compile command is at the bottom of the file. Additional directions are included with the PCMCIA package.

ISA EtherLink cards

The ISA 3c515 "Corkscrew" has its own driver named 3c515.c. The 3c515.c driver is similar, however a different register layout and the quirks of ISA detection makes it impractical to combine the support into a unified Vortex-series driver.

Usage instructions

Installation

Read the Network Drivers as Modules page for instructions. You should, of course, substitute the "3c59x.c" as the driver file name.

Run-time Configuration

This driver provide a interface to the Media Independent Interface, "MII" transceiver configuration and diagnostic settings. This interface allows the media type (i.e. 10Mbps or 100Mbps, half or full duplex) to be configured. The settings are usually configured by the (slightly misnamed) mii-diag program. The details of this program may found on the diagnostic home page.

Special Usage Instructions

When loaded as a module the following variables may be set:
name type description
debug int The debug message level, 0 (no messages) to 6 (wordy).
options int[] The media type override and card operation settings (See list below.)
full_duplex int[] Force full duplex.
max_interrupt_work int Maximum number of events to handle at each interrupt, default 20.
rx_copybreak int See driver source for tuning details.

An example of loading the vortex module is

	insmod 3c59x.o debug=1 options=0,,4  full_duplex=0,0,1
This sets the debug message level to minimal messages, sets the first card to the 10baseT transceiver, the second to the EEPROM-set transceiver, and the third card, a 3c595, to operate in full-duplex mode using its 100baseTx transceiver. (Note: card ordering is set by the PCI BIOS.) Possible media type settings
index media
0 Auto-select (default to the 10baseT link)
1 AUI
2 undefined (special case: 10baseT from the LILO prompt)
3 10base2 (BNC)
4 100baseTx Symbol mode, valid for 3c595 only.
5 100baseFx Symbol mode, valid for 3c595 only.
6 MII (the correct transceiver type on the 3c905A)
8 3c905B internal transceiver (the correct transceiver type on the Cyclone)
9 External MII, for the 3c905B Cyclone
0x200 Add to above values to force full-duplex.

Note that the preferred method of using full duplex is to allow autonegotiation to take place. If you must force full duplex when communicating with older equipment use the full_duplex module parameter in preference to the options flag.

Additional Driver Information

Why do we use names like "Vortex"?

These are the 3Com internal names for the implementations. The names make it clear which product we are talking about, and the product numbers are often mistyped -- even I've made the mistake of referring to the 3c509 when I meant 3c905. (3Com only purchased rights to the numbers '3' '5' and '9', Intel owns '4', '8', '6', and '2'. '0' and '1' are still in the public domain ;-)

See also the

  • Vortex driver development page.
  • Vortex mailing list archive at Scyld
  • Vortex-bug mailing list archive at Scyld
  • Vortex-announce mailing list archive at Scyld
  • Linux-vortex mailing list archive on Tux.
  • Tux Linux-vortex-bug mailing list archive.
  • 3Com logo3Com web site

    Driver Source Code

    The driver source code is available from ftp://ftp.scyld.com/pub/network/3c59x.c.
    The latest Development/Test version may be available as ftp://ftp.scyld.com/pub/network/test/3c59x.c.

    Pre-compiled Driver Modules

    I do not provide pre-compile driver modules, since each distribution would require its own binary for warning-free module insertion.

    Building and Using the Driver as a Module

    See Using Linux Network Drivers as Modules

    Support

    Mailing lists

    Support for the Vortex and Boomerang drivers is now being handled through the following mailing lists:

    vortex-announce
    Announcements of new drivers and features.
    vortex
    General driver discussions, including bug fixes.
    vortex-bug
    Reporting driver bugs.
    See http://www.scyld.com/mailman/listinfo for information on subscribing to these lists.

    Typical Problems

    "modversions.h not found" reported when compiling the driver.

    Delete '-DMODVERSIONS' from the command used to compile the driver module.

    Transmit error status

    When a transmit error occurs the driver produces a status message such as

    eth0: Transmit error, Tx status register 82 The two values typically seen are
    0x82
    Out of window collision. This typically occurs when some other Ethernet host is incorrectly set to full duplex on a half duplex network.
    0x88
    16 collisions. This typically occurs when the network is exceptionally busy or when another host doesn't correctly back off after a collision. If this error is mixed with 0x82 errors it is the result of a host incorrectly set to full duplex (see above).
    Both of these errors are the result of network errors that should be corrected. They do not represent driver malfunction.

    The bits in the status word are:
    value description
    0x02 Out-of-window collision.
    0x04 Status stack overflow (normally impossible).
    0x08 16 collisions.
    0x10 Tx underrun (not enough PCI bus bandwidth).
    0x20 Tx jabber.
    0x40 Tx interrupt requested.
    0x80 Status is valid (this should always be set).

    PCI bus error bits

    A typical PCI or CardBus problem will result in the following message: eth0: PCI bus error, bus status 80000020.
    value description
    0x40000000 PCI target abort: The NIC has experienced a target abort while operating as a bus master. This is a fatal error.
    0x80000000 PCI master abort: The NIC has experienced a master abort while operating as a bus master. This is a fatal error.

    Related resources

    This driver was originally written by Donald Becker while he was working on the Beowulf cluster project at CESDIS. For generic Beowulf information, read the Beowulf web site.

    Acknowledgments

    Thanks to Terry Murphy, Terry_Murphy at 3mail.3Com.COM, and Cameron Spitzer, cls at truffula.sj.ca.us, of 3Com for providing the various card samples and databooks. Both have since moved on from their 3Com jobs, but were instrumental in making possible the early Linux support of 3Com hardware.


    Linux Network Drivers Page
    SCYLD information.
    Author: Donald Becker
    See the drivers for the contact email address. Do not bother sending email to zinc.anode@scyld.com, as email to that address adds your domain or IP address to the known-spammer list.