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.\" 33a6c410e7SChristian Brueffer.Dd November 24, 2004 346cee741bSBill Paul.Dt RE 4 356cee741bSBill Paul.Os 366cee741bSBill Paul.Sh NAME 376cee741bSBill Paul.Nm re 382898777bSRuslan Ermilov.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+, 46318f7adfSChristian BruefferRTL8169, RTL8169S and RTL8110S PCI Ethernet controllers. 476cee741bSBill Paul.Pp 486cee741bSBill PaulNICs based on the 8139C+ are capable of 10 and 100Mbps speeds over CAT5 495203edcdSRuslan Ermilovcable. 505203edcdSRuslan ErmilovNICs based on the 8169, 8169S and 8110S are capable of 10, 100 and 516cee741bSBill Paul1000Mbps operation. 526cee741bSBill Paul.Pp 536cee741bSBill PaulAll NICs supported by the 546cee741bSBill Paul.Nm 556cee741bSBill Pauldriver have TCP/IP checksum offload and hardware VLAN tagging/insertion 565203edcdSRuslan Ermilovfeatures, and use a descriptor-based DMA mechanism. 575203edcdSRuslan ErmilovThey are also 586cee741bSBill Paulcapable of TCP large send (TCP segmentation offload). 596cee741bSBill Paul.Pp 606cee741bSBill PaulThe 8139C+ is a single-chip solution combining both a 10/100 MAC and PHY. 616cee741bSBill PaulThe 8169 is a 10/100/1000 MAC only, requiring a GMII or TBI external PHY. 626cee741bSBill PaulThe 8169S and 8110S are single-chip devices containing both a 10/100/1000 635203edcdSRuslan ErmilovMAC and 10/100/1000 copper PHY. 645203edcdSRuslan ErmilovStandalone 10/100/1000 cards are available 655203edcdSRuslan Ermilovin both 32-bit PCI and 64-bit PCI models. 665203edcdSRuslan ErmilovThe 8110S is designed for 676cee741bSBill Paulembedded LAN-on-motherboard applications. 686cee741bSBill Paul.Pp 696cee741bSBill PaulThe 8169, 8169S and 8110S also support jumbo frames, which can be configured 706cee741bSBill Paulvia the interface MTU setting. 712157b8d6SJohn-Mark GurneyThe MTU is limited to 7422, since the chip cannot transmit larger frames. 726cee741bSBill PaulSelecting an MTU larger than 1500 bytes with the 736cee741bSBill Paul.Xr ifconfig 8 746cee741bSBill Paulutility configures the adapter to receive and transmit jumbo frames. 756cee741bSBill Paul.Pp 766cee741bSBill PaulThe 776cee741bSBill Paul.Nm 786cee741bSBill Pauldriver supports the following media types: 792898777bSRuslan Ermilov.Bl -tag -width ".Cm 10baseT/UTP" 806cee741bSBill Paul.It Cm autoselect 816cee741bSBill PaulEnable autoselection of the media type and options. 826cee741bSBill PaulThe user can manually override 836cee741bSBill Paulthe autoselected mode by adding media options to 846cee741bSBill Paul.Xr rc.conf 5 . 856cee741bSBill Paul.It Cm 10baseT/UTP 866cee741bSBill PaulSet 10Mbps operation. 876cee741bSBill PaulThe 886cee741bSBill Paul.Xr ifconfig 8 892898777bSRuslan Ermilov.Cm mediaopt 906cee741bSBill Pauloption can also be used to select either 916cee741bSBill Paul.Cm full-duplex 926cee741bSBill Paulor 936cee741bSBill Paul.Cm half-duplex 946cee741bSBill Paulmodes. 956cee741bSBill Paul.It Cm 100baseTX 962898777bSRuslan ErmilovSet 100Mbps (Fast Ethernet) operation. 976cee741bSBill PaulThe 986cee741bSBill Paul.Xr ifconfig 8 992898777bSRuslan Ermilov.Cm mediaopt 1006cee741bSBill Pauloption can also be used to select either 1016cee741bSBill Paul.Cm full-duplex 1026cee741bSBill Paulor 1036cee741bSBill Paul.Cm half-duplex 1046cee741bSBill Paulmodes. 1056cee741bSBill Paul.It Cm 1000baseTX 1066cee741bSBill PaulSet 1000baseTX operation over twisted pair. 1076cee741bSBill PaulThe RealTek gigE chips support 1000Mbps in 1086cee741bSBill Paul.Cm full-duplex 1096cee741bSBill Paulmode only. 1106cee741bSBill Paul.\" .It Cm 1000baseSX 1112898777bSRuslan Ermilov.\" Set 1000Mbps (Gigabit Ethernet) operation. 1126cee741bSBill Paul.\" Both 1136cee741bSBill Paul.\" .Cm full-duplex 1146cee741bSBill Paul.\" and 1156cee741bSBill Paul.\" .Cm half-duplex 1166cee741bSBill Paul.\" modes are supported. 1176cee741bSBill Paul.El 1186cee741bSBill Paul.Pp 1196cee741bSBill PaulThe 1206cee741bSBill Paul.Nm 1216cee741bSBill Pauldriver supports the following media options: 1222898777bSRuslan Ermilov.Bl -tag -width ".Cm full-duplex" 1236cee741bSBill Paul.It Cm full-duplex 1246cee741bSBill PaulForce full duplex operation. 1256cee741bSBill Paul.It Cm half-duplex 1266cee741bSBill PaulForce half duplex operation. 1276cee741bSBill Paul.El 1286cee741bSBill Paul.Pp 1296cee741bSBill PaulFor more information on configuring this device, see 1306cee741bSBill Paul.Xr ifconfig 8 . 131318f7adfSChristian Brueffer.Sh HARDWARE 132318f7adfSChristian BruefferThe 133318f7adfSChristian Brueffer.Nm 134318f7adfSChristian Bruefferdriver supports RealTek RTL8139C+, RTL8169, RTL8169S and RTL8110S 135318f7adfSChristian Bruefferbased Fast Ethernet and Gigabit Ethernet adapters including: 136318f7adfSChristian Brueffer.Pp 137318f7adfSChristian Brueffer.Bl -bullet -compact 138318f7adfSChristian Brueffer.It 139318f7adfSChristian BruefferAlloy Computer Products EtherGOLD 1439E 10/100 (8139C+) 140318f7adfSChristian Brueffer.It 141318f7adfSChristian BruefferCompaq Evo N1015v Integrated Ethernet (8139C+) 142318f7adfSChristian Brueffer.It 143318f7adfSChristian BruefferCorega CG-LAPCIGT Gigabit Ethernet (8169S) 144318f7adfSChristian Brueffer.It 145318f7adfSChristian BruefferGigabyte 7N400 Pro2 Integrated Gigabit Ethernet (8110S) 146318f7adfSChristian Brueffer.It 1472b2092c6SChristian BruefferLevelOne GNC-0105T (8169S) 1482b2092c6SChristian Brueffer.It 149318f7adfSChristian BruefferPLANEX COMMUNICATIONS Inc.\& GN-1200TC (8169S) 150318f7adfSChristian Brueffer.It 151318f7adfSChristian BruefferXterasys XN-152 10/100/1000 NIC (8169) 152318f7adfSChristian Brueffer.El 1536cee741bSBill Paul.Sh DIAGNOSTICS 1546cee741bSBill Paul.Bl -diag 1556cee741bSBill Paul.It "re%d: couldn't map memory" 1566cee741bSBill PaulA fatal initialization error has occurred. 1576cee741bSBill Paul.It "re%d: couldn't map ports" 1586cee741bSBill PaulA fatal initialization error has occurred. 1596cee741bSBill Paul.It "re%d: couldn't map interrupt" 1606cee741bSBill PaulA fatal initialization error has occurred. 1616cee741bSBill Paul.It "re%d: no memory for softc struct!" 1626cee741bSBill PaulThe driver failed to allocate memory for per-device instance information 1636cee741bSBill Paulduring initialization. 1646cee741bSBill Paul.It "re%d: failed to enable memory mapping!" 1656cee741bSBill PaulThe driver failed to initialize PCI shared memory mapping. 1666cee741bSBill PaulThis might 1676cee741bSBill Paulhappen if the card is not in a bus-master slot. 1686cee741bSBill Paul.It "re%d: no memory for jumbo buffers!" 1696cee741bSBill PaulThe driver failed to allocate memory for jumbo frames during 1706cee741bSBill Paulinitialization. 1716cee741bSBill Paul.It "re%d: watchdog timeout" 1726cee741bSBill PaulThe device has stopped responding to the network, or there is a problem with 1736cee741bSBill Paulthe network connection (cable). 1746cee741bSBill Paul.El 1756cee741bSBill Paul.Sh SEE ALSO 1766cee741bSBill Paul.Xr arp 4 , 177130b84f5SChristian Brueffer.Xr miibus 4 , 1786cee741bSBill Paul.Xr netintro 4 , 1796cee741bSBill Paul.Xr ng_ether 4 , 180a6c410e7SChristian Brueffer.Xr polling 4 , 1816cee741bSBill Paul.Xr vlan 4 , 1826cee741bSBill Paul.Xr ifconfig 8 1836cee741bSBill Paul.Rs 1846cee741bSBill Paul.%T RealTek Semiconductor RTL8139C+, RTL8169, RTL8169S and RTL8110S datasheets 1852898777bSRuslan Ermilov.%O http://www.realtek.com.tw/ 1866cee741bSBill Paul.Re 1876cee741bSBill Paul.Sh HISTORY 1886cee741bSBill PaulThe 1896cee741bSBill Paul.Nm 1906cee741bSBill Pauldevice driver first appeared in 1916cee741bSBill Paul.Fx 5.2 . 1926cee741bSBill Paul.Sh AUTHORS 1936cee741bSBill PaulThe 1946cee741bSBill Paul.Nm 1956cee741bSBill Pauldriver was written by 1966cee741bSBill Paul.An Bill Paul Aq wpaul@windriver.com . 1976cee741bSBill Paul.Sh BUGS 1986cee741bSBill PaulThe Xterasys XN-152 32-bit PCI NIC, which uses the RTL8169 MAC and 1996cee741bSBill PaulMarvell 88E1000 PHY, has a defect that causes DMA corruption 2005203edcdSRuslan Ermilovif the board is plugged into a 64-bit PCI slot. 2015203edcdSRuslan ErmilovThe defect 2026cee741bSBill Paullies in the board design, not the chip itself: the PCI REQ64# and ACK64# 2035203edcdSRuslan Ermilovlines should be pulled high, but they are not. 2045203edcdSRuslan ErmilovThe result is that the 2056cee741bSBill Paul8169 chip is tricked into performing 64-bit DMA transfers even though 2066cee741bSBill Paula 64-bit data path between the NIC and the bus does not actually exist. 2076cee741bSBill Paul.Pp 2086cee741bSBill PaulUnfortunately, it is not possible to correct this problem in software, 2095203edcdSRuslan Ermilovhowever it is possible to detect it. 2105203edcdSRuslan ErmilovWhen the 2116cee741bSBill Paul.Nm 2126cee741bSBill Pauldriver is loaded, it will run a diagnostic routine designed to 2136cee741bSBill Paulvalidate DMA operation by placing the chip in digital loopback mode 2145203edcdSRuslan Ermilovand initiating a packet transmission. 2155203edcdSRuslan ErmilovIf the card functions properly, 2166cee741bSBill Paulthe transmitted data will 2175203edcdSRuslan Ermilovbe echoed back unmodified. 2185203edcdSRuslan ErmilovIf the echoed data is corrupt, the driver 2195203edcdSRuslan Ermilovwill print an error message on the console and abort the device attach. 2205203edcdSRuslan ErmilovThe 2216cee741bSBill Pauluser should insure the NIC is installed in a 32-bit PCI slot to 2226cee741bSBill Paulavoid this problem. 2236cee741bSBill Paul.Pp 2246cee741bSBill PaulThe RealTek 8169, 8169S and 8110S chips appear to only be capable of 2256cee741bSBill Paultransmitting jumbo frames up to 7.5K in size. 226