xref: /linux/drivers/vdpa/Kconfig (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
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"
37*1c14b0e4SJason Wang	depends on EVENTFD && MMU
38c8a6153bSXie Yongji	select VHOST_IOTLB
39c8a6153bSXie Yongji	select IOMMU_IOVA
40c8a6153bSXie Yongji	help
41c8a6153bSXie Yongji	  With VDUSE it is possible to emulate a vDPA Device
42c8a6153bSXie Yongji	  in a userspace program.
43c8a6153bSXie Yongji
44c9b9f5f8SMichael S. Tsirkinconfig IFCVF
4558ad1372SMichael S. Tsirkin	tristate "Intel IFC VF vDPA driver"
46c9b9f5f8SMichael S. Tsirkin	depends on PCI_MSI
47c9b9f5f8SMichael S. Tsirkin	help
48c9b9f5f8SMichael S. Tsirkin	  This kernel module can drive Intel IFC VF NIC to offload
49c9b9f5f8SMichael S. Tsirkin	  virtio dataplane traffic to hardware.
50c9b9f5f8SMichael S. Tsirkin	  To compile this driver as a module, choose M here: the module will
51c9b9f5f8SMichael S. Tsirkin	  be called ifcvf.
52c9b9f5f8SMichael S. Tsirkin
5329064bfdSEli Cohenconfig MLX5_VDPA
54aff90770SEli Cohen	bool
5598701a2aSRandy Dunlap	select VHOST_IOTLB
5629064bfdSEli Cohen	help
5729064bfdSEli Cohen	  Support library for Mellanox VDPA drivers. Provides code that is
5829064bfdSEli Cohen	  common for all types of VDPA drivers. The following drivers are planned:
5929064bfdSEli Cohen	  net, block.
6029064bfdSEli Cohen
611a86b377SEli Cohenconfig MLX5_VDPA_NET
621a86b377SEli Cohen	tristate "vDPA driver for ConnectX devices"
63aff90770SEli Cohen	select MLX5_VDPA
645262912eSEli Cohen	select VHOST_RING
65aff90770SEli Cohen	depends on MLX5_CORE
661a86b377SEli Cohen	help
671a86b377SEli Cohen	  VDPA network driver for ConnectX6 and newer. Provides offloading
681a86b377SEli Cohen	  of virtio net datapath such that descriptors put on the ring will
691a86b377SEli Cohen	  be executed by the hardware. It also supports a variety of stateless
701a86b377SEli Cohen	  offloads depending on the actual device used and firmware version.
711a86b377SEli Cohen
720a599750SEli Cohenconfig MLX5_VDPA_STEERING_DEBUG
730a599750SEli Cohen	bool "expose steering counters on debugfs"
740a599750SEli Cohen	select MLX5_VDPA
750a599750SEli Cohen	help
760a599750SEli Cohen	  Expose RX steering counters in debugfs to aid in debugging. For each VLAN
770a599750SEli Cohen	  or non VLAN interface, two hardware counters are added to the RX flow
780a599750SEli Cohen	  table: one for unicast and one for multicast.
790a599750SEli Cohen	  The counters counts the number of packets and bytes and exposes them in
800a599750SEli Cohen	  debugfs. Once can read the counters using, e.g.:
810a599750SEli Cohen	  cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets
820a599750SEli Cohen	  cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes
830a599750SEli Cohen
8464b9f64fSJason Wangconfig VP_VDPA
8564b9f64fSJason Wang	tristate "Virtio PCI bridge vDPA driver"
8664b9f64fSJason Wang	select VIRTIO_PCI_LIB
8764b9f64fSJason Wang	depends on PCI_MSI
8864b9f64fSJason Wang	help
8964b9f64fSJason Wang	  This kernel module bridges virtio PCI device to vDPA bus.
9064b9f64fSJason Wang
91e85087beSWu Zongyongconfig ALIBABA_ENI_VDPA
92e85087beSWu Zongyong	tristate "vDPA driver for Alibaba ENI"
93e85087beSWu Zongyong	select VIRTIO_PCI_LIB_LEGACY
94e85087beSWu Zongyong	depends on PCI_MSI && X86
95e85087beSWu Zongyong	help
96e85087beSWu Zongyong	  VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
97e85087beSWu Zongyong	  virtio 0.9.5 specification.
98e85087beSWu Zongyong
9951a8f9d7SAlvaro Karsz config SNET_VDPA
10051a8f9d7SAlvaro Karsz	tristate "SolidRun's vDPA driver for SolidNET"
10151a8f9d7SAlvaro Karsz	depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n)
10251a8f9d7SAlvaro Karsz
10351a8f9d7SAlvaro Karsz	# This driver MAY create a HWMON device.
10451a8f9d7SAlvaro Karsz	# Depending on (HWMON || HWMON=n) ensures that:
10551a8f9d7SAlvaro Karsz	# If HWMON=n the driver can be compiled either as a module or built-in.
10651a8f9d7SAlvaro Karsz	# If HWMON=y the driver can be compiled either as a module or built-in.
10751a8f9d7SAlvaro Karsz	# If HWMON=m the driver is forced to be compiled as a module.
10851a8f9d7SAlvaro Karsz	# By doing so, IS_ENABLED can be used instead of IS_REACHABLE
10951a8f9d7SAlvaro Karsz
11051a8f9d7SAlvaro Karsz	help
11151a8f9d7SAlvaro Karsz	  vDPA driver for SolidNET DPU.
11251a8f9d7SAlvaro Karsz	  With this driver, the VirtIO dataplane can be
11351a8f9d7SAlvaro Karsz	  offloaded to a SolidNET DPU.
11451a8f9d7SAlvaro Karsz	  This driver includes a HW monitor device that
11551a8f9d7SAlvaro Karsz	  reads health values from the DPU.
11651a8f9d7SAlvaro Karsz
1179a8864d2SShannon Nelsonconfig PDS_VDPA
1189a8864d2SShannon Nelson	tristate "vDPA driver for AMD/Pensando DSC devices"
1199a8864d2SShannon Nelson	select VIRTIO_PCI_LIB
1209a8864d2SShannon Nelson	depends on PCI_MSI
1219a8864d2SShannon Nelson	depends on PDS_CORE
1229a8864d2SShannon Nelson	help
1239a8864d2SShannon Nelson	  vDPA network driver for AMD/Pensando's PDS Core devices.
1249a8864d2SShannon Nelson	  With this driver, the VirtIO dataplane can be
1259a8864d2SShannon Nelson	  offloaded to an AMD/Pensando DSC device.
1269a8864d2SShannon Nelson
1278b6c724cSSrujana Challaconfig OCTEONEP_VDPA
1288b6c724cSSrujana Challa	tristate "vDPA driver for Octeon DPU devices"
1298b6c724cSSrujana Challa	depends on m
1308b6c724cSSrujana Challa	depends on PCI_MSI
1318b6c724cSSrujana Challa	help
1328b6c724cSSrujana Challa	  This is a vDPA driver designed for Marvell's Octeon DPU devices.
1338b6c724cSSrujana Challa	  This driver enables the offloading of the VirtIO dataplane to an
1348b6c724cSSrujana Challa	  Octeon DPU device.
1358b6c724cSSrujana Challa	  Please note that this driver must be built as a module and it
1368b6c724cSSrujana Challa	  cannot be loaded until the Octeon emulation software is running.
1378b6c724cSSrujana Challa
13858ad1372SMichael S. Tsirkinendif # VDPA
139