xref: /linux/drivers/vdpa/Kconfig (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
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