xref: /openbmc/linux/drivers/vdpa/Kconfig (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
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"
14213e7721SMichael S. Tsirkin	depends on RUNTIME_TESTING_MENU && HAS_DMA
152f9237d4SChristoph Hellwig	select DMA_OPS
16c9b9f5f8SMichael S. Tsirkin	select VHOST_RING
174080fc10SStefano Garzarella	select IOMMU_IOVA
18db1e8bb6SMax Gurtovoy	help
19db1e8bb6SMax Gurtovoy	  Enable this module to support vDPA device simulators. These devices
20db1e8bb6SMax Gurtovoy	  are used for testing, prototyping and development of vDPA.
21db1e8bb6SMax Gurtovoy
22db1e8bb6SMax Gurtovoyconfig VDPA_SIM_NET
23db1e8bb6SMax Gurtovoy	tristate "vDPA simulator for networking device"
24db1e8bb6SMax Gurtovoy	depends on VDPA_SIM
25a312db69SLaurent Vivier	select GENERIC_NET_UTILS
26c9b9f5f8SMichael S. Tsirkin	help
27db1e8bb6SMax Gurtovoy	  vDPA networking device simulator which loops TX traffic back to RX.
28c9b9f5f8SMichael S. Tsirkin
290c853c2cSMax Gurtovoyconfig VDPA_SIM_BLOCK
300c853c2cSMax Gurtovoy	tristate "vDPA simulator for block device"
310c853c2cSMax Gurtovoy	depends on VDPA_SIM
320c853c2cSMax Gurtovoy	help
330c853c2cSMax Gurtovoy	  vDPA block device simulator which terminates IO request in a
340c853c2cSMax Gurtovoy	  memory buffer.
350c853c2cSMax Gurtovoy
36c8a6153bSXie Yongjiconfig VDPA_USER
37c8a6153bSXie Yongji	tristate "VDUSE (vDPA Device in Userspace) support"
38c8a6153bSXie Yongji	depends on EVENTFD && MMU && HAS_DMA
39c8a6153bSXie Yongji	select DMA_OPS
40c8a6153bSXie Yongji	select VHOST_IOTLB
41c8a6153bSXie Yongji	select IOMMU_IOVA
42c8a6153bSXie Yongji	help
43c8a6153bSXie Yongji	  With VDUSE it is possible to emulate a vDPA Device
44c8a6153bSXie Yongji	  in a userspace program.
45c8a6153bSXie Yongji
46c9b9f5f8SMichael S. Tsirkinconfig IFCVF
4758ad1372SMichael S. Tsirkin	tristate "Intel IFC VF vDPA driver"
48c9b9f5f8SMichael S. Tsirkin	depends on PCI_MSI
49c9b9f5f8SMichael S. Tsirkin	help
50c9b9f5f8SMichael S. Tsirkin	  This kernel module can drive Intel IFC VF NIC to offload
51c9b9f5f8SMichael S. Tsirkin	  virtio dataplane traffic to hardware.
52c9b9f5f8SMichael S. Tsirkin	  To compile this driver as a module, choose M here: the module will
53c9b9f5f8SMichael S. Tsirkin	  be called ifcvf.
54c9b9f5f8SMichael S. Tsirkin
5529064bfdSEli Cohenconfig MLX5_VDPA
56aff90770SEli Cohen	bool
5798701a2aSRandy Dunlap	select VHOST_IOTLB
5829064bfdSEli Cohen	help
5929064bfdSEli Cohen	  Support library for Mellanox VDPA drivers. Provides code that is
6029064bfdSEli Cohen	  common for all types of VDPA drivers. The following drivers are planned:
6129064bfdSEli Cohen	  net, block.
6229064bfdSEli Cohen
631a86b377SEli Cohenconfig MLX5_VDPA_NET
641a86b377SEli Cohen	tristate "vDPA driver for ConnectX devices"
65aff90770SEli Cohen	select MLX5_VDPA
665262912eSEli Cohen	select VHOST_RING
67aff90770SEli Cohen	depends on MLX5_CORE
681a86b377SEli Cohen	help
691a86b377SEli Cohen	  VDPA network driver for ConnectX6 and newer. Provides offloading
701a86b377SEli Cohen	  of virtio net datapath such that descriptors put on the ring will
711a86b377SEli Cohen	  be executed by the hardware. It also supports a variety of stateless
721a86b377SEli Cohen	  offloads depending on the actual device used and firmware version.
731a86b377SEli Cohen
740a599750SEli Cohenconfig MLX5_VDPA_STEERING_DEBUG
750a599750SEli Cohen	bool "expose steering counters on debugfs"
760a599750SEli Cohen	select MLX5_VDPA
770a599750SEli Cohen	help
780a599750SEli Cohen	  Expose RX steering counters in debugfs to aid in debugging. For each VLAN
790a599750SEli Cohen	  or non VLAN interface, two hardware counters are added to the RX flow
800a599750SEli Cohen	  table: one for unicast and one for multicast.
810a599750SEli Cohen	  The counters counts the number of packets and bytes and exposes them in
820a599750SEli Cohen	  debugfs. Once can read the counters using, e.g.:
830a599750SEli Cohen	  cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets
840a599750SEli Cohen	  cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes
850a599750SEli Cohen
8664b9f64fSJason Wangconfig VP_VDPA
8764b9f64fSJason Wang	tristate "Virtio PCI bridge vDPA driver"
8864b9f64fSJason Wang	select VIRTIO_PCI_LIB
8964b9f64fSJason Wang	depends on PCI_MSI
9064b9f64fSJason Wang	help
9164b9f64fSJason Wang	  This kernel module bridges virtio PCI device to vDPA bus.
9264b9f64fSJason Wang
93e85087beSWu Zongyongconfig ALIBABA_ENI_VDPA
94e85087beSWu Zongyong	tristate "vDPA driver for Alibaba ENI"
95e85087beSWu Zongyong	select VIRTIO_PCI_LIB_LEGACY
96e85087beSWu Zongyong	depends on PCI_MSI && X86
97e85087beSWu Zongyong	help
98e85087beSWu Zongyong	  VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
99e85087beSWu Zongyong	  virtio 0.9.5 specification.
100e85087beSWu Zongyong
10151a8f9d7SAlvaro Karsz config SNET_VDPA
10251a8f9d7SAlvaro Karsz	tristate "SolidRun's vDPA driver for SolidNET"
10351a8f9d7SAlvaro Karsz	depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n)
10451a8f9d7SAlvaro Karsz
10551a8f9d7SAlvaro Karsz	# This driver MAY create a HWMON device.
10651a8f9d7SAlvaro Karsz	# Depending on (HWMON || HWMON=n) ensures that:
10751a8f9d7SAlvaro Karsz	# If HWMON=n the driver can be compiled either as a module or built-in.
10851a8f9d7SAlvaro Karsz	# If HWMON=y the driver can be compiled either as a module or built-in.
10951a8f9d7SAlvaro Karsz	# If HWMON=m the driver is forced to be compiled as a module.
11051a8f9d7SAlvaro Karsz	# By doing so, IS_ENABLED can be used instead of IS_REACHABLE
11151a8f9d7SAlvaro Karsz
11251a8f9d7SAlvaro Karsz	help
11351a8f9d7SAlvaro Karsz	  vDPA driver for SolidNET DPU.
11451a8f9d7SAlvaro Karsz	  With this driver, the VirtIO dataplane can be
11551a8f9d7SAlvaro Karsz	  offloaded to a SolidNET DPU.
11651a8f9d7SAlvaro Karsz	  This driver includes a HW monitor device that
11751a8f9d7SAlvaro Karsz	  reads health values from the DPU.
11851a8f9d7SAlvaro Karsz
119*9a8864d2SShannon Nelsonconfig PDS_VDPA
120*9a8864d2SShannon Nelson	tristate "vDPA driver for AMD/Pensando DSC devices"
121*9a8864d2SShannon Nelson	select VIRTIO_PCI_LIB
122*9a8864d2SShannon Nelson	depends on PCI_MSI
123*9a8864d2SShannon Nelson	depends on PDS_CORE
124*9a8864d2SShannon Nelson	help
125*9a8864d2SShannon Nelson	  vDPA network driver for AMD/Pensando's PDS Core devices.
126*9a8864d2SShannon Nelson	  With this driver, the VirtIO dataplane can be
127*9a8864d2SShannon Nelson	  offloaded to an AMD/Pensando DSC device.
128*9a8864d2SShannon Nelson
12958ad1372SMichael S. Tsirkinendif # VDPA
130