1eed6f750SBill Paul.\" Copyright (c) 2003 26cee741bSBill Paul.\" Bill Paul <wpaul@windriver.com>. All rights reserved. 36cee741bSBill Paul.\" 46cee741bSBill Paul.\" Redistribution and use in source and binary forms, with or without 56cee741bSBill Paul.\" modification, are permitted provided that the following conditions 66cee741bSBill Paul.\" are met: 76cee741bSBill Paul.\" 1. Redistributions of source code must retain the above copyright 86cee741bSBill Paul.\" notice, this list of conditions and the following disclaimer. 96cee741bSBill Paul.\" 2. Redistributions in binary form must reproduce the above copyright 106cee741bSBill Paul.\" notice, this list of conditions and the following disclaimer in the 116cee741bSBill Paul.\" documentation and/or other materials provided with the distribution. 126cee741bSBill Paul.\" 3. All advertising materials mentioning features or use of this software 136cee741bSBill Paul.\" must display the following acknowledgement: 146cee741bSBill Paul.\" This product includes software developed by Bill Paul. 156cee741bSBill Paul.\" 4. Neither the name of the author nor the names of any co-contributors 166cee741bSBill Paul.\" may be used to endorse or promote products derived from this software 176cee741bSBill Paul.\" without specific prior written permission. 186cee741bSBill Paul.\" 196cee741bSBill Paul.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND 206cee741bSBill Paul.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 216cee741bSBill Paul.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 226cee741bSBill Paul.\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD 236cee741bSBill Paul.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 246cee741bSBill Paul.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 256cee741bSBill Paul.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 266cee741bSBill Paul.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 276cee741bSBill Paul.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 286cee741bSBill Paul.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 296cee741bSBill Paul.\" THE POSSIBILITY OF SUCH DAMAGE. 306cee741bSBill Paul.\" 316cee741bSBill Paul.\" $FreeBSD$ 326cee741bSBill Paul.\" 336cee741bSBill Paul.Dd September 4, 2003 346cee741bSBill Paul.Dt RE 4 356cee741bSBill Paul.Os 366cee741bSBill Paul.Sh NAME 376cee741bSBill Paul.Nm re 386cee741bSBill Paul.Nd "RealTek 8139C+/8169/8169S/8110S PCI ethernet adapter driver" 396cee741bSBill Paul.Sh SYNOPSIS 406cee741bSBill Paul.Cd "device miibus" 416cee741bSBill Paul.Cd "device re" 426cee741bSBill Paul.Sh DESCRIPTION 436cee741bSBill PaulThe 446cee741bSBill Paul.Nm 456cee741bSBill Pauldriver provides support for various NICs based on the RealTek RTL8139C+, 466cee741bSBill PaulRTL8169, RTL8169S and RTL8110S PCI ethernet controllers, including 476cee741bSBill Paulthe following: 486cee741bSBill Paul.Pp 496cee741bSBill Paul.Bl -bullet -compact 506cee741bSBill Paul.It 516cee741bSBill PaulAlloy Computer Products EtherGOLD 1439E 10/100 (8139C+) 526cee741bSBill Paul.It 536cee741bSBill PaulCompaq Evo N1015v Integrated Ethernet (8139C+) 546cee741bSBill Paul.It 55eed6f750SBill PaulGigabyte 7N400 Pro2 Integrated Gigabit Ethernet (8110S) 56eed6f750SBill Paul.It 57eed6f750SBill PaulXterasys XN-152 10/100/1000 NIC (8169) 586cee741bSBill Paul.El 596cee741bSBill Paul.Pp 606cee741bSBill PaulNICs based on the 8139C+ are capable of 10 and 100Mbps speeds over CAT5 616cee741bSBill Paulcable. NICs based on the 8169, 8169S and 8110S are capable of 10, 100 and 626cee741bSBill Paul1000Mbps operation. 636cee741bSBill Paul.Pp 646cee741bSBill PaulAll NICs supported by the 656cee741bSBill Paul.Nm 666cee741bSBill Pauldriver have TCP/IP checksum offload and hardware VLAN tagging/insertion 676cee741bSBill Paulfeatures, and use a descriptor-based DMA mechanism. They are also 686cee741bSBill Paulcapable of TCP large send (TCP segmentation offload). 696cee741bSBill Paul.Pp 706cee741bSBill PaulThe 8139C+ is a single-chip solution combining both a 10/100 MAC and PHY. 716cee741bSBill PaulThe 8169 is a 10/100/1000 MAC only, requiring a GMII or TBI external PHY. 726cee741bSBill PaulThe 8169S and 8110S are single-chip devices containing both a 10/100/1000 736cee741bSBill PaulMAC and 10/100/1000 copper PHY. Standalone 10/100/1000 cards are available 746cee741bSBill Paulin both 32-bit PCI and 64-bit PCI models. The 8110S is designed for 756cee741bSBill Paulembedded LAN-on-motherboard applications. 766cee741bSBill Paul.Pp 776cee741bSBill PaulThe 8169, 8169S and 8110S also support jumbo frames, which can be configured 786cee741bSBill Paulvia the interface MTU setting. 796cee741bSBill PaulSelecting an MTU larger than 1500 bytes with the 806cee741bSBill Paul.Xr ifconfig 8 816cee741bSBill Paulutility configures the adapter to receive and transmit jumbo frames. 826cee741bSBill Paul.Pp 836cee741bSBill PaulThe 846cee741bSBill Paul.Nm 856cee741bSBill Pauldriver supports the following media types: 866cee741bSBill Paul.Bl -tag -width 10baseTXUTP 876cee741bSBill Paul.It Cm autoselect 886cee741bSBill PaulEnable autoselection of the media type and options. 896cee741bSBill PaulThe user can manually override 906cee741bSBill Paulthe autoselected mode by adding media options to 916cee741bSBill Paul.Xr rc.conf 5 . 926cee741bSBill Paul.It Cm 10baseT/UTP 936cee741bSBill PaulSet 10Mbps operation. 946cee741bSBill PaulThe 956cee741bSBill Paul.Xr ifconfig 8 966cee741bSBill Paul.Ic mediaopt 976cee741bSBill Pauloption can also be used to select either 986cee741bSBill Paul.Cm full-duplex 996cee741bSBill Paulor 1006cee741bSBill Paul.Cm half-duplex 1016cee741bSBill Paulmodes. 1026cee741bSBill Paul.It Cm 100baseTX 1036cee741bSBill PaulSet 100Mbps (fast ethernet) operation. 1046cee741bSBill PaulThe 1056cee741bSBill Paul.Xr ifconfig 8 1066cee741bSBill Paul.Ic mediaopt 1076cee741bSBill Pauloption can also be used to select either 1086cee741bSBill Paul.Cm full-duplex 1096cee741bSBill Paulor 1106cee741bSBill Paul.Cm half-duplex 1116cee741bSBill Paulmodes. 1126cee741bSBill Paul.It Cm 1000baseTX 1136cee741bSBill PaulSet 1000baseTX operation over twisted pair. 1146cee741bSBill PaulThe RealTek gigE chips support 1000Mbps in 1156cee741bSBill Paul.Cm full-duplex 1166cee741bSBill Paulmode only. 1176cee741bSBill Paul.\" .It Cm 1000baseSX 1186cee741bSBill Paul.\" Set 1000Mbps (gigabit ethernet) operation. 1196cee741bSBill Paul.\" Both 1206cee741bSBill Paul.\" .Cm full-duplex 1216cee741bSBill Paul.\" and 1226cee741bSBill Paul.\" .Cm half-duplex 1236cee741bSBill Paul.\" modes are supported. 1246cee741bSBill Paul.El 1256cee741bSBill Paul.Pp 1266cee741bSBill PaulThe 1276cee741bSBill Paul.Nm 1286cee741bSBill Pauldriver supports the following media options: 1296cee741bSBill Paul.Bl -tag -width full-duplex 1306cee741bSBill Paul.It Cm full-duplex 1316cee741bSBill PaulForce full duplex operation. 1326cee741bSBill Paul.It Cm half-duplex 1336cee741bSBill PaulForce half duplex operation. 1346cee741bSBill Paul.El 1356cee741bSBill Paul.Pp 1366cee741bSBill PaulFor more information on configuring this device, see 1376cee741bSBill Paul.Xr ifconfig 8 . 1386cee741bSBill Paul.Sh DIAGNOSTICS 1396cee741bSBill Paul.Bl -diag 1406cee741bSBill Paul.It "re%d: couldn't map memory" 1416cee741bSBill PaulA fatal initialization error has occurred. 1426cee741bSBill Paul.It "re%d: couldn't map ports" 1436cee741bSBill PaulA fatal initialization error has occurred. 1446cee741bSBill Paul.It "re%d: couldn't map interrupt" 1456cee741bSBill PaulA fatal initialization error has occurred. 1466cee741bSBill Paul.It "re%d: no memory for softc struct!" 1476cee741bSBill PaulThe driver failed to allocate memory for per-device instance information 1486cee741bSBill Paulduring initialization. 1496cee741bSBill Paul.It "re%d: failed to enable memory mapping!" 1506cee741bSBill PaulThe driver failed to initialize PCI shared memory mapping. 1516cee741bSBill PaulThis might 1526cee741bSBill Paulhappen if the card is not in a bus-master slot. 1536cee741bSBill Paul.It "re%d: no memory for jumbo buffers!" 1546cee741bSBill PaulThe driver failed to allocate memory for jumbo frames during 1556cee741bSBill Paulinitialization. 1566cee741bSBill Paul.It "re%d: watchdog timeout" 1576cee741bSBill PaulThe device has stopped responding to the network, or there is a problem with 1586cee741bSBill Paulthe network connection (cable). 1596cee741bSBill Paul.El 1606cee741bSBill Paul.Sh SEE ALSO 1616cee741bSBill Paul.Xr arp 4 , 1626cee741bSBill Paul.Xr netintro 4 , 1636cee741bSBill Paul.Xr ng_ether 4 , 1646cee741bSBill Paul.Xr vlan 4 , 1656cee741bSBill Paul.Xr ifconfig 8 1666cee741bSBill Paul.Rs 1676cee741bSBill Paul.%T RealTek Semiconductor RTL8139C+, RTL8169, RTL8169S and RTL8110S datasheets 1686cee741bSBill Paul.%O http://www.realtek.com.tw 1696cee741bSBill Paul.Re 1706cee741bSBill Paul.Sh HISTORY 1716cee741bSBill PaulThe 1726cee741bSBill Paul.Nm 1736cee741bSBill Pauldevice driver first appeared in 1746cee741bSBill Paul.Fx 5.2 . 1756cee741bSBill Paul.Sh AUTHORS 1766cee741bSBill PaulThe 1776cee741bSBill Paul.Nm 1786cee741bSBill Pauldriver was written by 1796cee741bSBill Paul.An Bill Paul Aq wpaul@windriver.com . 1806cee741bSBill Paul.Sh BUGS 1816cee741bSBill PaulThe Xterasys XN-152 32-bit PCI NIC, which uses the RTL8169 MAC and 1826cee741bSBill PaulMarvell 88E1000 PHY, has a defect that causes DMA corruption 1836cee741bSBill Paulif the board is plugged into a 64-bit PCI slot. The defect 1846cee741bSBill Paullies in the board design, not the chip itself: the PCI REQ64# and ACK64# 1856cee741bSBill Paullines should be pulled high, but they are not. The result is that the 1866cee741bSBill Paul8169 chip is tricked into performing 64-bit DMA transfers even though 1876cee741bSBill Paula 64-bit data path between the NIC and the bus does not actually exist. 1886cee741bSBill Paul.Pp 1896cee741bSBill PaulUnfortunately, it is not possible to correct this problem in software, 1906cee741bSBill Paulhowever it is possible to detect it. When the 1916cee741bSBill Paul.Nm 1926cee741bSBill Pauldriver is loaded, it will run a diagnostic routine designed to 1936cee741bSBill Paulvalidate DMA operation by placing the chip in digital loopback mode 1946cee741bSBill Pauland initiating a packet transmission. If the card functions properly, 1956cee741bSBill Paulthe transmitted data will 1966cee741bSBill Paulbe echoed back unmodified. If the echoed data is corrupt, the driver 1976cee741bSBill Paulwill print an error message on the console and abort the device attach. The 1986cee741bSBill Pauluser should insure the NIC is installed in a 32-bit PCI slot to 1996cee741bSBill Paulavoid this problem. 2006cee741bSBill Paul.Pp 2016cee741bSBill PaulThe RealTek 8169, 8169S and 8110S chips appear to only be capable of 2026cee741bSBill Paultransmitting jumbo frames up to 7.5K in size. 203