README revision 153355
1$FreeBSD: head/sys/dev/em/README 153355 2005-12-12 19:29:30Z glebius $ 2FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters 3============================================================ 4 5March 18, 2005 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, version 2.1.x, for the Intel(R) 25PRO/1000 Family of Adapters. This driver has been developed for use with 26FreeBSD, version 5.x. 27 28For questions related to hardware requirements, refer to the documentation 29supplied with your Intel PRO/1000 adapter. All hardware requirements listed 30apply to use with FreeBSD. 31 32 33Identifying Your Adapter 34======================== 35 36For information on how to identify your adapter, go to the Adapter & 37Driver ID Guide at: 38 39http://support.intel.com/support/network/adapter/pro100/21397.htm 40 41 42For the latest Intel network drivers for FreeBSD, see: 43 44http://appsr.intel.com/scripts-df/support_intel.asp 45 46 47NOTE: Mobile adapters are not fully supported. 48 49 50Building and Installation 51========================= 52 53NOTE: The driver can be installed as a dynamic loadable kernel module or 54 compiled into the kernel. You must have kernel sources installed in 55 order to compile the driver module. 56 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 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: 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: 88 89 cd em-x.x.x/src 90 91 cp if_em* /usr/src/sys/dev/em 92 93 cp Makefile.kernel /usr/src/sys/modules/em/Makefile 94 95 Edit the /usr/src/sys/conf/files.i386 file, and add the following lines only if 96 they don't already exist: 97 98 dev/em/if_em.c optional em 99 100 dev/em/if_em_hw.c optional em 101 102 Remove the following lines from the /usr/src/sys/conf/files.i386 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 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. 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: 124 125 ping <IP_address> 126 1277. To configure the IP address to remain after reboot, edit /etc/rc.conf, 128 and create the appropriate ifconfig_em<interface_num>entry: 129 130 ifconfig_em<interface_num>="<ifconfig_settings>" 131 132 Example usage: 133 134 ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0" 135 136 NOTE: For assistance, see the ifconfig man page. 137 138 139Speed and Duplex Configuration 140============================== 141 142By default, the adapter auto-negotiates the speed and duplex of the 143connection. If there is a specific need, the ifconfig utility can be used to 144configure the speed and duplex settings on the adapter. Example usage: 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 153 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 162 option to select full-duplex mode. 163 164 1000baseTX - Sets speed to 1000 Mbps. In this case, the driver 165 supports only full-duplex mode. 166 167 1000baseSX - Sets speed to 1000 Mbps. In this case, the driver 168 supports only full-duplex mode. 169 170For more information on the ifconfig utility, see the ifconfig man page. 171 172 173Additional Configurations 174========================= 175 176The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 177all but the 82542-based adapters. For specific adapters, refer to the 178Identifying Your Adapter section. 179 180 Jumbo Frames 181 ------------ 182 To enable Jumbo Frames, use the ifconfig utility to increase the MTU 183 beyond 1500 bytes. 184 185 NOTES: Only enable Jumbo Frames if your network infrastructure supports 186 them. 187 188 The Jumbo Frames setting on the switch must be set to at least 189 22 bytes larger than that of the MTU. 190 191 The Intel PRO/1000 PM Network Connection does not support jumbo 192 frames. 193 194 195 The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default 196 MTU range is 1500. To modify the setting, enter the following: 197 198 ifconfig em<interface_num> <hostname or IP address> mtu 9000 199 200 To confirm the MTU used between two specific devices, use: 201 202 route get <destination_IP_address> 203 204 VLANs 205 ----- 206 To create a new VLAN interface: 207 208 ifconfig <vlan_name> create 209 210 To associate the VLAN interface with a physical interface and 211 assign a VLAN ID, IP address, and netmask: 212 213 ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 214 <vlan_id> vlandev <physical_interface> 215 216 Example: 217 218 ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0 219 220 In this example, all packets will be marked on egress with 802.1Q VLAN 221 tags, specifying a VLAN ID of 10. 222 223 To remove a VLAN interface: 224 225 ifconfig <vlan_name> destroy 226 227 Polling 228 ------- 229 To enable polling in the driver, add the following options to the kernel 230 configuration, and then recompile the kernel: 231 232 options DEVICE_POLLING 233 options HZ=1000 234 235 At runtime use: 236 sysctl kern.polling.enable=1 to turn polling on 237 Use: 238 sysctl kern.polling.enable=0 to turn polling off 239 240 Checksum Offload 241 ---------------- 242 Checksum offloading is not supported on 82542 Gigabit adapters. 243 244 Checksum offloading supports both TCP and UDP packets and is 245 supported for both transmit and receive. 246 247 Checksum offloading can be enabled or disabled using ifconfig. 248 Both transmit and receive offloading will be either enabled or 249 disabled together. You cannot enable/disable one without the other. 250 251 To enable checksum offloading: 252 253 ifconfig <interface_num> rxcsum 254 255 To disable checksum offloading: 256 257 ifconfig <interface_num> -rxcsum 258 259 To confirm the current setting: 260 261 ifconfig <interface_num> 262 263 Look for the presence or absence of the following line: 264 265 options=3 <RXCSUM,TXCSUM> 266 267 See the ifconfig man page for further information. 268 269Known Limitations 270================= 271 272 There are known performance issues with this driver when running UDP traffic 273 with Jumbo Frames. 274 275 There is a known compatibility issue where time to link is slow or link is not 276 established between 82541/82547 controllers and some switches. Known switches 277 include: 278 Planex FXG-08TE 279 I-O Data ETG-SH8 280 281 The driver can be compiled with the following changes: 282 283 Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE 284 from within the comments. For example, change from: 285 286 /* #define EM_MASTER_SLAVE 2 */ 287 to: 288 #define EM_MASTER_SLAVE 2 289 290 Use one of the following options: 291 1 = Master mode 292 2 = Slave mode 293 3 = Auto master/slave 294 Setting 2 is recommended. 295 296 Recompile the module: 297 a. To compile the module 298 cd em-x.x.x 299 make clean 300 make 301 302 b. To install the compiled module in system directory: 303 make install 304 305 306Support 307======= 308 309For general information and support, go to the Intel support website at: 310 311 http://support.intel.com 312 313If an issue is identified, support is through email only at: 314freebsdnic@mailbox.intel.com 315 316License 317======= 318 319This software program is released under the terms of a license agreement 320between you ('Licensee') and Intel. Do not use or load this software or any 321associated materials (collectively, the 'Software') until you have carefully 322read the full terms and conditions of the LICENSE located in this software 323package. By loading or using the Software, you agree to the terms of this 324Agreement. If you do not agree with the terms of this Agreement, do not 325install or use the Software. 326 327* Other names and brands may be claimed as the property of others. 328