ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / Documentation / networking / e1000.txt
1 Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters
2 ===============================================================
3
4 January 8, 2003
5
6
7 Contents
8 ========
9
10 - In This Release
11 - Supported Adapters
12 - Command Line Parameters
13 - Speed and Duplex Configuration
14 - Additional Configurations
15 - Known Issues
16 - Support
17
18
19 In This Release
20 ===============
21
22 This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family
23 of Adapters, version 5.0.x.  This driver includes support for 
24 Itanium(TM)-based systems.
25
26
27 Native VLANs are now available with supported kernels.
28
29
30 Supported Adapters
31 ==================
32
33 The following Intel network adapters are compatible with the drivers in this 
34 release:
35
36    Controller  Adapter Name                         Board IDs
37    ----------  ------------                         ---------
38
39    82542       PRO/1000 Gigabit Server Adapter      700262-xxx, 717037-xxx
40
41    82543       PRO/1000 F Server Adapter            738640-xxx, A38888-xxx
42
43    82543       PRO/1000 T Server Adapter            A19845-xxx, A33948-xxx
44
45    82544       PRO/1000 XT Server Adapter           A51580-xxx
46
47    82544       PRO/1000 XF Server Adapter           A50484-xxx
48
49    82544       PRO/1000 T Desktop Adapter           A62947-xxx
50
51    82540       PRO/1000 MT Desktop Adapter          A78408-xxx
52    82541                                            C91016-xxx
53
54    82545       PRO/1000 MT Server Adapter           A92165-xxx
55
56    82546       PRO/1000 MT Dual Port Server Adapter A92111-xxx
57
58    82545       PRO/1000 MF Server Adapter           A91622-xxx
59
60    82545       PRO/1000 MF Server Adapter(LX)       A91624-xxx
61
62    82546       PRO/1000 MF Dual Port Server Adapter A91620-xxx
63
64
65
66 To verify your Intel adapter is supported, find the board ID number on the 
67 adapter. Look for a label that has a barcode and a number in the format  
68 A12345-001. Match this to the list of numbers above.
69
70 For more information on how to identify your adapter, go to the Adapter & 
71 Driver ID Guide at:
72
73     http://support.intel.com/support/network/adapter/pro100/21397.htm
74
75 For the latest Intel network drivers for Linux, refer to the following
76
77     http://downloadfinder.intel.com/scripts-df/support_intel.asp
78
79
80 Command Line Parameters
81 =======================
82
83 If the driver is built as a module, the  following optional parameters are 
84 used by entering them on the command line with the modprobe or insmod command
85 using this syntax:
86
87      modprobe e1000 [<option>=<VAL1>,<VAL2>,...]
88
89      insmod e1000 [<option>=<VAL1>,<VAL2>,...] 
90
91 For example, with two PRO/1000 PCI adapters, entering:
92
93      insmod e1000 TxDescriptors=80,128
94
95 loads the e1000 driver with 80 TX resources for the first adapter and 128 TX 
96 resources for the second adapter.
97
98 The default value for each parameter is generally the recommended setting,
99 unless otherwise noted.
100
101 For more information about the AutoNeg, Duplex, and Speed parameters, see the
102 "Speed and Duplex Configuration" section in this document.
103
104
105 AutoNeg (adapters using copper connections only)
106 Valid Range: 0x01-0x0F, 0x20-0x2F
107 Default Value: 0x2F
108     This parameter is a bit mask that specifies which speed and duplex
109     settings the board advertises. When this parameter is used, the Speed and
110     Duplex parameters must not be specified.  
111
112 Duplex (adapters using copper connections only)
113 Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full)
114 Default Value: 0
115     Defines the direction in which data is allowed to flow. Can by either one 
116     or two-directional. If both Duplex and the link partner are set to auto-
117     negotiate, the board auto-detects the correct duplex. If the link partner
118     is forced (either full or half), Duplex defaults to half-duplex.
119
120 FlowControl
121 Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)
122 Default: Read flow control settings from the EEPROM
123     This parameter controls the automatic generation(Tx) and response(Rx) to 
124     Ethernet PAUSE frames.
125
126 InterruptThrottleRate
127 Valid Range: 100-100000 (0=off, 1=dynamic)
128 Default Value: 1
129     This value represents the maximum number of interrupts per second the 
130     controller generates. InterruptThrottleRate is another setting used in 
131     interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust 
132     InterruptThrottleRate based on the current traffic load.
133
134     NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and 
135           RxAbsIntDelay parameters. In other words, minimizing the receive 
136           and/or transmit absolute delays does not force the controller to 
137           generate more interrupts than what the Interrupt Throttle Rate 
138           allows.
139
140 RxDescriptors
141 Valid Range: 80-256 for 82542 and 82543-based adapters
142              80-4096 for 82540, 82544, 82545, and 82546-based adapters
143 Default Value: 80
144     This value is the number of receive descriptors allocated by the driver. 
145     Increasing this value allows the driver to buffer more incoming packets. 
146     Each descriptor is 16 bytes.  A receive buffer is also allocated for each
147     descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending 
148     on the MTU setting. The maximum MTU size is 16110.
149
150     NOTE: MTU designates the frame size. It only needs to be set for Jumbo 
151           Frames.
152
153 RxIntDelay
154 Valid Range: 0-65535 (0=off)
155 Default Value: 0
156     This value delays the generation of receive interrupts in units of 1.024 
157     microseconds.  Receive interrupt reduction can improve CPU efficiency if 
158     properly tuned for specific network traffic. Increasing this value adds 
159     extra latency to frame reception and can end up decreasing the throughput 
160     of TCP traffic. If the system is reporting dropped receives, this value 
161     may be set too high, causing the driver to run out of available receive 
162     descriptors.
163
164     CAUTION: When setting RxIntDelay to a value other than 0, adapters may 
165              hang (stop transmitting) under certain network conditions. If 
166              this occurs a NETDEV WATCHDOG message is logged in the system
167              event log. In addition, the controller is automatically reset, 
168              restoring the network connection. To eliminate the potential for
169              the hang ensure that RxIntDelay is set to 0.
170
171 RxAbsIntDelay (82540, 82545, and 82546-based adapters only)
172 Valid Range: 0-65535 (0=off)
173 Default Value: 128
174     This value, in units of 1.024 microseconds, limits the delay in which a 
175     transmit interrupt is generated. Useful only if RxIntDelay is non-zero, 
176     this value ensures that an interrupt is generated after the initial 
177     packet is received within the set amount of time.  Proper tuning,
178     along with RxIntDelay, may improve traffic throughput in specific network
179     conditions.
180
181 Speed (adapters using copper connections only)
182 Valid Settings: 0, 10, 100, 1000
183 Default Value: 0 (auto-negotiate at all supported speeds)
184     Speed forces the line speed to the specified value in megabits per second
185     (Mbps). If this parameter is not specified or is set to 0 and the link 
186     partner is set to auto-negotiate, the board will auto-detect the correct 
187     speed. Duplex should also be set when Speed is set to either 10 or 100.
188
189 TxDescriptors
190 Valid Range: 80-256 for 82542 and 82543-based adapters
191              80-4096 for 82540, 82544, 82545, and 82546-based adapters
192 Default Value: 256
193     This value is the number of transmit descriptors allocated by the driver.
194     Increasing this value allows the driver to queue more transmits. Each 
195     descriptor is 16 bytes.
196
197 TxIntDelay
198 Valid Range: 0-65535 (0=off)
199 Default Value: 64
200     This value delays the generation of transmit interrupts in units of 
201     1.024 microseconds. Transmit interrupt reduction can improve CPU
202     efficiency if properly tuned for specific network traffic. If the
203     system is reporting dropped transmits, this value may be set too high
204     causing the driver to run out of available transmit descriptors.
205
206 TxAbsIntDelay (82540, 82545, and 82546-based adapters only)
207 Valid Range: 0-65535 (0=off)
208 Default Value: 64
209     This value, in units of 1.024 microseconds, limits the delay in which a 
210     transmit interrupt is generated. Useful only if TxIntDelay is non-zero, 
211     this value ensures that an interrupt is generated after the initial 
212     packet is sent on the wire within the set amount of time.  Proper tuning,
213     along with TxIntDelay, may improve traffic throughput in specific 
214     network conditions.
215
216 XsumRX (not available on the 82542-based adapter)
217 Valid Range: 0-1
218 Default Value: 1
219     A value of '1' indicates that the driver should enable IP checksum
220     offload for received packets (both UDP and TCP) to the adapter hardware.
221
222
223 Speed and Duplex Configuration
224 ==============================
225
226 Three keywords are used to control the speed and duplex configuration. These 
227 keywords are Speed, Duplex, and AutoNeg.
228
229 If the board uses a fiber interface, these keywords are ignored, and the 
230 fiber interface board only links at 1000 Mbps full-duplex.
231
232 For copper-based boards, the keywords interact as follows:
233
234   The default operation is auto-negotiate. The board advertises all supported
235   speed and duplex combinations, and it links at the highest common speed and
236   duplex mode IF the link partner is set to auto-negotiate.
237
238   If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps is
239   advertised (The 1000BaseT spec requires auto-negotiation.)
240
241   If Speed = 10 or 100, then both Speed and Duplex should be set. Auto-
242   negotiation is disabled, and the AutoNeg parameter is ignored. Partner SHOULD
243   also be forced.
244
245 The AutoNeg parameter is used when more control is required over the auto-
246 negotiation process.  When this parameter is used, Speed and Duplex must not 
247 be specified.  This parameter is a bitmap that specifies which speed and 
248 duplex settings are advertised to the link partner.
249
250 Bit            7      6      5       4       3      2      1       0
251 Speed (Mbps)   N/A    N/A    1000    N/A     100    100    10      10
252 Duplex                       Full            Full   Half   Full    Half
253
254 Note that setting AutoNeg does not guarantee that the board will link at the 
255 highest specified speed or duplex mode, but the board will link at the 
256 highest possible speed/duplex of the link partner IF the link partner is also
257 set to auto-negotiate. If the link partner is forced speed/duplex, the 
258 adapter MUST be forced to the same speed/duplex.
259
260
261 Additional Configurations
262 =========================
263
264   Jumbo Frames
265   ------------
266
267   The driver supports Jumbo Frames for all adapters except 82542-based 
268   adapters. Jumbo Frames support is enabled by changing the MTU to a value 
269   larger than the default of 1500. Use the ifconfig command to increase the 
270   MTU size. For example:
271
272         ifconfig ethx mtu 9000 up
273
274   The maximum MTU setting for Jumbo Frames is 16110. This value coincides 
275   with the maximum Jumbo Frames size of 16128.
276
277   NOTE: Jumbo Frames are supported at 1000 Mbps only. Using Jumbo Frames at 
278   10 or 100 Mbps may result in poor performance or loss of link.
279
280
281 Known Issues
282 ============
283
284   Jumbo Frames System Requirement
285   -------------------------------
286
287   Memory allocation failures have been observed on Linux systems with 64 MB 
288   of RAM or less that are running Jumbo Frames. If you are using Jumbo 
289   Frames, your system may require more than the advertised minimum 
290   requirement of 64 MB of system memory.
291
292
293 Support
294 =======
295
296 For general information, go to the Intel support website at:
297
298     http://support.intel.com
299
300 If an issue is identified with the released source code on the supported
301 kernel with a supported adapter, email the specific information related to 
302 the issue to linux.nics@intel.com.
303
304
305 License
306 =======
307
308 This software program is released under the terms of a license agreement 
309 between you ('Licensee') and Intel. Do not use or load this software or any 
310 associated materials (collectively, the 'Software') until you have carefully 
311 read the full terms and conditions of the LICENSE located in this software 
312 package. By loading or using the Software, you agree to the terms of this 
313 Agreement. If you do not agree with the terms of this Agreement, do not 
314 install or use the Software.
315
316 * Other names and brands may be claimed as the property of others.