.\" Copyright (c) 2006 Pyun YongHyeon
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD: release/10.0.0/share/man/man4/msk.4 222232 2011-05-23 22:02:15Z yongari $
.\"
.Dd May 23, 2011
.Dt MSK 4
.Os
.Sh NAME
.Nm msk
.Nd Marvell/SysKonnect Yukon II Gigabit Ethernet adapter driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device miibus"
.Cd "device msk"
.Ed
.Pp
Alternatively, to load the driver as a
module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
if_msk_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
device driver provides support for various NICs based on the
Marvell/SysKonnect Yukon II Gigabit Ethernet controller chip.
.Pp
All NICs supported by the
.Nm
driver have TCP/UDP/IP checksum offload for transmit, TCP
segmentation offload (TSO), hardware VLAN tag stripping/insertion
features and an interrupt moderation mechanism as well as a 64-bit
multicast hash filter.
The Yukon II supports TBI (ten bit interface) and GMII
transceivers, which means it can be used with either copper or
1000baseX fiber applications.
.Pp
The Yukon II also supports Jumbo Frames (up to 9022 bytes), which can be
configured via the interface MTU setting.
Selecting an MTU larger than 1500 bytes with the
.Xr ifconfig 8
utility configures the adapter to receive and transmit Jumbo Frames.
.Pp
The
.Nm
driver supports the following media types:
.Bl -tag -width ".Cm 10baseT/UTP"
.It Cm autoselect
Enable autoselection of the media type and options.
The user can manually override
the autoselected mode by adding media options to
.Xr rc.conf 5 .
.It Cm 10baseT/UTP
Set 10Mbps operation.
The
.Xr ifconfig 8
.Cm mediaopt
option can also be used to select either
.Cm full-duplex
or
.Cm half-duplex
modes.
.It Cm 100baseTX
Set 100Mbps (Fast Ethernet) operation.
The
.Xr ifconfig 8
.Cm mediaopt
option can also be used to select either
.Cm full-duplex
or
.Cm half-duplex
modes.
.It Cm 1000baseTX
Set 1000baseTX operation over twisted pair.
The
.Xr ifconfig 8
.Cm mediaopt
option can also be used to select either
.Cm full-duplex
or
.Cm half-duplex
modes.
.It Cm 1000baseSX
Set 1000Mbps (Gigabit Ethernet) operation.
Both
.Cm full-duplex
and
.Cm half-duplex
modes are supported.
.El
.Pp
The
.Nm
driver supports the following media options:
.Bl -tag -width ".Cm full-duplex"
.It Cm full-duplex
Force full duplex operation.
.It Cm half-duplex
Force half duplex operation.
.El
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
The
.Nm
driver provides support for various NICs based on the Marvell/SysKonnect
Yukon II based Gigabit Ethernet controller chips, including:
.Pp
.Bl -bullet -compact
.It
D-Link 550SX Gigabit Ethernet
.It
D-Link 560SX Gigabit Ethernet
.It
D-Link 560T Gigabit Ethernet
.It
Marvell Yukon 88E8021CU Gigabit Ethernet
.It
Marvell Yukon 88E8021 SX/LX Gigabit Ethernet
.It
Marvell Yukon 88E8022CU Gigabit Ethernet
.It
Marvell Yukon 88E8022 SX/LX Gigabit Ethernet
.It
Marvell Yukon 88E8061CU Gigabit Ethernet
.It
Marvell Yukon 88E8061 SX/LX Gigabit Ethernet
.It
Marvell Yukon 88E8062CU Gigabit Ethernet
.It
Marvell Yukon 88E8062 SX/LX Gigabit Ethernet
.It
Marvell Yukon 88E8035 Fast Ethernet
.It
Marvell Yukon 88E8036 Fast Ethernet
.It
Marvell Yukon 88E8038 Fast Ethernet
.It
Marvell Yukon 88E8039 Fast Ethernet
.It
Marvell Yukon 88E8040 Fast Ethernet
.It
Marvell Yukon 88E8040T Fast Ethernet
.It
Marvell Yukon 88E8042 Fast Ethernet
.It
Marvell Yukon 88E8048 Fast Ethernet
.It
Marvell Yukon 88E8050 Gigabit Ethernet
.It
Marvell Yukon 88E8052 Gigabit Ethernet
.It
Marvell Yukon 88E8053 Gigabit Ethernet
.It
Marvell Yukon 88E8055 Gigabit Ethernet
.It
Marvell Yukon 88E8056 Gigabit Ethernet
.It
Marvell Yukon 88E8057 Gigabit Ethernet
.It
Marvell Yukon 88E8058 Gigabit Ethernet
.It
Marvell Yukon 88E8059 Gigabit Ethernet
.It
Marvell Yukon 88E8070 Gigabit Ethernet
.It
Marvell Yukon 88E8071 Gigabit Ethernet
.It
Marvell Yukon 88E8072 Gigabit Ethernet
.It
Marvell Yukon 88E8075 Gigabit Ethernet
.It
SysKonnect SK-9Sxx Gigabit Ethernet
.It
SysKonnect SK-9Exx Gigabit Ethernet
.El
.Sh LOADER TUNABLES
Tunables can be set at the
.Xr loader 8
prompt before booting the kernel or stored in
.Xr loader.conf 5 .
.Bl -tag -width indent
.It Va hw.msk.msi_disable
This tunable disables MSI support on the Ethernet hardware.
The default value is 0.
.El
.Sh SYSCTL VARIABLES
The following variables are available as both
.Xr sysctl 8
variables and
.Xr loader 8
tunables:
.Bl -tag -width indent
.It Va dev.mskc.%d.int_holdoff
Maximum number of time to delay interrupts.
The valid range is 0 to 34359738 for 125MHz clock in units of 1us,
the default is 100 (100us).
The interface need to be brought down and up again before a change
takes effect.
.It Va dev.mskc.%d.process_limit
Maximum amount of Rx events to be processed in the event loop before
rescheduling a taskqueue.
The accepted range is 30 to 256, the default value is 128 events.
The interface does not need to be brought down and up again before
a change takes effect.
.El
.Sh SEE ALSO
.Xr altq 4 ,
.Xr arp 4 ,
.Xr miibus 4 ,
.Xr netintro 4 ,
.Xr ng_ether 4 ,
.Xr vlan 4 ,
.Xr ifconfig 8
.Sh HISTORY
The
.Nm
driver was written by
.An Pyun YongHyeon
.Aq yongari@FreeBSD.org
and it is based on
.Xr sk 4
and Marvell's
.Fx
driver.
It first appeared in
.Fx 7.0
and
.Fx 6.3 .
