README (160949) | README (169240) |
---|---|
1$FreeBSD: head/sys/dev/em/README 160949 2006-08-03 09:20:11Z glebius $ 2FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters | 1$FreeBSD: head/sys/dev/em/README 169240 2007-05-04 00:00:12Z jfv $ 2FreeBSD Driver for the Gigabit Family of Adapters |
3============================================================ 4 | 3============================================================ 4 |
5May 2, 2006 | 5April 18, 2007 |
6 7 8Contents 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 21Overview 22======== 23 | 6 7 8Contents 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 21Overview 22======== 23 |
24This file describes the FreeBSD* driver for the Intel(R) PRO/1000 Family of | 24This file describes the FreeBSD* driver for the Gigabit Family of |
25Adapters. This driver has been developed for use with FreeBSD, Release 6.x. 26 27For questions related to hardware requirements, refer to the documentation | 25Adapters. This driver has been developed for use with FreeBSD, Release 6.x. 26 27For questions related to hardware requirements, refer to the documentation |
28supplied with your Intel PRO/1000 adapter. All hardware requirements listed | 28supplied with your Gigabit adapter. All hardware requirements listed |
29apply to use with FreeBSD. 30 31 32Identifying Your Adapter 33======================== 34 35For information on how to identify your adapter, go to the Adapter & 36Driver ID Guide at: --- 20 unchanged lines hidden (view full) --- 57In the instructions below, x.x.x is the driver version as indicated in the 58name of the driver tar file. 59 601. 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 632. Untar/unzip the archive: 64 | 29apply to use with FreeBSD. 30 31 32Identifying Your Adapter 33======================== 34 35For information on how to identify your adapter, go to the Adapter & 36Driver ID Guide at: --- 20 unchanged lines hidden (view full) --- 57In the instructions below, x.x.x is the driver version as indicated in the 58name of the driver tar file. 59 601. 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 632. Untar/unzip the archive: 64 |
65 tar xvfz em-x.x.x.tar.gz | 65 tar xzvf em-x.x.x.tar.gz |
66 67 This will create an em-x.x.x directory. 68 693. 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 | 66 67 This will create an em-x.x.x directory. 68 693. 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: | 77 b. To install the compiled module to the 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 | 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 |
874. To compile the driver into the kernel: | 874. To compile the driver into the kernel, enter: |
88 89 cd em-x.x.x/src | 88 89 cd em-x.x.x/src |
90 91 cp if_em* /usr/src/sys/dev/em 92 | 90 cp *.[ch] /usr/src/sys/dev/em |
93 cp Makefile.kernel /usr/src/sys/modules/em/Makefile 94 | 91 cp Makefile.kernel /usr/src/sys/modules/em/Makefile 92 |
95 Edit the /usr/src/sys/conf/files file, and add the following lines only if 96 they don't already exist: | 93 NOTE: At this point you MUST install a patch, kernbuild.patch, which is 94 located in the patches directory. This is applied as shown below where 95 "$PATH_TO_KERNBUILD_PATCH" is the location of the kernbuild.patch: |
97 | 96 |
98 dev/em/if_em.c optional em | 97 cd /usr/src/sys; patch -p1 < $PATH_TO_KERNBUILD_PATCH |
99 | 98 |
100 dev/em/if_em_hw.c optional em | 99 Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 100 /usr/src/sys/i386/conf, and ensure the following line is present: |
101 | 101 |
102 Remove the following lines from the /usr/src/sys/conf/files 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 | 102 device em 103 |
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. | 104 Compile and install the kernel. The system must be rebooted for the 105 kernel updates to take effect. For additional information on compiling 106 the kernel, consult the FreeBSD operating system documentation. |
116 1175. To assign an IP address to the interface, enter the following: 118 119 ifconfig em<interface_num> <IP_address> 120 1216. 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: --- 21 unchanged lines hidden (view full) --- 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 | 107 1085. To assign an IP address to the interface, enter the following: 109 110 ifconfig em<interface_num> <IP_address> 111 1126. Verify that the interface works. Enter the following, where <IP_address> 113 is the IP address for another machine on the same subnet as the interface 114 that is being tested: --- 21 unchanged lines hidden (view full) --- 136 137 ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 138 full-duplex 139 140 NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 141 not specified and you are not running at gigabit speed, the driver 142 defaults to half-duplex. 143 |
144If the interface is currently forced to 100 full duplex, in order to change 145to half duplex you must use this command: |
|
153 | 146 |
147 ifconfig em<interface_num> <IP_address> media 100baseTX -mediaopt 148 full-duplex 149 150 |
|
154This 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 --- 40 unchanged lines hidden (view full) --- 202 larger than that of the MTU. 203 204 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides 205 with the maximum Jumbo Frames size of 16128. 206 207 - Some Intel gigabit adapters that support Jumbo Frames have a frame size 208 limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. 209 The adapters with this limitation are based on the Intel(R) 82571EB, | 151This driver supports the following media type options: 152 153 autoselect - Enables auto-negotiation for speed and duplex. 154 155 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt 156 option to select full-duplex mode. 157 158 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt --- 40 unchanged lines hidden (view full) --- 199 larger than that of the MTU. 200 201 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides 202 with the maximum Jumbo Frames size of 16128. 203 204 - Some Intel gigabit adapters that support Jumbo Frames have a frame size 205 limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. 206 The adapters with this limitation are based on the Intel(R) 82571EB, |
210 82572EI, 82573L and 80003ES2LAN controller. These correspond to the 211 following product names: | 207 82572EI, 82573L, 82566, 82562, and 80003ES2LAN controller. These 208 correspond to the following product names: |
212 Intel(R) PRO/1000 PT Server Adapter 213 Intel(R) PRO/1000 PT Desktop Adapter 214 Intel(R) PRO/1000 PT Network Connection 215 Intel(R) PRO/1000 PT Dual Port Server Adapter 216 Intel(R) PRO/1000 PT Dual Port Network Connection 217 Intel(R) PRO/1000 PF Server Adapter 218 Intel(R) PRO/1000 PF Network Connection 219 Intel(R) PRO/1000 PF Dual Port Server Adapter 220 Intel(R) PRO/1000 PB Server Connection 221 Intel(R) PRO/1000 PL Network Connection 222 Intel(R) PRO/1000 EB Network Connection with I/O Acceleration 223 Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration | 209 Intel(R) PRO/1000 PT Server Adapter 210 Intel(R) PRO/1000 PT Desktop Adapter 211 Intel(R) PRO/1000 PT Network Connection 212 Intel(R) PRO/1000 PT Dual Port Server Adapter 213 Intel(R) PRO/1000 PT Dual Port Network Connection 214 Intel(R) PRO/1000 PF Server Adapter 215 Intel(R) PRO/1000 PF Network Connection 216 Intel(R) PRO/1000 PF Dual Port Server Adapter 217 Intel(R) PRO/1000 PB Server Connection 218 Intel(R) PRO/1000 PL Network Connection 219 Intel(R) PRO/1000 EB Network Connection with I/O Acceleration 220 Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration |
221 Intel(R) 82566DM-2 Gigabit Network Connection |
|
224 225 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not 226 support Jumbo Frames. These correspond to the following product names: 227 Intel(R) PRO/1000 Gigabit Server Adapter 228 Intel(R) PRO/1000 PM Network Connection 229 230 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or 231 loss of link. 232 233 - The following adapters do not support Jumbo Frames: 234 Intel(R) 82562V 10/100 Network Connection 235 Intel(R) 82566DM Gigabit Network Connection 236 Intel(R) 82566DC Gigabit Network Connection 237 Intel(R) 82566MM Gigabit Network Connection 238 Intel(R) 82566MC Gigabit Network Connection | 222 223 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not 224 support Jumbo Frames. These correspond to the following product names: 225 Intel(R) PRO/1000 Gigabit Server Adapter 226 Intel(R) PRO/1000 PM Network Connection 227 228 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or 229 loss of link. 230 231 - The following adapters do not support Jumbo Frames: 232 Intel(R) 82562V 10/100 Network Connection 233 Intel(R) 82566DM Gigabit Network Connection 234 Intel(R) 82566DC Gigabit Network Connection 235 Intel(R) 82566MM Gigabit Network Connection 236 Intel(R) 82566MC Gigabit Network Connection |
237 Intel(R) 82562GT 10/100 Network Connection 238 Intel(R) 82562G 10/100 Network Connection 239 Intel(R) 82566DC-2 Gigabit Network Connection 240 Intel(R) 82562V-2 10/100 Network Connection 241 Intel(R) 82562G-2 10/100 Network Connection 242 Intel(R) 82562GT-2 10/100 Network Connection |
|
239 | 243 |
240 | |
241 VLANs 242 ----- 243 To create a new VLAN interface: 244 245 ifconfig <vlan_name> create 246 247 To associate the VLAN interface with a physical interface and 248 assign a VLAN ID, IP address, and netmask: 249 250 ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 251 <vlan_id> vlandev <physical_interface> 252 253 Example: 254 | 244 VLANs 245 ----- 246 To create a new VLAN interface: 247 248 ifconfig <vlan_name> create 249 250 To associate the VLAN interface with a physical interface and 251 assign a VLAN ID, IP address, and netmask: 252 253 ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 254 <vlan_id> vlandev <physical_interface> 255 256 Example: 257 |
255 ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0 | 258 ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0 |
256 | 259 |
257 In this example, all packets will be marked on egress with 802.1Q VLAN | 260 In this example, all packets will be marked on egress with 802.1Q VLAN |
258 tags, specifying a VLAN ID of 10. 259 260 To remove a VLAN interface: 261 262 ifconfig <vlan_name> destroy 263 264 265 Polling 266 ------- | 261 tags, specifying a VLAN ID of 10. 262 263 To remove a VLAN interface: 264 265 ifconfig <vlan_name> destroy 266 267 268 Polling 269 ------- |
270 NOTES: Device Polling is only valid for non-SMP (Symmetric MultiProcessing) 271 kernels. 272 273 The driver has to be compiled into the kernel for Device Polling to be 274 enabled in the driver. 275 |
|
267 To enable polling in the driver, add the following options to the kernel 268 configuration, and then recompile the kernel: 269 270 options DEVICE_POLLING 271 options HZ=1000 272 273 At runtime use: | 276 To enable polling in the driver, add the following options to the kernel 277 configuration, and then recompile the kernel: 278 279 options DEVICE_POLLING 280 options HZ=1000 281 282 At runtime use: |
274 ifconfig em0 polling to turn polling on | 283 sysctl kern.polling.enable=1 to turn polling on |
275 Use: | 284 Use: |
276 ifconfig em0 -polling to turn polling off | 285 sysctl kern.polling.enable=0 to turn polling off |
277 278 279 Checksum Offload 280 ---------------- 281 Checksum offloading is not supported on 82542 Gigabit adapters. 282 283 Checksum offloading supports both TCP and UDP packets and is 284 supported for both transmit and receive. --- 16 unchanged lines hidden (view full) --- 301 302 Look for the presence or absence of the following line: 303 304 options=3 <RXCSUM,TXCSUM> 305 306 See the ifconfig man page for further information. 307 308 | 286 287 288 Checksum Offload 289 ---------------- 290 Checksum offloading is not supported on 82542 Gigabit adapters. 291 292 Checksum offloading supports both TCP and UDP packets and is 293 supported for both transmit and receive. --- 16 unchanged lines hidden (view full) --- 310 311 Look for the presence or absence of the following line: 312 313 options=3 <RXCSUM,TXCSUM> 314 315 See the ifconfig man page for further information. 316 317 |
318 TSO 319 --- 320 The FreeBSD driver now offers support for TSO (TCP Segmentation Offload). 321 To enable this support perform the following: 322 323 Patch the kernel with the patch supplied in the tarball. 324 Rebuild and install the kernel. 325 Recompile the driver. You must alter the Makefile to build the driver with 326 E1000_TSO defined. 327 328 Enable or disable TSO: 329 sysctl net.inet.tcp.tso=1 or 0 330 0=disabled, 1=enabled (TSO is enabled by default). 331 332 NOTE: TSO is not supported on 82547 and 82544-based adapters, as well as 333 older adapters. 334 335 |
|
309Known Limitations 310================= 311 | 336Known Limitations 337================= 338 |
339 Detected Tx Unit Hang in Quad Port Adapters 340 ------------------------------------------- 341 342 In some cases ports 3 and 4 wont pass traffic. Ports 1 and 2 don't show 343 any errors and will pass traffic. 344 345 This issue MAY be resolved by updating to the latest BIOS. You can 346 check your system's BIOS by downloading the Linux Firmware Developer Kit 347 that can be obtained at http://www.linuxfirmwarekit.org/ 348 349 FreeBSD version 4.x with Symmetric MultiProcessing (SMP) 350 -------------------------------------------------------- 351 |
|
312 In FreeBSD version 4.x with Symmetric MultiProcessing (SMP), there is a known | 352 In FreeBSD version 4.x with Symmetric MultiProcessing (SMP), there is a known |
313 issue on some newer hardware. The problem is generic kernel and only in SMP | 353 issue on some newer hardware. The problem is kernel generic and only in SMP |
314 mode. The workaround is to either use FreeBSD version 4.x in single processor 315 mode, or use FreeBSD 5.4 or later. 316 317 There are known performance issues with this driver when running UDP traffic 318 with Jumbo Frames. | 354 mode. The workaround is to either use FreeBSD version 4.x in single processor 355 mode, or use FreeBSD 5.4 or later. 356 357 There are known performance issues with this driver when running UDP traffic 358 with Jumbo Frames. |
359 ---------------------------------------------------------------------------- |
|
319 | 360 |
361 82541/82547 can't link or is slow to link with some link partners 362 ----------------------------------------------------------------- 363 |
|
320 There is a known compatibility issue where time to link is slow or link is not 321 established between 82541/82547 controllers and some switches. Known switches 322 include: 323 Planex FXG-08TE 324 I-O Data ETG-SH8 325 326 The driver can be compiled with the following changes: 327 | 364 There is a known compatibility issue where time to link is slow or link is not 365 established between 82541/82547 controllers and some switches. Known switches 366 include: 367 Planex FXG-08TE 368 I-O Data ETG-SH8 369 370 The driver can be compiled with the following changes: 371 |
328 Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE | 372 Edit ./em.x.x.x/src/if_em.h to uncomment the #define E1000_MASTER_SLAVE |
329 from within the comments. For example, change from: 330 | 373 from within the comments. For example, change from: 374 |
331 /* #define EM_MASTER_SLAVE 2 */ | 375 /* #define E1000_MASTER_SLAVE 2 */ |
332 to: | 376 to: |
333 #define EM_MASTER_SLAVE 2 | 377 #define E1000_MASTER_SLAVE 2 |
334 335 Use one of the following options: 336 1 = Master mode 337 2 = Slave mode 338 3 = Auto master/slave 339 Setting 2 is recommended. 340 341 Recompile the module: --- 32 unchanged lines hidden --- | 378 379 Use one of the following options: 380 1 = Master mode 381 2 = Slave mode 382 3 = Auto master/slave 383 Setting 2 is recommended. 384 385 Recompile the module: --- 32 unchanged lines hidden --- |