1c9b9f5f8SMichael S. Tsirkin# SPDX-License-Identifier: GPL-2.0-only 258ad1372SMichael S. Tsirkinmenuconfig VDPA 358ad1372SMichael S. Tsirkin tristate "vDPA drivers" 433b34750SParav Pandit depends on NET 5c9b9f5f8SMichael S. Tsirkin help 6c9b9f5f8SMichael S. Tsirkin Enable this module to support vDPA device that uses a 7c9b9f5f8SMichael S. Tsirkin datapath which complies with virtio specifications with 8c9b9f5f8SMichael S. Tsirkin vendor specific control path. 9c9b9f5f8SMichael S. Tsirkin 1058ad1372SMichael S. Tsirkinif VDPA 11c9b9f5f8SMichael S. Tsirkin 12c9b9f5f8SMichael S. Tsirkinconfig VDPA_SIM 13db1e8bb6SMax Gurtovoy tristate "vDPA device simulator core" 1492193b35SChristoph Hellwig depends on RUNTIME_TESTING_MENU 15c9b9f5f8SMichael S. Tsirkin select VHOST_RING 164080fc10SStefano Garzarella select IOMMU_IOVA 17db1e8bb6SMax Gurtovoy help 18db1e8bb6SMax Gurtovoy Enable this module to support vDPA device simulators. These devices 19db1e8bb6SMax Gurtovoy are used for testing, prototyping and development of vDPA. 20db1e8bb6SMax Gurtovoy 21db1e8bb6SMax Gurtovoyconfig VDPA_SIM_NET 22db1e8bb6SMax Gurtovoy tristate "vDPA simulator for networking device" 23db1e8bb6SMax Gurtovoy depends on VDPA_SIM 24a312db69SLaurent Vivier select GENERIC_NET_UTILS 25c9b9f5f8SMichael S. Tsirkin help 26db1e8bb6SMax Gurtovoy vDPA networking device simulator which loops TX traffic back to RX. 27c9b9f5f8SMichael S. Tsirkin 280c853c2cSMax Gurtovoyconfig VDPA_SIM_BLOCK 290c853c2cSMax Gurtovoy tristate "vDPA simulator for block device" 300c853c2cSMax Gurtovoy depends on VDPA_SIM 310c853c2cSMax Gurtovoy help 320c853c2cSMax Gurtovoy vDPA block device simulator which terminates IO request in a 330c853c2cSMax Gurtovoy memory buffer. 340c853c2cSMax Gurtovoy 35c8a6153bSXie Yongjiconfig VDPA_USER 36c8a6153bSXie Yongji tristate "VDUSE (vDPA Device in Userspace) support" 37c8a6153bSXie Yongji depends on EVENTFD && MMU && HAS_DMA 38*de6c85bfSChristoph Hellwig # 39*de6c85bfSChristoph Hellwig # This driver incorrectly tries to override the dma_ops. It should 40*de6c85bfSChristoph Hellwig # never have done that, but for now keep it working on architectures 41*de6c85bfSChristoph Hellwig # that use dma ops 42*de6c85bfSChristoph Hellwig # 43*de6c85bfSChristoph Hellwig depends on ARCH_HAS_DMA_OPS 44c8a6153bSXie Yongji select VHOST_IOTLB 45c8a6153bSXie Yongji select IOMMU_IOVA 46c8a6153bSXie Yongji help 47c8a6153bSXie Yongji With VDUSE it is possible to emulate a vDPA Device 48c8a6153bSXie Yongji in a userspace program. 49c8a6153bSXie Yongji 50c9b9f5f8SMichael S. Tsirkinconfig IFCVF 5158ad1372SMichael S. Tsirkin tristate "Intel IFC VF vDPA driver" 52c9b9f5f8SMichael S. Tsirkin depends on PCI_MSI 53c9b9f5f8SMichael S. Tsirkin help 54c9b9f5f8SMichael S. Tsirkin This kernel module can drive Intel IFC VF NIC to offload 55c9b9f5f8SMichael S. Tsirkin virtio dataplane traffic to hardware. 56c9b9f5f8SMichael S. Tsirkin To compile this driver as a module, choose M here: the module will 57c9b9f5f8SMichael S. Tsirkin be called ifcvf. 58c9b9f5f8SMichael S. Tsirkin 5929064bfdSEli Cohenconfig MLX5_VDPA 60aff90770SEli Cohen bool 6198701a2aSRandy Dunlap select VHOST_IOTLB 6229064bfdSEli Cohen help 6329064bfdSEli Cohen Support library for Mellanox VDPA drivers. Provides code that is 6429064bfdSEli Cohen common for all types of VDPA drivers. The following drivers are planned: 6529064bfdSEli Cohen net, block. 6629064bfdSEli Cohen 671a86b377SEli Cohenconfig MLX5_VDPA_NET 681a86b377SEli Cohen tristate "vDPA driver for ConnectX devices" 69aff90770SEli Cohen select MLX5_VDPA 705262912eSEli Cohen select VHOST_RING 71aff90770SEli Cohen depends on MLX5_CORE 721a86b377SEli Cohen help 731a86b377SEli Cohen VDPA network driver for ConnectX6 and newer. Provides offloading 741a86b377SEli Cohen of virtio net datapath such that descriptors put on the ring will 751a86b377SEli Cohen be executed by the hardware. It also supports a variety of stateless 761a86b377SEli Cohen offloads depending on the actual device used and firmware version. 771a86b377SEli Cohen 780a599750SEli Cohenconfig MLX5_VDPA_STEERING_DEBUG 790a599750SEli Cohen bool "expose steering counters on debugfs" 800a599750SEli Cohen select MLX5_VDPA 810a599750SEli Cohen help 820a599750SEli Cohen Expose RX steering counters in debugfs to aid in debugging. For each VLAN 830a599750SEli Cohen or non VLAN interface, two hardware counters are added to the RX flow 840a599750SEli Cohen table: one for unicast and one for multicast. 850a599750SEli Cohen The counters counts the number of packets and bytes and exposes them in 860a599750SEli Cohen debugfs. Once can read the counters using, e.g.: 870a599750SEli Cohen cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets 880a599750SEli Cohen cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes 890a599750SEli Cohen 9064b9f64fSJason Wangconfig VP_VDPA 9164b9f64fSJason Wang tristate "Virtio PCI bridge vDPA driver" 9264b9f64fSJason Wang select VIRTIO_PCI_LIB 9364b9f64fSJason Wang depends on PCI_MSI 9464b9f64fSJason Wang help 9564b9f64fSJason Wang This kernel module bridges virtio PCI device to vDPA bus. 9664b9f64fSJason Wang 97e85087beSWu Zongyongconfig ALIBABA_ENI_VDPA 98e85087beSWu Zongyong tristate "vDPA driver for Alibaba ENI" 99e85087beSWu Zongyong select VIRTIO_PCI_LIB_LEGACY 100e85087beSWu Zongyong depends on PCI_MSI && X86 101e85087beSWu Zongyong help 102e85087beSWu Zongyong VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon 103e85087beSWu Zongyong virtio 0.9.5 specification. 104e85087beSWu Zongyong 10551a8f9d7SAlvaro Karsz config SNET_VDPA 10651a8f9d7SAlvaro Karsz tristate "SolidRun's vDPA driver for SolidNET" 10751a8f9d7SAlvaro Karsz depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n) 10851a8f9d7SAlvaro Karsz 10951a8f9d7SAlvaro Karsz # This driver MAY create a HWMON device. 11051a8f9d7SAlvaro Karsz # Depending on (HWMON || HWMON=n) ensures that: 11151a8f9d7SAlvaro Karsz # If HWMON=n the driver can be compiled either as a module or built-in. 11251a8f9d7SAlvaro Karsz # If HWMON=y the driver can be compiled either as a module or built-in. 11351a8f9d7SAlvaro Karsz # If HWMON=m the driver is forced to be compiled as a module. 11451a8f9d7SAlvaro Karsz # By doing so, IS_ENABLED can be used instead of IS_REACHABLE 11551a8f9d7SAlvaro Karsz 11651a8f9d7SAlvaro Karsz help 11751a8f9d7SAlvaro Karsz vDPA driver for SolidNET DPU. 11851a8f9d7SAlvaro Karsz With this driver, the VirtIO dataplane can be 11951a8f9d7SAlvaro Karsz offloaded to a SolidNET DPU. 12051a8f9d7SAlvaro Karsz This driver includes a HW monitor device that 12151a8f9d7SAlvaro Karsz reads health values from the DPU. 12251a8f9d7SAlvaro Karsz 1239a8864d2SShannon Nelsonconfig PDS_VDPA 1249a8864d2SShannon Nelson tristate "vDPA driver for AMD/Pensando DSC devices" 1259a8864d2SShannon Nelson select VIRTIO_PCI_LIB 1269a8864d2SShannon Nelson depends on PCI_MSI 1279a8864d2SShannon Nelson depends on PDS_CORE 1289a8864d2SShannon Nelson help 1299a8864d2SShannon Nelson vDPA network driver for AMD/Pensando's PDS Core devices. 1309a8864d2SShannon Nelson With this driver, the VirtIO dataplane can be 1319a8864d2SShannon Nelson offloaded to an AMD/Pensando DSC device. 1329a8864d2SShannon Nelson 1338b6c724cSSrujana Challaconfig OCTEONEP_VDPA 1348b6c724cSSrujana Challa tristate "vDPA driver for Octeon DPU devices" 1358b6c724cSSrujana Challa depends on m 1368b6c724cSSrujana Challa depends on PCI_MSI 1378b6c724cSSrujana Challa help 1388b6c724cSSrujana Challa This is a vDPA driver designed for Marvell's Octeon DPU devices. 1398b6c724cSSrujana Challa This driver enables the offloading of the VirtIO dataplane to an 1408b6c724cSSrujana Challa Octeon DPU device. 1418b6c724cSSrujana Challa Please note that this driver must be built as a module and it 1428b6c724cSSrujana Challa cannot be loaded until the Octeon emulation software is running. 1438b6c724cSSrujana Challa 14458ad1372SMichael S. Tsirkinendif # VDPA 145