]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/dev/em/README
Use pci_find_extcap() to search for AGP capabilities (PCIY_AGP).
[FreeBSD/FreeBSD.git] / sys / dev / em / README
1 $FreeBSD$
2 FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
3 ============================================================
4
5 March 18, 2005
6
7
8 Contents
9 ========
10
11 - Overview
12 - Identifying Your Adapter
13 - Building and Installation
14 - Speed and Duplex Configuration
15 - Additional Configurations
16 - Known Limitations
17 - Support
18 - License
19
20
21 Overview
22 ========
23
24 This file describes the FreeBSD* driver, version 2.1.x, for the Intel(R)
25 PRO/1000 Family of Adapters. This driver has been developed for use with
26 FreeBSD, version 5.x.
27
28 For questions related to hardware requirements, refer to the documentation
29 supplied with your Intel PRO/1000 adapter. All hardware requirements listed
30 apply to use with FreeBSD.
31
32
33 Identifying Your Adapter
34 ========================
35
36 For information on how to identify your adapter, go to the Adapter &
37 Driver ID Guide at:
38
39 http://support.intel.com/support/network/adapter/pro100/21397.htm
40
41
42 For the latest Intel network drivers for FreeBSD, see:
43
44 http://appsr.intel.com/scripts-df/support_intel.asp
45
46
47 NOTE: Mobile adapters are not fully supported.
48
49
50 Building and Installation
51 =========================
52
53 NOTE: The driver can be installed as a dynamic loadable kernel module or
54       compiled into the kernel. You must have kernel sources installed in
55       order to compile the driver module.
56
57 In the instructions below, x.x.x is the driver version as indicated in the
58 name of the driver tar file.
59
60 1. Move the base driver tar file to the directory of your choice. For
61    example, use /home/username/em or /usr/local/src/em.
62
63 2. Untar/unzip the archive:
64
65         tar xvfz em-x.x.x.tar.gz
66
67    This will create an em-x.x.x directory.
68
69 3. To create a loadable module, perform the following steps.
70    NOTE: To compile the driver into the kernel, go directly to step 4.
71
72         a. To compile the module
73
74                   cd em-x.x.x
75                   make
76
77         b. To install the compiled module in system directory:
78
79                   make install
80
81         c. If you want the driver to load automatically when the system is booted:
82
83               1. Edit /boot/loader.conf, and add the following line:
84
85                   if_em_load="YES"
86
87 4. To compile the driver into the kernel:
88
89         cd em-x.x.x/src
90
91         cp if_em* /usr/src/sys/dev/em
92
93         cp Makefile.kernel /usr/src/sys/modules/em/Makefile
94
95    Edit the /usr/src/sys/conf/files.i386 file, and add the following lines only if
96    they don't already exist:
97
98         dev/em/if_em.c optional em
99
100         dev/em/if_em_hw.c optional em
101
102    Remove the following lines from the /usr/src/sys/conf/files.i386 file,
103    if they exist:
104
105         dev/em/if_em_fxhw.c optional em
106         dev/em/if_em_phy.c optional em
107
108    Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
109    /usr/src/sys/i386/conf, and ensure the following line is present:
110
111         device em
112
113    Compile and install the kernel. The system must be rebooted for the kernel
114    updates to take effect. For additional information on compiling the
115    kernel, consult the FreeBSD operating system documentation.
116
117 5. To assign an IP address to the interface, enter the following:
118
119         ifconfig em<interface_num> <IP_address>
120
121 6. Verify that the interface works. Enter the following, where <IP_address>
122    is the IP address for another machine on the same subnet as the interface
123    that is being tested:
124
125         ping <IP_address>
126
127 7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
128    and create the appropriate ifconfig_em<interface_num>entry:
129
130         ifconfig_em<interface_num>="<ifconfig_settings>"
131
132    Example usage:
133
134         ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
135
136    NOTE: For assistance, see the ifconfig man page.
137
138
139 Speed and Duplex Configuration
140 ==============================
141
142 By default, the adapter auto-negotiates the speed and duplex of the
143 connection. If there is a specific need, the ifconfig utility can be used to
144 configure the speed and duplex settings on the adapter. Example usage:
145
146         ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
147             full-duplex
148
149    NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
150          not specified and you are not running at gigabit speed, the driver
151          defaults to half-duplex.
152
153
154 This 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
170 For more information on the ifconfig utility, see the ifconfig man page.
171
172
173 Additional Configurations
174 =========================
175
176 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
177 all but the 82542-based adapters. For specific adapters, refer to the
178 Identifying 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   To enable polling in the driver, add the following options to the kernel
230   configuration, and then recompile the kernel:
231
232         options DEVICE_POLLING
233         options HZ=1000
234
235   At runtime use:
236         sysctl kern.polling.enable=1 to turn polling on
237   Use:
238         sysctl kern.polling.enable=0 to turn polling off
239
240   Checksum Offload
241   ----------------
242   Checksum offloading is not supported on 82542 Gigabit adapters.
243
244   Checksum offloading supports both TCP and UDP packets and is
245   supported for both transmit and receive.
246
247   Checksum offloading can be enabled or disabled using ifconfig.
248   Both transmit and receive offloading will be either enabled or
249   disabled together. You cannot enable/disable one without the other.
250
251   To enable checksum offloading:
252
253          ifconfig <interface_num> rxcsum
254
255   To disable checksum offloading:
256
257          ifconfig <interface_num> -rxcsum
258
259   To confirm the current setting:
260
261          ifconfig <interface_num>
262
263   Look for the presence or absence of the following line:
264
265          options=3 <RXCSUM,TXCSUM>
266
267   See the ifconfig man page for further information.
268
269 Known Limitations
270 =================
271
272   There are known performance issues with this driver when running UDP traffic
273   with Jumbo Frames.
274
275   There is a known compatibility issue where time to link is slow or link is not
276   established between 82541/82547 controllers and some switches.  Known switches
277   include:
278         Planex FXG-08TE
279         I-O Data ETG-SH8
280
281   The driver can be compiled with the following changes:
282
283   Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE
284   from within the comments.  For example, change from:
285
286       /* #define EM_MASTER_SLAVE  2 */
287   to:
288       #define EM_MASTER_SLAVE  2
289
290   Use one of the following options:
291       1 = Master mode
292       2 = Slave mode
293       3 = Auto master/slave
294   Setting 2 is recommended.
295
296   Recompile the module:
297           a. To compile the module
298                 cd em-x.x.x
299                 make clean
300                 make
301
302    b. To install the compiled module in system directory:
303                 make install
304
305
306 Support
307 =======
308
309 For general information and support, go to the Intel support website at:
310
311         http://support.intel.com
312
313 If an issue is identified, support is through email only at:
314 freebsdnic@mailbox.intel.com
315
316 License
317 =======
318
319 This software program is released under the terms of a license agreement
320 between you ('Licensee') and Intel. Do not use or load this software or any
321 associated materials (collectively, the 'Software') until you have carefully
322 read the full terms and conditions of the LICENSE located in this software
323 package. By loading or using the Software, you agree to the terms of this
324 Agreement. If you do not agree with the terms of this Agreement, do not
325 install or use the Software.
326
327 * Other names and brands may be claimed as the property of others.