README revision 97785
197785Spdeuskar$FreeBSD: head/sys/dev/em/README 97785 2002-06-03 22:30:51Z pdeuskar $
297785Spdeuskar
397785SpdeuskarFreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
497785Spdeuskar============================================================
597785Spdeuskar
697785SpdeuskarApril 3, 2002
797785Spdeuskar
897785Spdeuskar
997785SpdeuskarContents
1097785Spdeuskar========
1197785Spdeuskar
1297785Spdeuskar- In This Release
1397785Spdeuskar- Supported Adapters
1497785Spdeuskar- Building and Installation
1597785Spdeuskar- Speed and Duplex Configuration
1697785Spdeuskar- Additional Configurations
1797785Spdeuskar- Known Limitations
1897785Spdeuskar- Support
1997785Spdeuskar- License
2097785Spdeuskar
2197785Spdeuskar
2297785SpdeuskarIn This Release
2397785Spdeuskar===============
2497785Spdeuskar
2597785SpdeuskarThis file describes the FreeBSD* driver, version 1.3.x, for the Intel(R)
2697785SpdeuskarPRO/1000 Family of Adapters. This driver has been developed for use with 
2797785SpdeuskarFreeBSD, version 4.5.
2897785Spdeuskar
2997785SpdeuskarThe driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 
3097785Spdeuskarall but the 82542-based adapters. For specific adapters, refer to the 
3197785SpdeuskarSupported Adapters section below.
3297785Spdeuskar
3397785SpdeuskarSupport for VLANs has been added as a new feature in this driver version.
3497785Spdeuskar
3597785SpdeuskarFor questions related to hardware requirements, refer to the documentation 
3697785Spdeuskarsupplied with your Intel PRO/1000 adapter. All hardware requirements listed 
3797785Spdeuskarapply to use with FreeBSD.
3897785Spdeuskar
3997785Spdeuskar
4097785SpdeuskarSupported Adapters
4197785Spdeuskar==================
4297785Spdeuskar
4397785SpdeuskarThe following Intel network adapters are compatible with the drivers in this 
4497785Spdeuskarrelease:
4597785Spdeuskar
4697785Spdeuskar   Controller  Adapter Name                         Board IDs
4797785Spdeuskar   ----------  ------------                         ---------
4897785Spdeuskar
4997785Spdeuskar   82542       PRO/1000 Gigabit Server Adapter      700262-xxx, 717037-xxx
5097785Spdeuskar
5197785Spdeuskar   82543       PRO/1000 F Server Adapter            738640-xxx, A38888-xxx,
5297785Spdeuskar                                                    A06512-xxx
5397785Spdeuskar
5497785Spdeuskar   82543       PRO/1000 T Server Adapter            A19845-xxx, A33948-xxx
5597785Spdeuskar
5697785Spdeuskar   82544       PRO/1000 XT Server Adapter           A51580-xxx
5797785Spdeuskar
5897785Spdeuskar   82544       PRO/1000 XF Server Adapter           A50484-xxx
5997785Spdeuskar
6097785Spdeuskar   82544       PRO/1000 T Desktop Adapter           A62947-xxx
6197785Spdeuskar
6297785Spdeuskar   82540       PRO/1000 MT Desktop Adapter          A78708-xxx
6397785Spdeuskar
6497785Spdeuskar   82545       PRO/1000 MT Server Adapter           A92165-xxx
6597785Spdeuskar
6697785Spdeuskar   82545       PRO/1000 MF Server Adapter           A91622-xxx
6797785Spdeuskar
6897785Spdeuskar   82545       PRO/1000 MF Server Adapter(LX)       A91624-xxx
6997785Spdeuskar
7097785Spdeuskar   82546       PRO/1000 MT Dual Port Server Adapter A92111-xxx
7197785Spdeuskar
7297785Spdeuskar   82546       PRO/1000 MF Dual Port Server Adapter A91620-xxx
7397785Spdeuskar
7497785Spdeuskar
7597785SpdeuskarTo verify your Intel adapter is supported, find the board ID number on the
7697785Spdeuskaradapter. Look for a label that has a barcode and a number in the format of
7797785Spdeuskar123456-001 (six digits hyphen three digits). Match this to the list of 
7897785Spdeuskarnumbers above.
7997785Spdeuskar
8097785SpdeuskarFor more information on how to identify your adapter, go to the Adapter &
8197785SpdeuskarDriver ID Guide at:
8297785Spdeuskar
8397785Spdeuskar    http://support.intel.com/support/network/adapter/pro100/21397.htm
8497785Spdeuskar
8597785SpdeuskarFor the latest Intel network drivers for FreeBSD, see:
8697785Spdeuskar
8797785Spdeuskar    http://appsr.intel.com/scripts-df/support_intel.asp
8897785Spdeuskar
8997785Spdeuskar
9097785SpdeuskarBuilding and Installation
9197785Spdeuskar=========================
9297785Spdeuskar
9397785SpdeuskarNOTE: You must have kernel sources installed in order to compile the driver
9497785Spdeuskar      module.
9597785Spdeuskar
9697785Spdeuskar      In the instructions below, x.x.x is the driver version as indicated in
9797785Spdeuskar      the name of the driver tar.
9897785Spdeuskar
9997785Spdeuskar
10097785Spdeuskar1. Move the base driver tar file to the directory of your choice. For 
10197785Spdeuskar   example, use /home/username/em or /usr/local/src/em.
10297785Spdeuskar
10397785Spdeuskar2. Untar/unzip the archive:
10497785Spdeuskar
10597785Spdeuskar        tar xfz em-x.x.x.tar.gz
10697785Spdeuskar
10797785Spdeuskar3. To load the driver onto a running system:
10897785Spdeuskar
10997785Spdeuskar        cd em-x.x.x/modules
11097785Spdeuskar        kldload ./if_em.ko
11197785Spdeuskar
11297785Spdeuskar4. To assign an IP address to the interface, enter the following:
11397785Spdeuskar
11497785Spdeuskar        ifconfig em<interface_num> <IP_address>
11597785Spdeuskar
11697785Spdeuskar5. Verify that the interface works. Enter the following, where <IP_address>
11797785Spdeuskar   is the IP address for another machine on the same subnet as the interface
11897785Spdeuskar   that is being tested:
11997785Spdeuskar
12097785Spdeuskar        ping <IP_address>
12197785Spdeuskar
12297785Spdeuskar6. If you want the driver to load automatically when the system is booted:
12397785Spdeuskar
12497785Spdeuskar        cd em-x.x.x/modules
12597785Spdeuskar        cp if_em.ko /modules
12697785Spdeuskar        
12797785Spdeuskar   Edit /boot/loader.conf, and add the following line:
12897785Spdeuskar        
12997785Spdeuskar             if_em_load="YES"
13097785Spdeuskar
13197785Spdeuskar               OR
13297785Spdeuskar
13397785Spdeuskar        compile the driver into the kernel (see item 7).
13497785Spdeuskar
13597785Spdeuskar
13697785Spdeuskar   Edit /etc/rc.conf, and create the appropriate ifconfig_em<interface_num> 
13797785Spdeuskar   entry:
13897785Spdeuskar
13997785Spdeuskar        ifconfig_em<interface_num>="<ifconfig_settings>"
14097785Spdeuskar
14197785Spdeuskar     Example usage:
14297785Spdeuskar
14397785Spdeuskar        ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
14497785Spdeuskar
14597785Spdeuskar     NOTE: For assistance, see the ifconfig man page.
14697785Spdeuskar
14797785Spdeuskar7. If you want to compile the driver into the kernel, enter:
14897785Spdeuskar
14997785Spdeuskar        mkdir /usr/src/sys/dev/em       
15097785Spdeuskar        cd em-x.x.x/src
15197785Spdeuskar        cp if_em* /usr/src/sys/dev/em   
15297785Spdeuskar        mkdir /usr/src/sys/modules/em
15397785Spdeuskar        cp Makefile /usr/src/sys/modules/em
15497785Spdeuskar
15597785Spdeuskar   Edit Makefile at /usr/src/sys/modules to add the em subdirectory.
15697785Spdeuskar
15797785Spdeuskar   Edit your config file and add the following line, if it is not already
15897785Spdeuskar   in the file:
15997785Spdeuskar
16097785Spdeuskar        device em
16197785Spdeuskar
16297785Spdeuskar   Edit your config file, and remove the 'device wx' line from the file.
16397785Spdeuskar        
16497785Spdeuskar   Edit the /usr/src/sys/conf/files.i386 file, and add the following lines:
16597785Spdeuskar
16697785Spdeuskar        dev/em/if_em.c optional em
16797785Spdeuskar        dev/em/if_em_hw.c optional em
16897785Spdeuskar
16997785Spdeuskar   Remove the following files from the /usr/src/sys/conf/files.i386 file, if 
17097785Spdeuskar   they exist:
17197785Spdeuskar
17297785Spdeuskar        /dev/em/if_em_fxhw.c
17397785Spdeuskar        /dev/em/if_em_phy.c
17497785Spdeuskar
17597785Spdeuskar   Compile and install the kernel.
17697785Spdeuskar
17797785Spdeuskar
17897785SpdeuskarSpeed and Duplex Configuration
17997785Spdeuskar==============================
18097785Spdeuskar
18197785SpdeuskarBy default, the adapter auto-negotiates the speed and duplex of the 
18297785Spdeuskarconnection. If there is a specific need, the ifconfig utility can be used to 
18397785Spdeuskarconfigure the speed and duplex settings on the adapter. Example usage:
18497785Spdeuskar
18597785Spdeuskar        ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 
18697785Spdeuskar            full-duplex
18797785Spdeuskar
18897785Spdeuskar   NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 
18997785Spdeuskar         not specified and you are not running at gigabit speed, the driver 
19097785Spdeuskar         defaults to half-duplex.
19197785Spdeuskar
19297785Spdeuskar
19397785SpdeuskarThis driver supports the following media type options:
19497785Spdeuskar
19597785Spdeuskar   autoselect      -  Enables auto-negotiation for speed and duplex.
19697785Spdeuskar
19797785Spdeuskar   10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt 
19897785Spdeuskar                      option to select full-duplex mode.
19997785Spdeuskar
20097785Spdeuskar   100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
20197785Spdeuskar                      option to select full-duplex mode.
20297785Spdeuskar
20397785Spdeuskar   1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
20497785Spdeuskar                      supports only full-duplex mode.
20597785Spdeuskar
20697785Spdeuskar   1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
20797785Spdeuskar                      supports only full-duplex mode.
20897785Spdeuskar
20997785SpdeuskarFor more information on the ifconfig utility, see the ifconfig man page.
21097785Spdeuskar
21197785Spdeuskar
21297785SpdeuskarAdditional Configurations
21397785Spdeuskar=========================
21497785Spdeuskar
21597785Spdeuskar  Jumbo Frames
21697785Spdeuskar  ------------
21797785Spdeuskar
21897785Spdeuskar  To enable Jumbo Frames, use the ifconfig utility to increase the MTU 
21997785Spdeuskar  beyond 1500 bytes. 
22097785Spdeuskar
22197785Spdeuskar  NOTE: Only enable Jumbo Frames if your network infrastructure supports 
22297785Spdeuskar        them.
22397785Spdeuskar
22497785Spdeuskar  The MTU range for Jumbo Frames is 1500 to 16114. For example, enter the 
22597785Spdeuskar  following:
22697785Spdeuskar
22797785Spdeuskar        ifconfig em<interface_num> mtu 9000
22897785Spdeuskar
22997785Spdeuskar  VLANs
23097785Spdeuskar  -----
23197785Spdeuskar
23297785Spdeuskar  To enable VLANs in the kernel, modify the config file as follows:
23397785Spdeuskar
23497785Spdeuskar        pseudo-device  vlan <num_VLANs>
23597785Spdeuskar
23697785Spdeuskar  Then, recompile the kernel and reboot.
23797785Spdeuskar
23897785Spdeuskar  To see the VLAN device entries, use ifconfig.
23997785Spdeuskar
24097785Spdeuskar  To attach a VLAN to the driver enter the following:
24197785Spdeuskar
24297785Spdeuskar        ifconfig vlan0 inet 10.0.0.1 netmask 255.255.255.0 vlan 1 vlandev 
24397785Spdeuskar             em0 mtu 1500 up
24497785Spdeuskar
24597785Spdeuskar  Also, bring the driver up by entering:
24697785Spdeuskar
24797785Spdeuskar        ifconfig em0 up
24897785Spdeuskar
24997785Spdeuskar
25097785SpdeuskarKnown Limitations
25197785Spdeuskar=================
25297785Spdeuskar 
25397785SpdeuskarThere are known performance problems with this driver when running UDP 
25497785Spdeuskartraffic with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP
25597785Spdeuskartraffic.
25697785Spdeuskar
25797785Spdeuskar
25897785SpdeuskarSupport
25997785Spdeuskar=======
26097785Spdeuskar
26197785SpdeuskarFor general information and support, go to the Intel support website at:
26297785Spdeuskar
26397785Spdeuskar        http://support.intel.com
26497785Spdeuskar
26597785SpdeuskarIf an issue is identified with the released source code on the supported
26697785Spdeuskarkernel with a supported adapter, email the specific information related to 
26797785Spdeuskarthe issue to freebsdnic@mailbox.intel.com.
26897785Spdeuskar
26997785Spdeuskar
27097785SpdeuskarLicense
27197785Spdeuskar=======
27297785Spdeuskar
27397785SpdeuskarThis software program is released under the terms of a license agreement 
27497785Spdeuskarbetween you ('Licensee') and Intel. Do not use or load this software or any 
27597785Spdeuskarassociated materials (collectively, the 'Software') until you have carefully 
27697785Spdeuskarread the full terms and conditions of the LICENSE located in this software 
27797785Spdeuskarpackage. By loading or using the Software, you agree to the terms of this 
27897785SpdeuskarAgreement. If you do not agree with the terms of this Agreement, do not 
27997785Spdeuskarinstall or use the Software.
28097785Spdeuskar
28197785Spdeuskar* Other names and brands may be claimed as the property of others.
282