aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/cxgbe/t4_iov.c
Commit message (Collapse)AuthorAgeFilesLines
* cxgbe(4): Allow the PF driver to set a VF's MAC address.Navdeep Parhar2020-11-091-0/+65
| | | | | | | | | | | The MAC address can be set with the optional mac-addr property in the VF section of the iovctl.conf(5) used to instantiate the VFs. MFC after: 2 weeks Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=367502
* cxgbev(4): Catch up with the pciids in the PF driver.Navdeep Parhar2019-11-151-10/+10
| | | | | | | | MFC after: 3 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=354742
* cxgbe(4): Update the VF device ids too. This should have been partNavdeep Parhar2017-05-051-1/+1
| | | | | | | | | | | of r317820. Reported by: jhb@ MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=317837
* cxgbe(4): Update the list of PCIe devices claimed by the driver. AtNavdeep Parhar2017-05-051-0/+14
| | | | | | | | | | | this point any board with a T6 should just work. Obtained from: Chelsio Communications MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=317820
* Fix a couple of issues with t4iov probe and attach.John Baldwin2017-01-311-0/+12
| | | | | | | | | | | | | | | - Check for Chelsio vendor ID in probe routines. - Fail attach instead of faulting if pci_find_dbsf() doesn't find a device. PR: 216539 Reported by: asomers Tested by: Dave Baukus <daveb@spectralogic.com> MFC after: 3 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=313020
* cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards willNavdeep Parhar2016-09-161-1/+50
| | | | | | | | | | | | | come up as 't6nex' nexus devices with 'cc' ports hanging off them. The T6 firmware and configuration files will be added as soon as they are released. For now the driver will try to work with whatever firmware and configuration is on the card's flash. Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=305852
* Whitespace nits.Navdeep Parhar2016-09-151-2/+2
| | | | Notes: svn path=/head/; revision=305851
* Remove explicit device_verbose() from the t4iov driver detach routineJohn Baldwin2016-09-121-1/+0
| | | | | | | now that this case is handled generically. Notes: svn path=/head/; revision=305752
* Use device_verbose() to undo device_quiet() when detaching from t[45]iovX.John Baldwin2016-08-291-2/+7
| | | | | | | | | | | | | The device quiet flag is not automatically reset on detach, so it is inherited by other device drivers (e.g. when switching a device driver over to ppt for PCI pass through). Cope with this behavior by explicitly marking the device verbose during detach so that the next driver can make its own decision. Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=305032
* Use the port device name for the iov device for Chelsio T4/T5 cards.John Baldwin2016-08-031-6/+10
| | | | | | | | | | | | | | | | | | | | Chelsio T4/T5 adapters are multifunction cards. The main driver uses physical function 4 (PF4). However, VF devices for SR-IOV are only supported on physical functions 0 through 3, where PF0 creates VFs tied to port 0, etc. The t4iov/t5iov driver was previously added to create VF devices for ports that are present on each adapter. This change uses the recently added pci_iov_attach_name() function to name the character device in /dev/iov after the associated port on the card (e.g. /dev/iov/cxl0 is used to create VFs that share the cxl0 port). With this in place, mark the t4iov/t5iov devices quiet to prevent them from cluttering dmesg. Reviewed by: rstone Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D7402 Notes: svn path=/head/; revision=303722
* Add a driver to create VF devices on Chelsio T4/T5 NICs.John Baldwin2016-07-221-0/+289
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 Notes: svn path=/head/; revision=303205