The supported models are the PCI Fast EtherLink XL "Boomerang" series (3c900 and 3c905) and ISA 3c515 Fast EtherLink. The PCI EtherLink III "Vortex" series (3c590 3c592 3c595 and 3c597) are also supported.
Support for the Vortex and Boomerang drivers is now being handled through the mailing list email@example.com. This mailing list is appropriate for most topics including bug reports, performance reports, and suggestion for driver improvement. To subscribe, send a message with the contents "subscribe" e.g.:
New driver announcements are made (and occasional discussions held) on the mailing list firstname.lastname@example.org.
An updated version of 3c59x.c exists to support the new "Boomerang" 3c900 and 3c905 EtherLink XL cards.
For the brave, an alpha test driver that supports the new full-bus-master feature of the boomerang is available. It's named boomerang.c and works only with the v2.0 kernel versions. It directly replaces
drivers/net/3c59x.cPlease send a report if you use this driver.
Larry Augustin at VA Research has added these changes to their pre-patched kernel source trees at ftp.varesearch.com.
I have released an updated version of 3c59x.c which fixes the following problems
The new version also supports the shared interrupts and includes the alpha version of the automatic media selection code, which is enabled by default. Please send reports about its success or failure of these features! (As if I have to ask about failure reports ;->)
Some motherboards have a broken PCI BIOS implementation that doesn't actually map the card to the reported I/O address. This problem affects most OSes as well as the 3Com setup program for MS-DOS. The work-around is to disable "Plug-and-Play" in the BIOS setup.
A "SIOSIFFLAGS: Try again when starting an ethernet device means that there is an interrupt conflict. Dell machines tend to assign multiple PCI devices to the same IRQ line. Generally this works under Linux -- most PCI drivers are willing to share IRQ lines (with the inevitable increase in CPU overhead). But some drivers, specifically several SCSI drivers use the so-called "fast" interrupt structure that is incompatible with most other drivers.
Generally the solution is to use BIOS PCI setup to change the IRQ assigned to the card. But some Dell machines don't have this functionality. The solution is to physically move the card to a different slot.
Compaq uses an unusual PCI BIOS implementation that is mapped to high memory. All extant versions of Linux are unable to work with it. For now the only work-arounds are to boot first into MS-DOS and run a Compaq-supplied program to remap the PCI BIOS tables, or to hack the driver source code with the ioaddr and irq values.
You can do this by adding the following lines to the bottom of the vortex_scan() function, with the proper values filled in :
vortex_found_device(dev, <*ioaddr*> , <*irq_line*>, <*product_id*>, dev && dev->mem_start ? dev->mem_start : options[cards_found]); cards_found++; dev = 0;The *product_id* value is from the table near the top of the source file, and should be '0' for the 3c590 or '1' for the 3c595. I know this is pretty sleazy, but it should work.
The 1.3.20 kernel distributed with Slackware is in common use, so here is a pre-compiled module for that kernel, as well as the source code that generated it.
The Vortex driver is now standard in the 1.3.59 and later kernels. If you have a more recent kernel, use the distributed version in preference to the drivers here unless you have a specific problem (which you should report). This page will now be used
There is a newly updated Vortex driver for 1.3.4* that supportavailable that adds the following features:
The newly updated Vortex driver available that adds the following features:
The run-time portion of the driver has been very reliable and remains the same.
The driver for 3Com 100Mbs "Vortex" PCI ethercards is now available. It works with both the 10Mbs 3c590 and 10/100Mbs 3c595 boards. This is the new version of the driver with code clean-ups and Cameron Spitzer's fixes.
Sorry, this driver isn't yet integrated with the kernel source tree. It will be with some later 1.3.x development kernels. In the meantime, here is the driver for the 1.3.* series kernels.
Note: this patch may not work with earlier 1.2.* kernels and will not work with kernel sources patched for ELF compiler support (e.g. the kernel sources packaged with RedHat or Slackware) or the 1.3 development kernels. In those cases you should apply the patches by hand or use the modules support in the updated Vortex driver.
Alternate patch files will be made available for other popular kernel versions. Send me email if you have a request.
Linux has a facility for linking device drivers into the running kernel. This is called Modules support. While probing for ISA devices at run time is a bad idea, some device drivers for PCI cards may be safely installed in this way. (And I'll even concede that it might be a Good Idea ;-)
Here's how to make and load the Modules version:
If you get an "linux/version.h no such file or directory" you either
have not installed the kernel source code, or you haven't run
cd /usr/src/linux; make include/linux/version.hyet. Some distributions allow you to install just the essential header files of the kernel source code, including a pre-built "version.h", so this isn't always necessary.
This file is in the kernel documentation directory after 1.3.72:
This document describes the usage and errata of the 3Com "Vortex" device driver for Linux. This driver supports the following hardware: 3c590, 3c592, 3c595, 3c597 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.) An example of loading the vortex module is insmod 3c59x.o debug=1 options=0,,12 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 to operate in full-duplex mode using its 100baseTx transceiver. (Note: card ordering is set by the PCI BIOS.) Possible media type settings 0 10baseT 1 10Mbps AUI 2 undefined (special case: 10baseT from the LILO prompt) 3 10base2 (BNC) 4 100base-TX 5 100base-FX 6 MII (not yet available, and thus untested) 7
The 3c590 cards were tested on an ASUS SP3G motherboard with a i486DX2-66 processor. This motherboard uses Intel Saturn chipset. The tests were conducted with the card connected to an Addtron 8 port unmanaged hub, linked by a bridge to the busy Goddard backbone network.
The 3c595 cards were tested on two machines. The first was the machine above with the ASUS SP3G motherboard. The second was a 486 PCI/VLB motherboard using the SiS chipset. The tests were conducted with the cards connected by two 1.4 meter Category 5 cables connected by a "RJ45" female-to-female coupler that crossed the Rx and Tx pairs. No 100baseTx hub was available for multiple-node tests.
This driver was written to support the Beowulf cluster project at CESDIS. For Beowulf-specific information, read the Beowulf project description.
CESDIS is located at the NASA Goddard Space Flight Center in Greenbelt MD.