Linux Driver for the Intel(R) PRO/100 Family of Server Adapters
================================================================


This file describes the Intel(R) PRO/100 driver for the Linux operating 
system.

This package includes the source code for a Linux driver for the Intel 
PRO/100 Server and Desktop adapters. This driver is known to build 
properly on 2.2.x kernels through 2.2.18 and on the 2.4.0 kernel. Intel 
performed testing on PCs with Intel processors with kernels 2.2.16, 
2.2.18 and 2.4.0. Intel(R) Itanium(TM) use is beta only.

The Intel PRO/100 driver is only supported as a loadable module at this 
time. Intel is not supplying patches against the kernel source to allow 
for static linking of the driver.

Please refer to the documentation supplied with your Intel PRO/100 
adapter to answer any questions related to hardware requirements.  All 
hardware requirements listed apply to use with Linux.


Supported Adapters
==================

This driver supports the following Intel network adapters.

Name                                            Board numbers
Intel(R) PRO/100+ Server Adapter                729757-xxx
Intel(R) PRO/100+ PCI Adapter                   668081-xxx, 689661-xxx
Intel(R) PRO/100+ Management Adapter            691334-xxx, 701738-xxx, 
                                                721383-xxx
Intel(R) PRO/100 S Management Adapter           748566-xxx, 748564-xxx
Intel(R) PRO/100 S Advanced Management Adapter  747842-xxx, 745171-xxx
Intel(R) PRO/100+ Dual Port Server Adapter      714303-xxx, 711269-xxx,
                                                A28276-xxx
Intel(R) PRO/100+ PCI Server Adapter            710550-xxx
Intel(R) PRO/100 S Server Adapter               748568-xxx, 748565-xxx
Intel(R) PRO/100 VE Desktop Adapter             A10386-xxx, A10725-xxx, 
                                                A23801-xxx
Intel(R) PRO/100 VM Desktop Adapter             A14323-xxx, A19725-xxx, 
                                                A23801-xxx, A22220-xxx, 
                                                A23796-xxx
Intel(R) PRO/100 S Desktop Adapter              748592-xxx, A12167-xxx, 
                                                A12318-xxx, A12317-xxx, 
                                                A12165-xxx, 751767-xxx
Intel(R) PRO/100 S Server Adapter               A10563-xxx, A12171-xxx, 
                                                A12321-xxx, A12320-xxx, 
                                                A12170-xxx, 752438-xxx

To verify your adapter is supported, find the Board ID number on the
adapter. Look for a label that has a barcode and a number in the format
of 123456-001 (six digits hyphen 3 digits). Match this to the list of
numbers above.

For more information on how to identify your adapter go to the Adapter
& Driver ID Guide at:

  http://support.intel.com/support/network/adapter/pro100/21397.htm



Building and Installation
=========================

Note: For the build to work properly it is important that the currently
running kernel MATCH the version and configuration of the installed
kernel sources. Also if you have just recompiled your kernel, please 
reboot.

1. Move the base driver tarball to the directory of your choice. 
Example is using /home/username/e100 or /usr/local/src/e100

2. untar/unzip archive
	tar xfz e100-x.x.x.tar.gz

3. Change to the driver src directory
  	cd e100-x.x.x/src/	

4. Compile the driver module
       make install
   The binary will be installed as:    
     /lib/modules/[KERNEL_VERSION]/net/e100.o

5. Install the module
        insmod e100
     
6. ifconfig eth# <IPaddress>	
       where # is interface number

7. Verify interface works
	ping  <youripaddress>	
	
To build a binary RPM* package of this driver run 'rpm -tb <filename.tar.gz>'.
Replace <filename.tar.gz> with the specific file name of driver. 


Basic Configuration
===================

Once the driver has been installed it can be loaded by running
'modprobe e100'. This will create a new Ethernet device. For example, if
no other Ethernet drivers are loaded the Intel PRO/100 will be called eth0.

An interface can be activated and assigned an IP address by running:
 
     `ifconfig ethX yyy.yyy.yyy.yyy'

where ethX is the Ethernet device and yyy.yyy.yyy.yyy is the IP address. 


Command Line Parameters
====================

The following parameters are used by entering them on the command line
with the modprobe (or insmod) command. For example, with two Intel PRO/100
PCI cards, entering:
	
	modprobe e100 TxDescriptors=32,128

will load the e100 driver with 32 TX resources for the first card and
128 TX resources for the second card. This configuration will favor the
second card. The driver supports up to 16 cards concurrently.


TxDescriptors
Valid Range: 17-1024               Default Value: 64
   This value is the number of transmit descriptors allocated by the
  	driver. Increasing this value will allow the protocol stack to 
        queue more transmits at the driver level. Maximum for Intel 
        Itanium is 64.

RxDescriptors
Valid Range: 8-1024              Default Value: 64
   This value is the number of receive descriptors allocated by the
   driver. Increasing this value will allow the driver to buffer more
   incoming packets before the driver is required to service an
   interrupt. Maximum for Intel Itanium is 64.

XsumRX  (Nic dependent, Intel Itanium with 82550 based adapters only)
Valid Range: 0-1                  Default Value: 1
   1 turns on receive TCP/UDP checksum offload
   0 turns off receive TCP/UDP checksum offload
   Turning this parameter on will turn on receive checksum offloading
   for TCP/UDP packets if the hardware supports this feature.

e100_speed_duplex
Valid Range: 0-4                  Default Value: 0
   example usage: insmod e100.o e100_speed_duplex=4,4 (for two cards)
   0 indicates autodetection for both speed and duplex mode
   1 indicates a speed of 10Mbps and a duplex mode of half 
   2 indicates a speed of 10Mbps and a duplex mode of full 
   3 indicates a speed of 100Mbps and a duplex mode of half 
   4 indicates a speed of 100Mbps and a duplex mode of full 


Additional Configuration
========================

Configuring a network driver to load properly when the system is started 
is distribution dependent.  Typically it involves adding an alias line to 
/etc/conf.modules as well as editing other system startup scripts and/or
configuration files.  Many popular Linux distributions ship with tools to
make these changes for you.  Refer to your distribution documentation
to learn the proper way to configure a network device for your system.
If during this process you are asked for the driver or module name, 
the driver name for the Intel PRO/100 is 'e100'.


Support
=======

For general information and peer to peer support go to the forum at: 

     http://support.intel.com/newsgroups/netwadap.htm 

Read the forum charter, legal information, and posting guidelines before 
entering the forum. This forum will post new information regarding the
driver as it becomes available.

If an issue is identified with the released source code on the supported 
kernel with a supported adapter, email the specific information related
to the issue to linux.nics@intel.com. 


License
=======
Copyright (c) 1999-2001, Intel Corporation 

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. Neither the name of Intel Corporation nor the names of its contributors 
    may be used to endorse or promote products derived from this software 
    without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 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. 

*  Third-party trademarks are the property of their respective owners.


