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