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