README revision 147890
1164190Sjkoshy$FreeBSD: head/sys/dev/em/README 147890 2005-07-11 02:33:25Z delphij $
2164190SjkoshyFreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
3164190Sjkoshy============================================================
4164190Sjkoshy
5164190SjkoshyMarch 18, 2005
6164190Sjkoshy
7164190Sjkoshy
8164190SjkoshyContents
9164190Sjkoshy========
10164190Sjkoshy
11164190Sjkoshy- Overview
12164190Sjkoshy- Identifying Your Adapter
13164190Sjkoshy- Building and Installation
14164190Sjkoshy- Speed and Duplex Configuration
15164190Sjkoshy- Additional Configurations
16164190Sjkoshy- Known Limitations
17164190Sjkoshy- Support
18164190Sjkoshy- License
19164190Sjkoshy
20164190Sjkoshy
21164190SjkoshyOverview
22164190Sjkoshy========
23164190Sjkoshy
24164190SjkoshyThis file describes the FreeBSD* driver, version 2.1.x, for the Intel(R)
25164190SjkoshyPRO/1000 Family of Adapters. This driver has been developed for use with
26164190SjkoshyFreeBSD, version 5.x.
27164190Sjkoshy
28164190SjkoshyFor questions related to hardware requirements, refer to the documentation
29164190Sjkoshysupplied with your Intel PRO/1000 adapter. All hardware requirements listed
30164190Sjkoshyapply to use with FreeBSD.
31164190Sjkoshy
32164190Sjkoshy
33164190SjkoshyIdentifying Your Adapter
34164190Sjkoshy========================
35164190Sjkoshy
36164190SjkoshyFor information on how to identify your adapter, go to the Adapter &
37164190SjkoshyDriver ID Guide at:
38164190Sjkoshy
39164190Sjkoshyhttp://support.intel.com/support/network/adapter/pro100/21397.htm
40164190Sjkoshy
41164190Sjkoshy
42164190SjkoshyFor the latest Intel network drivers for FreeBSD, see:
43164190Sjkoshy
44164190Sjkoshyhttp://appsr.intel.com/scripts-df/support_intel.asp
45164190Sjkoshy
46164190Sjkoshy
47164190SjkoshyNOTE: Mobile adapters are not fully supported.
48164190Sjkoshy
49164190Sjkoshy
50164190SjkoshyBuilding and Installation
51164190Sjkoshy=========================
52164190Sjkoshy
53164190SjkoshyNOTE: The driver can be installed as a dynamic loadable kernel module or
54164190Sjkoshy      compiled into the kernel. You must have kernel sources installed in
55164190Sjkoshy      order to compile the driver module.
56164190Sjkoshy
57164190SjkoshyIn the instructions below, x.x.x is the driver version as indicated in the
58164190Sjkoshyname of the driver tar file.
59164190Sjkoshy
60164190Sjkoshy1. Move the base driver tar file to the directory of your choice. For
61164190Sjkoshy   example, use /home/username/em or /usr/local/src/em.
62164190Sjkoshy
63164190Sjkoshy2. Untar/unzip the archive:
64164190Sjkoshy
65165316Sjkoshy        tar xvfz em-x.x.x.tar.gz
66164190Sjkoshy
67164190Sjkoshy   This will create an em-x.x.x directory.
68164190Sjkoshy
69164190Sjkoshy3. To create a loadable module, perform the following steps.
70164190Sjkoshy   NOTE: To compile the driver into the kernel, go directly to step 4.
71165316Sjkoshy
72164190Sjkoshy        a. To compile the module
73164190Sjkoshy
74164190Sjkoshy                  cd em-x.x.x
75164190Sjkoshy                  make
76165316Sjkoshy
77164190Sjkoshy        b. To install the compiled module in system directory:
78164190Sjkoshy
79164190Sjkoshy                  make install
80164190Sjkoshy
81164190Sjkoshy        c. If you want the driver to load automatically when the system is booted:
82164190Sjkoshy
83164190Sjkoshy              1. Edit /boot/loader.conf, and add the following line:
84164190Sjkoshy
85164190Sjkoshy                  if_em_load="YES"
86164190Sjkoshy
87165316Sjkoshy4. To compile the driver into the kernel:
88164190Sjkoshy
89164190Sjkoshy        cd em-x.x.x/src
90164190Sjkoshy
91164190Sjkoshy        cp if_em* /usr/src/sys/dev/em
92164190Sjkoshy
93164190Sjkoshy        cp Makefile.kernel /usr/src/sys/modules/em/Makefile
94164190Sjkoshy
95164190Sjkoshy   Edit the /usr/src/sys/conf/files.i386 file, and add the following lines only if
96164190Sjkoshy   they don't already exist:
97164190Sjkoshy
98164190Sjkoshy        dev/em/if_em.c optional em
99164190Sjkoshy
100164190Sjkoshy        dev/em/if_em_hw.c optional em
101164190Sjkoshy
102164190Sjkoshy   Remove the following lines from the /usr/src/sys/conf/files.i386 file,
103164190Sjkoshy   if they exist:
104164190Sjkoshy
105164190Sjkoshy        dev/em/if_em_fxhw.c optional em
106164190Sjkoshy        dev/em/if_em_phy.c optional em
107164190Sjkoshy
108164190Sjkoshy   Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
109164190Sjkoshy   /usr/src/sys/i386/conf, and ensure the following line is present:
110164190Sjkoshy
111164190Sjkoshy        device em
112164190Sjkoshy
113165316Sjkoshy   Compile and install the kernel. The system must be rebooted for the kernel
114164190Sjkoshy   updates to take effect. For additional information on compiling the
115164190Sjkoshy   kernel, consult the FreeBSD operating system documentation.
116164190Sjkoshy
117164190Sjkoshy5. To assign an IP address to the interface, enter the following:
118164190Sjkoshy
119165316Sjkoshy        ifconfig em<interface_num> <IP_address>
120164190Sjkoshy
121164190Sjkoshy6. Verify that the interface works. Enter the following, where <IP_address>
122164190Sjkoshy   is the IP address for another machine on the same subnet as the interface
123164190Sjkoshy   that is being tested:
124165316Sjkoshy
125179240Sjb        ping <IP_address>
126164190Sjkoshy
127164190Sjkoshy7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
128164190Sjkoshy   and create the appropriate ifconfig_em<interface_num>entry:
129164190Sjkoshy
130164190Sjkoshy        ifconfig_em<interface_num>="<ifconfig_settings>"
131164190Sjkoshy
132164190Sjkoshy   Example usage:
133164190Sjkoshy
134164190Sjkoshy        ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
135165316Sjkoshy
136164190Sjkoshy   NOTE: For assistance, see the ifconfig man page.
137164190Sjkoshy
138164190Sjkoshy
139164190SjkoshySpeed and Duplex Configuration
140164190Sjkoshy==============================
141164190Sjkoshy
142164190SjkoshyBy default, the adapter auto-negotiates the speed and duplex of the
143164190Sjkoshyconnection. If there is a specific need, the ifconfig utility can be used to
144164190Sjkoshyconfigure the speed and duplex settings on the adapter. Example usage:
145164190Sjkoshy
146164190Sjkoshy        ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
147164190Sjkoshy            full-duplex
148164190Sjkoshy
149164190Sjkoshy   NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
150164190Sjkoshy         not specified and you are not running at gigabit speed, the driver
151164190Sjkoshy         defaults to half-duplex.
152164190Sjkoshy
153164190Sjkoshy
154164190SjkoshyThis 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
162                      option to select full-duplex mode.
163
164   1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
165                      supports only full-duplex mode.
166
167   1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
168                      supports only full-duplex mode.
169
170For more information on the ifconfig utility, see the ifconfig man page.
171
172
173Additional Configurations
174=========================
175
176The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
177all but the 82542-based adapters. For specific adapters, refer to the
178Identifying Your Adapter section.
179
180  Jumbo Frames
181  ------------
182  To enable Jumbo Frames, use the ifconfig utility to increase the MTU
183  beyond 1500 bytes.
184
185  NOTES: Only enable Jumbo Frames if your network infrastructure supports
186         them.
187
188         The Jumbo Frames setting on the switch must be set to at least
189         22 bytes larger than that of the MTU.
190
191         The Intel PRO/1000 PM Network Connection does not support jumbo
192         frames.
193
194
195  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
196  MTU range is 1500. To modify the setting, enter the following:
197
198        ifconfig em<interface_num> <hostname or IP address> mtu 9000
199
200 To confirm the MTU used between two specific devices, use:
201
202        route get <destination_IP_address>
203
204  VLANs
205  -----
206  To create a new VLAN interface:
207
208        ifconfig <vlan_name> create
209
210  To associate the VLAN interface with a physical interface and
211  assign a VLAN ID, IP address, and netmask:
212
213        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
214           <vlan_id> vlandev <physical_interface>
215
216  Example:
217
218        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0
219
220  In this example, all packets will be marked on egress with  802.1Q VLAN
221  tags, specifying a VLAN ID of 10.
222
223  To remove a VLAN interface:
224
225        ifconfig <vlan_name> destroy
226
227  Polling
228  -------
229  NOTES: DEVICE POLLING is only valid for non-SMP kernels.
230
231        The driver has to be compiled into the kernel for DEVICE POLLING to be
232        enabled in the driver.
233
234  To enable polling in the driver, add the following options to the kernel
235  configuration, and then recompile the kernel:
236
237        options DEVICE_POLLING
238        options HZ=1000
239
240  At runtime use:
241        sysctl kern.polling.enable=1 to turn polling on
242  Use:
243        sysctl kern.polling.enable=0 to turn polling off
244
245  Checksum Offload
246  ----------------
247  Checksum offloading is not supported on 82542 Gigabit adapters.
248
249  Checksum offloading supports both TCP and UDP packets and is
250  supported for both transmit and receive.
251
252  Checksum offloading can be enabled or disabled using ifconfig.
253  Both transmit and receive offloading will be either enabled or
254  disabled together. You cannot enable/disable one without the other.
255
256  To enable checksum offloading:
257
258         ifconfig <interface_num> rxcsum
259
260  To disable checksum offloading:
261
262         ifconfig <interface_num> -rxcsum
263
264  To confirm the current setting:
265
266         ifconfig <interface_num>
267
268  Look for the presence or absence of the following line:
269
270         options=3 <RXCSUM,TXCSUM>
271
272  See the ifconfig man page for further information.
273
274Known Limitations
275=================
276
277  There are known performance issues with this driver when running UDP traffic
278  with Jumbo Frames.
279
280  There is a known compatibility issue where time to link is slow or link is not
281  established between 82541/82547 controllers and some switches.  Known switches
282  include:
283        Planex FXG-08TE
284        I-O Data ETG-SH8
285
286  The driver can be compiled with the following changes:
287
288  Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE
289  from within the comments.  For example, change from:
290
291      /* #define EM_MASTER_SLAVE  2 */
292  to:
293      #define EM_MASTER_SLAVE  2
294
295  Use one of the following options:
296      1 = Master mode
297      2 = Slave mode
298      3 = Auto master/slave
299  Setting 2 is recommended.
300
301  Recompile the module:
302          a. To compile the module
303                cd em-x.x.x
304                make clean
305                make
306
307   b. To install the compiled module in system directory:
308                make install
309
310
311Support
312=======
313
314For general information and support, go to the Intel support website at:
315
316        http://support.intel.com
317
318If an issue is identified, support is through email only at:
319freebsdnic@mailbox.intel.com
320
321License
322=======
323
324This software program is released under the terms of a license agreement
325between you ('Licensee') and Intel. Do not use or load this software or any
326associated materials (collectively, the 'Software') until you have carefully
327read the full terms and conditions of the LICENSE located in this software
328package. By loading or using the Software, you agree to the terms of this
329Agreement. If you do not agree with the terms of this Agreement, do not
330install or use the Software.
331
332* Other names and brands may be claimed as the property of others.
333