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