1 | $FreeBSD: /repoman/r/ncvs/src/sys/dev/em/README,v 1.10 2005/07/11 02:33:25 delphij Exp $ |
---|
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 | 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 | |
---|
274 | Known 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 | |
---|
311 | Support |
---|
312 | ======= |
---|
313 | |
---|
314 | For general information and support, go to the Intel support website at: |
---|
315 | |
---|
316 | http://support.intel.com |
---|
317 | |
---|
318 | If an issue is identified, support is through email only at: |
---|
319 | freebsdnic@mailbox.intel.com |
---|
320 | |
---|
321 | License |
---|
322 | ======= |
---|
323 | |
---|
324 | This software program is released under the terms of a license agreement |
---|
325 | between you ('Licensee') and Intel. Do not use or load this software or any |
---|
326 | associated materials (collectively, the 'Software') until you have carefully |
---|
327 | read the full terms and conditions of the LICENSE located in this software |
---|
328 | package. By loading or using the Software, you agree to the terms of this |
---|
329 | Agreement. If you do not agree with the terms of this Agreement, do not |
---|
330 | install or use the Software. |
---|
331 | |
---|
332 | * Other names and brands may be claimed as the property of others. |
---|