1# SPDX-License-Identifier: GPL-2.0-only 2menuconfig VDPA 3 tristate "vDPA drivers" 4 depends on NET 5 help 6 Enable this module to support vDPA device that uses a 7 datapath which complies with virtio specifications with 8 vendor specific control path. 9 10if VDPA 11 12config VDPA_SIM 13 tristate "vDPA device simulator core" 14 depends on RUNTIME_TESTING_MENU 15 select VHOST_RING 16 select IOMMU_IOVA 17 help 18 Enable this module to support vDPA device simulators. These devices 19 are used for testing, prototyping and development of vDPA. 20 21config VDPA_SIM_NET 22 tristate "vDPA simulator for networking device" 23 depends on VDPA_SIM 24 select GENERIC_NET_UTILS 25 help 26 vDPA networking device simulator which loops TX traffic back to RX. 27 28config VDPA_SIM_BLOCK 29 tristate "vDPA simulator for block device" 30 depends on VDPA_SIM 31 help 32 vDPA block device simulator which terminates IO request in a 33 memory buffer. 34 35config VDPA_USER 36 tristate "VDUSE (vDPA Device in Userspace) support" 37 depends on EVENTFD && MMU && HAS_DMA 38 # 39 # This driver incorrectly tries to override the dma_ops. It should 40 # never have done that, but for now keep it working on architectures 41 # that use dma ops 42 # 43 depends on ARCH_HAS_DMA_OPS 44 select VHOST_IOTLB 45 select IOMMU_IOVA 46 help 47 With VDUSE it is possible to emulate a vDPA Device 48 in a userspace program. 49 50config IFCVF 51 tristate "Intel IFC VF vDPA driver" 52 depends on PCI_MSI 53 help 54 This kernel module can drive Intel IFC VF NIC to offload 55 virtio dataplane traffic to hardware. 56 To compile this driver as a module, choose M here: the module will 57 be called ifcvf. 58 59config MLX5_VDPA 60 bool 61 select VHOST_IOTLB 62 help 63 Support library for Mellanox VDPA drivers. Provides code that is 64 common for all types of VDPA drivers. The following drivers are planned: 65 net, block. 66 67config MLX5_VDPA_NET 68 tristate "vDPA driver for ConnectX devices" 69 select MLX5_VDPA 70 select VHOST_RING 71 depends on MLX5_CORE 72 help 73 VDPA network driver for ConnectX6 and newer. Provides offloading 74 of virtio net datapath such that descriptors put on the ring will 75 be executed by the hardware. It also supports a variety of stateless 76 offloads depending on the actual device used and firmware version. 77 78config MLX5_VDPA_STEERING_DEBUG 79 bool "expose steering counters on debugfs" 80 select MLX5_VDPA 81 help 82 Expose RX steering counters in debugfs to aid in debugging. For each VLAN 83 or non VLAN interface, two hardware counters are added to the RX flow 84 table: one for unicast and one for multicast. 85 The counters counts the number of packets and bytes and exposes them in 86 debugfs. Once can read the counters using, e.g.: 87 cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets 88 cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes 89 90config VP_VDPA 91 tristate "Virtio PCI bridge vDPA driver" 92 select VIRTIO_PCI_LIB 93 depends on PCI_MSI 94 help 95 This kernel module bridges virtio PCI device to vDPA bus. 96 97config ALIBABA_ENI_VDPA 98 tristate "vDPA driver for Alibaba ENI" 99 select VIRTIO_PCI_LIB_LEGACY 100 depends on PCI_MSI && X86 101 help 102 VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon 103 virtio 0.9.5 specification. 104 105 config SNET_VDPA 106 tristate "SolidRun's vDPA driver for SolidNET" 107 depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n) 108 109 # This driver MAY create a HWMON device. 110 # Depending on (HWMON || HWMON=n) ensures that: 111 # If HWMON=n the driver can be compiled either as a module or built-in. 112 # If HWMON=y the driver can be compiled either as a module or built-in. 113 # If HWMON=m the driver is forced to be compiled as a module. 114 # By doing so, IS_ENABLED can be used instead of IS_REACHABLE 115 116 help 117 vDPA driver for SolidNET DPU. 118 With this driver, the VirtIO dataplane can be 119 offloaded to a SolidNET DPU. 120 This driver includes a HW monitor device that 121 reads health values from the DPU. 122 123config PDS_VDPA 124 tristate "vDPA driver for AMD/Pensando DSC devices" 125 select VIRTIO_PCI_LIB 126 depends on PCI_MSI 127 depends on PDS_CORE 128 help 129 vDPA network driver for AMD/Pensando's PDS Core devices. 130 With this driver, the VirtIO dataplane can be 131 offloaded to an AMD/Pensando DSC device. 132 133config OCTEONEP_VDPA 134 tristate "vDPA driver for Octeon DPU devices" 135 depends on m 136 depends on PCI_MSI 137 help 138 This is a vDPA driver designed for Marvell's Octeon DPU devices. 139 This driver enables the offloading of the VirtIO dataplane to an 140 Octeon DPU device. 141 Please note that this driver must be built as a module and it 142 cannot be loaded until the Octeon emulation software is running. 143 144endif # VDPA 145