Deleted Added
full compact
README (160949) README (169240)
1$FreeBSD: head/sys/dev/em/README 160949 2006-08-03 09:20:11Z glebius $
2FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
1$FreeBSD: head/sys/dev/em/README 169240 2007-05-04 00:00:12Z jfv $
2FreeBSD Driver for the Gigabit Family of Adapters
3============================================================
4
3============================================================
4
5May 2, 2006
5April 18, 2007
6
7
8Contents
9========
10
11- Overview
12- Identifying Your Adapter
13- Building and Installation
14- Speed and Duplex Configuration
15- Additional Configurations
16- Known Limitations
17- Support
18- License
19
20
21Overview
22========
23
6
7
8Contents
9========
10
11- Overview
12- Identifying Your Adapter
13- Building and Installation
14- Speed and Duplex Configuration
15- Additional Configurations
16- Known Limitations
17- Support
18- License
19
20
21Overview
22========
23
24This file describes the FreeBSD* driver for the Intel(R) PRO/1000 Family of
24This file describes the FreeBSD* driver for the Gigabit Family of
25Adapters. This driver has been developed for use with FreeBSD, Release 6.x.
26
27For questions related to hardware requirements, refer to the documentation
25Adapters. This driver has been developed for use with FreeBSD, Release 6.x.
26
27For questions related to hardware requirements, refer to the documentation
28supplied with your Intel PRO/1000 adapter. All hardware requirements listed
28supplied with your Gigabit adapter. All hardware requirements listed
29apply to use with FreeBSD.
30
31
32Identifying Your Adapter
33========================
34
35For information on how to identify your adapter, go to the Adapter &
36Driver ID Guide at:

--- 20 unchanged lines hidden (view full) ---

57In the instructions below, x.x.x is the driver version as indicated in the
58name of the driver tar file.
59
601. Move the base driver tar file to the directory of your choice. For
61 example, use /home/username/em or /usr/local/src/em.
62
632. Untar/unzip the archive:
64
29apply to use with FreeBSD.
30
31
32Identifying Your Adapter
33========================
34
35For information on how to identify your adapter, go to the Adapter &
36Driver ID Guide at:

--- 20 unchanged lines hidden (view full) ---

57In the instructions below, x.x.x is the driver version as indicated in the
58name of the driver tar file.
59
601. Move the base driver tar file to the directory of your choice. For
61 example, use /home/username/em or /usr/local/src/em.
62
632. Untar/unzip the archive:
64
65 tar xvfz em-x.x.x.tar.gz
65 tar xzvf em-x.x.x.tar.gz
66
67 This will create an em-x.x.x directory.
68
693. To create a loadable module, perform the following steps.
70 NOTE: To compile the driver into the kernel, go directly to step 4.
71
72 a. To compile the module
73
74 cd em-x.x.x
75 make
76
66
67 This will create an em-x.x.x directory.
68
693. To create a loadable module, perform the following steps.
70 NOTE: To compile the driver into the kernel, go directly to step 4.
71
72 a. To compile the module
73
74 cd em-x.x.x
75 make
76
77 b. To install the compiled module in system directory:
77 b. To install the compiled module to the system directory:
78
79 make install
80
81 c. If you want the driver to load automatically when the system is booted:
82
83 1. Edit /boot/loader.conf, and add the following line:
84
85 if_em_load="YES"
86
78
79 make install
80
81 c. If you want the driver to load automatically when the system is booted:
82
83 1. Edit /boot/loader.conf, and add the following line:
84
85 if_em_load="YES"
86
874. To compile the driver into the kernel:
874. To compile the driver into the kernel, enter:
88
89 cd em-x.x.x/src
88
89 cd em-x.x.x/src
90
91 cp if_em* /usr/src/sys/dev/em
92
90 cp *.[ch] /usr/src/sys/dev/em
93 cp Makefile.kernel /usr/src/sys/modules/em/Makefile
94
91 cp Makefile.kernel /usr/src/sys/modules/em/Makefile
92
95 Edit the /usr/src/sys/conf/files file, and add the following lines only if
96 they don't already exist:
93 NOTE: At this point you MUST install a patch, kernbuild.patch, which is
94 located in the patches directory. This is applied as shown below where
95 "$PATH_TO_KERNBUILD_PATCH" is the location of the kernbuild.patch:
97
96
98 dev/em/if_em.c optional em
97 cd /usr/src/sys; patch -p1 < $PATH_TO_KERNBUILD_PATCH
99
98
100 dev/em/if_em_hw.c optional em
99 Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
100 /usr/src/sys/i386/conf, and ensure the following line is present:
101
101
102 Remove the following lines from the /usr/src/sys/conf/files file,
103 if they exist:
104
105 dev/em/if_em_fxhw.c optional em
106 dev/em/if_em_phy.c optional em
107
108 Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
109 /usr/src/sys/i386/conf, and ensure the following line is present:
110
111 device em
112
102 device em
103
113 Compile and install the kernel. The system must be rebooted for the kernel
114 updates to take effect. For additional information on compiling the
115 kernel, consult the FreeBSD operating system documentation.
104 Compile and install the kernel. The system must be rebooted for the
105 kernel updates to take effect. For additional information on compiling
106 the kernel, consult the FreeBSD operating system documentation.
116
1175. To assign an IP address to the interface, enter the following:
118
119 ifconfig em<interface_num> <IP_address>
120
1216. Verify that the interface works. Enter the following, where <IP_address>
122 is the IP address for another machine on the same subnet as the interface
123 that is being tested:

--- 21 unchanged lines hidden (view full) ---

145
146 ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
147 full-duplex
148
149 NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
150 not specified and you are not running at gigabit speed, the driver
151 defaults to half-duplex.
152
107
1085. To assign an IP address to the interface, enter the following:
109
110 ifconfig em<interface_num> <IP_address>
111
1126. Verify that the interface works. Enter the following, where <IP_address>
113 is the IP address for another machine on the same subnet as the interface
114 that is being tested:

--- 21 unchanged lines hidden (view full) ---

136
137 ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
138 full-duplex
139
140 NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
141 not specified and you are not running at gigabit speed, the driver
142 defaults to half-duplex.
143
144If the interface is currently forced to 100 full duplex, in order to change
145to half duplex you must use this command:
153
146
147 ifconfig em<interface_num> <IP_address> media 100baseTX -mediaopt
148 full-duplex
149
150
154This driver supports the following media type options:
155
156 autoselect - Enables auto-negotiation for speed and duplex.
157
158 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt
159 option to select full-duplex mode.
160
161 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt

--- 40 unchanged lines hidden (view full) ---

202 larger than that of the MTU.
203
204 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides
205 with the maximum Jumbo Frames size of 16128.
206
207 - Some Intel gigabit adapters that support Jumbo Frames have a frame size
208 limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
209 The adapters with this limitation are based on the Intel(R) 82571EB,
151This driver supports the following media type options:
152
153 autoselect - Enables auto-negotiation for speed and duplex.
154
155 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt
156 option to select full-duplex mode.
157
158 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt

--- 40 unchanged lines hidden (view full) ---

199 larger than that of the MTU.
200
201 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides
202 with the maximum Jumbo Frames size of 16128.
203
204 - Some Intel gigabit adapters that support Jumbo Frames have a frame size
205 limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
206 The adapters with this limitation are based on the Intel(R) 82571EB,
210 82572EI, 82573L and 80003ES2LAN controller. These correspond to the
211 following product names:
207 82572EI, 82573L, 82566, 82562, and 80003ES2LAN controller. These
208 correspond to the following product names:
212 Intel(R) PRO/1000 PT Server Adapter
213 Intel(R) PRO/1000 PT Desktop Adapter
214 Intel(R) PRO/1000 PT Network Connection
215 Intel(R) PRO/1000 PT Dual Port Server Adapter
216 Intel(R) PRO/1000 PT Dual Port Network Connection
217 Intel(R) PRO/1000 PF Server Adapter
218 Intel(R) PRO/1000 PF Network Connection
219 Intel(R) PRO/1000 PF Dual Port Server Adapter
220 Intel(R) PRO/1000 PB Server Connection
221 Intel(R) PRO/1000 PL Network Connection
222 Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
223 Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration
209 Intel(R) PRO/1000 PT Server Adapter
210 Intel(R) PRO/1000 PT Desktop Adapter
211 Intel(R) PRO/1000 PT Network Connection
212 Intel(R) PRO/1000 PT Dual Port Server Adapter
213 Intel(R) PRO/1000 PT Dual Port Network Connection
214 Intel(R) PRO/1000 PF Server Adapter
215 Intel(R) PRO/1000 PF Network Connection
216 Intel(R) PRO/1000 PF Dual Port Server Adapter
217 Intel(R) PRO/1000 PB Server Connection
218 Intel(R) PRO/1000 PL Network Connection
219 Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
220 Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration
221 Intel(R) 82566DM-2 Gigabit Network Connection
224
225 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
226 support Jumbo Frames. These correspond to the following product names:
227 Intel(R) PRO/1000 Gigabit Server Adapter
228 Intel(R) PRO/1000 PM Network Connection
229
230 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
231 loss of link.
232
233 - The following adapters do not support Jumbo Frames:
234 Intel(R) 82562V 10/100 Network Connection
235 Intel(R) 82566DM Gigabit Network Connection
236 Intel(R) 82566DC Gigabit Network Connection
237 Intel(R) 82566MM Gigabit Network Connection
238 Intel(R) 82566MC Gigabit Network Connection
222
223 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
224 support Jumbo Frames. These correspond to the following product names:
225 Intel(R) PRO/1000 Gigabit Server Adapter
226 Intel(R) PRO/1000 PM Network Connection
227
228 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
229 loss of link.
230
231 - The following adapters do not support Jumbo Frames:
232 Intel(R) 82562V 10/100 Network Connection
233 Intel(R) 82566DM Gigabit Network Connection
234 Intel(R) 82566DC Gigabit Network Connection
235 Intel(R) 82566MM Gigabit Network Connection
236 Intel(R) 82566MC Gigabit Network Connection
237 Intel(R) 82562GT 10/100 Network Connection
238 Intel(R) 82562G 10/100 Network Connection
239 Intel(R) 82566DC-2 Gigabit Network Connection
240 Intel(R) 82562V-2 10/100 Network Connection
241 Intel(R) 82562G-2 10/100 Network Connection
242 Intel(R) 82562GT-2 10/100 Network Connection
239
243
240
241 VLANs
242 -----
243 To create a new VLAN interface:
244
245 ifconfig <vlan_name> create
246
247 To associate the VLAN interface with a physical interface and
248 assign a VLAN ID, IP address, and netmask:
249
250 ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
251 <vlan_id> vlandev <physical_interface>
252
253 Example:
254
244 VLANs
245 -----
246 To create a new VLAN interface:
247
248 ifconfig <vlan_name> create
249
250 To associate the VLAN interface with a physical interface and
251 assign a VLAN ID, IP address, and netmask:
252
253 ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
254 <vlan_id> vlandev <physical_interface>
255
256 Example:
257
255 ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0
258 ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0
256
259
257 In this example, all packets will be marked on egress with 802.1Q VLAN
260 In this example, all packets will be marked on egress with 802.1Q VLAN
258 tags, specifying a VLAN ID of 10.
259
260 To remove a VLAN interface:
261
262 ifconfig <vlan_name> destroy
263
264
265 Polling
266 -------
261 tags, specifying a VLAN ID of 10.
262
263 To remove a VLAN interface:
264
265 ifconfig <vlan_name> destroy
266
267
268 Polling
269 -------
270 NOTES: Device Polling is only valid for non-SMP (Symmetric MultiProcessing)
271 kernels.
272
273 The driver has to be compiled into the kernel for Device Polling to be
274 enabled in the driver.
275
267 To enable polling in the driver, add the following options to the kernel
268 configuration, and then recompile the kernel:
269
270 options DEVICE_POLLING
271 options HZ=1000
272
273 At runtime use:
276 To enable polling in the driver, add the following options to the kernel
277 configuration, and then recompile the kernel:
278
279 options DEVICE_POLLING
280 options HZ=1000
281
282 At runtime use:
274 ifconfig em0 polling to turn polling on
283 sysctl kern.polling.enable=1 to turn polling on
275 Use:
284 Use:
276 ifconfig em0 -polling to turn polling off
285 sysctl kern.polling.enable=0 to turn polling off
277
278
279 Checksum Offload
280 ----------------
281 Checksum offloading is not supported on 82542 Gigabit adapters.
282
283 Checksum offloading supports both TCP and UDP packets and is
284 supported for both transmit and receive.

--- 16 unchanged lines hidden (view full) ---

301
302 Look for the presence or absence of the following line:
303
304 options=3 <RXCSUM,TXCSUM>
305
306 See the ifconfig man page for further information.
307
308
286
287
288 Checksum Offload
289 ----------------
290 Checksum offloading is not supported on 82542 Gigabit adapters.
291
292 Checksum offloading supports both TCP and UDP packets and is
293 supported for both transmit and receive.

--- 16 unchanged lines hidden (view full) ---

310
311 Look for the presence or absence of the following line:
312
313 options=3 <RXCSUM,TXCSUM>
314
315 See the ifconfig man page for further information.
316
317
318 TSO
319 ---
320 The FreeBSD driver now offers support for TSO (TCP Segmentation Offload).
321 To enable this support perform the following:
322
323 Patch the kernel with the patch supplied in the tarball.
324 Rebuild and install the kernel.
325 Recompile the driver. You must alter the Makefile to build the driver with
326 E1000_TSO defined.
327
328 Enable or disable TSO:
329 sysctl net.inet.tcp.tso=1 or 0
330 0=disabled, 1=enabled (TSO is enabled by default).
331
332 NOTE: TSO is not supported on 82547 and 82544-based adapters, as well as
333 older adapters.
334
335
309Known Limitations
310=================
311
336Known Limitations
337=================
338
339 Detected Tx Unit Hang in Quad Port Adapters
340 -------------------------------------------
341
342 In some cases ports 3 and 4 wont pass traffic. Ports 1 and 2 don't show
343 any errors and will pass traffic.
344
345 This issue MAY be resolved by updating to the latest BIOS. You can
346 check your system's BIOS by downloading the Linux Firmware Developer Kit
347 that can be obtained at http://www.linuxfirmwarekit.org/
348
349 FreeBSD version 4.x with Symmetric MultiProcessing (SMP)
350 --------------------------------------------------------
351
312 In FreeBSD version 4.x with Symmetric MultiProcessing (SMP), there is a known
352 In FreeBSD version 4.x with Symmetric MultiProcessing (SMP), there is a known
313 issue on some newer hardware. The problem is generic kernel and only in SMP
353 issue on some newer hardware. The problem is kernel generic and only in SMP
314 mode. The workaround is to either use FreeBSD version 4.x in single processor
315 mode, or use FreeBSD 5.4 or later.
316
317 There are known performance issues with this driver when running UDP traffic
318 with Jumbo Frames.
354 mode. The workaround is to either use FreeBSD version 4.x in single processor
355 mode, or use FreeBSD 5.4 or later.
356
357 There are known performance issues with this driver when running UDP traffic
358 with Jumbo Frames.
359 ----------------------------------------------------------------------------
319
360
361 82541/82547 can't link or is slow to link with some link partners
362 -----------------------------------------------------------------
363
320 There is a known compatibility issue where time to link is slow or link is not
321 established between 82541/82547 controllers and some switches. Known switches
322 include:
323 Planex FXG-08TE
324 I-O Data ETG-SH8
325
326 The driver can be compiled with the following changes:
327
364 There is a known compatibility issue where time to link is slow or link is not
365 established between 82541/82547 controllers and some switches. Known switches
366 include:
367 Planex FXG-08TE
368 I-O Data ETG-SH8
369
370 The driver can be compiled with the following changes:
371
328 Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE
372 Edit ./em.x.x.x/src/if_em.h to uncomment the #define E1000_MASTER_SLAVE
329 from within the comments. For example, change from:
330
373 from within the comments. For example, change from:
374
331 /* #define EM_MASTER_SLAVE 2 */
375 /* #define E1000_MASTER_SLAVE 2 */
332 to:
376 to:
333 #define EM_MASTER_SLAVE 2
377 #define E1000_MASTER_SLAVE 2
334
335 Use one of the following options:
336 1 = Master mode
337 2 = Slave mode
338 3 = Auto master/slave
339 Setting 2 is recommended.
340
341 Recompile the module:

--- 32 unchanged lines hidden ---
378
379 Use one of the following options:
380 1 = Master mode
381 2 = Slave mode
382 3 = Auto master/slave
383 Setting 2 is recommended.
384
385 Recompile the module:

--- 32 unchanged lines hidden ---