1bc23fe19SPyun YongHyeon.\" Copyright (c) 2008 Pyun YongHyeon 2bc23fe19SPyun YongHyeon.\" All rights reserved. 3bc23fe19SPyun YongHyeon.\" 4bc23fe19SPyun YongHyeon.\" Redistribution and use in source and binary forms, with or without 5bc23fe19SPyun YongHyeon.\" modification, are permitted provided that the following conditions 6bc23fe19SPyun YongHyeon.\" are met: 7bc23fe19SPyun YongHyeon.\" 1. Redistributions of source code must retain the above copyright 8bc23fe19SPyun YongHyeon.\" notice, this list of conditions and the following disclaimer. 9bc23fe19SPyun YongHyeon.\" 2. Redistributions in binary form must reproduce the above copyright 10bc23fe19SPyun YongHyeon.\" notice, this list of conditions and the following disclaimer in the 11bc23fe19SPyun YongHyeon.\" documentation and/or other materials provided with the distribution. 12bc23fe19SPyun YongHyeon.\" 13bc23fe19SPyun YongHyeon.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14bc23fe19SPyun YongHyeon.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15bc23fe19SPyun YongHyeon.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16bc23fe19SPyun YongHyeon.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17bc23fe19SPyun YongHyeon.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18bc23fe19SPyun YongHyeon.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19bc23fe19SPyun YongHyeon.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20bc23fe19SPyun YongHyeon.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21bc23fe19SPyun YongHyeon.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22bc23fe19SPyun YongHyeon.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23bc23fe19SPyun YongHyeon.\" SUCH DAMAGE. 24bc23fe19SPyun YongHyeon.\" 25bc23fe19SPyun YongHyeon.\" $FreeBSD$ 26bc23fe19SPyun YongHyeon.\" 27b269e8dcSEitan Adler.Dd March 4, 2012 28bc23fe19SPyun YongHyeon.Dt JME 4 29bc23fe19SPyun YongHyeon.Os 30bc23fe19SPyun YongHyeon.Sh NAME 31bc23fe19SPyun YongHyeon.Nm jme 32bc23fe19SPyun YongHyeon.Nd JMicron Gigabit/Fast Ethernet driver 33bc23fe19SPyun YongHyeon.Sh SYNOPSIS 34bc23fe19SPyun YongHyeonTo compile this driver into the kernel, 35bc23fe19SPyun YongHyeonplace the following lines in your 36bc23fe19SPyun YongHyeonkernel configuration file: 37bc23fe19SPyun YongHyeon.Bd -ragged -offset indent 38bc23fe19SPyun YongHyeon.Cd "device miibus" 39bc23fe19SPyun YongHyeon.Cd "device jme" 40bc23fe19SPyun YongHyeon.Ed 41bc23fe19SPyun YongHyeon.Pp 42bc23fe19SPyun YongHyeonAlternatively, to load the driver as a 43bc23fe19SPyun YongHyeonmodule at boot time, place the following line in 44bc23fe19SPyun YongHyeon.Xr loader.conf 5 : 45bc23fe19SPyun YongHyeon.Bd -literal -offset indent 46bc23fe19SPyun YongHyeonif_jme_load="YES" 47bc23fe19SPyun YongHyeon.Ed 48bc23fe19SPyun YongHyeon.Sh DESCRIPTION 49bc23fe19SPyun YongHyeonThe 50bc23fe19SPyun YongHyeon.Nm 5149981fbaSPyun YongHyeondevice driver provides support for JMicron JMC25x PCI Express 5249981fbaSPyun YongHyeonGigabit Ethernet controllers and JMicron JMC26x PCI Express Fast 53bc23fe19SPyun YongHyeonEthernet controllers. 54bc23fe19SPyun YongHyeon.Pp 55bc23fe19SPyun YongHyeonAll LOMs supported by the 56bc23fe19SPyun YongHyeon.Nm 57bc23fe19SPyun YongHyeondriver have TCP/UDP/IP checksum offload for both transmit and receive, 58bc23fe19SPyun YongHyeonTCP segmentation offload (TSO), hardware VLAN tag stripping/insertion 59bc23fe19SPyun YongHyeonfeatures, Wake On Lan (WOL) and an interrupt coalescing/moderation 60bc23fe19SPyun YongHyeonmechanism as well as a 64-bit multicast hash filter. 61bc23fe19SPyun YongHyeon.Pp 6249981fbaSPyun YongHyeonThe JMC25x also supports Jumbo Frames (up to 9216 bytes), which can be 63bc23fe19SPyun YongHyeonconfigured via the interface MTU setting. 64bc23fe19SPyun YongHyeonSelecting an MTU larger than 1500 bytes with the 65bc23fe19SPyun YongHyeon.Xr ifconfig 8 66bc23fe19SPyun YongHyeonutility configures the adapter to receive and transmit Jumbo Frames. 67bc23fe19SPyun YongHyeon.Pp 68bc23fe19SPyun YongHyeonThe 69bc23fe19SPyun YongHyeon.Nm 70bc23fe19SPyun YongHyeondriver supports the following media types: 71bc23fe19SPyun YongHyeon.Bl -tag -width ".Cm 10baseT/UTP" 72bc23fe19SPyun YongHyeon.It Cm autoselect 73bc23fe19SPyun YongHyeonEnable autoselection of the media type and options. 74bc23fe19SPyun YongHyeonThe user can manually override 75bc23fe19SPyun YongHyeonthe autoselected mode by adding media options to 76bc23fe19SPyun YongHyeon.Xr rc.conf 5 . 77bc23fe19SPyun YongHyeon.It Cm 10baseT/UTP 78bc23fe19SPyun YongHyeonSet 10Mbps operation. 79bc23fe19SPyun YongHyeon.It Cm 100baseTX 80bc23fe19SPyun YongHyeonSet 100Mbps (Fast Ethernet) operation. 81bc23fe19SPyun YongHyeon.It Cm 1000baseTX 82bc23fe19SPyun YongHyeonSet 1000baseTX operation over twisted pair. 83bc23fe19SPyun YongHyeon.El 84bc23fe19SPyun YongHyeon.Pp 85bc23fe19SPyun YongHyeonThe 86bc23fe19SPyun YongHyeon.Nm 87bc23fe19SPyun YongHyeondriver supports the following media options: 88bc23fe19SPyun YongHyeon.Bl -tag -width ".Cm full-duplex" 89bc23fe19SPyun YongHyeon.It Cm full-duplex 90bc23fe19SPyun YongHyeonForce full duplex operation. 91bc23fe19SPyun YongHyeon.It Cm half-duplex 92bc23fe19SPyun YongHyeonForce half duplex operation. 93bc23fe19SPyun YongHyeon.El 94bc23fe19SPyun YongHyeon.Pp 95bc23fe19SPyun YongHyeonFor more information on configuring this device, see 96bc23fe19SPyun YongHyeon.Xr ifconfig 8 . 97cf754f45SSimon L. B. Nielsen.Sh HARDWARE 98cf754f45SSimon L. B. NielsenThe 99cf754f45SSimon L. B. Nielsen.Nm 100cf754f45SSimon L. B. Nielsendevice driver provides support for the following Ethernet controllers: 101cf754f45SSimon L. B. Nielsen.Pp 102cf754f45SSimon L. B. Nielsen.Bl -bullet -compact 103cf754f45SSimon L. B. Nielsen.It 104cf754f45SSimon L. B. NielsenJMicron JMC250 PCI Express Gigabit Ethernet controller 105cf754f45SSimon L. B. Nielsen.It 10649981fbaSPyun YongHyeonJMicron JMC251 PCI Express Gigabit Ethernet with Card Read Host controller 10749981fbaSPyun YongHyeon.It 108cf754f45SSimon L. B. NielsenJMicron JMC260 PCI Express Fast Ethernet controller 10949981fbaSPyun YongHyeon.It 11049981fbaSPyun YongHyeonJMicron JMC261 PCI Express Gigabit Ethernet with Card Read Host controller 111cf754f45SSimon L. B. Nielsen.El 112bc23fe19SPyun YongHyeon.Sh LOADER TUNABLES 113bc23fe19SPyun YongHyeonTunables can be set at the 114bc23fe19SPyun YongHyeon.Xr loader 8 115bc23fe19SPyun YongHyeonprompt before booting the kernel or stored in 116bc23fe19SPyun YongHyeon.Xr loader.conf 5 . 117bc23fe19SPyun YongHyeon.Bl -tag -width "xxxxxx" 118bc23fe19SPyun YongHyeon.It Va hw.jme.msi_disable 119bc23fe19SPyun YongHyeonThis tunable disables MSI support on the Ethernet hardware. 120bc23fe19SPyun YongHyeonThe default value is 0. 121bc23fe19SPyun YongHyeon.It Va hw.jme.msix_disable 122bc23fe19SPyun YongHyeonThis tunable disables MSI-X support on the Ethernet hardware. 123bc23fe19SPyun YongHyeonThe default value is 0. 124bc23fe19SPyun YongHyeon.El 125bc23fe19SPyun YongHyeon.Sh SYSCTL VARIABLES 126bc23fe19SPyun YongHyeonThe following variables are available as both 127bc23fe19SPyun YongHyeon.Xr sysctl 8 128bc23fe19SPyun YongHyeonvariables and 129bc23fe19SPyun YongHyeon.Xr loader 8 130bc23fe19SPyun YongHyeontunables: 131bc23fe19SPyun YongHyeon.Bl -tag -width "xxxxxx" 132bc23fe19SPyun YongHyeon.It Va dev.jme.%d.tx_coal_to 133b269e8dcSEitan AdlerThis variable sets the maximum amount of time to delay 134b269e8dcSEitan Adlerbefore sending a Tx completion interrupt, in microseconds. 135b269e8dcSEitan AdlerThe accepted range is 1 to 65535; the default is 100 (100us). 136bc23fe19SPyun YongHyeon.It Va dev.jme.%d.tx_coal_pkt 137b269e8dcSEitan AdlerThis variable sets the maximum number of outgoing packets which may be 138b269e8dcSEitan Adlercoalesced together into a single Tx completion interrupt. 139b269e8dcSEitan AdlerThe accepted range is 1 to 255; the default is 8. 140bc23fe19SPyun YongHyeon.It Va dev.jme.%d.rx_coal_to 141b269e8dcSEitan AdlerThis variable sets the maximum amount of time to wait for 142b269e8dcSEitan Adleradditional packets to arrive (for possible packet coalescing) 143b269e8dcSEitan Adlerbefore firing an Rx completion interrupt, in microseconds. 144b269e8dcSEitan AdlerThe accepted range is 1 to 65535; the default is 100 (100us). 145bc23fe19SPyun YongHyeon.It Va dev.jme.%d.rx_coal_pkt 146b269e8dcSEitan AdlerThis variable sets the maximum number of incoming packets which may be 147b269e8dcSEitan Adlercoalesced into a single Rx completion interrupt. 148b269e8dcSEitan AdlerThe accepted range is 1 to 255; the default is 2. 149bc23fe19SPyun YongHyeon.It Va dev.jme.%d.process_limit 150b269e8dcSEitan AdlerThis variable sets the maximum number of events that will be processed 151b269e8dcSEitan Adlerin a single batch before the handler is requeued into a taskqueue. 152b269e8dcSEitan AdlerThe accepted range is 10 to 255; the default value is 128 events. 153bc23fe19SPyun YongHyeonThe interface does not need to be brought down and up again before 154bc23fe19SPyun YongHyeona change takes effect. 155bc23fe19SPyun YongHyeon.El 156bc23fe19SPyun YongHyeon.Sh SEE ALSO 157bc23fe19SPyun YongHyeon.Xr altq 4 , 158bc23fe19SPyun YongHyeon.Xr arp 4 , 159bc23fe19SPyun YongHyeon.Xr miibus 4 , 160bc23fe19SPyun YongHyeon.Xr netintro 4 , 161bc23fe19SPyun YongHyeon.Xr ng_ether 4 , 162bc23fe19SPyun YongHyeon.Xr vlan 4 , 163bc23fe19SPyun YongHyeon.Xr ifconfig 8 164bc23fe19SPyun YongHyeon.Sh HISTORY 165bc23fe19SPyun YongHyeonThe 166bc23fe19SPyun YongHyeon.Nm 167bc23fe19SPyun YongHyeondriver was written by 168*6c899950SBaptiste Daroussin.An Pyun YongHyeon Aq Mt yongari@FreeBSD.org . 169bc23fe19SPyun YongHyeonIt first appeared in 170bc23fe19SPyun YongHyeon.Fx 7.1 . 171d67a08c3SPyun YongHyeon.Sh CAVEATS 172d67a08c3SPyun YongHyeonThe 173d67a08c3SPyun YongHyeon.Nm 174d67a08c3SPyun YongHyeondriver tries to avoid unnecessary station address reprogramming for 175d67a08c3SPyun YongHyeoncontrollers that use eFuse to store station address. 176d67a08c3SPyun YongHyeonThe number of times that eFuse can be safely reprogrammed is 16 at 177d67a08c3SPyun YongHyeonmost. 178b269e8dcSEitan AdlerIn addition, there is no way to restore the factory default station 179b269e8dcSEitan Adleraddress once the station address has been reprogrammed via eFuse. 180b269e8dcSEitan AdlerIt is highly recommended not to reprogram the station address and 181b269e8dcSEitan Adlerit is the responsibility of the administrator to store the original station 182b269e8dcSEitan Adleraddress in a safe place when station address is changed. 183e5064ffcSPyun YongHyeon.Pp 184e5064ffcSPyun YongHyeonThere are two known 1000baseT link establishment issues with JMC25x. 185e5064ffcSPyun YongHyeonIf the full mask revision number of JMC25x controller is less than 186b269e8dcSEitan Adleror equal to 4 and the link partner enabled the IEEE 802.3az Energy Efficient 187b269e8dcSEitan AdlerEthernet feature, the controller will not be able to establish a 188e5064ffcSPyun YongHyeon1000baseT link. 189b269e8dcSEitan AdlerAlso, if the length of the cable is longer than 120 meters, the controller 190e5064ffcSPyun YongHyeoncan not establish a 1000baseT link. 191b269e8dcSEitan AdlerThe known workaround for these issues is to force manual link 192e5064ffcSPyun YongHyeonconfiguration with 100baseTX instead of relying on auto-negotiation. 193b269e8dcSEitan AdlerThe full mask revision number of controller can be checked with the 194e5064ffcSPyun YongHyeonverbose kernel boot option. 195b269e8dcSEitan AdlerUse the lower nibble of the chip revision number to get the 196b269e8dcSEitan Adlerfull mask revision of the controller. 197