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 select DMA_OPS 39 select VHOST_IOTLB 40 select IOMMU_IOVA 41 help 42 With VDUSE it is possible to emulate a vDPA Device 43 in a userspace program. 44 45config IFCVF 46 tristate "Intel IFC VF vDPA driver" 47 depends on PCI_MSI 48 help 49 This kernel module can drive Intel IFC VF NIC to offload 50 virtio dataplane traffic to hardware. 51 To compile this driver as a module, choose M here: the module will 52 be called ifcvf. 53 54config MLX5_VDPA 55 bool 56 select VHOST_IOTLB 57 help 58 Support library for Mellanox VDPA drivers. Provides code that is 59 common for all types of VDPA drivers. The following drivers are planned: 60 net, block. 61 62config MLX5_VDPA_NET 63 tristate "vDPA driver for ConnectX devices" 64 select MLX5_VDPA 65 select VHOST_RING 66 depends on MLX5_CORE 67 help 68 VDPA network driver for ConnectX6 and newer. Provides offloading 69 of virtio net datapath such that descriptors put on the ring will 70 be executed by the hardware. It also supports a variety of stateless 71 offloads depending on the actual device used and firmware version. 72 73config MLX5_VDPA_STEERING_DEBUG 74 bool "expose steering counters on debugfs" 75 select MLX5_VDPA 76 help 77 Expose RX steering counters in debugfs to aid in debugging. For each VLAN 78 or non VLAN interface, two hardware counters are added to the RX flow 79 table: one for unicast and one for multicast. 80 The counters counts the number of packets and bytes and exposes them in 81 debugfs. Once can read the counters using, e.g.: 82 cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets 83 cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes 84 85config VP_VDPA 86 tristate "Virtio PCI bridge vDPA driver" 87 select VIRTIO_PCI_LIB 88 depends on PCI_MSI 89 help 90 This kernel module bridges virtio PCI device to vDPA bus. 91 92config ALIBABA_ENI_VDPA 93 tristate "vDPA driver for Alibaba ENI" 94 select VIRTIO_PCI_LIB_LEGACY 95 depends on PCI_MSI && X86 96 help 97 VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon 98 virtio 0.9.5 specification. 99 100 config SNET_VDPA 101 tristate "SolidRun's vDPA driver for SolidNET" 102 depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n) 103 104 # This driver MAY create a HWMON device. 105 # Depending on (HWMON || HWMON=n) ensures that: 106 # If HWMON=n the driver can be compiled either as a module or built-in. 107 # If HWMON=y the driver can be compiled either as a module or built-in. 108 # If HWMON=m the driver is forced to be compiled as a module. 109 # By doing so, IS_ENABLED can be used instead of IS_REACHABLE 110 111 help 112 vDPA driver for SolidNET DPU. 113 With this driver, the VirtIO dataplane can be 114 offloaded to a SolidNET DPU. 115 This driver includes a HW monitor device that 116 reads health values from the DPU. 117 118config PDS_VDPA 119 tristate "vDPA driver for AMD/Pensando DSC devices" 120 select VIRTIO_PCI_LIB 121 depends on PCI_MSI 122 depends on PDS_CORE 123 help 124 vDPA network driver for AMD/Pensando's PDS Core devices. 125 With this driver, the VirtIO dataplane can be 126 offloaded to an AMD/Pensando DSC device. 127 128config OCTEONEP_VDPA 129 tristate "vDPA driver for Octeon DPU devices" 130 depends on m 131 depends on PCI_MSI 132 help 133 This is a vDPA driver designed for Marvell's Octeon DPU devices. 134 This driver enables the offloading of the VirtIO dataplane to an 135 Octeon DPU device. 136 Please note that this driver must be built as a module and it 137 cannot be loaded until the Octeon emulation software is running. 138 139endif # VDPA 140