freebsd-skq/sys
John Baldwin f91fca5ba7 Add a driver to create VF devices on Chelsio T4/T5 NICs.
Chelsio NICs are a bit unique compared to some other NICs in that they
expose different functionality on different physical functions.  In
particular, PF4 is used to manage the NIC interfaces ('t4nex' and 't5nex').
However, PF4 is not able to create VF devices.  Instead, VFs are only
supported by physical functions 0 through 3.  This commit adds 't4iov'
and 't5iov' drivers that attach to PF0-3.

One extra wrinkle is that the iov devices cannot enable SR-IOV until the
firwmare has been initialized by the main PF4 driver.  To handle this
case, a new t4_if kobj interface has been added to permit cross-calls
between the PF drivers.  The PF4 driver notifies sibling drivers when it
is fully attached.  It also requests sibling drivers to detach before it
detaches.  Sibling drivers query the PF4 driver during their attach
routine to see if it is attached.  If not, the sibling drivers defer
their attach actions until the PF4 driver informs them it is attached.

VF devices are associated with a single port on the NIC.  VF devices
created from PF0 are associated with the first port on the NIC, VFs
from PF1 are associated with the second port, etc.  VF devices can
only be created from a PF device that has an associated port.  Thus,
on a 2-port card, VFs are only supported on PF0 and PF1.

Reviewed by:	np (earlier versions)
MFC after:	1 month
Sponsored by:	Chelsio Communications
2016-07-22 22:46:41 +00:00
..
amd64 Increase number of I/O APIC pins from 24 to 32 to give PCI up to 16 IRQs. 2016-07-14 14:35:25 +00:00
arm PC5 doesn't have mmc2 function. 2016-07-22 14:39:55 +00:00
arm64 Implement bus_print_child to print the resources used by the ITS driver. 2016-07-15 13:25:47 +00:00
boot Do not use TERM_EMU on arm and arm64 as it doesn't behave well with serial console. 2016-07-19 19:00:22 +00:00
bsm
cam Remove some bogus comments and printfs. Also, we can't 2016-07-21 03:11:37 +00:00
cddl Merge {amd64,i386}/instr_size.c into x86_instr_size.c. 2016-07-20 00:02:10 +00:00
compat Fix a copy/paste bug introduced during X86_64 Linuxulator work. 2016-07-10 08:22:04 +00:00
conf Add a driver to create VF devices on Chelsio T4/T5 NICs. 2016-07-22 22:46:41 +00:00
contrib Fix nvlist array memory leak. 2016-07-17 15:36:02 +00:00
crypto Connect the SHA-512t256 and Skein hashing algorithms to ZFS 2016-05-31 04:12:14 +00:00
ddb Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
dev Add a driver to create VF devices on Chelsio T4/T5 NICs. 2016-07-22 22:46:41 +00:00
fs Handle IOC_VOID special case of passing an integer IOCTL argument through CUSE. 2016-07-06 22:21:22 +00:00
gdb
geom Use g_resize_provider() to change the size of GEOM_DISK provider, 2016-07-19 05:36:21 +00:00
gnu Revert changes for local testing, inadvertantly commited in r300811. 2016-05-26 23:59:42 +00:00
i386 Rename PTRACE_SYSCALL to LINUX_PTRACE_SYSCALL. 2016-07-16 00:54:46 +00:00
isa
kern Add more documentation regarding unsafe AIO requests. 2016-07-21 22:49:47 +00:00
kgssapi
libkern
mips mips/ddb: fix MIPS backtrace truncation and MIPS32 register printing. 2016-07-12 02:12:31 +00:00
modules Add a driver to create VF devices on Chelsio T4/T5 NICs. 2016-07-22 22:46:41 +00:00
net Negotiate/disable TXCSUM_IPV6 same as TXCSUM. 2016-07-18 16:58:47 +00:00
net80211 [net80211] teach AMRR to log the initial MCS rate as "MCS X" 2016-07-01 19:58:13 +00:00
netgraph Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
netinet Fix per-connection L2 caching in fast path 2016-07-22 02:11:49 +00:00
netinet6 Fix per-connection L2 caching in fast path 2016-07-22 02:11:49 +00:00
netipsec Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
netnatm
netpfil Add named dynamic states support to ipfw(4). 2016-07-19 04:56:59 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm When sleeping waiting for either local or remote advisory lock, 2016-06-26 20:08:42 +00:00
ofed Fix bug in iwcm that caused a panic in iw_cm_wq when krping is run 2016-06-14 20:58:05 +00:00
opencrypto
pc98
powerpc Remove booke_enable_l3_cache declaration and remaining definition. 2016-07-17 19:24:28 +00:00
riscv Update comments for the MD functions managing contexts for new 2016-06-16 12:05:44 +00:00
rpc Don't test for xpt not being NULL before calling svc_xprt_free(..) 2016-07-11 07:24:56 +00:00
security Add AUE_WAIT6 handling to the BSM conversion switch statement, reusing 2016-07-11 13:06:17 +00:00
sparc64 Update comments for the MD functions managing contexts for new 2016-06-16 12:05:44 +00:00
sys Provide counter_warning(9) KPI which allows to issue limited number of 2016-07-21 16:34:56 +00:00
teken
tests
tools
ufs Ensure that the UFS directory vnode' vm_object is properly sized 2016-07-20 14:40:56 +00:00
vm Add a comment describing the 'fast path' that was introduced in r270011. 2016-07-20 17:20:22 +00:00
x86 Don't print same value twice, one in decimal once in hex. This makes 2016-07-18 03:59:03 +00:00
xdr
xen xen: Correct typo in #undef for symbol NBPL 2016-06-06 14:55:46 +00:00
Makefile