Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / drivers / vdpa / Kconfig
blob559fb9d3271fcc64d903b2f2f1a652a5ed15d758
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig 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.
10 if VDPA
12 config 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.
21 config 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.
28 config 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.
35 config 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.
50 config 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.
59 config 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.
67 config 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.
78 config 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
90 config 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.
97 config 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.
105  config SNET_VDPA
106         tristate "SolidRun's vDPA driver for SolidNET"
107         depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n)
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
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.
123 config 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.
133 config 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.
144 endif # VDPA