README revision 146663
1202375Srdivacky$FreeBSD: head/sys/dev/em/README 146663 2005-05-26 23:33:24Z tackerman $ 2202375SrdivackyFreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters 3202375Srdivacky============================================================ 4202375Srdivacky 5202375SrdivackyMarch 18, 2005 6202375Srdivacky 7202375Srdivacky 8202375SrdivackyContents 9202375Srdivacky======== 10202375Srdivacky 11202375Srdivacky- Overview 12202375Srdivacky- Identifying Your Adapter 13202375Srdivacky- Building and Installation 14202375Srdivacky- Speed and Duplex Configuration 15202375Srdivacky- Additional Configurations 16202375Srdivacky- Known Limitations 17249423Sdim- Support 18249423Sdim- License 19249423Sdim 20202375Srdivacky 21202375SrdivackyOverview 22249423Sdim======== 23202375Srdivacky 24249423SdimThis file describes the FreeBSD* driver, version 2.1.x, for the Intel(R) 25202375SrdivackyPRO/1000 Family of Adapters. This driver has been developed for use with 26202375SrdivackyFreeBSD, version 5.x. 27202375Srdivacky 28249423SdimFor questions related to hardware requirements, refer to the documentation 29202375Srdivackysupplied with your Intel PRO/1000 adapter. All hardware requirements listed 30202375Srdivackyapply to use with FreeBSD. 31202375Srdivacky 32202375Srdivacky 33202375SrdivackyIdentifying Your Adapter 34202375Srdivacky======================== 35202375Srdivacky 36202375SrdivackyFor information on how to identify your adapter, go to the Adapter & 37202375SrdivackyDriver ID Guide at: 38218893Sdim 39202375Srdivackyhttp://support.intel.com/support/network/adapter/pro100/21397.htm 40202375Srdivacky 41202375Srdivacky 42202375SrdivackyFor the latest Intel network drivers for FreeBSD, see: 43202375Srdivacky 44202375Srdivackyhttp://appsr.intel.com/scripts-df/support_intel.asp 45202375Srdivacky 46202375Srdivacky 47202375SrdivackyNOTE: Mobile adapters are not fully supported. 48202375Srdivacky 49202375Srdivacky 50202375SrdivackyBuilding and Installation 51202375Srdivacky========================= 52202375Srdivacky 53202375SrdivackyNOTE: The driver can be installed as a dynamic loadable kernel module or 54202375Srdivacky compiled into the kernel. You must have kernel sources installed in 55202375Srdivacky order to compile the driver module. 56202375Srdivacky 57249423SdimIn the instructions below, x.x.x is the driver version as indicated in the 58249423Sdimname of the driver tar file. 59202375Srdivacky 60202375Srdivacky1. Move the base driver tar file to the directory of your choice. For 61202375Srdivacky example, use /home/username/em or /usr/local/src/em. 62202375Srdivacky 63202375Srdivacky2. Untar/unzip the archive: 64202375Srdivacky 65202375Srdivacky tar xvfz em-x.x.x.tar.gz 66202375Srdivacky 67202375Srdivacky This will create an em-x.x.x directory. 68202375Srdivacky 69249423Sdim3. To create a loadable module, perform the following steps. 70202375Srdivacky NOTE: To compile the driver into the kernel, go directly to step 4. 71202375Srdivacky 72202375Srdivacky a. To compile the module 73202375Srdivacky 74202375Srdivacky cd em-x.x.x 75202375Srdivacky make 76202375Srdivacky 77202375Srdivacky b. To install the compiled module in system directory: 78202375Srdivacky 79202375Srdivacky make install 80202375Srdivacky 81202375Srdivacky c. If you want the driver to load automatically when the system is booted: 82202375Srdivacky 83202375Srdivacky 1. Edit /boot/loader.conf, and add the following line: 84202375Srdivacky 85202375Srdivacky if_em_load="YES" 86202375Srdivacky 87202375Srdivacky4. To compile the driver into the kernel: 88202375Srdivacky 89202375Srdivacky cd em-x.x.x/src 90249423Sdim 91202375Srdivacky cp if_em* /usr/src/sys/dev/em 92202375Srdivacky 93202375Srdivacky cp Makefile.kernel /usr/src/sys/modules/em/Makefile 94202375Srdivacky 95202375Srdivacky Edit the /usr/src/sys/conf/files.i386 file, and add the following lines only if 96202375Srdivacky they don't already exist: 97202375Srdivacky 98202375Srdivacky dev/em/if_em.c optional em 99202375Srdivacky 100202375Srdivacky dev/em/if_em_hw.c optional em 101202375Srdivacky 102202375Srdivacky Remove the following lines from the /usr/src/sys/conf/files.i386 file, 103202375Srdivacky if they exist: 104202375Srdivacky 105202375Srdivacky dev/em/if_em_fxhw.c optional em 106202375Srdivacky dev/em/if_em_phy.c optional em 107226633Sdim 108204642Srdivacky Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 109202375Srdivacky /usr/src/sys/i386/conf, and ensure the following line is present: 110202375Srdivacky 111203954Srdivacky device em 112202375Srdivacky 113202375Srdivacky Compile and install the kernel. The system must be rebooted for the kernel 114202375Srdivacky updates to take effect. For additional information on compiling the 115202375Srdivacky kernel, consult the FreeBSD operating system documentation. 116202375Srdivacky 117202375Srdivacky5. To assign an IP address to the interface, enter the following: 118202375Srdivacky 119202375Srdivacky ifconfig em<interface_num> <IP_address> 120202375Srdivacky 121202375Srdivacky6. Verify that the interface works. Enter the following, where <IP_address> 122202375Srdivacky is the IP address for another machine on the same subnet as the interface 123202375Srdivacky that is being tested: 124202375Srdivacky 125218893Sdim ping <IP_address> 126202375Srdivacky 127202375Srdivacky7. To configure the IP address to remain after reboot, edit /etc/rc.conf, 128202375Srdivacky and create the appropriate ifconfig_em<interface_num>entry: 129202375Srdivacky 130218893Sdim ifconfig_em<interface_num>="<ifconfig_settings>" 131218893Sdim 132202375Srdivacky Example usage: 133202375Srdivacky 134202375Srdivacky ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0" 135202375Srdivacky 136202375Srdivacky NOTE: For assistance, see the ifconfig man page. 137249423Sdim 138202375Srdivacky 139202375SrdivackySpeed and Duplex Configuration 140249423Sdim============================== 141202375Srdivacky 142203954SrdivackyBy default, the adapter auto-negotiates the speed and duplex of the 143202375Srdivackyconnection. If there is a specific need, the ifconfig utility can be used to 144202375Srdivackyconfigure the speed and duplex settings on the adapter. Example usage: 145202375Srdivacky 146234353Sdim ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 147202375Srdivacky full-duplex 148202375Srdivacky 149202375Srdivacky NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 150202375Srdivacky not specified and you are not running at gigabit speed, the driver 151202375Srdivacky defaults to half-duplex. 152202375Srdivacky 153202375Srdivacky 154202375SrdivackyThis driver supports the following media type options: 155202375Srdivacky 156202375Srdivacky autoselect - Enables auto-negotiation for speed and duplex. 157202375Srdivacky 158202375Srdivacky 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt 159202375Srdivacky option to select full-duplex mode. 160234353Sdim 161234353Sdim 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt 162249423Sdim option to select full-duplex mode. 163202375Srdivacky 164202375Srdivacky 1000baseTX - Sets speed to 1000 Mbps. In this case, the driver 165202375Srdivacky supports only full-duplex mode. 166249423Sdim 167202375Srdivacky 1000baseSX - Sets speed to 1000 Mbps. In this case, the driver 168202375Srdivacky supports only full-duplex mode. 169249423Sdim 170202375SrdivackyFor more information on the ifconfig utility, see the ifconfig man page. 171202375Srdivacky 172249423Sdim 173202375SrdivackyAdditional Configurations 174202375Srdivacky========================= 175202375Srdivacky 176249423SdimThe driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 177202375Srdivackyall but the 82542-based adapters. For specific adapters, refer to the 178202375SrdivackyIdentifying Your Adapter section. 179202375Srdivacky 180249423Sdim Jumbo Frames 181202375Srdivacky ------------ 182234353Sdim To enable Jumbo Frames, use the ifconfig utility to increase the MTU 183234353Sdim beyond 1500 bytes. 184249423Sdim 185202375Srdivacky NOTES: Only enable Jumbo Frames if your network infrastructure supports 186202375Srdivacky them. 187202375Srdivacky 188249423Sdim The Jumbo Frames setting on the switch must be set to at least 189202375Srdivacky 22 bytes larger than that of the MTU. 190202375Srdivacky 191249423Sdim The Intel PRO/1000 PM Network Connection does not support jumbo 192202375Srdivacky frames. 193202375Srdivacky 194249423Sdim 195202375Srdivacky The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default 196202375Srdivacky MTU range is 1500. To modify the setting, enter the following: 197249423Sdim 198202375Srdivacky ifconfig em<interface_num> <hostname or IP address> mtu 9000 199202375Srdivacky 200249423Sdim To confirm the MTU used between two specific devices, use: 201202375Srdivacky 202202375Srdivacky route get <destination_IP_address> 203249423Sdim 204249423Sdim VLANs 205249423Sdim ----- 206249423Sdim To create a new VLAN interface: 207249423Sdim 208249423Sdim ifconfig <vlan_name> create 209249423Sdim 210249423Sdim To associate the VLAN interface with a physical interface and 211249423Sdim assign a VLAN ID, IP address, and netmask: 212249423Sdim 213249423Sdim ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 214249423Sdim <vlan_id> vlandev <physical_interface> 215249423Sdim 216202375Srdivacky Example: 217249423Sdim 218202375Srdivacky ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0 219234353Sdim 220202375Srdivacky In this example, all packets will be marked on egress with 802.1Q VLAN 221202375Srdivacky tags, specifying a VLAN ID of 10. 222249423Sdim 223202375Srdivacky To remove a VLAN interface: 224202375Srdivacky 225202375Srdivacky ifconfig <vlan_name> destroy 226202375Srdivacky 227202375Srdivacky Polling 228202375Srdivacky ------- 229249423Sdim NOTES: DEVICE POLLING is only valid for non-SMP kernels. 230202375Srdivacky 231202375Srdivacky The driver has to be compiled into the kernel for DEVICE POLLING to be 232234353Sdim enabled in the driver. 233202375Srdivacky 234202375Srdivacky To enable polling in the driver, add the following options to the kernel 235202375Srdivacky configuration, and then recompile the kernel: 236202375Srdivacky 237202375Srdivacky options DEVICE_POLLING 238202375Srdivacky options HZ=1000 239202375Srdivacky 240202375Srdivacky At runtime use: 241249423Sdim sysctl kern.polling.enable=1 to turn polling on 242249423Sdim Use: 243202375Srdivacky sysctl ker.polling.enable=0 to turn polling off 244202375Srdivacky 245202375Srdivacky Checksum Offload 246249423Sdim ---------------- 247202375Srdivacky Checksum offloading is not supported on 82542 Gigabit adapters. 248202375Srdivacky 249249423Sdim Checksum offloading supports both TCP and UDP packets and is 250202375Srdivacky supported for both transmit and receive. 251202375Srdivacky 252249423Sdim Checksum offloading can be enabled or disabled using ifconfig. 253202375Srdivacky Both transmit and receive offloading will be either enabled or 254202375Srdivacky disabled together. You cannot enable/disable one without the other. 255202375Srdivacky 256249423Sdim To enable checksum offloading: 257202375Srdivacky 258202375Srdivacky ifconfig <interface_num> rxcsum 259202375Srdivacky 260249423Sdim To disable checksum offloading: 261202375Srdivacky 262203954Srdivacky ifconfig <interface_num> -rxcsum 263202375Srdivacky 264203954Srdivacky To confirm the current setting: 265202375Srdivacky 266202375Srdivacky ifconfig <interface_num> 267202375Srdivacky 268249423Sdim Look for the presence or absence of the following line: 269202375Srdivacky 270249423Sdim options=3 <RXCSUM,TXCSUM> 271202375Srdivacky 272202375Srdivacky See the ifconfig man page for further information. 273249423Sdim 274249423SdimKnown Limitations 275249423Sdim================= 276202375Srdivacky 277202375Srdivacky There are known performance issues with this driver when running UDP traffic 278249423Sdim with Jumbo Frames. 279202375Srdivacky 280202375Srdivacky There is a known compatibility issue where time to link is slow or link is not 281249423Sdim established between 82541/82547 controllers and some switches. Known switches 282202375Srdivacky include: 283202375Srdivacky Planex FXG-08TE 284202375Srdivacky I-O Data ETG-SH8 285202375Srdivacky 286202375Srdivacky The driver can be compiled with the following changes: 287249423Sdim 288202375Srdivacky Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE 289202375Srdivacky from within the comments. For example, change from: 290249423Sdim 291202375Srdivacky /* #define EM_MASTER_SLAVE 2 */ 292202375Srdivacky to: 293249423Sdim #define EM_MASTER_SLAVE 2 294202375Srdivacky 295202375Srdivacky Use one of the following options: 296202375Srdivacky 1 = Master mode 297249423Sdim 2 = Slave mode 298202375Srdivacky 3 = Auto master/slave 299203954Srdivacky Setting 2 is recommended. 300202375Srdivacky 301203954Srdivacky Recompile the module: 302202375Srdivacky a. To compile the module 303202375Srdivacky cd em-x.x.x 304202375Srdivacky make clean 305202375Srdivacky make 306249423Sdim 307202375Srdivacky b. To install the compiled module in system directory: 308202375Srdivacky make install 309249423Sdim 310249423Sdim 311249423SdimSupport 312202375Srdivacky======= 313202375Srdivacky 314202375SrdivackyFor general information and support, go to the Intel support website at: 315202375Srdivacky 316202375Srdivacky http://support.intel.com 317202375Srdivacky 318249423SdimIf an issue is identified, support is through email only at: 319202375Srdivackyfreebsdnic@mailbox.intel.com 320202375Srdivacky 321202375SrdivackyLicense 322202375Srdivacky======= 323249423Sdim 324202375SrdivackyThis software program is released under the terms of a license agreement 325202375Srdivackybetween you ('Licensee') and Intel. Do not use or load this software or any 326223017Sdimassociated materials (collectively, the 'Software') until you have carefully 327202375Srdivackyread the full terms and conditions of the LICENSE located in this software 328249423Sdimpackage. By loading or using the Software, you agree to the terms of this 329202375SrdivackyAgreement. If you do not agree with the terms of this Agreement, do not 330202375Srdivackyinstall or use the Software. 331202375Srdivacky 332202375Srdivacky* Other names and brands may be claimed as the property of others. 333249423Sdim