make oldconfig will rebuild these...
[linux-2.4.21-pre4.git] / Documentation / networking / e100.txt
1 Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters
2 ==============================================================
3
4 September 16, 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.1.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 The following optional parameters are used by entering them on the command 
98 line with the modprobe or insmod command using this syntax:
99
100      modprobe e100 [<option>=<VAL1>,<VAL2>,...]
101
102      insmod e100 [<option>=<VAL1>,<VAL2>,...] 
103
104 For example, with two Intel PRO/100 PCI adapters, entering:
105         
106      modprobe e100 TxDescriptors=32,128
107
108 loads the e100 driver with 32 TX resources for the first adapter and 128 TX 
109 resources for the second adapter. This configuration favors the second 
110 adapter. The driver supports up to 16 network adapters concurrently.
111
112 The default value for each parameter is generally the recommended setting,
113 unless otherwise noted.
114
115 NOTE: Giving any command line option the value "-1" causes the driver to use 
116       the appropriate default value for that option, as if no value was 
117       specified.
118
119
120 BundleMax
121 Valid Range: 1-65535
122 Default Value: 6
123    This parameter holds the maximum number of small packets (less than 128
124    bytes) in a bundle. Suggested values range from 2 to 10. See "CPU Cycle 
125    Saver."
126
127 BundleSmallFr
128 Valid Range: 0-1 (0=off, 1=on)
129 Default Value: 0
130    The value 1 (on) causes small packets (less than 128 bytes) to be bundled. 
131    See "CPU Cycle Saver."
132
133 e100_speed_duplex
134 Valid Range: 0-4 (1=10half;2=10full;3=100half;4=100full)
135 Default Value: 0
136    The default value of 0 sets the adapter to auto-negotiate. Other values
137    set the adapter to forced speed and duplex. 
138    Example usage: insmod e100.o e100_speed_duplex=4,4 (for two adapters)
139
140 flow_control
141 Valid Range: 0-1 (0=off, 1=on)
142 Default Value: 0
143    This parameter controls the automatic generation(Tx) and response(Rx) to 
144    Ethernet PAUSE frames. flow_control should NOT be set to 1 when the 
145    adapter is connected to an interface that does not support Ethernet PAUSE 
146    frames and when the e100_speed_duplex parameter is NOT set to zero. 
147
148 IntDelay
149 Valid Range: 0-65535 (0=off)
150 Default Value: 1536
151    This parameter holds the number of time units (in adapter terminology)
152    until the adapter generates an interrupt. The recommended value for 
153    IntDelay is 1536 (upon initialization). Suggested values range from 
154    512 to 2048. See "CPU Cycle Saver."
155
156 IFS
157 Valid Range: 0-1 (0=off, 1=on)
158 Default Value: 1
159   Inter Frame Spacing (IFS) aims to reduce the number of Ethernet frame
160   collisions by altering the time between frame transmissions. When IFS is 
161   enabled the driver tries to find an optimal IFS value. It is used only at 
162   half duplex.
163
164 RxDescriptors
165 Valid Range: 8-1024
166 Default Value: 64
167    This parameter defines the number of receive descriptors allocated by 
168    the driver. Increasing this value allows the driver to buffer more 
169    incoming packets before the driver is required to service an interrupt. 
170    The maximum value for Itanium-based systems is 64.
171
172 TxDescriptors
173 Valid Range: 19-1024
174 Default Value: 64
175    This value is the number of transmit descriptors allocated by the driver. 
176    Increasing this value allows the protocol stack to queue more transmits at
177    the driver level. The maximum value for Itanium-based systems is 64.
178
179 ucode
180 Valid Range: 0-1 (0=off, 1=on)
181 Default Value: 0 for 82558-based adapters
182                1 for 82559, 82550, and 82551-based adapters
183    On uploads the micro code to the adapter, which enables CPU Cycle Saver. 
184    See the section "CPU Cycle Saver" below.
185    Example usage: insmod e100.o ucode=1
186
187    Not available on 82557-based adapters.
188
189 XsumRX
190 Valid Range: 0-1 (0=off, 1=on)
191 Default Value: 1
192    On allows Rx checksum offloading for TCP/UDP packets. Requires that the 
193    hardware support this feature.
194
195    Not available on 82557 and 82558-based adapters.
196
197
198 CPU Cycle Saver
199 ================
200
201 CPU Cycle Saver reduces CPU utilization by reducing the number of interrupts 
202 that the adapter generates.
203
204 When CPU Cycle Saver is turned off, the adapter generates one interrupt for 
205 every frame that is received. This means that the operating system stops what
206 it is doing and switches to the network driver in order to process the 
207 receive.
208
209 When CPU Cycle Saver is on, the adapter does not generate an interrupt for 
210 every frame it receives. Instead, it waits until it receives several frames 
211 before generating an interrupt. This reduces the amount of time spent 
212 switching to and from the driver. 
213
214 CPU Cycle Saver consists of these arguments: IntDelay, BundleMax and 
215 BundleSmallFr. When IntDelay is increased, the adapter waits longer for 
216 frames to arrive before generating the interrupt. By increasing BundleMax, 
217 the network adapter waits for the number of small frames (less than 128 bytes)
218 specified to arrive before generating the interrupt. When BundleSmallFr is 
219 disabled, the adapter does not bundle small packets. Such small packets are 
220 often, but not always, control packets that are better served immediately;
221 therefore, BundleSmallFr is disabled by default.
222
223 For most users, it is recommended that CPU Cycle Saver be used with the 
224 default values specified in the Command Line Parameters section. However, in 
225 some cases, performance problems may occur with CPU Cycle Saver. If such 
226 problems are observed, we recommend turning off this feature by setting 
227 ucode=0.
228
229
230 Support
231 =======
232
233 For general information, go to the Intel support website at:
234
235     http://support.intel.com
236
237 If an issue is identified with the released source code on the supported
238 kernel with a supported adapter, email the specific information related to 
239 the issue to linux.nics@intel.com.
240
241
242 License
243 =======
244
245 This software program is released under the terms of a license agreement 
246 between you ('Licensee') and Intel. Do not use or load this software or any 
247 associated materials (collectively, the 'Software') until you have carefully 
248 read the full terms and conditions of the LICENSE located in this software 
249 package. By loading or using the Software, you agree to the terms of this 
250 Agreement. If you do not agree with the terms of this Agreement, do not 
251 install or use the Software.
252
253 * Other names and brands may be claimed as the property of others.