README revision 115878
1$FreeBSD: head/sys/dev/em/README 115878 2003-06-05 17:51:38Z pdeuskar $
2FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
3============================================================
4
5April 13, 2003
6
7
8Contents
9========
10
11- Overview
12- Supported Adapters
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, version 1.5.x, for the Intel(R)
25PRO/1000 Family of Adapters. This driver has been developed for use with 
26FreeBSD, version 4.7. 
27
28For questions related to hardware requirements, refer to the documentation 
29supplied with your Intel PRO/1000 adapter. All hardware requirements listed 
30apply to use with FreeBSD.
31
32
33Supported Adapters
34==================
35
36The following Intel network adapters are compatible with the drivers in this 
37release:
38
39   Controller  Adapter Name                         Board IDs
40   ----------  ------------                         ---------
41
42   82542       PRO/1000 Gigabit Server Adapter      700262-xxx, 717037-xxx
43
44   82543       PRO/1000 F Server Adapter            738640-xxx, A38888-xxx,
45                                                    A06512-xxx
46
47   82543       PRO/1000 T Server Adapter            A19845-xxx, A33948-xxx
48
49   82544       PRO/1000 XT Server Adapter           A51580-xxx
50
51   82544       PRO/1000 XF Server Adapter           A50484-xxx
52
53   82544       PRO/1000 T Desktop Adapter           A62947-xxx
54 
55   82540       PRO/1000 MT Desktop Adapter          A78408-xxx
56   82541                                            C91016-xxx
57
58   82545       PRO/1000 MT Server Adapter           A92165-xxx
59
60   82545       PRO/1000 MF Server Adapter           A91622-xxx
61
62   82545       PRO/1000 MF Server Adapter(LX)       A91624-xxx
63
64   82546       PRO/1000 MT Dual Port Server Adapter A92111-xxx
65
66   82546       PRO/1000 MF Dual Port Server Adapter A91620-xxx
67
68   82546EB     PRO/1000 MT Quad Port Server Adapter C11227-xxx 
69
70
71
72To verify your Intel adapter is supported, find the board ID number on the
73adapter. Look for a label that has a barcode and a number in the format of
74123456-001 (six digits hyphen three digits). Match this to the list of 
75numbers above.
76
77For more information on how to identify your adapter, go to the Adapter &
78Driver ID Guide at:
79
80    http://support.intel.com/support/network/adapter/pro100/21397.htm
81
82For the latest Intel network drivers for FreeBSD, see:
83
84    http://appsr.intel.com/scripts-df/support_intel.asp
85
86
87Building and Installation
88=========================
89
90NOTE: The driver can be installed as a dynamic loadable kernel module or 
91      compiled into the kernel. You must have kernel sources installed in 
92      order to compile the driver module.
93
94In the instructions below, x.x.x is the driver version as indicated in the 
95name of the driver tar file.
96
971. Move the base driver tar file to the directory of your choice. For 
98   example, use /home/username/em or /usr/local/src/em.
99
1002. Untar/unzip the archive:
101
102        tar xvfz em-x.x.x.tar.gz
103
104   This will create an em-x.x.x directory.
105
1063. To create a loadable module, perform the following steps. 
107   NOTE: To compile the driver into the kernel, go directly to step 4.
108
109	a. To compile the module
110
111	          cd em-x.x.x
112      	          make
113
114   	b. To install the compiled module in system directory:
115	 
116		  make install
117		
118   	c. If you want the driver to load automatically when the system is booted:
119
120      	      1. Follow steps a, and b above to compile and install the module
121	      2. Edit /boot/loader.conf, and add the following line:
122
123      	          if_em_load="YES"
124
1254. To compile the driver into the kernel:
126
127        cd em-x.x.x/src
128
129        cp if_em* /usr/src/sys/dev/em
130
131        cp Makefile.kernel /usr/src/sys/modules/em/Makefile
132
133   Edit the /usr/src/sys/conf/files.i386 file, and add the following lines:
134
135        dev/em/if_em.c optional em
136
137        dev/em/if_em_hw.c optional em 
138
139   Remove the following lines from the /usr/src/sys/conf/files.i386 file, 
140   if they exist:
141
142        dev/em/if_em_fxhw.c optional em
143        dev/em/if_em_phy.c optional em
144
145   Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 
146   /usr/src/sys/i386/conf, and ensure the following line is present:
147
148        device em
149
150   Compile and install the kernel. The system must be rebooted for the kernel
151   updates to take effect. For additional information on compiling the 
152   kernel, consult the FreeBSD operating system documentation.
153
1545. To assign an IP address to the interface, enter the following:
155
156        ifconfig em<interface_num> <IP_address>
157
1586. Verify that the interface works. Enter the following, where <IP_address>
159   is the IP address for another machine on the same subnet as the interface
160   that is being tested:
161
162        ping <IP_address>
163
1647. To configure the IP address to remain after reboot, edit /etc/rc.conf, 
165   and create the appropriate ifconfig_em<interface_num>�entry:
166
167        ifconfig_em<interface_num>="<ifconfig_settings>"
168
169   Example usage:
170
171        ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
172
173   NOTE: For assistance, see the ifconfig man page.
174
175
176Speed and Duplex Configuration
177==============================
178
179By default, the adapter auto-negotiates the speed and duplex of the 
180connection. If there is a specific need, the ifconfig utility can be used to 
181configure the speed and duplex settings on the adapter. Example usage:
182
183        ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 
184            full-duplex
185
186   NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 
187         not specified and you are not running at gigabit speed, the driver 
188         defaults to half-duplex.
189
190
191This driver supports the following media type options:
192
193   autoselect      -  Enables auto-negotiation for speed and duplex.
194
195   10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt 
196                      option to select full-duplex mode.
197
198   100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
199                      option to select full-duplex mode.
200
201   1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
202                      supports only full-duplex mode.
203
204   1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
205                      supports only full-duplex mode.
206
207For more information on the ifconfig utility, see the ifconfig man page.
208
209
210Additional Configurations
211=========================
212
213The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 
214all but the 82542-based adapters. For specific adapters, refer to the 
215Supported Adapters section.
216
217  Jumbo Frames
218  ------------
219  To enable Jumbo Frames, use the ifconfig utility to increase the MTU 
220  beyond 1500 bytes. 
221
222  NOTES: Only enable Jumbo Frames if your network infrastructure supports 
223         them.
224   
225         The Jumbo Frames setting on the switch must be set to at least 
226         22 bytes larger than that of the adapter.
227
228  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default 
229  MTU range is 1500. To modify the setting, enter the following:
230
231        ifconfig em<interface_num> <hostname or IP address> mtu 9000
232
233  To confirm an interface's MTU value, use the ifconfig command. To confirm
234  the MTU used between two specific devices, use:
235
236        route get <destination_IP_address>
237
238  VLANs
239  -----
240  To create a new VLAN pseudo-interface:
241
242        ifconfig <vlan_name> create
243
244  To associate the VLAN pseudo-interface with a physical interface and 
245  assign a VLAN ID, IP address, and netmask:
246
247        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 
248           <vlan_id> vlandev <physical_interface>
249
250  Example:
251
252        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0
253
254  In this example, all packets will be marked on egress with  802.1Q VLAN 
255  tags, specifying a VLAN ID of 10.
256
257  To remove a VLAN pseudo-interface:
258
259        ifconfig <vlan_name> destroy
260
261  Polling
262  -------
263  To enable polling in the driver, add the following options to the kernel 
264  configuration, and then recompile the kernel:
265
266        options DEVICE_POLLING
267        options HZ=1000
268
269  At runtime, use the following command to turn on polling mode. Similarly,
270  turn off polling mode by setting the variable to 0:
271
272        sysctl kern.polling.enable=1
273
274
275  NOTES: DEVICE POLLING is only valid for non-SMP kernels.
276
277         The driver has to be built into the kernel for DEVICE POLLING to be
278         enabled in the driver.
279
280
281Known Limitations
282=================
283 
284There are known performance issues with this driver when running UDP traffic
285with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP traffic.
286
287
288Support
289=======
290
291For general information and support, go to the Intel support website at:
292
293        http://support.intel.com
294
295If an issue is identified with the released source code on the supported
296kernel with a supported adapter, email the specific information related to 
297the issue to freebsdnic@mailbox.intel.com.
298
299
300License
301=======
302
303This software program is released under the terms of a license agreement 
304between you ('Licensee') and Intel. Do not use or load this software or any 
305associated materials (collectively, the 'Software') until you have carefully 
306read the full terms and conditions of the LICENSE located in this software 
307package. By loading or using the Software, you agree to the terms of this 
308Agreement. If you do not agree with the terms of this Agreement, do not 
309install or use the Software.
310
311* Other names and brands may be claimed as the property of others.
312