Scyld

Linux and the Intel PCI EtherExpress Pro 100 series

Products Supported

This page contains information on using Linux with the Intel PCI EtherExpress Pro 100 series, the Pro/100B, Pro/100+, and other PCI boards using the i82557, i82558 or i82559 chips.

This driver will also work with the Intel Pro/100 CardBus "generation II" product that uses the i82559 chip. Most Intel CardBus cards use the i21143 chip and need the Tulip driver.

This driver will not work with any ISA or EISA cards. Nor will this driver work with the few original 100A cards using the i82556 chip. No driver is planned for the long-obsolete i82556 chip. This driver will work with the 10mbps PCI Pro-Plus boards that use the i82557 chip.

Driver Status

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

This driver is tested with the x86, Alpha, and PowerPC architecture with kernel versions 2.0 and later. It is reported to be stable, with the following known operational errata:

See also the

Other driver versions

Andrey Savochkin maintains a version of the driver for the pre-2.4 kernel. His versions are avaiable at

Usage instructions

Installation

The driver installation directions are on the Driver Updates page. You may install just one driver (see below), or install all updated drivers using either the netdriver.tgz file or the SRPM.

To install a single updated driver read the Network Drivers as Modules page for instructions. You should, of course, substitute the proper driver file name.

When updating a single driver you will need to build pci-scan.o along with the specific driver.o file. This means that in addition to the driver.c file, you must download pci-scan.c, pci-scan.h, and kern_compat.h.

Configuration Options

Note: Do not force the duplex or speed setting unless you are certain that it is required for your network environment. Forcing a setting is needed only to work around flawed equipment.

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.

In most cases no transceiver override option need be set. A notable exception is when connecting to an older ethernet switch that operates in full-duplex mode but does not do NWay autonegotation. The following driver options flags are recognized:

 Hex   Decimal  Meaning
 0x10  16	Force Full-Duplex operation (must be used with 0x20 or 0x40)
 0x20  32	Force 100mbps-only operation
 0x40  64	Force 10mbps-only

Add the above decimal values to get the complete option setting.

The option flags are passed as follows when loading the driver as a module

	insmod eepro100.o debug=1 options=0x20,0,0x50
This sets the first adapter to 100mbps-only operation, the second to the default NWay autonegotiation, and the third to 10mbps full-duplex.

The option flags are passed as the third parameter when using the driver permanently linked into the kernel

     ether=0,0,0x20,eth0 ether=0,0,0,eth1 ether=0,0,0x50,eth2

Several additional internal values may be tuned when the driver is loaded as a modules. See the top of the driver source code for details.

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.

Limitations and Notes

The current version of the Intel EtherExpress Pro 100B driver is designed for 2.0 and 2.2 kernels. The 1.2.* kernels do not permit the reserving space in the "skbuff" for a descriptor, and thus will not work with this driver.

Some web browsers will corrupt the driver source code when transferring via HTTP. You might wish to use FTP to transfer the driver source code from ftp://scyld.com/pub/network/eepro100.c instead.

This driver will work only with PCI cards. ISA and EISA cards have different architectures and have no chance of working with this driver. The older 100A cards using the i82556 chip will not work with this driver. There is no simple modification to make it so. I have no plans to write a driver for the ancient 100A, or documentation to do so. Please don't write to ask about it. Please.

As of July 2000, there is no known driver development for the 100A boards.

This driver will also work with the following boards:

Support

Mailing list

Support for the EEPro100 driver is handled through the following mailing lists:

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

Using the above lists for unrelated advertisements is subject to a charge of $0.34 per destination address, payable in advance to Scyld's Annapolis MD address.

Diagnostic and Setup Programs

A diagnostic and setup program is available from
http://www.scyld.com/diag/index.html .

That same page includes the 'mii-diag' program used to modify the run-time setting of the transceiver.

Please send the output of the relevant program when reporting a problem.

Common Problems

Syntax errors during compile

If you get syntax errors during the compile, your web browser (or this web server's) MIME-types table is likely broken. C source code files should be transferred as raw text, not interpreted as HTML source. Try transferring the driver using FTP from ftp://ftp.scyld.com/pub/network/

'ifconfig' reports "Try again"

The EEPro100 board has an IRQ conflict. While the driver does use shared PCI interrupts, problems can still occur. Read http://www.scyld.com/expert/irq-conflict.html.

Errata and History

Recent revisions:

Ancient fixes

Developer Information

Intel network application note index
AP-369 LAN557 Hardware/Software Interface Definition
This document contains the EEPROM format for the i82557 and i82558.
AP-373 Replacing the DEC 21140 with the Intel 82557
A feature comparison table -- mostly marketing literature.

Acknowledgments

Thanks to Steve Williams, Steven_D_Williams@ccm.jf.intel.com, and Terry Crawford of Intel for sorting out the incompatibilities of the standard Intel NDA and the Linux/GPL source code release terms. They provided a pair of EtherExpress Pro 100B cards as well.

My thanks also go to Chris Ho, a dedicated pre-alpha tester that tried many non-working versions before I had the hardware to do so myself.


Linux Network Drivers Page
Linux Network Drivers Updates 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.