README revision 303975
110420Salanb$FreeBSD: releng/11.0/sys/dev/e1000/README 250168 2013-05-02 01:36:52Z eadler $ 212585SalanbFreeBSD* Driver for Intel Network Connection 310420Salanb============================================= 410420Salanb 510420SalanbMay 30, 2007 610420Salanb 710420Salanb 810420SalanbContents 910420Salanb======== 1010420Salanb 1110420Salanb- Overview 1210420Salanb- Identifying Your Adapter 1310420Salanb- Building and Installation 1410420Salanb- Speed and Duplex Configuration 1510420Salanb- Additional Configurations 1610420Salanb- Known Limitations 1710420Salanb- Support 1810420Salanb- License 1910420Salanb 2010420Salanb 2110420SalanbOverview 2210420Salanb======== 2310420Salanb 2410420SalanbThis file describes the FreeBSD* driver for Intel Network Connection. 2510420SalanbThis driver has been developed for use with FreeBSD, Release 7.x. 2611098Sdsamersoff 2711833SctornqviFor questions related to hardware requirements, refer to the documentation 2810420Salanbsupplied with your Gigabit adapter. All hardware requirements listed 2910420Salanbapply to use with FreeBSD. 3010420Salanb 3112723Salanb 3210420SalanbIdentifying Your Adapter 3310420Salanb======================== 3410420Salanb 3510420SalanbFor information on how to identify your adapter, go to the Adapter & 3610420SalanbDriver ID Guide at: 3710420Salanb 3810420Salanbhttp://support.intel.com/support/network/sb/cs-012904.htm 3910420Salanb 4010420Salanb 4112585SalanbFor the latest Intel network drivers for FreeBSD, see: 4212585Salanb 4310420Salanbhttp://downloadfinder.intel.com/scripts-df-external/support_intel.aspx 4412585Salanb 4510420Salanb 4612723SalanbNOTE: Mobile adapters are not fully supported. 4710420SalanbNOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100 4812723Salanbsupport. 4912723Salanb 5010420SalanbBuilding and Installation 5110420Salanb========================= 5210420Salanb 5310420SalanbNOTE: The driver can be installed as a dynamic loadable kernel module or 5410420Salanb compiled into the kernel. You must have kernel sources installed in 5510420Salanb order to compile the driver module. 5612585Salanb 5712585SalanbIn the instructions below, x.x.x is the driver version as indicated in the 5812585Salanbname of the driver tar file. 5912723Salanb 6010420Salanb1. Move the base driver tar file to the directory of your choice. For 6110420Salanb example, use /home/username/em or /usr/local/src/em. 6212585Salanb 6312585Salanb2. Untar/unzip the archive: 6412585Salanb 6512723Salanb tar xzvf em-x.x.x.tar.gz 6610420Salanb 6712585Salanb This will create an em-x.x.x directory. 6812585Salanb 6910420Salanb3. To create a loadable module, perform the following steps. 7010420Salanb NOTE: To compile the driver into the kernel, go directly to step 4. 7110420Salanb 7210420Salanb a. To compile the module 7310420Salanb 7410420Salanb cd em-x.x.x 7510420Salanb make 7612585Salanb 7710420Salanb b. To install the compiled module to the system directory: 7810420Salanb 7910420Salanb make install 8010420Salanb 8110420Salanb c. If you want the driver to load automatically when the system is booted: 8210420Salanb 8310420Salanb 1. Edit /boot/loader.conf, and add the following line: 8410420Salanb 8510420Salanb if_em_load="YES" 86 874. To compile the driver into the kernel, enter: 88 89 cd em-x.x.x/src 90 cp *.[ch] /usr/src/sys/dev/em 91 92 Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 93 /usr/src/sys/i386/conf, and ensure the following line is present: 94 95 device em 96 97 Compile and install the kernel. The system must be rebooted for the 98 kernel updates to take effect. For additional information on compiling 99 the kernel, consult the FreeBSD operating system documentation. 100 1015. To assign an IP address to the interface, enter the following: 102 103 ifconfig em<interface_num> <IP_address> 104 1056. Verify that the interface works. Enter the following, where <IP_address> 106 is the IP address for another machine on the same subnet as the interface 107 that is being tested: 108 109 ping <IP_address> 110 1117. To configure the IP address to remain after reboot, edit /etc/rc.conf, 112 and create the appropriate ifconfig_em<interface_num>entry: 113 114 ifconfig_em<interface_num>="<ifconfig_settings>" 115 116 Example usage: 117 118 ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0" 119 120 NOTE: For assistance, see the ifconfig man page. 121 122 123Speed and Duplex Configuration 124============================== 125 126By default, the adapter auto-negotiates the speed and duplex of the 127connection. If there is a specific need, the ifconfig utility can be used to 128configure the speed and duplex settings on the adapter. Example usage: 129 130 ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 131 full-duplex 132 133 NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 134 not specified and you are not running at gigabit speed, the driver 135 defaults to half-duplex. 136 137If the interface is currently forced to 100 full duplex, in order to change 138to half duplex you must use this command: 139 140 ifconfig em<interface_num> <IP_address> media 100baseTX -mediaopt 141 full-duplex 142 143 144This driver supports the following media type options: 145 146 autoselect - Enables auto-negotiation for speed and duplex. 147 148 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt 149 option to select full-duplex mode. 150 151 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt 152 option to select full-duplex mode. 153 154 1000baseTX - Sets speed to 1000 Mbps. In this case, the driver 155 supports only full-duplex mode. 156 157 1000baseSX - Sets speed to 1000 Mbps. In this case, the driver 158 supports only full-duplex mode. 159 160For more information on the ifconfig utility, see the ifconfig man page. 161 162 163Additional Configurations 164========================= 165 166The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 167all but the 82542-based adapters. For specific adapters, refer to the 168Identifying Your Adapter section. 169 170 Jumbo Frames 171 ------------ 172 To enable Jumbo Frames, use the ifconfig utility to set the Maximum 173 Transport Unit (MTU) frame size above its default of 1500 bytes. 174 175 The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify 176 the setting, enter the following: 177 178 ifconfig em<interface_num> <hostname or IP address> mtu 9000 179 180 To confirm the MTU used between two specific devices, use: 181 182 route get <destination_IP_address> 183 184 Notes: 185 186 - Only enable Jumbo Frames if your network infrastructure supports them. 187 188 - To enable Jumbo Frames, increase the MTU size on the interface beyond 189 1500. 190 191 - The Jumbo Frames setting on the switch must be set to at least 22 bytes 192 larger than that of the MTU. 193 194 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides 195 with the maximum Jumbo Frames size of 16128. 196 197 - Some Intel gigabit adapters that support Jumbo Frames have a frame size 198 limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. 199 The adapters with this limitation are based on the Intel(R) 82571EB, 200 82572EI, 82573L, 82566, 82562, and 80003ES2LAN controller. These 201 correspond to the following product names: 202 Intel(R) PRO/1000 PT Server Adapter 203 Intel(R) PRO/1000 PT Desktop Adapter 204 Intel(R) PRO/1000 PT Network Connection 205 Intel(R) PRO/1000 PT Dual Port Server Adapter 206 Intel(R) PRO/1000 PT Dual Port Network Connection 207 Intel(R) PRO/1000 PT Quad Port Server Adapter 208 Intel(R) PRO/1000 PF Quad Port Server Adapter 209 Intel(R) PRO/1000 PF Server Adapter 210 Intel(R) PRO/1000 PF Network Connection 211 Intel(R) PRO/1000 PF Dual Port Server Adapter 212 Intel(R) PRO/1000 PB Server Connection 213 Intel(R) PRO/1000 PL Network Connection 214 Intel(R) PRO/1000 EB Network Connection with I/O Acceleration 215 Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration 216 Intel(R) 82566DM-2 Gigabit Network Connection 217 218 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not 219 support Jumbo Frames. These correspond to the following product names: 220 Intel(R) PRO/1000 Gigabit Server Adapter 221 Intel(R) PRO/1000 PM Network Connection 222 223 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or 224 loss of link. 225 226 - The following adapters do not support Jumbo Frames: 227 Intel(R) 82562V 10/100 Network Connection 228 Intel(R) 82566DM Gigabit Network Connection 229 Intel(R) 82566DC Gigabit Network Connection 230 Intel(R) 82566MM Gigabit Network Connection 231 Intel(R) 82566MC Gigabit Network Connection 232 Intel(R) 82562GT 10/100 Network Connection 233 Intel(R) 82562G 10/100 Network Connection 234 Intel(R) 82566DC-2 Gigabit Network Connection 235 Intel(R) 82562V-2 10/100 Network Connection 236 Intel(R) 82562G-2 10/100 Network Connection 237 Intel(R) 82562GT-2 10/100 Network Connection 238 239 VLANs 240 ----- 241 To create a new VLAN interface: 242 243 ifconfig <vlan_name> create 244 245 To associate the VLAN 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 vlan 10 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 interface: 259 260 Intel Network Connection ifconfig <vlan_name> destroy 261 262 263 Polling 264 ------- 265 266 To enable polling in the driver, add the following options to the kernel 267 configuration, and then recompile the kernel: 268 269 options DEVICE_POLLING 270 options HZ=1000 271 272 At runtime use: 273 ifconfig emX polling (to turn polling on) 274 and: 275 ifconfig emX -polling (to turn it off) 276 277 278 Checksum Offload 279 ---------------- 280 Checksum offloading is not supported on 82542 Gigabit adapters. 281 282 Checksum offloading supports both TCP and UDP packets and is 283 supported for both transmit and receive. 284 285 Checksum offloading can be enabled or disabled using ifconfig. 286 Both transmit and receive offloading will be either enabled or 287 disabled together. You cannot enable/disable one without the other. 288 289 To enable checksum offloading: 290 291 ifconfig <interface_num> rxcsum 292 293 To disable checksum offloading: 294 295 ifconfig <interface_num> -rxcsum 296 297 To confirm the current setting: 298 299 ifconfig <interface_num> 300 301 Look for the presence or absence of the following line: 302 303 options=3 <RXCSUM,TXCSUM> 304 305 See the ifconfig man page for further information. 306 307 308 TSO 309 --- 310 The FreeBSD driver offers support for TSO (TCP Segmentation Offload). 311 312 You can enable/disable it in two ways/places: 313 314 - sysctl net.inet.tcp.tso=0 (or 1 to enable it) 315 316 Doing this disables TSO in the stack and will affect all adapters. 317 318 - ifconfig emX -tso 319 320 Doing this will disable TSO only for this adapter. 321 322 To enable: 323 324 - ifconfig emX tso 325 326 NOTES: By default only PCI-Express adapters are ENABLED to do TSO. Others 327 can be enabled by the user at their own risk 328 TSO is not supported on 82547 and 82544-based adapters, as well as older adapters. 329 330 331Known Limitations 332================= 333 334 Detected Tx Unit Hang in Quad Port Adapters 335 ------------------------------------------- 336 337 In some cases ports 3 and 4 wont pass traffic. Ports 1 and 2 don't show 338 any errors and will pass traffic. 339 340 This issue MAY be resolved by updating to the latest BIOS. You can 341 check your system's BIOS by downloading the Linux Firmware Developer Kit 342 that can be obtained at http://www.linuxfirmwarekit.org/ 343 344 345 There are known performance issues with this driver when running UDP traffic 346 with Jumbo Frames. 347 ---------------------------------------------------------------------------- 348 349 82541/82547 can't link or is slow to link with some link partners 350 ----------------------------------------------------------------- 351 352 There is a known compatibility issue where time to link is slow or link is not 353 established between 82541/82547 controllers and some switches. Known switches 354 include: 355 Planex FXG-08TE 356 I-O Data ETG-SH8 357 Netgear GS105v3 358 359 The driver can be compiled with the following changes: 360 361 Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE 362 For example, change from: 363 364 #define EM_MASTER_SLAVE e1000_ms_hw_default 365 to: 366 #define EM_MASTER_SLAVE 2 367 368 Use one of the following options: 369 1 = Master mode 370 2 = Slave mode 371 3 = Auto master/slave 372 Setting 2 is recommended. 373 374 Recompile the module: 375 a. To compile the module 376 cd em-x.x.x 377 make clean 378 make 379 380 b. To install the compiled module in system directory: 381 make install 382 383 384Support 385======= 386 387For general information and support, go to the Intel support website at: 388 389 http://support.intel.com 390 391If an issue is identified, support is through email only at: 392freebsd@intel.com 393 394 395License 396======= 397 398This software program is released under the terms of a license agreement 399between you ('Licensee') and Intel. Do not use or load this software or any 400associated materials (collectively, the 'Software') until you have carefully 401read the full terms and conditions of the LICENSE located in this software 402package. By loading or using the Software, you agree to the terms of this 403Agreement. If you do not agree with the terms of this Agreement, do not 404install or use the Software. 405 406* Other names and brands may be claimed as the property of others. 407