freebsd-nq/sys/dev
Pyun YongHyeon 0dbe28b3fb Add msk(4), a driver for Marvell/SysKonnect Yukon II Gigabit Ethernet
controller. Due to lack of documentation, this driver is based on the
code from sk(4) and Marvell's myk(4) driver for FreeBSD. I've also
adopted the OpenBSD interface name, msk(4) in order to reduce naming
differences between BSDs.
The msk(4) driver supports the following Gigabit Ethernet adapters.

o SysKonnect SK-9Sxx Gigabit Ethernet
o SysKonnect SK-9Exx Gigabit Ethernet
o Marvell Yukon 88E8021CU Gigabit Ethernet
o Marvell Yukon 88E8021 SX/LX Gigabit Ethernet
o Marvell Yukon 88E8022CU Gigabit Ethernet
o Marvell Yukon 88E8022 SX/LX Gigabit Ethernet
o Marvell Yukon 88E8061CU Gigabit Ethernet
o Marvell Yukon 88E8061 SX/LX Gigabit Ethernet
o Marvell Yukon 88E8062CU Gigabit Ethernet
o Marvell Yukon 88E8062 SX/LX Gigabit Ethernet
o Marvell Yukon 88E8035 Gigabit Ethernet
o Marvell Yukon 88E8036 Gigabit Ethernet
o Marvell Yukon 88E8038 Gigabit Ethernet
o Marvell Yukon 88E8050 Gigabit Ethernet
o Marvell Yukon 88E8052 Gigabit Ethernet
o Marvell Yukon 88E8053 Gigabit Ethernet
o Marvell Yukon 88E8055 Gigabit Ethernet
o Marvell Yukon 88E8056 Gigabit Ethernet
o D-Link 550SX Gigabit Ethernet
o D-Link 560T Gigabit Ethernet

Unlike OpenBSD/NetBSD msk(4), the msk(4) driver supports all hardware
features including TCP/UDP checksum offload for transmit, MSI, TCP
segmentation offload(TSO), hardware VLAN tag stripping/insertion,
and jumbo frames(up to 9022 bytes). The only unsupported hardware
feature except RLMT is Rx checksum offload which I don't know how to
make it work reliably.

Known Issues:
 It seems msk(4) does not work on the second port of dual port NIC.
 (The first port works without problems.)

Thanks to Marvell for releasing the BSD licensed myk(4) driver and
thanks to all users helped fixing bugs.

Tested by:	bz, philip, bms,
		YAMAMOTO Shigeru < shigeru AT iij DOT ad DOT jp >,
		Dmitry Pryanishnikov < dmitry AT atlantis DOT dp DOT ua >,
		Jia-Shiun Li < jiashiun AT gmail DOT com >,
		David Duchscher < daved AT tamu DOT edu >,
		Arno J. Klaassen < arno AT heho DOT snv DOT jussieu DOT fr>,
		Nicolae Namolovan < adrenalinup AT gmail DOT com>,
		Andre Guibert de Bruet < andy AT siliconlandmark DOT com >
		current ML
Tested on:	i386, amd64
2006-12-13 02:30:11 +00:00
..
aac Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
acpi_support Prevent freeing wild pointer when bailing out. 2006-11-06 12:14:27 +00:00
acpica Give Host-PCI bridge drivers their own pcib_alloc_msi() and 2006-12-12 19:27:01 +00:00
adlink Use the new bus_space/resource convenience functions. 2005-09-24 20:46:02 +00:00
advansys Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
agp The page queues lock is no longer required by vm_page_busy() or 2006-10-22 21:18:48 +00:00
aha Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ahb Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
aic 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
aic7xxx 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
amd Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
amr Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
an Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ar - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
arcmsr Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
arl Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
asr Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ata Deal more generically with the byteswap needed on !littleendian HW. 2006-11-17 11:13:47 +00:00
ath clarify shortcut return 2006-12-01 16:03:39 +00:00
atkbdc Fix LEDs not working when atkbd is an active keyboard and the physical 2006-10-25 13:35:42 +00:00
auxio - Only touch the LED bit of the (LED) AUXIO register when turning the 2006-01-26 19:04:18 +00:00
awi In FreeBSD, we don't need sc_power callback 2006-12-12 03:05:04 +00:00
bce Fix compile with BCE_DEBUG. The last one tripped up gcc 2.95 on 4.x even 2006-12-06 22:53:22 +00:00
bfe Add suspend/resume support. Unlike many other NIC drivers, 2006-11-20 23:30:07 +00:00
bge Fix support for certain 575x/578x chips. This consists of the following: 2006-12-12 05:11:12 +00:00
bktr Update prototype for smbus callback change. 2006-09-18 20:17:42 +00:00
buslogic Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
cardbus Minor cleanup of CIS parsing. 2006-06-12 03:28:42 +00:00
ce Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ciss o ciss.ko depends on cam and pci. 2006-11-30 15:14:17 +00:00
cm Make cm(4) driver MPSAFE. 2006-06-11 22:25:01 +00:00
cnw Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cp Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cpufreq Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cs - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ct Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
ctau Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cx Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
cy Catch up with new interrupt handling code. 2005-10-26 06:44:59 +00:00
dc - Use our own callout (the dc_tick() callout uses varying periods 2006-12-06 01:56:38 +00:00
dcons Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
de - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
digi Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dpt Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
drm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ed MFp4: 2006-06-12 04:30:42 +00:00
eisa
em remove no longer correct comment above em_read_pcie_cap_reg 2006-11-23 05:48:13 +00:00
en - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ep ALTQify ep(4). 2006-12-01 20:29:55 +00:00
esp Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ex Remove ifdef notyet SIOCGHWADDR vestige. 2006-02-04 08:16:41 +00:00
exca Cleanup sloppy ifdef. 2006-09-24 00:26:33 +00:00
fatm This driver has been MPSAFE from the beginning so declare the interrupt 2006-03-21 14:56:42 +00:00
fb Remove the DPMS code in creator_blank_display(), as it causes some 2006-08-24 22:00:24 +00:00
fdc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
fe Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
firewire Correct a signedness bug which allowed members of the operator 2006-12-06 09:13:51 +00:00
flash MFp4: 2006-11-29 08:05:55 +00:00
fxp Grammar nit. 2006-12-01 13:07:52 +00:00
gem - Use the gem_tick() callout instead of if_slowtimo() for driving 2006-12-06 02:04:25 +00:00
gfb Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
harp
hatm
hfa
hifn Use newly added functions to simplify the code. 2006-06-04 22:17:25 +00:00
hme - Use the hme_tick() callout instead of if_slowtimo() for driving 2006-12-06 02:07:20 +00:00
hptmv Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
hwpmc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ic Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
ichsmb Minor overhaul of SMBus support: 2006-09-11 20:52:41 +00:00
ichwd Re-work the bus attachment somewhat. Make the rids unique for 2006-02-17 18:46:18 +00:00
ida
idt Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
ie Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
ieee488 Don't be noisy in case of shared interrupts. 2006-03-11 15:39:22 +00:00
if_ndis Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
iicbus const poison 2006-12-05 06:19:36 +00:00
iir Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
io
ipmi Fix some edge cases in detach() as well as a memory leak if we fail to 2006-12-06 15:10:11 +00:00
ips o Add Adaptec ServeRAID 7x IDs. IDs taken from Linux. 2006-10-05 07:28:43 +00:00
ipw Hold on to firmware images until the interface detaches since 2006-06-10 17:29:40 +00:00
isp Remove dependency on ispfw and firmware as modules. 2006-12-10 03:41:48 +00:00
ispfw The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
iwi Add header files <sys/lock.h> and <sys/mutex.h> for mtx_init() and friends. 2006-12-07 15:24:38 +00:00
ixgb Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
joy Unbreak second joystick (joy1) support. 2005-11-09 20:26:00 +00:00
kbd Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
kbdmux Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
le Use our own callout instead of if_slowtimo() for driving lance_watchdog() 2006-12-06 02:14:31 +00:00
led
lge - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
lmc Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
mc146818
mca
mcd
md Style nits. 2006-11-01 18:59:06 +00:00
mem
mfi Change the internal API for polled commands. Calling mfi_polled_command 2006-11-18 07:33:53 +00:00
mii o Add support code for newer Marvell PHYs. 2006-12-11 11:09:48 +00:00
mk48txx Fix spelling in a status message. 2006-09-01 20:14:06 +00:00
mlx
mly Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
mmc Preliminary MMC stack. This stack supports SD 1.0 cards only, but 2006-10-20 06:39:59 +00:00
mpt Make mpt_pci depend on pci and mpt_cam depend on CAM. 2006-12-10 01:13:56 +00:00
mse Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
msk Add msk(4), a driver for Marvell/SysKonnect Yukon II Gigabit Ethernet 2006-12-13 02:30:11 +00:00
mxge Fix mxge_submit_8rx() to behave like the comments says it does, 2006-11-29 15:30:39 +00:00
my - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ncv no need to print unload anymore 2006-07-14 04:36:57 +00:00
nfe Fix TX/RX checksum offload. 2006-11-27 04:47:27 +00:00
nge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
nmdm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nsp Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
null Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nve Fix an off by one error in struct nve_tx_desc's frags[] array as a result 2006-12-05 15:31:05 +00:00
ofw Add missing includes of priv.h. 2006-11-06 17:43:10 +00:00
patm Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
pbio Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
pccard Thomas Wintergerst reports that when this tsleep went away, certain 2006-08-09 00:05:54 +00:00
pccbb Batch of changes: 2006-08-12 09:06:55 +00:00
pcf - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
pci - Add constants for HT PCI capability registers including the various 2006-12-12 19:33:25 +00:00
pdq Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
powermac_nvram Add device to access and modify Open Firmware NVRAM settings in 2006-08-01 22:19:01 +00:00
ppbus Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
ppc Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
pst
puc Add SIIG 4 port serial card based on the Oxford OX16PCI954. 2006-09-04 18:27:14 +00:00
ral Add header files <sys/lock.h> and <sys/mutex.h> for mtx_init() and friends. 2006-12-07 15:24:38 +00:00
random Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ray tweak comments about OLDCARD workarounds 2006-10-19 05:25:53 +00:00
rc - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00
re Fix typo. 2006-11-21 05:41:11 +00:00
rndtest
rp - Make rp(4) 64-bit- and endian-clean as well as work on strict alignment 2006-11-20 12:59:27 +00:00
rr232x Make this compile with -Wundef. 2006-05-16 15:23:27 +00:00
safe Use newly added functions to simplify the code. 2006-06-04 22:17:25 +00:00
sbni Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
sbsh Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
scc Fix braino: The cl_range field should not hold the shifted I/O 2006-07-26 03:10:01 +00:00
scd
sf Whitespace nits. 2006-09-15 11:01:23 +00:00
si Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
sio Only treat positive values as errors... 2006-09-14 03:47:59 +00:00
sk provide routines to access VPD data at the PCI layer... 2006-10-09 16:15:56 +00:00
smbus Only support the SMB_OLD_BREAD ioctl if one of COMPAT_FREEBSD[456] is 2006-09-26 14:38:56 +00:00
sn Fix mismerge after last cvs update for the IFQ_DRV_DEQUEUE changes. 2006-02-04 08:19:00 +00:00
snc Fix -Wundef warnings from compiling GENERIC and LINT kernels of 2005-12-06 11:19:37 +00:00
snp
sound Fix distorted sound on ASUS P1-AH2 caused by accumulated input / output. 2006-12-11 18:45:11 +00:00
speaker Add /dev/speaker support to amd64. 2005-11-11 09:57:32 +00:00
spibus MFp4: when passing the transfer up the foodchain, make sure we go up 2006-10-20 07:11:52 +00:00
sr - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
stg no need to print unload anymore. 2006-07-14 04:35:59 +00:00
stge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
streams Clean up the svr4 socket cache and streams code some to make it more easily 2006-07-21 20:40:13 +00:00
sym 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
syscons Replace magic numbers for console bell types with defines. 2006-11-16 12:27:51 +00:00
tdfx Take the functionality contained in the former "options TDFX_LINUX" 2006-03-03 21:37:38 +00:00
ti Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
trm Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
twa Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 23:59:42 +00:00
twe Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
tx Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
txp Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
uart - In sunkbd_probe_keyboard() don't bother to determine the keyboard layout 2006-11-02 00:01:15 +00:00
ubsec Switch to using STAILQ_REMOVE_HEAD() instead of STAILQ_REMOVE_HEAD_UNTIL(). 2006-10-24 11:17:46 +00:00
usb defer all processing to a full fledged thread. 2006-12-11 09:57:41 +00:00
utopia
vge Fix the hardware VLAN tagging. TX was broken on little-endian 2006-11-30 21:01:59 +00:00
vkbd Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
vr Whitespace nits. 2006-09-15 11:01:23 +00:00
vx - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
watchdog Return zero when disabling watchdog, unless any of the drivers complain. 2005-09-29 12:31:44 +00:00
wds Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed. 2006-12-11 18:28:31 +00:00
wi replace if_watchdog w/ a private callout 2006-12-11 00:41:22 +00:00
wl Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
xe o Fix printf(9) formatting: do not use hardcode "0x" and "#" flags 2006-04-15 11:41:40 +00:00
zs Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00