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