7c29dd9c1c983aaf6f7400a0149ae321df35fd26
[dragonfly.git] / sys / dev / netif / em / README
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 ============================================================
5
6 April 13, 2003
7
8
9 Contents
10 ========
11
12 - Overview
13 - Supported Adapters
14 - Building and Installation
15 - Speed and Duplex Configuration
16 - Additional Configurations
17 - Known Limitations
18 - Support
19 - License
20
21
22 Overview
23 ========
24
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 
27 FreeBSD, version 4.7. 
28
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.
32
33
34 Supported Adapters
35 ==================
36
37 The following Intel network adapters are compatible with the drivers in this 
38 release:
39
40    Controller  Adapter Name                         Board IDs
41    ----------  ------------                         ---------
42
43    82542       PRO/1000 Gigabit Server Adapter      700262-xxx, 717037-xxx
44
45    82543       PRO/1000 F Server Adapter            738640-xxx, A38888-xxx,
46                                                     A06512-xxx
47
48    82543       PRO/1000 T Server Adapter            A19845-xxx, A33948-xxx
49
50    82544       PRO/1000 XT Server Adapter           A51580-xxx
51
52    82544       PRO/1000 XF Server Adapter           A50484-xxx
53
54    82544       PRO/1000 T Desktop Adapter           A62947-xxx
55  
56    82540       PRO/1000 MT Desktop Adapter          A78408-xxx
57    82541                                            C91016-xxx
58
59    82545       PRO/1000 MT Server Adapter           A92165-xxx
60
61    82545       PRO/1000 MF Server Adapter           A91622-xxx
62
63    82545       PRO/1000 MF Server Adapter(LX)       A91624-xxx
64
65    82546       PRO/1000 MT Dual Port Server Adapter A92111-xxx
66
67    82546       PRO/1000 MF Dual Port Server Adapter A91620-xxx
68
69    82546EB     PRO/1000 MT Quad Port Server Adapter C11227-xxx 
70
71
72
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 
76 numbers above.
77
78 For more information on how to identify your adapter, go to the Adapter &
79 Driver ID Guide at:
80
81     http://support.intel.com/support/network/adapter/pro100/21397.htm
82
83 For the latest Intel network drivers for FreeBSD, see:
84
85     http://appsr.intel.com/scripts-df/support_intel.asp
86
87
88 Building and Installation
89 =========================
90
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.
94
95 In the instructions below, x.x.x is the driver version as indicated in the 
96 name of the driver tar file.
97
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.
100
101 2. Untar/unzip the archive:
102
103         tar xvfz em-x.x.x.tar.gz
104
105    This will create an em-x.x.x directory.
106
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.
109
110         a. To compile the module
111
112                   cd em-x.x.x
113                   make
114
115         b. To install the compiled module in system directory:
116          
117                   make install
118                 
119         c. If you want the driver to load automatically when the system is booted:
120
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:
123
124                   if_em_load="YES"
125
126 4. To compile the driver into the kernel:
127
128         cd em-x.x.x/src
129
130         cp if_em* /usr/src/sys/dev/em
131
132         cp Makefile.kernel /usr/src/sys/modules/em/Makefile
133
134    Edit the /usr/src/sys/conf/files.i386 file, and add the following lines:
135
136         dev/em/if_em.c optional em
137
138         dev/em/if_em_hw.c optional em 
139
140    Remove the following lines from the /usr/src/sys/conf/files.i386 file, 
141    if they exist:
142
143         dev/em/if_em_fxhw.c optional em
144         dev/em/if_em_phy.c optional em
145
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:
148
149         device em
150
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.
154
155 5. To assign an IP address to the interface, enter the following:
156
157         ifconfig em<interface_num> <IP_address>
158
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:
162
163         ping <IP_address>
164
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:
167
168         ifconfig_em<interface_num>="<ifconfig_settings>"
169
170    Example usage:
171
172         ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
173
174    NOTE: For assistance, see the ifconfig man page.
175
176
177 Speed and Duplex Configuration
178 ==============================
179
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:
183
184         ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 
185             full-duplex
186
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.
190
191
192 This driver supports the following media type options:
193
194    autoselect      -  Enables auto-negotiation for speed and duplex.
195
196    10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt 
197                       option to select full-duplex mode.
198
199    100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
200                       option to select full-duplex mode.
201
202    1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
203                       supports only full-duplex mode.
204
205    1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
206                       supports only full-duplex mode.
207
208 For more information on the ifconfig utility, see the ifconfig man page.
209
210
211 Additional Configurations
212 =========================
213
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.
217
218   Jumbo Frames
219   ------------
220   To enable Jumbo Frames, use the ifconfig utility to increase the MTU 
221   beyond 1500 bytes. 
222
223   NOTES: Only enable Jumbo Frames if your network infrastructure supports 
224          them.
225    
226          The Jumbo Frames setting on the switch must be set to at least 
227          22 bytes larger than that of the adapter.
228
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:
231
232         ifconfig em<interface_num> <hostname or IP address> mtu 9000
233
234   To confirm an interface's MTU value, use the ifconfig command. To confirm
235   the MTU used between two specific devices, use:
236
237         route get <destination_IP_address>
238
239   VLANs
240   -----
241   To create a new VLAN pseudo-interface:
242
243         ifconfig <vlan_name> create
244
245   To associate the VLAN pseudo-interface with a physical interface and 
246   assign a VLAN ID, IP address, and netmask:
247
248         ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 
249            <vlan_id> vlandev <physical_interface>
250
251   Example:
252
253         ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0
254
255   In this example, all packets will be marked on egress with  802.1Q VLAN 
256   tags, specifying a VLAN ID of 10.
257
258   To remove a VLAN pseudo-interface:
259
260         ifconfig <vlan_name> destroy
261
262   Polling
263   -------
264   To enable polling in the driver, add the following options to the kernel 
265   configuration, and then recompile the kernel:
266
267         options DEVICE_POLLING
268         options HZ=1000
269
270   At runtime, use the following command to turn on polling mode. Similarly,
271   turn off polling mode by setting the variable to 0:
272
273         sysctl kern.polling.enable=1
274
275
276   NOTES: DEVICE POLLING is only valid for non-SMP kernels.
277
278          The driver has to be built into the kernel for DEVICE POLLING to be
279          enabled in the driver.
280
281
282 Known Limitations
283 =================
284  
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.
287
288
289 Support
290 =======
291
292 For general information and support, go to the Intel support website at:
293
294         http://support.intel.com
295
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.
299
300
301 License
302 =======
303
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.
311
312 * Other names and brands may be claimed as the property of others.