include upstream ip1000a driver version 2.09f
[linux-2.4.git] / Documentation / networking / e100.txt
1 Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters
2 ==============================================================
3
4 November 19, 2002
5
6
7 Contents
8 ========
9
10 - In This Release
11 - Supported Adapters
12 - Command Line Parameters
13 - CPU Cycle Saver
14 - Additional Configurations
15 - Support
16
17
18 In This Release
19 ===============
20
21 This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of
22 Adapters, version 2.2.x.  This driver includes support for Itanium(TM)-based 
23 systems.
24
25
26 Supported Adapters
27 ==================
28
29 The following Intel network adapters are compatible with the drivers 
30 in this release:
31
32 Controller  Adapter Name                            Board IDs
33 ----------  ------------                            ---------
34
35 82558       PRO/100+ PCI Adapter                    668081-xxx, 689661-xxx
36
37 82558       PRO/100+ Management Adapter             691334-xxx, 701738-xxx,
38                                                     721383-xxx
39
40 82558       PRO/100+ Dual Port Server Adapter       714303-xxx, 711269-xxx, 
41                                                     A28276-xxx
42
43 82558       PRO/100+ PCI Server Adapter             710550-xxx
44
45 82550       PRO/100 S Server Adapter                752438-xxx (82550)
46 82559                                               A56831-xxx, A10563-xxx,
47                                                     A12171-xxx, A12321-xxx, 
48                                                     A12320-xxx, A12170-xxx
49                                                     748568-xxx (82559)
50                                                     748565-xxx (82559)
51
52
53 82550       PRO/100 S Desktop Adapter               751767-xxx (82550)
54 82559                                               748592-xxx, A12167-xxx, 
55                                                     A12318-xxx, A12317-xxx, 
56                                                     A12165-xxx
57                                                     748569-xxx (82559)
58
59
60
61 82559       PRO/100+ Server Adapter                 729757-xxx
62
63 82559       PRO/100 S Management Adapter            748566-xxx, 748564-xxx
64
65 82550       PRO/100 S Dual Port Server Adapter      A56831-xxx
66
67 82551       PRO/100 M Desktop Adapter               A80897-xxx
68
69             PRO/100 S Advanced Management Adapter   747842-xxx, 745171-xxx
70
71 CNR         PRO/100 VE Desktop Adapter              A10386-xxx, A10725-xxx, 
72                                                     A23801-xxx, A19716-xxx
73
74
75             PRO/100 VM Desktop Adapter              A14323-xxx, A19725-xxx, 
76                                                     A23801-xxx, A22220-xxx, 
77                                                     A23796-xxx
78    
79
80 To verify that your adapter is supported, find the board ID number on the 
81 adapter. Look for a label that has a barcode and a number in the format 
82 A12345-001. Match this to the list of numbers above.
83
84 For more information on how to identify your adapter, go to the Adapter & 
85 Driver ID Guide at:
86
87   http://support.intel.com/support/network/adapter/pro100/21397.htm
88
89 For the latest Intel PRO/100 network driver for Linux, see:
90
91   http://downloadfinder.intel.com/scripts-df/support_intel.asp
92
93
94 Command Line Parameters
95 =======================
96
97 If the driver is built as a module, the  following optional parameters are 
98 used by entering them on the command line with the modprobe or insmod command
99 using this syntax:
100
101      modprobe e100 [<option>=<VAL1>,<VAL2>,...]
102
103      insmod e100 [<option>=<VAL1>,<VAL2>,...] 
104
105 For example, with two Intel PRO/100 PCI adapters, entering:
106         
107      modprobe e100 TxDescriptors=32,128
108
109 loads the e100 driver with 32 TX resources for the first adapter and 128 TX 
110 resources for the second adapter. This configuration favors the second 
111 adapter. The driver supports up to 16 network adapters concurrently.
112
113 The default value for each parameter is generally the recommended setting,
114 unless otherwise noted.
115
116 NOTE: Giving any command line option the value "-1" causes the driver to use 
117       the appropriate default value for that option, as if no value was 
118       specified.
119
120
121 BundleMax
122 Valid Range: 1-65535
123 Default Value: 6
124    This parameter holds the maximum number of small packets (less than 128
125    bytes) in a bundle. Suggested values range from 2 to 10. See "CPU Cycle 
126    Saver."
127
128 BundleSmallFr
129 Valid Range: 0-1 (0=off, 1=on)
130 Default Value: 0
131    The value 1 (on) causes small packets (less than 128 bytes) to be bundled. 
132    See "CPU Cycle Saver."
133
134 e100_speed_duplex
135 Valid Range: 0-4 (1=10half;2=10full;3=100half;4=100full)
136 Default Value: 0
137    The default value of 0 sets the adapter to auto-negotiate. Other values
138    set the adapter to forced speed and duplex. 
139    Example usage: insmod e100.o e100_speed_duplex=4,4 (for two adapters)
140
141 flow_control
142 Valid Range: 0-1 (0=off, 1=on)
143 Default Value: 0
144    This parameter controls the automatic generation(Tx) and response(Rx) to 
145    Ethernet PAUSE frames. flow_control should NOT be set to 1 when the 
146    adapter is connected to an interface that does not support Ethernet PAUSE 
147    frames and when the e100_speed_duplex parameter is NOT set to zero. 
148
149 IntDelay
150 Valid Range: 0-65535 (0=off)
151 Default Value: 1536
152    This parameter holds the number of time units (in adapter terminology)
153    until the adapter generates an interrupt. The recommended value for 
154    IntDelay is 1536 (upon initialization). Suggested values range from 
155    512 to 2048. See "CPU Cycle Saver."
156
157 IFS
158 Valid Range: 0-1 (0=off, 1=on)
159 Default Value: 1
160   Inter Frame Spacing (IFS) aims to reduce the number of Ethernet frame
161   collisions by altering the time between frame transmissions. When IFS is 
162   enabled the driver tries to find an optimal IFS value. It is used only at 
163   half duplex.
164
165 RxDescriptors
166 Valid Range: 8-1024
167 Default Value: 64
168    This parameter defines the number of receive descriptors allocated by 
169    the driver. Increasing this value allows the driver to buffer more 
170    incoming packets before the driver is required to service an interrupt. 
171    The maximum value for Itanium-based systems is 64.
172
173 TxDescriptors
174 Valid Range: 19-1024
175 Default Value: 64
176    This value is the number of transmit descriptors allocated by the driver. 
177    Increasing this value allows the protocol stack to queue more transmits at
178    the driver level. The maximum value for Itanium-based systems is 64.
179
180 ucode
181 Valid Range: 0-1 (0=off, 1=on)
182 Default Value: 0 for 82558-based adapters
183                1 for 82559, 82550, and 82551-based adapters
184    On uploads the micro code to the adapter, which enables CPU Cycle Saver. 
185    See the section "CPU Cycle Saver" below.
186    Example usage: insmod e100.o ucode=1
187
188    Not available on 82557-based adapters.
189
190 XsumRX
191 Valid Range: 0-1 (0=off, 1=on)
192 Default Value: 1
193    On allows Rx checksum offloading for TCP/UDP packets. Requires that the 
194    hardware support this feature.
195
196    Not available on 82557 and 82558-based adapters.
197
198
199 CPU Cycle Saver
200 ================
201
202 CPU Cycle Saver reduces CPU utilization by reducing the number of interrupts 
203 that the adapter generates.
204
205 When CPU Cycle Saver is turned off, the adapter generates one interrupt for 
206 every frame that is received. This means that the operating system stops what
207 it is doing and switches to the network driver in order to process the 
208 receive.
209
210 When CPU Cycle Saver is on, the adapter does not generate an interrupt for 
211 every frame it receives. Instead, it waits until it receives several frames 
212 before generating an interrupt. This reduces the amount of time spent 
213 switching to and from the driver. 
214
215 CPU Cycle Saver consists of these arguments: IntDelay, BundleMax and 
216 BundleSmallFr. When IntDelay is increased, the adapter waits longer for 
217 frames to arrive before generating the interrupt. By increasing BundleMax, 
218 the network adapter waits for the number of small frames (less than 128 bytes)
219 specified to arrive before generating the interrupt. When BundleSmallFr is 
220 disabled, the adapter does not bundle small packets. Such small packets are 
221 often, but not always, control packets that are better served immediately;
222 therefore, BundleSmallFr is disabled by default.
223
224 For most users, it is recommended that CPU Cycle Saver be used with the 
225 default values specified in the Command Line Parameters section. However, in 
226 some cases, performance problems may occur with CPU Cycle Saver. If such 
227 problems are observed, we recommend turning off this feature by setting 
228 ucode=0.
229
230
231 Support
232 =======
233
234 For general information, go to the Intel support website at:
235
236     http://support.intel.com
237
238 If an issue is identified with the released source code on the supported
239 kernel with a supported adapter, email the specific information related to 
240 the issue to linux.nics@intel.com.
241
242
243 License
244 =======
245
246 This software program is released under the terms of a license agreement 
247 between you ('Licensee') and Intel. Do not use or load this software or any 
248 associated materials (collectively, the 'Software') until you have carefully 
249 read the full terms and conditions of the LICENSE located in this software 
250 package. By loading or using the Software, you agree to the terms of this 
251 Agreement. If you do not agree with the terms of this Agreement, do not 
252 install or use the Software.
253
254 * Other names and brands may be claimed as the property of others.