README revision 147890
1$FreeBSD: head/sys/dev/em/README 147890 2005-07-11 02:33:25Z delphij $ 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 NOTES: DEVICE POLLING is only valid for non-SMP kernels. 230 231 The driver has to be compiled into the kernel for DEVICE POLLING to be 232 enabled in the driver. 233 234 To enable polling in the driver, add the following options to the kernel 235 configuration, and then recompile the kernel: 236 237 options DEVICE_POLLING 238 options HZ=1000 239 240 At runtime use: 241 sysctl kern.polling.enable=1 to turn polling on 242 Use: 243 sysctl kern.polling.enable=0 to turn polling off 244 245 Checksum Offload 246 ---------------- 247 Checksum offloading is not supported on 82542 Gigabit adapters. 248 249 Checksum offloading supports both TCP and UDP packets and is 250 supported for both transmit and receive. 251 252 Checksum offloading can be enabled or disabled using ifconfig. 253 Both transmit and receive offloading will be either enabled or 254 disabled together. You cannot enable/disable one without the other. 255 256 To enable checksum offloading: 257 258 ifconfig <interface_num> rxcsum 259 260 To disable checksum offloading: 261 262 ifconfig <interface_num> -rxcsum 263 264 To confirm the current setting: 265 266 ifconfig <interface_num> 267 268 Look for the presence or absence of the following line: 269 270 options=3 <RXCSUM,TXCSUM> 271 272 See the ifconfig man page for further information. 273 274Known Limitations 275================= 276 277 There are known performance issues with this driver when running UDP traffic 278 with Jumbo Frames. 279 280 There is a known compatibility issue where time to link is slow or link is not 281 established between 82541/82547 controllers and some switches. Known switches 282 include: 283 Planex FXG-08TE 284 I-O Data ETG-SH8 285 286 The driver can be compiled with the following changes: 287 288 Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE 289 from within the comments. For example, change from: 290 291 /* #define EM_MASTER_SLAVE 2 */ 292 to: 293 #define EM_MASTER_SLAVE 2 294 295 Use one of the following options: 296 1 = Master mode 297 2 = Slave mode 298 3 = Auto master/slave 299 Setting 2 is recommended. 300 301 Recompile the module: 302 a. To compile the module 303 cd em-x.x.x 304 make clean 305 make 306 307 b. To install the compiled module in system directory: 308 make install 309 310 311Support 312======= 313 314For general information and support, go to the Intel support website at: 315 316 http://support.intel.com 317 318If an issue is identified, support is through email only at: 319freebsdnic@mailbox.intel.com 320 321License 322======= 323 324This software program is released under the terms of a license agreement 325between you ('Licensee') and Intel. Do not use or load this software or any 326associated materials (collectively, the 'Software') until you have carefully 327read the full terms and conditions of the LICENSE located in this software 328package. By loading or using the Software, you agree to the terms of this 329Agreement. If you do not agree with the terms of this Agreement, do not 330install or use the Software. 331 332* Other names and brands may be claimed as the property of others. 333