README revision 235527
1245803Stheraven$FreeBSD: stable/9/sys/dev/e1000/README 235527 2012-05-16 22:22:52Z jfv $ 2245803StheravenFreeBSD* Driver for Intel Network Connection 3245803Stheraven============================================= 4245803Stheraven 5245803StheravenMay 30, 2007 6245803Stheraven 7245803Stheraven 8245803StheravenContents 9245803Stheraven======== 10245803Stheraven 11245803Stheraven- Overview 12245803Stheraven- Identifying Your Adapter 13245803Stheraven- Building and Installation 14245803Stheraven- Speed and Duplex Configuration 15245803Stheraven- Additional Configurations 16245803Stheraven- Known Limitations 17245803Stheraven- Support 18245803Stheraven- License 19245803Stheraven 20245803Stheraven 21245803StheravenOverview 22245803Stheraven======== 23245803Stheraven 24245803StheravenThis file describes the FreeBSD* driver for Intel Network Connection. 25245803StheravenThis driver has been developed for use with FreeBSD, Release 7.x. 26245803Stheraven 27245803StheravenFor questions related to hardware requirements, refer to the documentation 28245803Stheravensupplied with your Gigabit adapter. All hardware requirements listed 29245803Stheravenapply to use with FreeBSD. 30245803Stheraven 31245803Stheraven 32245803StheravenIdentifying Your Adapter 33245803Stheraven======================== 34245803Stheraven 35245803StheravenFor information on how to identify your adapter, go to the Adapter & 36245803StheravenDriver ID Guide at: 37245803Stheraven 38245803Stheravenhttp://support.intel.com/support/network/sb/cs-012904.htm 39245803Stheraven 40245803Stheraven 41245803StheravenFor the latest Intel network drivers for FreeBSD, see: 42245803Stheraven 43245803Stheravenhttp://downloadfinder.intel.com/scripts-df-external/support_intel.aspx 44245803Stheraven 45245803Stheraven 46245803StheravenNOTE: Mobile adapters are not fully supported. 47245803StheravenNOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100 48245803Stheravensupport. 49245803Stheraven 50245803StheravenBuilding and Installation 51245803Stheraven========================= 52245803Stheraven 53245803StheravenNOTE: The driver can be installed as a dynamic loadable kernel module or 54245803Stheraven compiled into the kernel. You must have kernel sources installed in 55245803Stheraven order to compile the driver module. 56245803Stheraven 57245803StheravenIn the instructions below, x.x.x is the driver version as indicated in the 58245803Stheravenname of the driver tar file. 59245803Stheraven 60245803Stheraven1. Move the base driver tar file to the directory of your choice. For 61245803Stheraven example, use /home/username/em or /usr/local/src/em. 62245803Stheraven 63245803Stheraven2. Untar/unzip the archive: 64245803Stheraven 65245803Stheraven tar xzvf em-x.x.x.tar.gz 66245803Stheraven 67245803Stheraven This will create an em-x.x.x directory. 68245803Stheraven 69245803Stheraven3. To create a loadable module, perform the following steps. 70245803Stheraven NOTE: To compile the driver into the kernel, go directly to step 4. 71245803Stheraven 72245803Stheraven a. To compile the module 73245803Stheraven 74245803Stheraven cd em-x.x.x 75245803Stheraven make 76245803Stheraven 77245803Stheraven b. To install the compiled module to the system directory: 78245803Stheraven 79245803Stheraven make install 80245803Stheraven 81245803Stheraven c. If you want the driver to load automatically when the system is booted: 82245803Stheraven 83245803Stheraven 1. Edit /boot/loader.conf, and add the following line: 84245803Stheraven 85245803Stheraven if_em_load="YES" 86245803Stheraven 87245803Stheraven4. To compile the driver into the kernel, enter: 88245803Stheraven 89245803Stheraven cd em-x.x.x/src 90245803Stheraven cp *.[ch] /usr/src/sys/dev/em 91245803Stheraven 92245803Stheraven Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 93245803Stheraven /usr/src/sys/i386/conf, and ensure the following line is present: 94245803Stheraven 95245803Stheraven device em 96245803Stheraven 97245803Stheraven Compile and install the kernel. The system must be rebooted for the 98245803Stheraven kernel updates to take effect. For additional information on compiling 99245803Stheraven the kernel, consult the FreeBSD operating system documentation. 100245803Stheraven 101245803Stheraven5. To assign an IP address to the interface, enter the following: 102245803Stheraven 103245803Stheraven ifconfig em<interface_num> <IP_address> 104245803Stheraven 105245803Stheraven6. Verify that the interface works. Enter the following, where <IP_address> 106245803Stheraven is the IP address for another machine on the same subnet as the interface 107245803Stheraven that is being tested: 108245803Stheraven 109245803Stheraven ping <IP_address> 110245803Stheraven 111245803Stheraven7. To configure the IP address to remain after reboot, edit /etc/rc.conf, 112245803Stheraven and create the appropriate ifconfig_em<interface_num>entry: 113245803Stheraven 114245803Stheraven ifconfig_em<interface_num>="<ifconfig_settings>" 115245803Stheraven 116245803Stheraven Example usage: 117245803Stheraven 118245803Stheraven ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0" 119245803Stheraven 120245803Stheraven NOTE: For assistance, see the ifconfig man page. 121245803Stheraven 122245803Stheraven 123245803StheravenSpeed and Duplex Configuration 124245803Stheraven============================== 125245803Stheraven 126245803StheravenBy default, the adapter auto-negotiates the speed and duplex of the 127245803Stheravenconnection. If there is a specific need, the ifconfig utility can be used to 128245803Stheravenconfigure the speed and duplex settings on the adapter. Example usage: 129245803Stheraven 130245803Stheraven ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 131245803Stheraven full-duplex 132245803Stheraven 133245803Stheraven NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 134245803Stheraven not specified and you are not running at gigabit speed, the driver 135245803Stheraven defaults to half-duplex. 136245803Stheraven 137245803StheravenIf the interface is currently forced to 100 full duplex, in order to change 138245803Stheravento half duplex you must use this command: 139245803Stheraven 140245803Stheraven ifconfig em<interface_num> <IP_address> media 100baseTX -mediaopt 141245803Stheraven full-duplex 142245803Stheraven 143245803Stheraven 144245803StheravenThis driver supports the following media type options: 145245803Stheraven 146245803Stheraven autoselect - Enables auto-negotiation for speed and duplex. 147245803Stheraven 148245803Stheraven 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt 149245803Stheraven option to select full-duplex mode. 150245803Stheraven 151245803Stheraven 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt 152245803Stheraven option to select full-duplex mode. 153245803Stheraven 154245803Stheraven 1000baseTX - Sets speed to 1000 Mbps. In this case, the driver 155245803Stheraven supports only full-duplex mode. 156245803Stheraven 157245803Stheraven 1000baseSX - Sets speed to 1000 Mbps. In this case, the driver 158245803Stheraven supports only full-duplex mode. 159245803Stheraven 160245803StheravenFor more information on the ifconfig utility, see the ifconfig man page. 161245803Stheraven 162245803Stheraven 163245803StheravenAdditional Configurations 164245803Stheraven========================= 165245803Stheraven 166245803StheravenThe driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 167245803Stheravenall but the 82542-based adapters. For specific adapters, refer to the 168245803StheravenIdentifying Your Adapter section. 169245803Stheraven 170245803Stheraven Jumbo Frames 171245803Stheraven ------------ 172245803Stheraven To enable Jumbo Frames, use the ifconfig utility to set the Maximum 173245803Stheraven Transport Unit (MTU) frame size above its default of 1500 bytes. 174245803Stheraven 175245803Stheraven The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify 176245803Stheraven the setting, enter the following: 177245803Stheraven 178245803Stheraven ifconfig em<interface_num> <hostname or IP address> mtu 9000 179245803Stheraven 180245803Stheraven To confirm the MTU used between two specific devices, use: 181245803Stheraven 182245803Stheraven route get <destination_IP_address> 183245803Stheraven 184245803Stheraven Notes: 185245803Stheraven 186245803Stheraven - Only enable Jumbo Frames if your network infrastructure supports them. 187245803Stheraven 188245803Stheraven - To enable Jumbo Frames, increase the MTU size on the interface beyond 189292876Stheraven 1500. 190245803Stheraven 191245803Stheraven - The Jumbo Frames setting on the switch must be set to at least 22 bytes 192245803Stheraven larger than that of the MTU. 193292876Stheraven 194245803Stheraven - The maximum MTU setting for Jumbo Frames is 16110. This value coincides 195245803Stheraven with the maximum Jumbo Frames size of 16128. 196245803Stheraven 197245803Stheraven - Some Intel gigabit adapters that support Jumbo Frames have a frame size 198245803Stheraven limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. 199245803Stheraven The adapters with this limitation are based on the Intel(R) 82571EB, 200245803Stheraven 82572EI, 82573L, 82566, 82562, and 80003ES2LAN controller. These 201245803Stheraven correspond to the following product names: 202245803Stheraven Intel(R) PRO/1000 PT Server Adapter 203245803Stheraven Intel(R) PRO/1000 PT Desktop Adapter 204245803Stheraven Intel(R) PRO/1000 PT Network Connection 205245803Stheraven Intel(R) PRO/1000 PT Dual Port Server Adapter 206245803Stheraven Intel(R) PRO/1000 PT Dual Port Network Connection 207245803Stheraven Intel(R) PRO/1000 PT Quad Port Server Adapter 208245803Stheraven Intel(R) PRO/1000 PF Quad Port Server Adapter 209245803Stheraven Intel(R) PRO/1000 PF Server Adapter 210245803Stheraven Intel(R) PRO/1000 PF Network Connection 211245803Stheraven Intel(R) PRO/1000 PF Dual Port Server Adapter 212245803Stheraven Intel(R) PRO/1000 PB Server Connection 213245803Stheraven Intel(R) PRO/1000 PL Network Connection 214245803Stheraven Intel(R) PRO/1000 EB Network Connection with I/O Acceleration 215245803Stheraven Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration 216245803Stheraven Intel(R) 82566DM-2 Gigabit Network Connection 217245803Stheraven 218245803Stheraven - Adapters based on the Intel(R) 82542 and 82573V/E controller do not 219245803Stheraven support Jumbo Frames. These correspond to the following product names: 220245803Stheraven Intel(R) PRO/1000 Gigabit Server Adapter 221245803Stheraven Intel(R) PRO/1000 PM Network Connection 222245803Stheraven 223245803Stheraven - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or 224245803Stheraven loss of link. 225245803Stheraven 226245803Stheraven - The following adapters do not support Jumbo Frames: 227289677Seadler Intel(R) 82562V 10/100 Network Connection 228245803Stheraven Intel(R) 82566DM Gigabit Network Connection 229245803Stheraven Intel(R) 82566DC Gigabit Network Connection 230245803Stheraven Intel(R) 82566MM Gigabit Network Connection 231245803Stheraven Intel(R) 82566MC Gigabit Network Connection 232245803Stheraven Intel(R) 82562GT 10/100 Network Connection 233245803Stheraven Intel(R) 82562G 10/100 Network Connection 234245803Stheraven Intel(R) 82566DC-2 Gigabit Network Connection 235245803Stheraven Intel(R) 82562V-2 10/100 Network Connection 236245803Stheraven Intel(R) 82562G-2 10/100 Network Connection 237245803Stheraven Intel(R) 82562GT-2 10/100 Network Connection 238245803Stheraven 239245803Stheraven VLANs 240245803Stheraven ----- 241245803Stheraven To create a new VLAN interface: 242245803Stheraven 243245803Stheraven ifconfig <vlan_name> create 244245803Stheraven 245245803Stheraven To associate the VLAN interface with a physical interface and 246245803Stheraven assign a VLAN ID, IP address, and netmask: 247245803Stheraven 248245803Stheraven ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 249245803Stheraven <vlan_id> vlandev <physical_interface> 250245803Stheraven 251245803Stheraven Example: 252245803Stheraven 253245803Stheraven ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0 254245803Stheraven 255245803Stheraven In this example, all packets will be marked on egress with 802.1Q VLAN 256245803Stheraven tags, specifying a VLAN ID of 10. 257245803Stheraven 258245803Stheraven To remove a VLAN interface: 259245803Stheraven 260245803Stheraven Intel Network Connection ifconfig <vlan_name> destroy 261245803Stheraven 262245803Stheraven 263245803Stheraven Polling 264245803Stheraven ------- 265245803Stheraven 266245803Stheraven To enable polling in the driver, add the following options to the kernel 267245803Stheraven configuration, and then recompile the kernel: 268245803Stheraven 269245803Stheraven options DEVICE_POLLING 270245803Stheraven options HZ=1000 271245803Stheraven 272245803Stheraven At runtime use: 273245803Stheraven ifconfig emX polling (to turn polling on) 274245803Stheraven and: 275245803Stheraven ifconfig emX -polling (to turn it off) 276245803Stheraven 277245803Stheraven 278245803Stheraven Checksum Offload 279245803Stheraven ---------------- 280245803Stheraven Checksum offloading is not supported on 82542 Gigabit adapters. 281245803Stheraven 282245803Stheraven Checksum offloading supports both TCP and UDP packets and is 283245803Stheraven supported for both transmit and receive. 284245803Stheraven 285245803Stheraven Checksum offloading can be enabled or disabled using ifconfig. 286245803Stheraven Both transmit and receive offloading will be either enabled or 287245803Stheraven disabled together. You cannot enable/disable one without the other. 288245803Stheraven 289245803Stheraven To enable checksum offloading: 290245803Stheraven 291245803Stheraven ifconfig <interface_num> rxcsum 292245803Stheraven 293245803Stheraven To disable checksum offloading: 294245803Stheraven 295245803Stheraven ifconfig <interface_num> -rxcsum 296245803Stheraven 297245803Stheraven To confirm the current setting: 298245803Stheraven 299245803Stheraven ifconfig <interface_num> 300245803Stheraven 301245803Stheraven Look for the presence or absence of the following line: 302245803Stheraven 303245803Stheraven options=3 <RXCSUM,TXCSUM> 304245803Stheraven 305245803Stheraven See the ifconfig man page for further information. 306245803Stheraven 307245803Stheraven 308245803Stheraven TSO 309245803Stheraven --- 310245803Stheraven The FreeBSD driver offers support for TSO (TCP Segmentation Offload). 311245803Stheraven 312245803Stheraven You can enable/disable it in two ways/places: 313245803Stheraven 314245803Stheraven - sysctl net.inet.tcp.tso=0 (or 1 to enable it) 315245803Stheraven 316245803Stheraven Doing this disables TSO in the stack and will affect all adapters. 317245803Stheraven 318245803Stheraven - ifconfig emX -tso 319245803Stheraven 320245803Stheraven Doing this will disable TSO only for this adapter. 321245803Stheraven 322245803Stheraven To enable: 323245803Stheraven 324245803Stheraven - ifconfig emX tso 325245803Stheraven 326245803Stheraven NOTES: By default only PCI-Express adapters are ENABLED to do TSO. Others 327245803Stheraven can be enabled by the user at their own risk 328245803Stheraven TSO is not supported on 82547 and 82544-based adapters, as well as older adapters. 329245803Stheraven 330245803Stheraven 331245803StheravenKnown Limitations 332245803Stheraven================= 333245803Stheraven 334245803Stheraven Detected Tx Unit Hang in Quad Port Adapters 335245803Stheraven ------------------------------------------- 336245803Stheraven 337245803Stheraven In some cases ports 3 and 4 wont pass traffic. Ports 1 and 2 don't show 338245803Stheraven any errors and will pass traffic. 339245803Stheraven 340245803Stheraven This issue MAY be resolved by updating to the latest BIOS. You can 341245803Stheraven check your system's BIOS by downloading the Linux Firmware Developer Kit 342245803Stheraven that can be obtained at http://www.linuxfirmwarekit.org/ 343245803Stheraven 344245803Stheraven 345245803Stheraven There are known performance issues with this driver when running UDP traffic 346245803Stheraven with Jumbo Frames. 347245803Stheraven ---------------------------------------------------------------------------- 348245803Stheraven 349245803Stheraven 82541/82547 can't link or is slow to link with some link partners 350245803Stheraven ----------------------------------------------------------------- 351245803Stheraven 352245803Stheraven There is a known compatibility issue where time to link is slow or link is not 353245803Stheraven established between 82541/82547 controllers and some switches. Known switches 354245803Stheraven include: 355245803Stheraven Planex FXG-08TE 356245803Stheraven I-O Data ETG-SH8 357245803Stheraven Netgear GS105v3 358245803Stheraven 359245803Stheraven The driver can be compiled with the following changes: 360245803Stheraven 361245803Stheraven Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE 362245803Stheraven For example, change from: 363245803Stheraven 364245803Stheraven #define EM_MASTER_SLAVE e1000_ms_hw_default 365245803Stheraven 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: 392freebsdnic@mailbox.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