README revision 112472
197785Spdeuskar$FreeBSD: head/sys/dev/em/README 112472 2003-03-21 21:47:31Z pdeuskar $ 297785SpdeuskarFreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters 397785Spdeuskar============================================================ 497785Spdeuskar 5112472SpdeuskarFebruary 5, 2003 697785Spdeuskar 797785Spdeuskar 897785SpdeuskarContents 997785Spdeuskar======== 1097785Spdeuskar 11112472Spdeuskar- Overview 1297785Spdeuskar- Supported Adapters 1397785Spdeuskar- Building and Installation 1497785Spdeuskar- Speed and Duplex Configuration 1597785Spdeuskar- Additional Configurations 1697785Spdeuskar- Known Limitations 1797785Spdeuskar- Support 1897785Spdeuskar- License 1997785Spdeuskar 2097785Spdeuskar 21112472SpdeuskarOverview 22112472Spdeuskar======== 2397785Spdeuskar 24112472SpdeuskarThis file describes the FreeBSD* driver, version 1.5.x, for the Intel(R) 2597785SpdeuskarPRO/1000 Family of Adapters. This driver has been developed for use with 26112472SpdeuskarFreeBSD, version 4.7. 2797785Spdeuskar 2897785SpdeuskarFor questions related to hardware requirements, refer to the documentation 2997785Spdeuskarsupplied with your Intel PRO/1000 adapter. All hardware requirements listed 3097785Spdeuskarapply to use with FreeBSD. 3197785Spdeuskar 3297785Spdeuskar 3397785SpdeuskarSupported Adapters 3497785Spdeuskar================== 3597785Spdeuskar 3697785SpdeuskarThe following Intel network adapters are compatible with the drivers in this 3797785Spdeuskarrelease: 3897785Spdeuskar 3997785Spdeuskar Controller Adapter Name Board IDs 4097785Spdeuskar ---------- ------------ --------- 4197785Spdeuskar 4297785Spdeuskar 82542 PRO/1000 Gigabit Server Adapter 700262-xxx, 717037-xxx 4397785Spdeuskar 4497785Spdeuskar 82543 PRO/1000 F Server Adapter 738640-xxx, A38888-xxx, 4597785Spdeuskar A06512-xxx 4697785Spdeuskar 4797785Spdeuskar 82543 PRO/1000 T Server Adapter A19845-xxx, A33948-xxx 4897785Spdeuskar 4997785Spdeuskar 82544 PRO/1000 XT Server Adapter A51580-xxx 5097785Spdeuskar 5197785Spdeuskar 82544 PRO/1000 XF Server Adapter A50484-xxx 5297785Spdeuskar 5397785Spdeuskar 82544 PRO/1000 T Desktop Adapter A62947-xxx 54112472Spdeuskar 55112472Spdeuskar 82540 PRO/1000 MT Desktop Adapter A78408-xxx 56112472Spdeuskar 82541 C91016-xxx 5797785Spdeuskar 5897785Spdeuskar 82545 PRO/1000 MT Server Adapter A92165-xxx 5997785Spdeuskar 6097785Spdeuskar 82545 PRO/1000 MF Server Adapter A91622-xxx 6197785Spdeuskar 6297785Spdeuskar 82545 PRO/1000 MF Server Adapter(LX) A91624-xxx 6397785Spdeuskar 6497785Spdeuskar 82546 PRO/1000 MT Dual Port Server Adapter A92111-xxx 6597785Spdeuskar 6697785Spdeuskar 82546 PRO/1000 MF Dual Port Server Adapter A91620-xxx 6797785Spdeuskar 6897785Spdeuskar 69112472Spdeuskar 7097785SpdeuskarTo verify your Intel adapter is supported, find the board ID number on the 7197785Spdeuskaradapter. Look for a label that has a barcode and a number in the format of 7297785Spdeuskar123456-001 (six digits hyphen three digits). Match this to the list of 7397785Spdeuskarnumbers above. 7497785Spdeuskar 7597785SpdeuskarFor more information on how to identify your adapter, go to the Adapter & 7697785SpdeuskarDriver ID Guide at: 7797785Spdeuskar 7897785Spdeuskar http://support.intel.com/support/network/adapter/pro100/21397.htm 7997785Spdeuskar 8097785SpdeuskarFor the latest Intel network drivers for FreeBSD, see: 8197785Spdeuskar 8297785Spdeuskar http://appsr.intel.com/scripts-df/support_intel.asp 8397785Spdeuskar 8497785Spdeuskar 8597785SpdeuskarBuilding and Installation 8697785Spdeuskar========================= 8797785Spdeuskar 88112472SpdeuskarNOTE: The driver can be installed as a dynamic loadable kernel module or 89112472Spdeuskar compiled into the kernel. You must have kernel sources installed in 90112472Spdeuskar order to compile the driver module. 9197785Spdeuskar 92112472SpdeuskarIn the instructions below, x.x.x is the driver version as indicated in the 93112472Spdeuskarname of the driver tar file. 9497785Spdeuskar 9597785Spdeuskar1. Move the base driver tar file to the directory of your choice. For 9697785Spdeuskar example, use /home/username/em or /usr/local/src/em. 9797785Spdeuskar 9897785Spdeuskar2. Untar/unzip the archive: 9997785Spdeuskar 100112472Spdeuskar tar xvfz em-x.x.x.tar.gz 10197785Spdeuskar 102112472Spdeuskar This will create an em-x.x.x directory. 10397785Spdeuskar 104112472Spdeuskar3. To create a loadable module, perform the following steps. 105112472Spdeuskar NOTE: To compile the driver into the kernel, go directly to step 4. 10697785Spdeuskar 107112472Spdeuskar a. To compile the module 10897785Spdeuskar 109112472Spdeuskar cd em-x.x.x 110112472Spdeuskar make 11197785Spdeuskar 112112472Spdeuskar b. To install the compiled module in system directory: 113112472Spdeuskar 114112472Spdeuskar make install 115112472Spdeuskar 116112472Spdeuskar c. If you want the driver to load automatically when the system is booted: 11797785Spdeuskar 118112472Spdeuskar 1. Follow steps a, and b above to compile and install the module 119112472Spdeuskar 2. Edit /boot/loader.conf, and add the following line: 12097785Spdeuskar 121112472Spdeuskar if_em_load="YES" 12297785Spdeuskar 123112472Spdeuskar4. To compile the driver into the kernel: 12497785Spdeuskar 125112472Spdeuskar cd em-x.x.x/src 12697785Spdeuskar 127112472Spdeuskar cp if_em* /usr/src/sys/dev/em 12897785Spdeuskar 129112472Spdeuskar cp Makefile /usr/src/sys/modules/em 13097785Spdeuskar 131112472Spdeuskar Edit the /usr/src/sys/conf/files.i386 file, and add the following lines: 13297785Spdeuskar 133112472Spdeuskar dev/em/if_em.c optional em 13497785Spdeuskar 135112472Spdeuskar dev/em/if_em_hw.c optional em 13697785Spdeuskar 137112472Spdeuskar Remove the following lines from the /usr/src/sys/conf/files.i386 file, 138112472Spdeuskar if they exist: 13997785Spdeuskar 140112472Spdeuskar dev/em/if_em_fxhw.c optional em 141112472Spdeuskar dev/em/if_em_phy.c optional em 14297785Spdeuskar 143112472Spdeuskar Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 144112472Spdeuskar /usr/src/sys/i386/conf, and ensure the following line is present: 14597785Spdeuskar 146112472Spdeuskar device em 14797785Spdeuskar 148112472Spdeuskar Compile and install the kernel. The system must be rebooted for the kernel 149112472Spdeuskar updates to take effect. For additional information on compiling the 150112472Spdeuskar kernel, consult the FreeBSD operating system documentation. 15197785Spdeuskar 152112472Spdeuskar5. To assign an IP address to the interface, enter the following: 15397785Spdeuskar 154112472Spdeuskar ifconfig em<interface_num> <IP_address> 15597785Spdeuskar 156112472Spdeuskar6. Verify that the interface works. Enter the following, where <IP_address> 157112472Spdeuskar is the IP address for another machine on the same subnet as the interface 158112472Spdeuskar that is being tested: 15997785Spdeuskar 160112472Spdeuskar ping <IP_address> 16197785Spdeuskar 162112472Spdeuskar7. To configure the IP address to remain after reboot, edit /etc/rc.conf, 163112472Spdeuskar and create the appropriate ifconfig_em<interface_num>�entry: 16497785Spdeuskar 165112472Spdeuskar ifconfig_em<interface_num>="<ifconfig_settings>" 166112472Spdeuskar 167112472Spdeuskar Example usage: 168112472Spdeuskar 169112472Spdeuskar ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0" 170112472Spdeuskar 171112472Spdeuskar NOTE: For assistance, see the ifconfig man page. 172112472Spdeuskar 173112472Spdeuskar 17497785SpdeuskarSpeed and Duplex Configuration 17597785Spdeuskar============================== 17697785Spdeuskar 17797785SpdeuskarBy default, the adapter auto-negotiates the speed and duplex of the 17897785Spdeuskarconnection. If there is a specific need, the ifconfig utility can be used to 17997785Spdeuskarconfigure the speed and duplex settings on the adapter. Example usage: 18097785Spdeuskar 18197785Spdeuskar ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 18297785Spdeuskar full-duplex 18397785Spdeuskar 18497785Spdeuskar NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 18597785Spdeuskar not specified and you are not running at gigabit speed, the driver 18697785Spdeuskar defaults to half-duplex. 18797785Spdeuskar 18897785Spdeuskar 18997785SpdeuskarThis driver supports the following media type options: 19097785Spdeuskar 19197785Spdeuskar autoselect - Enables auto-negotiation for speed and duplex. 19297785Spdeuskar 19397785Spdeuskar 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt 19497785Spdeuskar option to select full-duplex mode. 19597785Spdeuskar 19697785Spdeuskar 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt 19797785Spdeuskar option to select full-duplex mode. 19897785Spdeuskar 19997785Spdeuskar 1000baseTX - Sets speed to 1000 Mbps. In this case, the driver 20097785Spdeuskar supports only full-duplex mode. 20197785Spdeuskar 20297785Spdeuskar 1000baseSX - Sets speed to 1000 Mbps. In this case, the driver 20397785Spdeuskar supports only full-duplex mode. 20497785Spdeuskar 20597785SpdeuskarFor more information on the ifconfig utility, see the ifconfig man page. 20697785Spdeuskar 20797785Spdeuskar 20897785SpdeuskarAdditional Configurations 20997785Spdeuskar========================= 21097785Spdeuskar 211112472SpdeuskarThe driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 212112472Spdeuskarall but the 82542-based adapters. For specific adapters, refer to the 213112472SpdeuskarSupported Adapters section. 214112472Spdeuskar 21597785Spdeuskar Jumbo Frames 21697785Spdeuskar ------------ 21797785Spdeuskar To enable Jumbo Frames, use the ifconfig utility to increase the MTU 21897785Spdeuskar beyond 1500 bytes. 21997785Spdeuskar 220112472Spdeuskar NOTES: Only enable Jumbo Frames if your network infrastructure supports 221112472Spdeuskar them. 222112472Spdeuskar 223112472Spdeuskar The Jumbo Frames setting on the switch must be set to at least 224112472Spdeuskar 22 bytes larger than that of the adapter. 22597785Spdeuskar 226112472Spdeuskar The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default 227112472Spdeuskar MTU range is 1500. To modify the setting, enter the following: 22897785Spdeuskar 229112472Spdeuskar ifconfig em<interface_num> <hostname or IP address> mtu 9000 23097785Spdeuskar 231112472Spdeuskar To confirm an interface's MTU value, use the ifconfig command. To confirm 232112472Spdeuskar the MTU used between two specific devices, use: 233112472Spdeuskar 234112472Spdeuskar route get <destination_IP_address> 235112472Spdeuskar 23697785Spdeuskar VLANs 23797785Spdeuskar ----- 238112472Spdeuskar To create a new VLAN pseudo-interface: 23997785Spdeuskar 240112472Spdeuskar ifconfig <vlan_name> create 24197785Spdeuskar 242112472Spdeuskar To associate the VLAN pseudo-interface with a physical interface and 243112472Spdeuskar assign a VLAN ID, IP address, and netmask: 24497785Spdeuskar 245112472Spdeuskar ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 246112472Spdeuskar <vlan_id> vlandev <physical_interface> 24797785Spdeuskar 248112472Spdeuskar Example: 24997785Spdeuskar 250112472Spdeuskar ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0 25197785Spdeuskar 252112472Spdeuskar In this example, all packets will be marked on egress with 802.1Q VLAN 253112472Spdeuskar tags, specifying a VLAN ID of 10. 25497785Spdeuskar 255112472Spdeuskar To remove a VLAN pseudo-interface: 25697785Spdeuskar 257112472Spdeuskar ifconfig <vlan_name> destroy 25897785Spdeuskar 259112472Spdeuskar Polling 260112472Spdeuskar ------- 261112472Spdeuskar To enable polling in the driver, add the following options to the kernel 262112472Spdeuskar configuration, and then recompile the kernel: 26397785Spdeuskar 264112472Spdeuskar options DEVICE_POLLING 265112472Spdeuskar options HZ=1000 266112472Spdeuskar 267112472Spdeuskar At runtime, use the following command to turn on polling mode. Similarly, 268112472Spdeuskar turn off polling mode by setting the variable to 0: 269112472Spdeuskar 270112472Spdeuskar sysctl kern.polling.enable=1 271112472Spdeuskar 272112472Spdeuskar 273112472Spdeuskar NOTES: DEVICE POLLING is only valid for non-SMP kernels. 274112472Spdeuskar 275112472Spdeuskar The driver has to be built into the kernel for DEVICE POLLING to be 276112472Spdeuskar enabled in the driver. 277112472Spdeuskar 278112472Spdeuskar 27997785SpdeuskarKnown Limitations 28097785Spdeuskar================= 28197785Spdeuskar 282112472SpdeuskarThere are known performance issues with this driver when running UDP traffic 283112472Spdeuskarwith Jumbo Frames. Intel recommends not using Jumbo Frames for UDP traffic. 28497785Spdeuskar 28597785Spdeuskar 28697785SpdeuskarSupport 28797785Spdeuskar======= 28897785Spdeuskar 28997785SpdeuskarFor general information and support, go to the Intel support website at: 29097785Spdeuskar 29197785Spdeuskar http://support.intel.com 29297785Spdeuskar 29397785SpdeuskarIf an issue is identified with the released source code on the supported 29497785Spdeuskarkernel with a supported adapter, email the specific information related to 29597785Spdeuskarthe issue to freebsdnic@mailbox.intel.com. 29697785Spdeuskar 29797785Spdeuskar 29897785SpdeuskarLicense 29997785Spdeuskar======= 30097785Spdeuskar 30197785SpdeuskarThis software program is released under the terms of a license agreement 30297785Spdeuskarbetween you ('Licensee') and Intel. Do not use or load this software or any 30397785Spdeuskarassociated materials (collectively, the 'Software') until you have carefully 30497785Spdeuskarread the full terms and conditions of the LICENSE located in this software 30597785Spdeuskarpackage. By loading or using the Software, you agree to the terms of this 30697785SpdeuskarAgreement. If you do not agree with the terms of this Agreement, do not 30797785Spdeuskarinstall or use the Software. 30897785Spdeuskar 30997785Spdeuskar* Other names and brands may be claimed as the property of others. 310