README revision 147890
1164190Sjkoshy$FreeBSD: head/sys/dev/em/README 147890 2005-07-11 02:33:25Z delphij $ 2164190SjkoshyFreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters 3164190Sjkoshy============================================================ 4164190Sjkoshy 5164190SjkoshyMarch 18, 2005 6164190Sjkoshy 7164190Sjkoshy 8164190SjkoshyContents 9164190Sjkoshy======== 10164190Sjkoshy 11164190Sjkoshy- Overview 12164190Sjkoshy- Identifying Your Adapter 13164190Sjkoshy- Building and Installation 14164190Sjkoshy- Speed and Duplex Configuration 15164190Sjkoshy- Additional Configurations 16164190Sjkoshy- Known Limitations 17164190Sjkoshy- Support 18164190Sjkoshy- License 19164190Sjkoshy 20164190Sjkoshy 21164190SjkoshyOverview 22164190Sjkoshy======== 23164190Sjkoshy 24164190SjkoshyThis file describes the FreeBSD* driver, version 2.1.x, for the Intel(R) 25164190SjkoshyPRO/1000 Family of Adapters. This driver has been developed for use with 26164190SjkoshyFreeBSD, version 5.x. 27164190Sjkoshy 28164190SjkoshyFor questions related to hardware requirements, refer to the documentation 29164190Sjkoshysupplied with your Intel PRO/1000 adapter. All hardware requirements listed 30164190Sjkoshyapply to use with FreeBSD. 31164190Sjkoshy 32164190Sjkoshy 33164190SjkoshyIdentifying Your Adapter 34164190Sjkoshy======================== 35164190Sjkoshy 36164190SjkoshyFor information on how to identify your adapter, go to the Adapter & 37164190SjkoshyDriver ID Guide at: 38164190Sjkoshy 39164190Sjkoshyhttp://support.intel.com/support/network/adapter/pro100/21397.htm 40164190Sjkoshy 41164190Sjkoshy 42164190SjkoshyFor the latest Intel network drivers for FreeBSD, see: 43164190Sjkoshy 44164190Sjkoshyhttp://appsr.intel.com/scripts-df/support_intel.asp 45164190Sjkoshy 46164190Sjkoshy 47164190SjkoshyNOTE: Mobile adapters are not fully supported. 48164190Sjkoshy 49164190Sjkoshy 50164190SjkoshyBuilding and Installation 51164190Sjkoshy========================= 52164190Sjkoshy 53164190SjkoshyNOTE: The driver can be installed as a dynamic loadable kernel module or 54164190Sjkoshy compiled into the kernel. You must have kernel sources installed in 55164190Sjkoshy order to compile the driver module. 56164190Sjkoshy 57164190SjkoshyIn the instructions below, x.x.x is the driver version as indicated in the 58164190Sjkoshyname of the driver tar file. 59164190Sjkoshy 60164190Sjkoshy1. Move the base driver tar file to the directory of your choice. For 61164190Sjkoshy example, use /home/username/em or /usr/local/src/em. 62164190Sjkoshy 63164190Sjkoshy2. Untar/unzip the archive: 64164190Sjkoshy 65165316Sjkoshy tar xvfz em-x.x.x.tar.gz 66164190Sjkoshy 67164190Sjkoshy This will create an em-x.x.x directory. 68164190Sjkoshy 69164190Sjkoshy3. To create a loadable module, perform the following steps. 70164190Sjkoshy NOTE: To compile the driver into the kernel, go directly to step 4. 71165316Sjkoshy 72164190Sjkoshy a. To compile the module 73164190Sjkoshy 74164190Sjkoshy cd em-x.x.x 75164190Sjkoshy make 76165316Sjkoshy 77164190Sjkoshy b. To install the compiled module in system directory: 78164190Sjkoshy 79164190Sjkoshy make install 80164190Sjkoshy 81164190Sjkoshy c. If you want the driver to load automatically when the system is booted: 82164190Sjkoshy 83164190Sjkoshy 1. Edit /boot/loader.conf, and add the following line: 84164190Sjkoshy 85164190Sjkoshy if_em_load="YES" 86164190Sjkoshy 87165316Sjkoshy4. To compile the driver into the kernel: 88164190Sjkoshy 89164190Sjkoshy cd em-x.x.x/src 90164190Sjkoshy 91164190Sjkoshy cp if_em* /usr/src/sys/dev/em 92164190Sjkoshy 93164190Sjkoshy cp Makefile.kernel /usr/src/sys/modules/em/Makefile 94164190Sjkoshy 95164190Sjkoshy Edit the /usr/src/sys/conf/files.i386 file, and add the following lines only if 96164190Sjkoshy they don't already exist: 97164190Sjkoshy 98164190Sjkoshy dev/em/if_em.c optional em 99164190Sjkoshy 100164190Sjkoshy dev/em/if_em_hw.c optional em 101164190Sjkoshy 102164190Sjkoshy Remove the following lines from the /usr/src/sys/conf/files.i386 file, 103164190Sjkoshy if they exist: 104164190Sjkoshy 105164190Sjkoshy dev/em/if_em_fxhw.c optional em 106164190Sjkoshy dev/em/if_em_phy.c optional em 107164190Sjkoshy 108164190Sjkoshy Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 109164190Sjkoshy /usr/src/sys/i386/conf, and ensure the following line is present: 110164190Sjkoshy 111164190Sjkoshy device em 112164190Sjkoshy 113165316Sjkoshy Compile and install the kernel. The system must be rebooted for the kernel 114164190Sjkoshy updates to take effect. For additional information on compiling the 115164190Sjkoshy kernel, consult the FreeBSD operating system documentation. 116164190Sjkoshy 117164190Sjkoshy5. To assign an IP address to the interface, enter the following: 118164190Sjkoshy 119165316Sjkoshy ifconfig em<interface_num> <IP_address> 120164190Sjkoshy 121164190Sjkoshy6. Verify that the interface works. Enter the following, where <IP_address> 122164190Sjkoshy is the IP address for another machine on the same subnet as the interface 123164190Sjkoshy that is being tested: 124165316Sjkoshy 125179240Sjb ping <IP_address> 126164190Sjkoshy 127164190Sjkoshy7. To configure the IP address to remain after reboot, edit /etc/rc.conf, 128164190Sjkoshy and create the appropriate ifconfig_em<interface_num>entry: 129164190Sjkoshy 130164190Sjkoshy ifconfig_em<interface_num>="<ifconfig_settings>" 131164190Sjkoshy 132164190Sjkoshy Example usage: 133164190Sjkoshy 134164190Sjkoshy ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0" 135165316Sjkoshy 136164190Sjkoshy NOTE: For assistance, see the ifconfig man page. 137164190Sjkoshy 138164190Sjkoshy 139164190SjkoshySpeed and Duplex Configuration 140164190Sjkoshy============================== 141164190Sjkoshy 142164190SjkoshyBy default, the adapter auto-negotiates the speed and duplex of the 143164190Sjkoshyconnection. If there is a specific need, the ifconfig utility can be used to 144164190Sjkoshyconfigure the speed and duplex settings on the adapter. Example usage: 145164190Sjkoshy 146164190Sjkoshy ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 147164190Sjkoshy full-duplex 148164190Sjkoshy 149164190Sjkoshy NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 150164190Sjkoshy not specified and you are not running at gigabit speed, the driver 151164190Sjkoshy defaults to half-duplex. 152164190Sjkoshy 153164190Sjkoshy 154164190SjkoshyThis 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