README revision 235527
1245803Stheraven$FreeBSD: stable/9/sys/dev/e1000/README 235527 2012-05-16 22:22:52Z jfv $
2245803StheravenFreeBSD* Driver for Intel Network Connection
3245803Stheraven=============================================
4245803Stheraven
5245803StheravenMay 30, 2007
6245803Stheraven
7245803Stheraven
8245803StheravenContents
9245803Stheraven========
10245803Stheraven
11245803Stheraven- Overview
12245803Stheraven- Identifying Your Adapter
13245803Stheraven- Building and Installation
14245803Stheraven- Speed and Duplex Configuration
15245803Stheraven- Additional Configurations
16245803Stheraven- Known Limitations
17245803Stheraven- Support
18245803Stheraven- License
19245803Stheraven
20245803Stheraven
21245803StheravenOverview
22245803Stheraven========
23245803Stheraven
24245803StheravenThis file describes the FreeBSD* driver for Intel Network Connection.
25245803StheravenThis driver has been developed for use with FreeBSD, Release 7.x.
26245803Stheraven
27245803StheravenFor questions related to hardware requirements, refer to the documentation
28245803Stheravensupplied with your Gigabit adapter. All hardware requirements listed
29245803Stheravenapply to use with FreeBSD.
30245803Stheraven
31245803Stheraven
32245803StheravenIdentifying Your Adapter
33245803Stheraven========================
34245803Stheraven
35245803StheravenFor information on how to identify your adapter, go to the Adapter &
36245803StheravenDriver ID Guide at:
37245803Stheraven
38245803Stheravenhttp://support.intel.com/support/network/sb/cs-012904.htm
39245803Stheraven
40245803Stheraven
41245803StheravenFor the latest Intel network drivers for FreeBSD, see:
42245803Stheraven
43245803Stheravenhttp://downloadfinder.intel.com/scripts-df-external/support_intel.aspx
44245803Stheraven
45245803Stheraven
46245803StheravenNOTE: Mobile adapters are not fully supported.
47245803StheravenNOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100
48245803Stheravensupport.
49245803Stheraven
50245803StheravenBuilding and Installation
51245803Stheraven=========================
52245803Stheraven
53245803StheravenNOTE: The driver can be installed as a dynamic loadable kernel module or
54245803Stheraven      compiled into the kernel. You must have kernel sources installed in
55245803Stheraven      order to compile the driver module.
56245803Stheraven
57245803StheravenIn the instructions below, x.x.x is the driver version as indicated in the
58245803Stheravenname of the driver tar file.
59245803Stheraven
60245803Stheraven1. Move the base driver tar file to the directory of your choice. For
61245803Stheraven   example, use /home/username/em or /usr/local/src/em.
62245803Stheraven
63245803Stheraven2. Untar/unzip the archive:
64245803Stheraven
65245803Stheraven        tar xzvf em-x.x.x.tar.gz
66245803Stheraven
67245803Stheraven   This will create an em-x.x.x directory.
68245803Stheraven
69245803Stheraven3. To create a loadable module, perform the following steps.
70245803Stheraven   NOTE: To compile the driver into the kernel, go directly to step 4.
71245803Stheraven
72245803Stheraven        a. To compile the module
73245803Stheraven
74245803Stheraven                  cd em-x.x.x
75245803Stheraven                  make
76245803Stheraven
77245803Stheraven        b. To install the compiled module to the system directory:
78245803Stheraven
79245803Stheraven                  make install
80245803Stheraven
81245803Stheraven        c. If you want the driver to load automatically when the system is booted:
82245803Stheraven
83245803Stheraven              1. Edit /boot/loader.conf, and add the following line:
84245803Stheraven
85245803Stheraven                  if_em_load="YES"
86245803Stheraven
87245803Stheraven4. To compile the driver into the kernel, enter:
88245803Stheraven
89245803Stheraven        cd em-x.x.x/src
90245803Stheraven        cp *.[ch] /usr/src/sys/dev/em
91245803Stheraven
92245803Stheraven        Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
93245803Stheraven        /usr/src/sys/i386/conf, and ensure the following line is present:
94245803Stheraven
95245803Stheraven        device em
96245803Stheraven
97245803Stheraven        Compile and install the kernel. The system must be rebooted for the
98245803Stheraven        kernel updates to take effect. For additional information on compiling
99245803Stheraven        the kernel, consult the FreeBSD operating system documentation.
100245803Stheraven
101245803Stheraven5. To assign an IP address to the interface, enter the following:
102245803Stheraven
103245803Stheraven        ifconfig em<interface_num> <IP_address>
104245803Stheraven
105245803Stheraven6. Verify that the interface works. Enter the following, where <IP_address>
106245803Stheraven   is the IP address for another machine on the same subnet as the interface
107245803Stheraven   that is being tested:
108245803Stheraven
109245803Stheraven        ping <IP_address>
110245803Stheraven
111245803Stheraven7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
112245803Stheraven   and create the appropriate ifconfig_em<interface_num>entry:
113245803Stheraven
114245803Stheraven        ifconfig_em<interface_num>="<ifconfig_settings>"
115245803Stheraven
116245803Stheraven   Example usage:
117245803Stheraven
118245803Stheraven        ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
119245803Stheraven
120245803Stheraven   NOTE: For assistance, see the ifconfig man page.
121245803Stheraven
122245803Stheraven
123245803StheravenSpeed and Duplex Configuration
124245803Stheraven==============================
125245803Stheraven
126245803StheravenBy default, the adapter auto-negotiates the speed and duplex of the
127245803Stheravenconnection. If there is a specific need, the ifconfig utility can be used to
128245803Stheravenconfigure the speed and duplex settings on the adapter. Example usage:
129245803Stheraven
130245803Stheraven        ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
131245803Stheraven            full-duplex
132245803Stheraven
133245803Stheraven   NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
134245803Stheraven         not specified and you are not running at gigabit speed, the driver
135245803Stheraven         defaults to half-duplex.
136245803Stheraven
137245803StheravenIf the interface is currently forced to 100 full duplex, in order to change
138245803Stheravento half duplex you must use this command:
139245803Stheraven
140245803Stheraven        ifconfig em<interface_num> <IP_address> media 100baseTX -mediaopt
141245803Stheraven            full-duplex
142245803Stheraven
143245803Stheraven
144245803StheravenThis driver supports the following media type options:
145245803Stheraven
146245803Stheraven   autoselect      -  Enables auto-negotiation for speed and duplex.
147245803Stheraven
148245803Stheraven   10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt
149245803Stheraven                      option to select full-duplex mode.
150245803Stheraven
151245803Stheraven   100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
152245803Stheraven                      option to select full-duplex mode.
153245803Stheraven
154245803Stheraven   1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
155245803Stheraven                      supports only full-duplex mode.
156245803Stheraven
157245803Stheraven   1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
158245803Stheraven                      supports only full-duplex mode.
159245803Stheraven
160245803StheravenFor more information on the ifconfig utility, see the ifconfig man page.
161245803Stheraven
162245803Stheraven
163245803StheravenAdditional Configurations
164245803Stheraven=========================
165245803Stheraven
166245803StheravenThe driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
167245803Stheravenall but the 82542-based adapters.  For specific adapters, refer to the
168245803StheravenIdentifying Your Adapter section.
169245803Stheraven
170245803Stheraven  Jumbo Frames
171245803Stheraven  ------------
172245803Stheraven  To enable Jumbo Frames, use the ifconfig utility to set the Maximum
173245803Stheraven  Transport Unit (MTU) frame size above its default of 1500 bytes.
174245803Stheraven
175245803Stheraven  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify
176245803Stheraven  the setting, enter the following:
177245803Stheraven
178245803Stheraven        ifconfig em<interface_num> <hostname or IP address> mtu 9000
179245803Stheraven
180245803Stheraven  To confirm the MTU used between two specific devices, use:
181245803Stheraven
182245803Stheraven        route get <destination_IP_address>
183245803Stheraven
184245803Stheraven  Notes:
185245803Stheraven
186245803Stheraven  - Only enable Jumbo Frames if your network infrastructure supports them.
187245803Stheraven
188245803Stheraven  - To enable Jumbo Frames, increase the MTU size on the interface beyond
189292876Stheraven    1500.
190245803Stheraven
191245803Stheraven  - The Jumbo Frames setting on the switch must be set to at least 22 bytes
192245803Stheraven    larger than that of the MTU.
193292876Stheraven
194245803Stheraven  - The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
195245803Stheraven    with the maximum Jumbo Frames size of 16128.
196245803Stheraven
197245803Stheraven  - Some Intel gigabit adapters that support Jumbo Frames have a frame size
198245803Stheraven    limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
199245803Stheraven    The adapters with this limitation are based on the Intel(R) 82571EB,
200245803Stheraven    82572EI, 82573L, 82566, 82562, and 80003ES2LAN controller.  These
201245803Stheraven    correspond to the following product names:
202245803Stheraven     Intel(R) PRO/1000 PT Server Adapter
203245803Stheraven     Intel(R) PRO/1000 PT Desktop Adapter
204245803Stheraven     Intel(R) PRO/1000 PT Network Connection
205245803Stheraven     Intel(R) PRO/1000 PT Dual Port Server Adapter
206245803Stheraven     Intel(R) PRO/1000 PT Dual Port Network Connection
207245803Stheraven     Intel(R) PRO/1000 PT Quad Port Server Adapter
208245803Stheraven     Intel(R) PRO/1000 PF Quad Port Server Adapter
209245803Stheraven     Intel(R) PRO/1000 PF Server Adapter
210245803Stheraven     Intel(R) PRO/1000 PF Network Connection
211245803Stheraven     Intel(R) PRO/1000 PF Dual Port Server Adapter
212245803Stheraven     Intel(R) PRO/1000 PB Server Connection
213245803Stheraven     Intel(R) PRO/1000 PL Network Connection
214245803Stheraven     Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
215245803Stheraven     Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration
216245803Stheraven     Intel(R) 82566DM-2 Gigabit Network Connection
217245803Stheraven
218245803Stheraven  - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
219245803Stheraven    support Jumbo Frames. These correspond to the following product names:
220245803Stheraven     Intel(R) PRO/1000 Gigabit Server Adapter
221245803Stheraven     Intel(R) PRO/1000 PM Network Connection
222245803Stheraven
223245803Stheraven  - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
224245803Stheraven    loss of link.
225245803Stheraven
226245803Stheraven  - The following adapters do not support Jumbo Frames:
227289677Seadler    Intel(R) 82562V 10/100 Network Connection
228245803Stheraven    Intel(R) 82566DM Gigabit Network Connection
229245803Stheraven    Intel(R) 82566DC Gigabit Network Connection
230245803Stheraven    Intel(R) 82566MM Gigabit Network Connection
231245803Stheraven    Intel(R) 82566MC Gigabit Network Connection
232245803Stheraven    Intel(R) 82562GT 10/100 Network Connection
233245803Stheraven    Intel(R) 82562G 10/100 Network Connection
234245803Stheraven    Intel(R) 82566DC-2 Gigabit Network Connection
235245803Stheraven    Intel(R) 82562V-2 10/100 Network Connection
236245803Stheraven    Intel(R) 82562G-2 10/100 Network Connection
237245803Stheraven    Intel(R) 82562GT-2 10/100 Network Connection
238245803Stheraven
239245803Stheraven  VLANs
240245803Stheraven  -----
241245803Stheraven  To create a new VLAN interface:
242245803Stheraven
243245803Stheraven        ifconfig <vlan_name> create
244245803Stheraven
245245803Stheraven  To associate the VLAN interface with a physical interface and
246245803Stheraven  assign a VLAN ID, IP address, and netmask:
247245803Stheraven
248245803Stheraven        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
249245803Stheraven           <vlan_id> vlandev <physical_interface>
250245803Stheraven
251245803Stheraven  Example:
252245803Stheraven
253245803Stheraven        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0
254245803Stheraven
255245803Stheraven  In this example, all packets will be marked on egress with 802.1Q VLAN
256245803Stheraven  tags, specifying a VLAN ID of 10.
257245803Stheraven
258245803Stheraven  To remove a VLAN interface:
259245803Stheraven
260245803Stheraven  Intel Network Connection        ifconfig <vlan_name> destroy
261245803Stheraven
262245803Stheraven
263245803Stheraven  Polling
264245803Stheraven  -------
265245803Stheraven
266245803Stheraven  To enable polling in the driver, add the following options to the kernel
267245803Stheraven  configuration, and then recompile the kernel:
268245803Stheraven
269245803Stheraven        options DEVICE_POLLING
270245803Stheraven        options HZ=1000
271245803Stheraven
272245803Stheraven  At runtime use:
273245803Stheraven        ifconfig emX polling (to turn polling on)
274245803Stheraven  and:
275245803Stheraven        ifconfig emX -polling  (to turn it off)
276245803Stheraven
277245803Stheraven
278245803Stheraven  Checksum Offload
279245803Stheraven  ----------------
280245803Stheraven  Checksum offloading is not supported on 82542 Gigabit adapters.
281245803Stheraven
282245803Stheraven  Checksum offloading supports both TCP and UDP packets and is
283245803Stheraven  supported for both transmit and receive.
284245803Stheraven
285245803Stheraven  Checksum offloading can be enabled or disabled using ifconfig.
286245803Stheraven  Both transmit and receive offloading will be either enabled or
287245803Stheraven  disabled together. You cannot enable/disable one without the other.
288245803Stheraven
289245803Stheraven  To enable checksum offloading:
290245803Stheraven
291245803Stheraven         ifconfig <interface_num> rxcsum
292245803Stheraven
293245803Stheraven  To disable checksum offloading:
294245803Stheraven
295245803Stheraven         ifconfig <interface_num> -rxcsum
296245803Stheraven
297245803Stheraven  To confirm the current setting:
298245803Stheraven
299245803Stheraven         ifconfig <interface_num>
300245803Stheraven
301245803Stheraven  Look for the presence or absence of the following line:
302245803Stheraven
303245803Stheraven         options=3 <RXCSUM,TXCSUM>
304245803Stheraven
305245803Stheraven  See the ifconfig man page for further information.
306245803Stheraven
307245803Stheraven
308245803Stheraven  TSO
309245803Stheraven  ---
310245803Stheraven  The FreeBSD driver offers support for TSO (TCP Segmentation Offload).
311245803Stheraven
312245803Stheraven  You can enable/disable it in two ways/places:
313245803Stheraven
314245803Stheraven        -  sysctl net.inet.tcp.tso=0    (or 1 to enable it)
315245803Stheraven
316245803Stheraven  Doing this disables TSO in the stack and will affect all adapters.
317245803Stheraven
318245803Stheraven        -  ifconfig emX -tso
319245803Stheraven
320245803Stheraven  Doing this will disable TSO only for this adapter.
321245803Stheraven
322245803Stheraven  To enable:
323245803Stheraven
324245803Stheraven        -  ifconfig emX tso
325245803Stheraven
326245803Stheraven  NOTES: By default only PCI-Express adapters are ENABLED to do TSO. Others
327245803Stheraven  can be enabled by the user at their own risk
328245803Stheraven  TSO is not supported on 82547 and 82544-based adapters, as well as older adapters.
329245803Stheraven
330245803Stheraven
331245803StheravenKnown Limitations
332245803Stheraven=================
333245803Stheraven
334245803Stheraven  Detected Tx Unit Hang in Quad Port Adapters
335245803Stheraven  -------------------------------------------
336245803Stheraven
337245803Stheraven  In some cases ports 3 and 4 wont pass traffic. Ports 1 and 2 don't show
338245803Stheraven  any errors and will pass traffic.
339245803Stheraven
340245803Stheraven  This issue MAY be resolved by updating to the latest BIOS. You can
341245803Stheraven  check your system's BIOS by downloading the Linux Firmware Developer Kit
342245803Stheraven  that can be obtained at http://www.linuxfirmwarekit.org/
343245803Stheraven
344245803Stheraven
345245803Stheraven  There are known performance issues with this driver when running UDP traffic
346245803Stheraven  with Jumbo Frames.
347245803Stheraven  ----------------------------------------------------------------------------
348245803Stheraven
349245803Stheraven  82541/82547 can't link or is slow to link with some link partners
350245803Stheraven  -----------------------------------------------------------------
351245803Stheraven
352245803Stheraven  There is a known compatibility issue where time to link is slow or link is not
353245803Stheraven  established between 82541/82547 controllers and some switches.  Known switches
354245803Stheraven  include:
355245803Stheraven        Planex FXG-08TE
356245803Stheraven        I-O Data ETG-SH8
357245803Stheraven        Netgear GS105v3
358245803Stheraven
359245803Stheraven  The driver can be compiled with the following changes:
360245803Stheraven
361245803Stheraven  Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE
362245803Stheraven  For example, change from:
363245803Stheraven
364245803Stheraven      #define EM_MASTER_SLAVE   e1000_ms_hw_default
365245803Stheraven  to:
366      #define EM_MASTER_SLAVE   2
367
368  Use one of the following options:
369      1 = Master mode
370      2 = Slave mode
371      3 = Auto master/slave
372  Setting 2 is recommended.
373
374  Recompile the module:
375          a. To compile the module
376                cd em-x.x.x
377                make clean
378                make
379
380   b. To install the compiled module in system directory:
381                make install
382
383
384Support
385=======
386
387For general information and support, go to the Intel support website at:
388
389        http://support.intel.com
390
391If an issue is identified, support is through email only at:
392freebsdnic@mailbox.intel.com
393
394
395License
396=======
397
398This software program is released under the terms of a license agreement
399between you ('Licensee') and Intel. Do not use or load this software or any
400associated materials (collectively, the 'Software') until you have carefully
401read the full terms and conditions of the LICENSE located in this software
402package. By loading or using the Software, you agree to the terms of this
403Agreement. If you do not agree with the terms of this Agreement, do not
404install or use the Software.
405
406* Other names and brands may be claimed as the property of others.
407