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.\" 25b269e8dcSEitan Adler.Dd March 4, 2012 26bc23fe19SPyun YongHyeon.Dt JME 4 27bc23fe19SPyun YongHyeon.Os 28bc23fe19SPyun YongHyeon.Sh NAME 29bc23fe19SPyun YongHyeon.Nm jme 30bc23fe19SPyun YongHyeon.Nd JMicron Gigabit/Fast Ethernet driver 31bc23fe19SPyun YongHyeon.Sh SYNOPSIS 32bc23fe19SPyun YongHyeonTo compile this driver into the kernel, 33bc23fe19SPyun YongHyeonplace the following lines in your 34bc23fe19SPyun YongHyeonkernel configuration file: 35bc23fe19SPyun YongHyeon.Bd -ragged -offset indent 36bc23fe19SPyun YongHyeon.Cd "device miibus" 37bc23fe19SPyun YongHyeon.Cd "device jme" 38bc23fe19SPyun YongHyeon.Ed 39bc23fe19SPyun YongHyeon.Pp 40bc23fe19SPyun YongHyeonAlternatively, to load the driver as a 41bc23fe19SPyun YongHyeonmodule at boot time, place the following line in 42bc23fe19SPyun YongHyeon.Xr loader.conf 5 : 43bc23fe19SPyun YongHyeon.Bd -literal -offset indent 44bc23fe19SPyun YongHyeonif_jme_load="YES" 45bc23fe19SPyun YongHyeon.Ed 46bc23fe19SPyun YongHyeon.Sh DESCRIPTION 47bc23fe19SPyun YongHyeonThe 48bc23fe19SPyun YongHyeon.Nm 4949981fbaSPyun YongHyeondevice driver provides support for JMicron JMC25x PCI Express 5049981fbaSPyun YongHyeonGigabit Ethernet controllers and JMicron JMC26x PCI Express Fast 51bc23fe19SPyun YongHyeonEthernet controllers. 52bc23fe19SPyun YongHyeon.Pp 53bc23fe19SPyun YongHyeonAll LOMs supported by the 54bc23fe19SPyun YongHyeon.Nm 55bc23fe19SPyun YongHyeondriver have TCP/UDP/IP checksum offload for both transmit and receive, 56bc23fe19SPyun YongHyeonTCP segmentation offload (TSO), hardware VLAN tag stripping/insertion 57bc23fe19SPyun YongHyeonfeatures, Wake On Lan (WOL) and an interrupt coalescing/moderation 58bc23fe19SPyun YongHyeonmechanism as well as a 64-bit multicast hash filter. 59bc23fe19SPyun YongHyeon.Pp 6049981fbaSPyun YongHyeonThe JMC25x also supports Jumbo Frames (up to 9216 bytes), which can be 61bc23fe19SPyun YongHyeonconfigured via the interface MTU setting. 62bc23fe19SPyun YongHyeonSelecting an MTU larger than 1500 bytes with the 63bc23fe19SPyun YongHyeon.Xr ifconfig 8 64bc23fe19SPyun YongHyeonutility configures the adapter to receive and transmit Jumbo Frames. 65bc23fe19SPyun YongHyeon.Pp 66bc23fe19SPyun YongHyeonThe 67bc23fe19SPyun YongHyeon.Nm 68bc23fe19SPyun YongHyeondriver supports the following media types: 69bc23fe19SPyun YongHyeon.Bl -tag -width ".Cm 10baseT/UTP" 70bc23fe19SPyun YongHyeon.It Cm autoselect 71bc23fe19SPyun YongHyeonEnable autoselection of the media type and options. 72bc23fe19SPyun YongHyeonThe user can manually override 73bc23fe19SPyun YongHyeonthe autoselected mode by adding media options to 74bc23fe19SPyun YongHyeon.Xr rc.conf 5 . 75bc23fe19SPyun YongHyeon.It Cm 10baseT/UTP 76bc23fe19SPyun YongHyeonSet 10Mbps operation. 77bc23fe19SPyun YongHyeon.It Cm 100baseTX 78bc23fe19SPyun YongHyeonSet 100Mbps (Fast Ethernet) operation. 79bc23fe19SPyun YongHyeon.It Cm 1000baseTX 80bc23fe19SPyun YongHyeonSet 1000baseTX operation over twisted pair. 81bc23fe19SPyun YongHyeon.El 82bc23fe19SPyun YongHyeon.Pp 83bc23fe19SPyun YongHyeonThe 84bc23fe19SPyun YongHyeon.Nm 85bc23fe19SPyun YongHyeondriver supports the following media options: 86bc23fe19SPyun YongHyeon.Bl -tag -width ".Cm full-duplex" 87bc23fe19SPyun YongHyeon.It Cm full-duplex 88bc23fe19SPyun YongHyeonForce full duplex operation. 89bc23fe19SPyun YongHyeon.It Cm half-duplex 90bc23fe19SPyun YongHyeonForce half duplex operation. 91bc23fe19SPyun YongHyeon.El 92bc23fe19SPyun YongHyeon.Pp 93bc23fe19SPyun YongHyeonFor more information on configuring this device, see 94bc23fe19SPyun YongHyeon.Xr ifconfig 8 . 95cf754f45SSimon L. B. Nielsen.Sh HARDWARE 96cf754f45SSimon L. B. NielsenThe 97cf754f45SSimon L. B. Nielsen.Nm 98cf754f45SSimon L. B. Nielsendevice driver provides support for the following Ethernet controllers: 99cf754f45SSimon L. B. Nielsen.Pp 100cf754f45SSimon L. B. Nielsen.Bl -bullet -compact 101cf754f45SSimon L. B. Nielsen.It 102cf754f45SSimon L. B. NielsenJMicron JMC250 PCI Express Gigabit Ethernet controller 103cf754f45SSimon L. B. Nielsen.It 10449981fbaSPyun YongHyeonJMicron JMC251 PCI Express Gigabit Ethernet with Card Read Host controller 10549981fbaSPyun YongHyeon.It 106cf754f45SSimon L. B. NielsenJMicron JMC260 PCI Express Fast Ethernet controller 10749981fbaSPyun YongHyeon.It 10849981fbaSPyun YongHyeonJMicron JMC261 PCI Express Gigabit Ethernet with Card Read Host controller 109cf754f45SSimon L. B. Nielsen.El 110bc23fe19SPyun YongHyeon.Sh LOADER TUNABLES 111bc23fe19SPyun YongHyeonTunables can be set at the 112bc23fe19SPyun YongHyeon.Xr loader 8 113bc23fe19SPyun YongHyeonprompt before booting the kernel or stored in 114bc23fe19SPyun YongHyeon.Xr loader.conf 5 . 115bc23fe19SPyun YongHyeon.Bl -tag -width "xxxxxx" 116bc23fe19SPyun YongHyeon.It Va hw.jme.msi_disable 117bc23fe19SPyun YongHyeonThis tunable disables MSI support on the Ethernet hardware. 118bc23fe19SPyun YongHyeonThe default value is 0. 119bc23fe19SPyun YongHyeon.It Va hw.jme.msix_disable 120bc23fe19SPyun YongHyeonThis tunable disables MSI-X support on the Ethernet hardware. 121bc23fe19SPyun YongHyeonThe default value is 0. 122bc23fe19SPyun YongHyeon.El 123bc23fe19SPyun YongHyeon.Sh SYSCTL VARIABLES 124bc23fe19SPyun YongHyeonThe following variables are available as both 125bc23fe19SPyun YongHyeon.Xr sysctl 8 126bc23fe19SPyun YongHyeonvariables and 127bc23fe19SPyun YongHyeon.Xr loader 8 128bc23fe19SPyun YongHyeontunables: 129bc23fe19SPyun YongHyeon.Bl -tag -width "xxxxxx" 130bc23fe19SPyun YongHyeon.It Va dev.jme.%d.tx_coal_to 131b269e8dcSEitan AdlerThis variable sets the maximum amount of time to delay 132b269e8dcSEitan Adlerbefore sending a Tx completion interrupt, in microseconds. 133b269e8dcSEitan AdlerThe accepted range is 1 to 65535; the default is 100 (100us). 134bc23fe19SPyun YongHyeon.It Va dev.jme.%d.tx_coal_pkt 135b269e8dcSEitan AdlerThis variable sets the maximum number of outgoing packets which may be 136b269e8dcSEitan Adlercoalesced together into a single Tx completion interrupt. 137b269e8dcSEitan AdlerThe accepted range is 1 to 255; the default is 8. 138bc23fe19SPyun YongHyeon.It Va dev.jme.%d.rx_coal_to 139b269e8dcSEitan AdlerThis variable sets the maximum amount of time to wait for 140b269e8dcSEitan Adleradditional packets to arrive (for possible packet coalescing) 141b269e8dcSEitan Adlerbefore firing an Rx completion interrupt, in microseconds. 142b269e8dcSEitan AdlerThe accepted range is 1 to 65535; the default is 100 (100us). 143bc23fe19SPyun YongHyeon.It Va dev.jme.%d.rx_coal_pkt 144b269e8dcSEitan AdlerThis variable sets the maximum number of incoming packets which may be 145b269e8dcSEitan Adlercoalesced into a single Rx completion interrupt. 146b269e8dcSEitan AdlerThe accepted range is 1 to 255; the default is 2. 147bc23fe19SPyun YongHyeon.It Va dev.jme.%d.process_limit 148b269e8dcSEitan AdlerThis variable sets the maximum number of events that will be processed 149b269e8dcSEitan Adlerin a single batch before the handler is requeued into a taskqueue. 150b269e8dcSEitan AdlerThe accepted range is 10 to 255; the default value is 128 events. 151bc23fe19SPyun YongHyeonThe interface does not need to be brought down and up again before 152bc23fe19SPyun YongHyeona change takes effect. 153bc23fe19SPyun YongHyeon.El 154bc23fe19SPyun YongHyeon.Sh SEE ALSO 155bc23fe19SPyun YongHyeon.Xr altq 4 , 156bc23fe19SPyun YongHyeon.Xr arp 4 , 157bc23fe19SPyun YongHyeon.Xr miibus 4 , 158bc23fe19SPyun YongHyeon.Xr netintro 4 , 159bc23fe19SPyun YongHyeon.Xr ng_ether 4 , 160bc23fe19SPyun YongHyeon.Xr vlan 4 , 161bc23fe19SPyun YongHyeon.Xr ifconfig 8 162bc23fe19SPyun YongHyeon.Sh HISTORY 163bc23fe19SPyun YongHyeonThe 164bc23fe19SPyun YongHyeon.Nm 165bc23fe19SPyun YongHyeondriver was written by 166*6c899950SBaptiste Daroussin.An Pyun YongHyeon Aq Mt yongari@FreeBSD.org . 167bc23fe19SPyun YongHyeonIt first appeared in 168bc23fe19SPyun YongHyeon.Fx 7.1 . 169d67a08c3SPyun YongHyeon.Sh CAVEATS 170d67a08c3SPyun YongHyeonThe 171d67a08c3SPyun YongHyeon.Nm 172d67a08c3SPyun YongHyeondriver tries to avoid unnecessary station address reprogramming for 173d67a08c3SPyun YongHyeoncontrollers that use eFuse to store station address. 174d67a08c3SPyun YongHyeonThe number of times that eFuse can be safely reprogrammed is 16 at 175d67a08c3SPyun YongHyeonmost. 176b269e8dcSEitan AdlerIn addition, there is no way to restore the factory default station 177b269e8dcSEitan Adleraddress once the station address has been reprogrammed via eFuse. 178b269e8dcSEitan AdlerIt is highly recommended not to reprogram the station address and 179b269e8dcSEitan Adlerit is the responsibility of the administrator to store the original station 180b269e8dcSEitan Adleraddress in a safe place when station address is changed. 181e5064ffcSPyun YongHyeon.Pp 182e5064ffcSPyun YongHyeonThere are two known 1000baseT link establishment issues with JMC25x. 183e5064ffcSPyun YongHyeonIf the full mask revision number of JMC25x controller is less than 184b269e8dcSEitan Adleror equal to 4 and the link partner enabled the IEEE 802.3az Energy Efficient 185b269e8dcSEitan AdlerEthernet feature, the controller will not be able to establish a 186e5064ffcSPyun YongHyeon1000baseT link. 187b269e8dcSEitan AdlerAlso, if the length of the cable is longer than 120 meters, the controller 188e5064ffcSPyun YongHyeoncan not establish a 1000baseT link. 189b269e8dcSEitan AdlerThe known workaround for these issues is to force manual link 190e5064ffcSPyun YongHyeonconfiguration with 100baseTX instead of relying on auto-negotiation. 191b269e8dcSEitan AdlerThe full mask revision number of controller can be checked with the 192e5064ffcSPyun YongHyeonverbose kernel boot option. 193b269e8dcSEitan AdlerUse the lower nibble of the chip revision number to get the 194b269e8dcSEitan Adlerfull mask revision of the controller. 195