
Intel(R) PRO/100 LAN Adapter Linux Driver
=====================================================

This file describes the PRO/100 driver for the Linux operating system.

This package includes the source code for the PRO/100 Linux LAN Adapter driver.
This driver is known to build properly on 2.2 and 2.3 series kernels up to 
2.2.14 and 2.3.18. All testing by Intel has been performed on the Linux 2.2.12 
kernel on systems with Intel processors. Kernels prior to 2.2.0 and Kernels 
beyond 2.2.14 are not supported.

The bin/e100.o was built on a 2.2.14 SMP kernel included on the RedHat 6.2
distribution.  The driver will need to be rebuilt in order to be used with
any other kernel. 

The 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 PRO/100 adapter to answer
any questions related to hardware requirements.  All hardware requirements 
listed apply to use with Linux.


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

1) Enter the src directory ('cd src'). The rest of the build process should be
   run from here.

2) Run 'make' to build the driver as a loadable module.

3) Test the loading of the driver by running 'insmod e100.o'.

4) Run 'make install' to install the e100.o binary.
   The binary will be installed as:
    
     /lib/modules/[KERNEL_VERSION]/net/e100.o
   
   *NOTE* The driver will install into the current running kernel version.


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 PRO/100 will be called eth0.

The 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. 


Driver Configuration
====================

The following parameters are used by entering them on the command line with 
the modprobe (or insmod) command. For example, with two PRO/100 PCI cards, entering:
	
	modprobe e100 e100_max_tcb=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.


e100_max_tcb
Valid Range: 8-8192               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.

e100_max_rfd
Valid Range: 8-8192               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.  This will
   have the most benefit when used in combination with the CPU_CYCLE_SAVER
   feature, which is enabled by default.

e100_rx_chksum
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.

e100_speed_duplex
Valid Range: 0-4                  Default Value: 0
   0 indicates autodetection for both speed and duplex mode
   1 indicates a speed of 10Mbs and a duplex mode of half 
   2 indicates a speed of 10Mbs and a duplex mode of full 
   3 indicates a speed of 100Mbs and a duplex mode of half 
   4 indicates a speed of 100Mbs 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 PRO/100 is 'e100'.


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

This driver supports the following 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)
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, A19716-xxx)
Intel(R) PRO/100 VM Desktop Adapter  (A14323-xxx, A19725-xxx, A23801-xxxx,
                                      A22220-xxx, A23796-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


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-2000, 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. 


