1 $FreeBSD: src/sys/dev/em/README,v 1.1.2.7 2003/06/09 21:43:41 pdeuskar Exp $
2 $DragonFly: src/sys/dev/netif/em/README,v 1.2 2003/06/17 04:28:24 dillon Exp $
3 FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
4 ============================================================
14 - Building and Installation
15 - Speed and Duplex Configuration
16 - Additional Configurations
25 This file describes the FreeBSD* driver, version 1.5.x, for the Intel(R)
26 PRO/1000 Family of Adapters. This driver has been developed for use with
29 For questions related to hardware requirements, refer to the documentation
30 supplied with your Intel PRO/1000 adapter. All hardware requirements listed
31 apply to use with FreeBSD.
37 The following Intel network adapters are compatible with the drivers in this
40 Controller Adapter Name Board IDs
41 ---------- ------------ ---------
43 82542 PRO/1000 Gigabit Server Adapter 700262-xxx, 717037-xxx
45 82543 PRO/1000 F Server Adapter 738640-xxx, A38888-xxx,
48 82543 PRO/1000 T Server Adapter A19845-xxx, A33948-xxx
50 82544 PRO/1000 XT Server Adapter A51580-xxx
52 82544 PRO/1000 XF Server Adapter A50484-xxx
54 82544 PRO/1000 T Desktop Adapter A62947-xxx
56 82540 PRO/1000 MT Desktop Adapter A78408-xxx
59 82545 PRO/1000 MT Server Adapter A92165-xxx
61 82545 PRO/1000 MF Server Adapter A91622-xxx
63 82545 PRO/1000 MF Server Adapter(LX) A91624-xxx
65 82546 PRO/1000 MT Dual Port Server Adapter A92111-xxx
67 82546 PRO/1000 MF Dual Port Server Adapter A91620-xxx
69 82546EB PRO/1000 MT Quad Port Server Adapter C11227-xxx
73 To verify your Intel adapter is supported, find the board ID number on the
74 adapter. Look for a label that has a barcode and a number in the format of
75 123456-001 (six digits hyphen three digits). Match this to the list of
78 For more information on how to identify your adapter, go to the Adapter &
81 http://support.intel.com/support/network/adapter/pro100/21397.htm
83 For the latest Intel network drivers for FreeBSD, see:
85 http://appsr.intel.com/scripts-df/support_intel.asp
88 Building and Installation
89 =========================
91 NOTE: The driver can be installed as a dynamic loadable kernel module or
92 compiled into the kernel. You must have kernel sources installed in
93 order to compile the driver module.
95 In the instructions below, x.x.x is the driver version as indicated in the
96 name of the driver tar file.
98 1. Move the base driver tar file to the directory of your choice. For
99 example, use /home/username/em or /usr/local/src/em.
101 2. Untar/unzip the archive:
103 tar xvfz em-x.x.x.tar.gz
105 This will create an em-x.x.x directory.
107 3. To create a loadable module, perform the following steps.
108 NOTE: To compile the driver into the kernel, go directly to step 4.
110 a. To compile the module
115 b. To install the compiled module in system directory:
119 c. If you want the driver to load automatically when the system is booted:
121 1. Follow steps a, and b above to compile and install the module
122 2. Edit /boot/loader.conf, and add the following line:
126 4. To compile the driver into the kernel:
130 cp if_em* /usr/src/sys/dev/em
132 cp Makefile.kernel /usr/src/sys/modules/em/Makefile
134 Edit the /usr/src/sys/conf/files.i386 file, and add the following lines:
136 dev/em/if_em.c optional em
138 dev/em/if_em_hw.c optional em
140 Remove the following lines from the /usr/src/sys/conf/files.i386 file,
143 dev/em/if_em_fxhw.c optional em
144 dev/em/if_em_phy.c optional em
146 Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
147 /usr/src/sys/i386/conf, and ensure the following line is present:
151 Compile and install the kernel. The system must be rebooted for the kernel
152 updates to take effect. For additional information on compiling the
153 kernel, consult the FreeBSD operating system documentation.
155 5. To assign an IP address to the interface, enter the following:
157 ifconfig em<interface_num> <IP_address>
159 6. Verify that the interface works. Enter the following, where <IP_address>
160 is the IP address for another machine on the same subnet as the interface
161 that is being tested:
165 7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
166 and create the appropriate ifconfig_em<interface_num> entry:
168 ifconfig_em<interface_num>="<ifconfig_settings>"
172 ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
174 NOTE: For assistance, see the ifconfig man page.
177 Speed and Duplex Configuration
178 ==============================
180 By default, the adapter auto-negotiates the speed and duplex of the
181 connection. If there is a specific need, the ifconfig utility can be used to
182 configure the speed and duplex settings on the adapter. Example usage:
184 ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
187 NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
188 not specified and you are not running at gigabit speed, the driver
189 defaults to half-duplex.
192 This driver supports the following media type options:
194 autoselect - Enables auto-negotiation for speed and duplex.
196 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt
197 option to select full-duplex mode.
199 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt
200 option to select full-duplex mode.
202 1000baseTX - Sets speed to 1000 Mbps. In this case, the driver
203 supports only full-duplex mode.
205 1000baseSX - Sets speed to 1000 Mbps. In this case, the driver
206 supports only full-duplex mode.
208 For more information on the ifconfig utility, see the ifconfig man page.
211 Additional Configurations
212 =========================
214 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
215 all but the 82542-based adapters. For specific adapters, refer to the
216 Supported Adapters section.
220 To enable Jumbo Frames, use the ifconfig utility to increase the MTU
223 NOTES: Only enable Jumbo Frames if your network infrastructure supports
226 The Jumbo Frames setting on the switch must be set to at least
227 22 bytes larger than that of the adapter.
229 The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
230 MTU range is 1500. To modify the setting, enter the following:
232 ifconfig em<interface_num> <hostname or IP address> mtu 9000
234 To confirm an interface's MTU value, use the ifconfig command. To confirm
235 the MTU used between two specific devices, use:
237 route get <destination_IP_address>
241 To create a new VLAN pseudo-interface:
243 ifconfig <vlan_name> create
245 To associate the VLAN pseudo-interface with a physical interface and
246 assign a VLAN ID, IP address, and netmask:
248 ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
249 <vlan_id> vlandev <physical_interface>
253 ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0
255 In this example, all packets will be marked on egress with 802.1Q VLAN
256 tags, specifying a VLAN ID of 10.
258 To remove a VLAN pseudo-interface:
260 ifconfig <vlan_name> destroy
264 To enable polling in the driver, add the following options to the kernel
265 configuration, and then recompile the kernel:
267 options DEVICE_POLLING
270 At runtime, use the following command to turn on polling mode. Similarly,
271 turn off polling mode by setting the variable to 0:
273 sysctl kern.polling.enable=1
276 NOTES: DEVICE POLLING is only valid for non-SMP kernels.
278 The driver has to be built into the kernel for DEVICE POLLING to be
279 enabled in the driver.
285 There are known performance issues with this driver when running UDP traffic
286 with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP traffic.
292 For general information and support, go to the Intel support website at:
294 http://support.intel.com
296 If an issue is identified with the released source code on the supported
297 kernel with a supported adapter, email the specific information related to
298 the issue to freebsdnic@mailbox.intel.com.
304 This software program is released under the terms of a license agreement
305 between you ('Licensee') and Intel. Do not use or load this software or any
306 associated materials (collectively, the 'Software') until you have carefully
307 read the full terms and conditions of the LICENSE located in this software
308 package. By loading or using the Software, you agree to the terms of this
309 Agreement. If you do not agree with the terms of this Agreement, do not
310 install or use the Software.
312 * Other names and brands may be claimed as the property of others.