2003-09-20 21:42:56 +00:00
|
|
|
.\" Copyright (c) 2003
|
2003-09-09 02:45:53 +00:00
|
|
|
.\" Bill Paul <wpaul@windriver.com>. All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
|
|
.\" must display the following acknowledgement:
|
|
|
|
.\" This product includes software developed by Bill Paul.
|
|
|
|
.\" 4. Neither the name of the author nor the names of any co-contributors
|
|
|
|
.\" may be used to endorse or promote products derived from this software
|
|
|
|
.\" without specific prior written permission.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
|
|
|
|
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
|
|
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
|
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
|
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
|
|
.\" THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
.\"
|
|
|
|
.\" $FreeBSD$
|
|
|
|
.\"
|
2011-01-26 21:59:59 +00:00
|
|
|
.Dd January 26, 2011
|
2003-09-09 02:45:53 +00:00
|
|
|
.Dt RE 4
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm re
|
2010-10-27 19:01:09 +00:00
|
|
|
.Nd "RealTek 8139C+/8169/816xS/811xS/8168/810xE/8111 PCI/PCIe Ethernet adapter driver"
|
2003-09-09 02:45:53 +00:00
|
|
|
.Sh SYNOPSIS
|
2005-10-07 02:32:16 +00:00
|
|
|
To compile this driver into the kernel,
|
|
|
|
place the following lines in your
|
2005-07-21 05:02:39 +00:00
|
|
|
kernel configuration file:
|
2005-07-19 00:26:30 +00:00
|
|
|
.Bd -ragged -offset indent
|
2003-09-09 02:45:53 +00:00
|
|
|
.Cd "device miibus"
|
|
|
|
.Cd "device re"
|
2005-07-19 00:26:30 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2005-10-07 02:32:16 +00:00
|
|
|
Alternatively, to load the driver as a
|
|
|
|
module at boot time, place the following line in
|
2005-07-19 00:26:30 +00:00
|
|
|
.Xr loader.conf 5 :
|
|
|
|
.Bd -literal -offset indent
|
|
|
|
if_re_load="YES"
|
|
|
|
.Ed
|
2003-09-09 02:45:53 +00:00
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
driver provides support for various NICs based on the RealTek RTL8139C+,
|
2010-10-27 19:01:09 +00:00
|
|
|
RTL8169, RTL816xS, RTL811xS, RTL8168, RTL810xE and RTL8111 PCI and
|
2006-06-26 20:31:32 +00:00
|
|
|
PCIe Ethernet controllers.
|
2003-09-09 02:45:53 +00:00
|
|
|
.Pp
|
2010-10-27 19:01:09 +00:00
|
|
|
NICs based on the 8139C+ and 810xE are capable of 10 and 100Mbps speeds
|
2006-06-26 20:31:32 +00:00
|
|
|
over CAT5 cable.
|
2010-10-27 19:01:09 +00:00
|
|
|
NICs based on the 8169, 816xS, 811xS, 8168 and 8111 are capable of 10, 100
|
|
|
|
and 1000Mbps operation.
|
2003-09-09 02:45:53 +00:00
|
|
|
.Pp
|
|
|
|
All NICs supported by the
|
|
|
|
.Nm
|
|
|
|
driver have TCP/IP checksum offload and hardware VLAN tagging/insertion
|
2004-07-03 18:29:24 +00:00
|
|
|
features, and use a descriptor-based DMA mechanism.
|
|
|
|
They are also
|
2003-09-09 02:45:53 +00:00
|
|
|
capable of TCP large send (TCP segmentation offload).
|
|
|
|
.Pp
|
|
|
|
The 8139C+ is a single-chip solution combining both a 10/100 MAC and PHY.
|
|
|
|
The 8169 is a 10/100/1000 MAC only, requiring a GMII or TBI external PHY.
|
2010-10-27 19:01:09 +00:00
|
|
|
The 816xS, 811xS, 8168 and 8111 are single-chip devices containing both a
|
|
|
|
10/100/1000 MAC and 10/100/1000 copper PHY.
|
2004-07-03 18:29:24 +00:00
|
|
|
Standalone 10/100/1000 cards are available
|
|
|
|
in both 32-bit PCI and 64-bit PCI models.
|
|
|
|
The 8110S is designed for
|
2003-09-09 02:45:53 +00:00
|
|
|
embedded LAN-on-motherboard applications.
|
|
|
|
.Pp
|
|
|
|
The 8169, 8169S and 8110S also support jumbo frames, which can be configured
|
|
|
|
via the interface MTU setting.
|
2004-09-28 18:24:19 +00:00
|
|
|
The MTU is limited to 7422, since the chip cannot transmit larger frames.
|
2003-09-09 02:45:53 +00:00
|
|
|
Selecting an MTU larger than 1500 bytes with the
|
|
|
|
.Xr ifconfig 8
|
|
|
|
utility configures the adapter to receive and transmit jumbo frames.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
driver supports the following media types:
|
2004-07-08 12:21:51 +00:00
|
|
|
.Bl -tag -width ".Cm 10baseT/UTP"
|
2003-09-09 02:45:53 +00:00
|
|
|
.It Cm autoselect
|
|
|
|
Enable autoselection of the media type and options.
|
|
|
|
The user can manually override
|
|
|
|
the autoselected mode by adding media options to
|
|
|
|
.Xr rc.conf 5 .
|
|
|
|
.It Cm 10baseT/UTP
|
|
|
|
Set 10Mbps operation.
|
|
|
|
The
|
|
|
|
.Xr ifconfig 8
|
2004-07-08 12:21:51 +00:00
|
|
|
.Cm mediaopt
|
2003-09-09 02:45:53 +00:00
|
|
|
option can also be used to select either
|
|
|
|
.Cm full-duplex
|
|
|
|
or
|
|
|
|
.Cm half-duplex
|
|
|
|
modes.
|
|
|
|
.It Cm 100baseTX
|
2004-07-08 12:21:51 +00:00
|
|
|
Set 100Mbps (Fast Ethernet) operation.
|
2003-09-09 02:45:53 +00:00
|
|
|
The
|
|
|
|
.Xr ifconfig 8
|
2004-07-08 12:21:51 +00:00
|
|
|
.Cm mediaopt
|
2003-09-09 02:45:53 +00:00
|
|
|
option can also be used to select either
|
|
|
|
.Cm full-duplex
|
|
|
|
or
|
|
|
|
.Cm half-duplex
|
|
|
|
modes.
|
|
|
|
.It Cm 1000baseTX
|
|
|
|
Set 1000baseTX operation over twisted pair.
|
|
|
|
The RealTek gigE chips support 1000Mbps in
|
|
|
|
.Cm full-duplex
|
|
|
|
mode only.
|
|
|
|
.\" .It Cm 1000baseSX
|
2004-07-08 12:21:51 +00:00
|
|
|
.\" Set 1000Mbps (Gigabit Ethernet) operation.
|
2003-09-09 02:45:53 +00:00
|
|
|
.\" Both
|
|
|
|
.\" .Cm full-duplex
|
|
|
|
.\" and
|
|
|
|
.\" .Cm half-duplex
|
|
|
|
.\" modes are supported.
|
|
|
|
.El
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
driver supports the following media options:
|
2004-07-08 12:21:51 +00:00
|
|
|
.Bl -tag -width ".Cm full-duplex"
|
2003-09-09 02:45:53 +00:00
|
|
|
.It Cm full-duplex
|
|
|
|
Force full duplex operation.
|
|
|
|
.It Cm half-duplex
|
|
|
|
Force half duplex operation.
|
|
|
|
.El
|
|
|
|
.Pp
|
|
|
|
For more information on configuring this device, see
|
|
|
|
.Xr ifconfig 8 .
|
2004-09-04 23:54:41 +00:00
|
|
|
.Sh HARDWARE
|
|
|
|
The
|
|
|
|
.Nm
|
2010-10-27 19:01:09 +00:00
|
|
|
driver supports RealTek RTL8139C+, RTL8169, RTL816xS, RTL811xS, RTL8168,
|
|
|
|
RTL810xE and RTL8111 based Fast Ethernet and Gigabit Ethernet adapters including:
|
2004-09-04 23:54:41 +00:00
|
|
|
.Pp
|
|
|
|
.Bl -bullet -compact
|
|
|
|
.It
|
|
|
|
Alloy Computer Products EtherGOLD 1439E 10/100 (8139C+)
|
|
|
|
.It
|
|
|
|
Compaq Evo N1015v Integrated Ethernet (8139C+)
|
|
|
|
.It
|
|
|
|
Corega CG-LAPCIGT Gigabit Ethernet (8169S)
|
|
|
|
.It
|
2005-08-05 13:21:11 +00:00
|
|
|
D-Link DGE-528(T) Gigabit Ethernet (8169S)
|
|
|
|
.It
|
2004-09-04 23:54:41 +00:00
|
|
|
Gigabyte 7N400 Pro2 Integrated Gigabit Ethernet (8110S)
|
|
|
|
.It
|
2004-11-17 21:39:06 +00:00
|
|
|
LevelOne GNC-0105T (8169S)
|
|
|
|
.It
|
2006-01-14 15:35:21 +00:00
|
|
|
LinkSys EG1032 (32-bit PCI)
|
|
|
|
.It
|
2004-09-04 23:54:41 +00:00
|
|
|
PLANEX COMMUNICATIONS Inc.\& GN-1200TC (8169S)
|
|
|
|
.It
|
2006-11-23 00:28:58 +00:00
|
|
|
USRobotics USR997902 Gigabit Ethernet (8169S)
|
|
|
|
.It
|
2004-09-04 23:54:41 +00:00
|
|
|
Xterasys XN-152 10/100/1000 NIC (8169)
|
|
|
|
.El
|
2009-02-09 05:09:52 +00:00
|
|
|
.Sh LOADER TUNABLES
|
|
|
|
Tunables can be set at the
|
|
|
|
.Xr loader 8
|
|
|
|
prompt before booting the kernel or stored in
|
|
|
|
.Xr loader.conf 5 .
|
|
|
|
.Bl -tag -width "xxxxxx"
|
2011-01-26 21:59:59 +00:00
|
|
|
.It Va hw.re.intr_filter
|
|
|
|
This tunable makes driver use interrupt filter handler on
|
|
|
|
controllers that support MSI/MSI-X capability.
|
|
|
|
If MSI/MSI-X is disabled by administrator this tunable has no
|
|
|
|
effect and driver will use interrupt filter handler.
|
|
|
|
The default value is 0 to use interrupt thread handler.
|
2009-02-09 05:09:52 +00:00
|
|
|
.It Va hw.re.msi_disable
|
|
|
|
This tunable disables MSI support on the Ethernet hardware.
|
|
|
|
The default value is 0.
|
2011-01-26 21:59:59 +00:00
|
|
|
.It Va hw.re.msix_disable
|
|
|
|
This tunable disables MSI-X support on the Ethernet hardware.
|
|
|
|
The default value is 0.
|
2010-12-02 18:37:34 +00:00
|
|
|
.It Va hw.re.prefer_iomap
|
|
|
|
This tunable controls which register mapping should be used on the
|
|
|
|
specified device.
|
|
|
|
A non-zero value enables I/O space register mapping.
|
|
|
|
The default value is 0 to use memory space register mapping.
|
2009-02-09 05:09:52 +00:00
|
|
|
.El
|
2011-01-26 21:59:59 +00:00
|
|
|
.Sh SYSCTL VARIABLES
|
|
|
|
The following variables are available as both
|
|
|
|
.Xr sysctl 8
|
|
|
|
variables and
|
|
|
|
.Xr loader 8
|
|
|
|
tunables:
|
|
|
|
.Bl -tag -width "xxxxxx"
|
|
|
|
.It Va dev.re.%d.int_rx_mod
|
|
|
|
Maximum amount of time to delay receive interrupt processing in
|
|
|
|
units of 1us.
|
|
|
|
The accepted range is 0 to 65, the default is 65(65us).
|
|
|
|
Value 0 completely disables the interrupt moderation.
|
|
|
|
The interface need to be brought down and up again before a change
|
|
|
|
takes effect.
|
|
|
|
.El
|
2003-09-09 02:45:53 +00:00
|
|
|
.Sh DIAGNOSTICS
|
|
|
|
.Bl -diag
|
|
|
|
.It "re%d: couldn't map memory"
|
|
|
|
A fatal initialization error has occurred.
|
|
|
|
.It "re%d: couldn't map ports"
|
|
|
|
A fatal initialization error has occurred.
|
|
|
|
.It "re%d: couldn't map interrupt"
|
|
|
|
A fatal initialization error has occurred.
|
|
|
|
.It "re%d: no memory for softc struct!"
|
|
|
|
The driver failed to allocate memory for per-device instance information
|
|
|
|
during initialization.
|
|
|
|
.It "re%d: failed to enable memory mapping!"
|
|
|
|
The driver failed to initialize PCI shared memory mapping.
|
|
|
|
This might
|
|
|
|
happen if the card is not in a bus-master slot.
|
|
|
|
.It "re%d: no memory for jumbo buffers!"
|
|
|
|
The driver failed to allocate memory for jumbo frames during
|
|
|
|
initialization.
|
|
|
|
.It "re%d: watchdog timeout"
|
|
|
|
The device has stopped responding to the network, or there is a problem with
|
|
|
|
the network connection (cable).
|
|
|
|
.El
|
|
|
|
.Sh SEE ALSO
|
2007-01-30 08:40:04 +00:00
|
|
|
.Xr altq 4 ,
|
2003-09-09 02:45:53 +00:00
|
|
|
.Xr arp 4 ,
|
2004-01-09 17:43:37 +00:00
|
|
|
.Xr miibus 4 ,
|
2003-09-09 02:45:53 +00:00
|
|
|
.Xr netintro 4 ,
|
|
|
|
.Xr ng_ether 4 ,
|
2004-11-24 19:06:43 +00:00
|
|
|
.Xr polling 4 ,
|
2011-01-15 22:07:08 +00:00
|
|
|
.Xr rgephy 4 ,
|
2003-09-09 02:45:53 +00:00
|
|
|
.Xr vlan 4 ,
|
|
|
|
.Xr ifconfig 8
|
|
|
|
.Rs
|
|
|
|
.%T RealTek Semiconductor RTL8139C+, RTL8169, RTL8169S and RTL8110S datasheets
|
2010-01-15 16:01:22 +00:00
|
|
|
.%U http://www.realtek.com.tw/
|
2003-09-09 02:45:53 +00:00
|
|
|
.Re
|
|
|
|
.Sh HISTORY
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
device driver first appeared in
|
|
|
|
.Fx 5.2 .
|
|
|
|
.Sh AUTHORS
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
driver was written by
|
|
|
|
.An Bill Paul Aq wpaul@windriver.com .
|
|
|
|
.Sh BUGS
|
|
|
|
The Xterasys XN-152 32-bit PCI NIC, which uses the RTL8169 MAC and
|
|
|
|
Marvell 88E1000 PHY, has a defect that causes DMA corruption
|
2004-07-03 18:29:24 +00:00
|
|
|
if the board is plugged into a 64-bit PCI slot.
|
|
|
|
The defect
|
2003-09-09 02:45:53 +00:00
|
|
|
lies in the board design, not the chip itself: the PCI REQ64# and ACK64#
|
2004-07-03 18:29:24 +00:00
|
|
|
lines should be pulled high, but they are not.
|
|
|
|
The result is that the
|
2003-09-09 02:45:53 +00:00
|
|
|
8169 chip is tricked into performing 64-bit DMA transfers even though
|
|
|
|
a 64-bit data path between the NIC and the bus does not actually exist.
|
|
|
|
.Pp
|
|
|
|
Unfortunately, it is not possible to correct this problem in software,
|
2004-07-03 18:29:24 +00:00
|
|
|
however it is possible to detect it.
|
|
|
|
When the
|
2003-09-09 02:45:53 +00:00
|
|
|
.Nm
|
|
|
|
driver is loaded, it will run a diagnostic routine designed to
|
|
|
|
validate DMA operation by placing the chip in digital loopback mode
|
2004-07-03 18:29:24 +00:00
|
|
|
and initiating a packet transmission.
|
|
|
|
If the card functions properly,
|
2003-09-09 02:45:53 +00:00
|
|
|
the transmitted data will
|
2004-07-03 18:29:24 +00:00
|
|
|
be echoed back unmodified.
|
|
|
|
If the echoed data is corrupt, the driver
|
|
|
|
will print an error message on the console and abort the device attach.
|
|
|
|
The
|
2010-08-28 16:32:01 +00:00
|
|
|
user should ensure the NIC is installed in a 32-bit PCI slot to
|
2003-09-09 02:45:53 +00:00
|
|
|
avoid this problem.
|
|
|
|
.Pp
|
|
|
|
The RealTek 8169, 8169S and 8110S chips appear to only be capable of
|
|
|
|
transmitting jumbo frames up to 7.5K in size.
|