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