Blame view

Documentation/networking/e1000.txt 18.4 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
  Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters
  ===============================================================
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
3
4
  Intel Gigabit Linux driver.
  Copyright(c) 1999 - 2010 Intel Corporation.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5
6
7
  
  Contents
  ========
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
8
9
10
11
  - Identifying Your Adapter
  - Command Line Parameters
  - Speed and Duplex Configuration
  - Additional Configurations
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
12
  - Support
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
13
14
  Identifying Your Adapter
  ========================
55be062d2   Jesse Brandeburg   e1000: update the...
15
  For more information on how to identify your adapter, go to the Adapter &
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
16
  Driver ID Guide at:
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
17
      http://support.intel.com/support/go/network/adapter/idguide.htm
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
18

55be062d2   Jesse Brandeburg   e1000: update the...
19
  For the latest Intel network drivers for Linux, refer to the following
de3edab42   Auke Kok   e1000: update REA...
20
  website.  In the search field, enter your adapter name or type, or use the
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
21
  networking link on the left to search for your adapter:
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
22
      http://support.intel.com/support/go/network/adapter/home.htm
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
23

de3edab42   Auke Kok   e1000: update REA...
24
25
  Command Line Parameters
  =======================
55be062d2   Jesse Brandeburg   e1000: update the...
26

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
27
  The default value for each parameter is generally the recommended setting,
55be062d2   Jesse Brandeburg   e1000: update the...
28
29
30
31
32
  unless otherwise noted.
  
  NOTES:  For more information about the AutoNeg, Duplex, and Speed
          parameters, see the "Speed and Duplex Configuration" section in
          this document.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
33

55be062d2   Jesse Brandeburg   e1000: update the...
34
35
36
37
          For more information about the InterruptThrottleRate,
          RxIntDelay, TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay
          parameters, see the application note at:
          http://www.intel.com/design/network/applnots/ap450.htm
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
38

55be062d2   Jesse Brandeburg   e1000: update the...
39
40
41
42
  AutoNeg
  -------
  (Supported only on adapters with copper connections)
  Valid Range:   0x01-0x0F, 0x20-0x2F
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
43
  Default Value: 0x2F
55be062d2   Jesse Brandeburg   e1000: update the...
44

de3edab42   Auke Kok   e1000: update REA...
45
46
47
  This parameter is a bit-mask that specifies the speed and duplex settings
  advertised by the adapter.  When this parameter is used, the Speed and
  Duplex parameters must not be specified.
55be062d2   Jesse Brandeburg   e1000: update the...
48
49
50
  
  NOTE:  Refer to the Speed and Duplex section of this readme for more
         information on the AutoNeg parameter.
55be062d2   Jesse Brandeburg   e1000: update the...
51
52
53
54
  Duplex
  ------
  (Supported only on adapters with copper connections)
  Valid Range:   0-2 (0=auto-negotiate, 1=half, 2=full)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
55
  Default Value: 0
55be062d2   Jesse Brandeburg   e1000: update the...
56

de3edab42   Auke Kok   e1000: update REA...
57
58
59
60
61
  This defines the direction in which data is allowed to flow.  Can be
  either one or two-directional.  If both Duplex and the link partner are
  set to auto-negotiate, the board auto-detects the correct duplex.  If the
  link partner is forced (either full or half), Duplex defaults to half-
  duplex.
55be062d2   Jesse Brandeburg   e1000: update the...
62

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
63
  FlowControl
de3edab42   Auke Kok   e1000: update REA...
64
  -----------
55be062d2   Jesse Brandeburg   e1000: update the...
65
66
67
68
69
  Valid Range:   0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)
  Default Value: Reads flow control settings from the EEPROM
  
  This parameter controls the automatic generation(Tx) and response(Rx)
  to Ethernet PAUSE frames.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
70
  InterruptThrottleRate
55be062d2   Jesse Brandeburg   e1000: update the...
71
  ---------------------
de3edab42   Auke Kok   e1000: update REA...
72
  (not supported on Intel(R) 82542, 82543 or 82544-based adapters)
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
73
  Valid Range:   0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
96c3c0330   Jeff Kirsher   Documentation/net...
74
                                   4=simplified balancing)
de3edab42   Auke Kok   e1000: update REA...
75
76
77
  Default Value: 3
  
  The driver can limit the amount of interrupts per second that the adapter
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
78
79
  will generate for incoming packets. It does this by writing a value to the
  adapter that is based on the maximum amount of interrupts that the adapter
de3edab42   Auke Kok   e1000: update REA...
80
81
82
83
84
85
86
  will generate per second.
  
  Setting InterruptThrottleRate to a value greater or equal to 100
  will program the adapter to send out a maximum of that many interrupts
  per second, even if more packets have come in. This reduces interrupt
  load on the system and can lower CPU utilization under heavy load,
  but will increase latency as packets are not processed as quickly.
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
87
88
89
90
  The default behaviour of the driver previously assumed a static
  InterruptThrottleRate value of 8000, providing a good fallback value for
  all traffic types,but lacking in small packet performance and latency.
  The hardware can handle many more small packets per second however, and
de3edab42   Auke Kok   e1000: update REA...
91
92
93
  for this reason an adaptive interrupt moderation algorithm was implemented.
  
  Since 7.3.x, the driver has two adaptive modes (setting 1 or 3) in which
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
94
  it dynamically adjusts the InterruptThrottleRate value based on the traffic
de3edab42   Auke Kok   e1000: update REA...
95
  that it receives. After determining the type of incoming traffic in the last
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
96
  timeframe, it will adjust the InterruptThrottleRate to an appropriate value
de3edab42   Auke Kok   e1000: update REA...
97
98
99
  for that traffic.
  
  The algorithm classifies the incoming traffic every interval into
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
100
101
  classes.  Once the class is determined, the InterruptThrottleRate value is
  adjusted to suit that traffic type the best. There are three classes defined:
de3edab42   Auke Kok   e1000: update REA...
102
103
  "Bulk traffic", for large amounts of packets of normal size; "Low latency",
  for small amounts of traffic and/or a significant percentage of small
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
104
  packets; and "Lowest latency", for almost completely small packets or
de3edab42   Auke Kok   e1000: update REA...
105
  minimal traffic.
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
106
107
108
  In dynamic conservative mode, the InterruptThrottleRate value is set to 4000
  for traffic that falls in class "Bulk traffic". If traffic falls in the "Low
  latency" or "Lowest latency" class, the InterruptThrottleRate is increased
de3edab42   Auke Kok   e1000: update REA...
109
110
111
112
113
  stepwise to 20000. This default mode is suitable for most applications.
  
  For situations where low latency is vital such as cluster or
  grid computing, the algorithm can reduce latency even more when
  InterruptThrottleRate is set to mode 1. In this mode, which operates
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
114
  the same as mode 3, the InterruptThrottleRate will be increased stepwise to
de3edab42   Auke Kok   e1000: update REA...
115
  70000 for traffic in class "Lowest latency".
96c3c0330   Jeff Kirsher   Documentation/net...
116
117
  In simplified mode the interrupt rate is based on the ratio of TX and
  RX traffic.  If the bytes per second rate is approximately equal, the
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
118
119
120
  interrupt rate will drop as low as 2000 interrupts per second.  If the
  traffic is mostly transmit or mostly receive, the interrupt rate could
  be as high as 8000.
de3edab42   Auke Kok   e1000: update REA...
121
122
123
  Setting InterruptThrottleRate to 0 turns off any interrupt moderation
  and may improve small packet latency, but is generally not suitable
  for bulk throughput traffic.
55be062d2   Jesse Brandeburg   e1000: update the...
124
125
  
  NOTE:  InterruptThrottleRate takes precedence over the TxAbsIntDelay and
de3edab42   Auke Kok   e1000: update REA...
126
         RxAbsIntDelay parameters.  In other words, minimizing the receive
55be062d2   Jesse Brandeburg   e1000: update the...
127
128
129
         and/or transmit absolute delays does not force the controller to
         generate more interrupts than what the Interrupt Throttle Rate
         allows.
de3edab42   Auke Kok   e1000: update REA...
130
  CAUTION:  If you are using the Intel(R) PRO/1000 CT Network Connection
55be062d2   Jesse Brandeburg   e1000: update the...
131
132
            (controller 82547), setting InterruptThrottleRate to a value
            greater than 75,000, may hang (stop transmitting) adapters
de3edab42   Auke Kok   e1000: update REA...
133
134
            under certain network conditions.  If this occurs a NETDEV
            WATCHDOG message is logged in the system event log.  In
55be062d2   Jesse Brandeburg   e1000: update the...
135
            addition, the controller is automatically reset, restoring
de3edab42   Auke Kok   e1000: update REA...
136
            the network connection.  To eliminate the potential for the
55be062d2   Jesse Brandeburg   e1000: update the...
137
138
139
140
141
            hang, ensure that InterruptThrottleRate is set no greater
            than 75,000 and is not set to 0.
  
  NOTE:  When e1000 is loaded with default settings and multiple adapters
         are in use simultaneously, the CPU utilization may increase non-
de3edab42   Auke Kok   e1000: update REA...
142
         linearly.  In order to limit the CPU utilization without impacting
55be062d2   Jesse Brandeburg   e1000: update the...
143
144
         the overall throughput, we recommend that you load the driver as
         follows:
de3edab42   Auke Kok   e1000: update REA...
145
             modprobe e1000 InterruptThrottleRate=3000,3000,3000
55be062d2   Jesse Brandeburg   e1000: update the...
146
147
  
         This sets the InterruptThrottleRate to 3000 interrupts/sec for
de3edab42   Auke Kok   e1000: update REA...
148
         the first, second, and third instances of the driver.  The range
55be062d2   Jesse Brandeburg   e1000: update the...
149
150
         of 2000 to 3000 interrupts per second works on a majority of
         systems and is a good starting point, but the optimal value will
de3edab42   Auke Kok   e1000: update REA...
151
         be platform-specific.  If CPU utilization is not a concern, use
55be062d2   Jesse Brandeburg   e1000: update the...
152
         RX_POLLING (NAPI) and default driver settings.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
153
  RxDescriptors
55be062d2   Jesse Brandeburg   e1000: update the...
154
155
156
  -------------
  Valid Range:   80-256 for 82542 and 82543-based adapters
                 80-4096 for all other supported adapters
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
157
  Default Value: 256
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
158

de3edab42   Auke Kok   e1000: update REA...
159
160
161
162
163
  This value specifies the number of receive buffer descriptors allocated
  by the driver.  Increasing this value allows the driver to buffer more
  incoming packets, at the expense of increased system memory utilization.
  
  Each descriptor is 16 bytes.  A receive buffer is also allocated for each
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
164
  descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending
de3edab42   Auke Kok   e1000: update REA...
165
  on the MTU setting. The maximum MTU size is 16110.
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
166
167
168
  NOTE:  MTU designates the frame size.  It only needs to be set for Jumbo
         Frames.  Depending on the available system resources, the request
         for a higher number of receive descriptors may be denied.  In this
de3edab42   Auke Kok   e1000: update REA...
169
         case, use a lower number.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
170

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
171
  RxIntDelay
55be062d2   Jesse Brandeburg   e1000: update the...
172
173
  ----------
  Valid Range:   0-65535 (0=off)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
174
  Default Value: 0
55be062d2   Jesse Brandeburg   e1000: update the...
175
176
177
  
  This value delays the generation of receive interrupts in units of 1.024
  microseconds.  Receive interrupt reduction can improve CPU efficiency if
de3edab42   Auke Kok   e1000: update REA...
178
  properly tuned for specific network traffic.  Increasing this value adds
55be062d2   Jesse Brandeburg   e1000: update the...
179
  extra latency to frame reception and can end up decreasing the throughput
de3edab42   Auke Kok   e1000: update REA...
180
  of TCP traffic.  If the system is reporting dropped receives, this value
55be062d2   Jesse Brandeburg   e1000: update the...
181
182
183
184
  may be set too high, causing the driver to run out of available receive
  descriptors.
  
  CAUTION:  When setting RxIntDelay to a value other than 0, adapters may
de3edab42   Auke Kok   e1000: update REA...
185
            hang (stop transmitting) under certain network conditions.  If
55be062d2   Jesse Brandeburg   e1000: update the...
186
            this occurs a NETDEV WATCHDOG message is logged in the system
de3edab42   Auke Kok   e1000: update REA...
187
188
            event log.  In addition, the controller is automatically reset,
            restoring the network connection.  To eliminate the potential
55be062d2   Jesse Brandeburg   e1000: update the...
189
            for the hang ensure that RxIntDelay is set to 0.
55be062d2   Jesse Brandeburg   e1000: update the...
190
191
192
193
  RxAbsIntDelay
  -------------
  (This parameter is supported only on 82540, 82545 and later adapters.)
  Valid Range:   0-65535 (0=off)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
194
  Default Value: 128
55be062d2   Jesse Brandeburg   e1000: update the...
195
196
  
  This value, in units of 1.024 microseconds, limits the delay in which a
de3edab42   Auke Kok   e1000: update REA...
197
  receive interrupt is generated.  Useful only if RxIntDelay is non-zero,
55be062d2   Jesse Brandeburg   e1000: update the...
198
199
200
201
  this value ensures that an interrupt is generated after the initial
  packet is received within the set amount of time.  Proper tuning,
  along with RxIntDelay, may improve traffic throughput in specific network
  conditions.
55be062d2   Jesse Brandeburg   e1000: update the...
202
203
204
  Speed
  -----
  (This parameter is supported only on adapters with copper connections.)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
205
  Valid Settings: 0, 10, 100, 1000
55be062d2   Jesse Brandeburg   e1000: update the...
206
207
208
  Default Value:  0 (auto-negotiate at all supported speeds)
  
  Speed forces the line speed to the specified value in megabits per second
de3edab42   Auke Kok   e1000: update REA...
209
  (Mbps).  If this parameter is not specified or is set to 0 and the link
55be062d2   Jesse Brandeburg   e1000: update the...
210
  partner is set to auto-negotiate, the board will auto-detect the correct
de3edab42   Auke Kok   e1000: update REA...
211
  speed.  Duplex should also be set when Speed is set to either 10 or 100.
55be062d2   Jesse Brandeburg   e1000: update the...
212

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
213
  TxDescriptors
55be062d2   Jesse Brandeburg   e1000: update the...
214
215
216
  -------------
  Valid Range:   80-256 for 82542 and 82543-based adapters
                 80-4096 for all other supported adapters
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
217
  Default Value: 256
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
218

55be062d2   Jesse Brandeburg   e1000: update the...
219
  This value is the number of transmit descriptors allocated by the driver.
de3edab42   Auke Kok   e1000: update REA...
220
  Increasing this value allows the driver to queue more transmits.  Each
55be062d2   Jesse Brandeburg   e1000: update the...
221
222
223
224
225
  descriptor is 16 bytes.
  
  NOTE:  Depending on the available system resources, the request for a
         higher number of transmit descriptors may be denied.  In this case,
         use a lower number.
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
226
227
228
  TxDescriptorStep
  ----------------
  Valid Range:    1 (use every Tx Descriptor)
96c3c0330   Jeff Kirsher   Documentation/net...
229
                  4 (use every 4th Tx Descriptor)
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
  
  Default Value:  1 (use every Tx Descriptor)
  
  On certain non-Intel architectures, it has been observed that intense TX
  traffic bursts of short packets may result in an improper descriptor
  writeback. If this occurs, the driver will report a "TX Timeout" and reset
  the adapter, after which the transmit flow will restart, though data may
  have stalled for as much as 10 seconds before it resumes.
  
  The improper writeback does not occur on the first descriptor in a system
  memory cache-line, which is typically 32 bytes, or 4 descriptors long.
  
  Setting TxDescriptorStep to a value of 4 will ensure that all TX descriptors
  are aligned to the start of a system memory cache line, and so this problem
  will not occur.
  
  NOTES: Setting TxDescriptorStep to 4 effectively reduces the number of
         TxDescriptors available for transmits to 1/4 of the normal allocation.
         This has a possible negative performance impact, which may be
         compensated for by allocating more descriptors using the TxDescriptors
         module parameter.
  
         There are other conditions which may result in "TX Timeout", which will
         not be resolved by the use of the TxDescriptorStep parameter. As the
         issue addressed by this parameter has never been observed on Intel
         Architecture platforms, it should not be used on Intel platforms.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
256
257
  
  TxIntDelay
55be062d2   Jesse Brandeburg   e1000: update the...
258
259
  ----------
  Valid Range:   0-65535 (0=off)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
260
  Default Value: 64
55be062d2   Jesse Brandeburg   e1000: update the...
261
262
  
  This value delays the generation of transmit interrupts in units of
de3edab42   Auke Kok   e1000: update REA...
263
264
  1.024 microseconds.  Transmit interrupt reduction can improve CPU
  efficiency if properly tuned for specific network traffic.  If the
55be062d2   Jesse Brandeburg   e1000: update the...
265
266
  system is reporting dropped transmits, this value may be set too high
  causing the driver to run out of available transmit descriptors.
55be062d2   Jesse Brandeburg   e1000: update the...
267
268
269
270
  TxAbsIntDelay
  -------------
  (This parameter is supported only on 82540, 82545 and later adapters.)
  Valid Range:   0-65535 (0=off)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
271
  Default Value: 64
55be062d2   Jesse Brandeburg   e1000: update the...
272
273
  
  This value, in units of 1.024 microseconds, limits the delay in which a
de3edab42   Auke Kok   e1000: update REA...
274
  transmit interrupt is generated.  Useful only if TxIntDelay is non-zero,
55be062d2   Jesse Brandeburg   e1000: update the...
275
276
277
278
279
280
281
282
283
  this value ensures that an interrupt is generated after the initial
  packet is sent on the wire within the set amount of time.  Proper tuning,
  along with TxIntDelay, may improve traffic throughput in specific
  network conditions.
  
  XsumRX
  ------
  (This parameter is NOT supported on the 82542-based adapter.)
  Valid Range:   0-1
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
284
  Default Value: 1
55be062d2   Jesse Brandeburg   e1000: update the...
285
286
287
  
  A value of '1' indicates that the driver should enable IP checksum
  offload for received packets (both UDP and TCP) to the adapter hardware.
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
288
289
290
291
292
  Copybreak
  ---------
  Valid Range:   0-xxxxxxx (0=off)
  Default Value: 256
  Usage: insmod e1000.ko copybreak=128
96c3c0330   Jeff Kirsher   Documentation/net...
293
  Driver copies all packets below or equaling this size to a fresh RX
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
  buffer before handing it up the stack.
  
  This parameter is different than other parameters, in that it is a
  single (not 1,1,1 etc.) parameter applied to all driver instances and
  it is also available during runtime at
  /sys/module/e1000/parameters/copybreak
  
  SmartPowerDownEnable
  --------------------
  Valid Range: 0-1
  Default Value:  0 (disabled)
  
  Allows PHY to turn off in lower power states. The user can turn off
  this parameter in supported chipsets.
  
  KumeranLockLoss
  ---------------
  Valid Range: 0-1
  Default Value: 1 (enabled)
  
  This workaround skips resetting the PHY at shutdown for the initial
  silicon releases of ICH8 systems.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
316
317
318
  
  Speed and Duplex Configuration
  ==============================
55be062d2   Jesse Brandeburg   e1000: update the...
319
320
  Three keywords are used to control the speed and duplex configuration.
  These keywords are Speed, Duplex, and AutoNeg.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
321

55be062d2   Jesse Brandeburg   e1000: update the...
322
  If the board uses a fiber interface, these keywords are ignored, and the
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
323
324
325
  fiber interface board only links at 1000 Mbps full-duplex.
  
  For copper-based boards, the keywords interact as follows:
de3edab42   Auke Kok   e1000: update REA...
326
    The default operation is auto-negotiate.  The board advertises all
55be062d2   Jesse Brandeburg   e1000: update the...
327
328
    supported speed and duplex combinations, and it links at the highest
    common speed and duplex mode IF the link partner is set to auto-negotiate.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
329

55be062d2   Jesse Brandeburg   e1000: update the...
330
331
    If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps
    is advertised (The 1000BaseT spec requires auto-negotiation.)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
332

de3edab42   Auke Kok   e1000: update REA...
333
334
    If Speed = 10 or 100, then both Speed and Duplex should be set.  Auto-
    negotiation is disabled, and the AutoNeg parameter is ignored.  Partner
55be062d2   Jesse Brandeburg   e1000: update the...
335
336
337
338
339
340
    SHOULD also be forced.
  
  The AutoNeg parameter is used when more control is required over the
  auto-negotiation process.  It should be used when you wish to control which
  speed and duplex combinations are advertised during the auto-negotiation
  process.
de3edab42   Auke Kok   e1000: update REA...
341
  The parameter may be specified as either a decimal or hexadecimal value as
55be062d2   Jesse Brandeburg   e1000: update the...
342
  determined by the bitmap below.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
343

55be062d2   Jesse Brandeburg   e1000: update the...
344
345
346
347
348
  Bit position   7      6      5       4       3      2      1       0
  Decimal Value  128    64     32      16      8      4      2       1
  Hex value      80     40     20      10      8      4      2       1
  Speed (Mbps)   N/A    N/A    1000    N/A     100    100    10      10
  Duplex                       Full            Full   Half   Full    Half
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
349

55be062d2   Jesse Brandeburg   e1000: update the...
350
  Some examples of using AutoNeg:
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
351

55be062d2   Jesse Brandeburg   e1000: update the...
352
353
354
355
356
357
358
359
360
    modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half)
    modprobe e1000 AutoNeg=1 (Same as above)
    modprobe e1000 AutoNeg=0x02 (Restricts autonegotiation to 10 Full)
    modprobe e1000 AutoNeg=0x03 (Restricts autonegotiation to 10 Half or 10 Full)
    modprobe e1000 AutoNeg=0x04 (Restricts autonegotiation to 100 Half)
    modprobe e1000 AutoNeg=0x05 (Restricts autonegotiation to 10 Half or 100
    Half)
    modprobe e1000 AutoNeg=0x020 (Restricts autonegotiation to 1000 Full)
    modprobe e1000 AutoNeg=32 (Same as above)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
361

55be062d2   Jesse Brandeburg   e1000: update the...
362
363
364
365
366
  Note that when this parameter is used, Speed and Duplex must not be specified.
  
  If the link partner is forced to a specific speed and duplex, then this
  parameter should not be used.  Instead, use the Speed and Duplex parameters
  previously mentioned to force the adapter to the same speed and duplex.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
367

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
368
369
  Additional Configurations
  =========================
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
370
371
    Jumbo Frames
    ------------
de3edab42   Auke Kok   e1000: update REA...
372
373
374
    Jumbo Frames support is enabled by changing the MTU to a value larger than
    the default of 1500.  Use the ifconfig command to increase the MTU size.
    For example:
55be062d2   Jesse Brandeburg   e1000: update the...
375
376
377
378
379
380
381
  
         ifconfig eth<x> mtu 9000 up
  
    This setting is not saved across reboots.  It can be made permanent if
    you add:
  
         MTU=9000
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
382

55be062d2   Jesse Brandeburg   e1000: update the...
383
384
385
     to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>.  This example
     applies to the Red Hat distributions; other distributions may store this
     setting in a different location.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
386

55be062d2   Jesse Brandeburg   e1000: update the...
387
    Notes:
2bff89c3f   Jeff Kirsher   e1000.txt: Update...
388
389
390
391
392
    Degradation in throughput performance may be observed in some Jumbo frames
    environments. If this is observed, increasing the application's socket buffer
    size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values may help.
    See the specific application manual and /usr/src/linux*/Documentation/
    networking/ip-sysctl.txt for more details.
de3edab42   Auke Kok   e1000: update REA...
393
394
  
    - The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
55be062d2   Jesse Brandeburg   e1000: update the...
395
      with the maximum Jumbo Frames size of 16128.
de3edab42   Auke Kok   e1000: update REA...
396

55be062d2   Jesse Brandeburg   e1000: update the...
397
398
    - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
      loss of link.
de3edab42   Auke Kok   e1000: update REA...
399

de3edab42   Auke Kok   e1000: update REA...
400
401
402
403
    - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
      support Jumbo Frames. These correspond to the following product names:
       Intel(R) PRO/1000 Gigabit Server Adapter
       Intel(R) PRO/1000 PM Network Connection
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
404
405
    Ethtool
    -------
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
406
    The driver utilizes the ethtool interface for driver configuration and
68f20d948   Jeff Kirsher   Documentation/net...
407
    diagnostics, as well as displaying statistical information.  The ethtool
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
408
409
410
    version 1.6 or later is required for this functionality.
  
    The latest release of ethtool can be found from
68f20d948   Jeff Kirsher   Documentation/net...
411
    http://ftp.kernel.org/pub/software/network/ethtool/
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
412

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
413
414
    Enabling Wake on LAN* (WoL)
    ---------------------------
68f20d948   Jeff Kirsher   Documentation/net...
415
    WoL is configured through the ethtool* utility.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
416

55be062d2   Jesse Brandeburg   e1000: update the...
417
418
    WoL will be enabled on the system during the next shut down or reboot.
    For this driver version, in order to enable WoL, the e1000 driver must be
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
419
    loaded when shutting down or rebooting the system.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
420
421
422
423
424
425
  Support
  =======
  
  For general information, go to the Intel support website at:
  
      http://support.intel.com
de3edab42   Auke Kok   e1000: update REA...
426
  or the Intel Wired Networking project hosted by Sourceforge at:
55be062d2   Jesse Brandeburg   e1000: update the...
427
428
  
      http://sourceforge.net/projects/e1000
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
429
  If an issue is identified with the released source code on the supported
55be062d2   Jesse Brandeburg   e1000: update the...
430
  kernel with a supported adapter, email the specific information related
de3edab42   Auke Kok   e1000: update REA...
431
  to the issue to e1000-devel@lists.sf.net