162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_cimenuconfig VDPA 362306a36Sopenharmony_ci tristate "vDPA drivers" 462306a36Sopenharmony_ci depends on NET 562306a36Sopenharmony_ci help 662306a36Sopenharmony_ci Enable this module to support vDPA device that uses a 762306a36Sopenharmony_ci datapath which complies with virtio specifications with 862306a36Sopenharmony_ci vendor specific control path. 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciif VDPA 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciconfig VDPA_SIM 1362306a36Sopenharmony_ci tristate "vDPA device simulator core" 1462306a36Sopenharmony_ci depends on RUNTIME_TESTING_MENU && HAS_DMA 1562306a36Sopenharmony_ci select DMA_OPS 1662306a36Sopenharmony_ci select VHOST_RING 1762306a36Sopenharmony_ci select IOMMU_IOVA 1862306a36Sopenharmony_ci help 1962306a36Sopenharmony_ci Enable this module to support vDPA device simulators. These devices 2062306a36Sopenharmony_ci are used for testing, prototyping and development of vDPA. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciconfig VDPA_SIM_NET 2362306a36Sopenharmony_ci tristate "vDPA simulator for networking device" 2462306a36Sopenharmony_ci depends on VDPA_SIM 2562306a36Sopenharmony_ci select GENERIC_NET_UTILS 2662306a36Sopenharmony_ci help 2762306a36Sopenharmony_ci vDPA networking device simulator which loops TX traffic back to RX. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciconfig VDPA_SIM_BLOCK 3062306a36Sopenharmony_ci tristate "vDPA simulator for block device" 3162306a36Sopenharmony_ci depends on VDPA_SIM 3262306a36Sopenharmony_ci help 3362306a36Sopenharmony_ci vDPA block device simulator which terminates IO request in a 3462306a36Sopenharmony_ci memory buffer. 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciconfig VDPA_USER 3762306a36Sopenharmony_ci tristate "VDUSE (vDPA Device in Userspace) support" 3862306a36Sopenharmony_ci depends on EVENTFD && MMU && HAS_DMA 3962306a36Sopenharmony_ci select DMA_OPS 4062306a36Sopenharmony_ci select VHOST_IOTLB 4162306a36Sopenharmony_ci select IOMMU_IOVA 4262306a36Sopenharmony_ci help 4362306a36Sopenharmony_ci With VDUSE it is possible to emulate a vDPA Device 4462306a36Sopenharmony_ci in a userspace program. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciconfig IFCVF 4762306a36Sopenharmony_ci tristate "Intel IFC VF vDPA driver" 4862306a36Sopenharmony_ci depends on PCI_MSI 4962306a36Sopenharmony_ci help 5062306a36Sopenharmony_ci This kernel module can drive Intel IFC VF NIC to offload 5162306a36Sopenharmony_ci virtio dataplane traffic to hardware. 5262306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module will 5362306a36Sopenharmony_ci be called ifcvf. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciconfig MLX5_VDPA 5662306a36Sopenharmony_ci bool 5762306a36Sopenharmony_ci select VHOST_IOTLB 5862306a36Sopenharmony_ci help 5962306a36Sopenharmony_ci Support library for Mellanox VDPA drivers. Provides code that is 6062306a36Sopenharmony_ci common for all types of VDPA drivers. The following drivers are planned: 6162306a36Sopenharmony_ci net, block. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciconfig MLX5_VDPA_NET 6462306a36Sopenharmony_ci tristate "vDPA driver for ConnectX devices" 6562306a36Sopenharmony_ci select MLX5_VDPA 6662306a36Sopenharmony_ci select VHOST_RING 6762306a36Sopenharmony_ci depends on MLX5_CORE 6862306a36Sopenharmony_ci help 6962306a36Sopenharmony_ci VDPA network driver for ConnectX6 and newer. Provides offloading 7062306a36Sopenharmony_ci of virtio net datapath such that descriptors put on the ring will 7162306a36Sopenharmony_ci be executed by the hardware. It also supports a variety of stateless 7262306a36Sopenharmony_ci offloads depending on the actual device used and firmware version. 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ciconfig MLX5_VDPA_STEERING_DEBUG 7562306a36Sopenharmony_ci bool "expose steering counters on debugfs" 7662306a36Sopenharmony_ci select MLX5_VDPA 7762306a36Sopenharmony_ci help 7862306a36Sopenharmony_ci Expose RX steering counters in debugfs to aid in debugging. For each VLAN 7962306a36Sopenharmony_ci or non VLAN interface, two hardware counters are added to the RX flow 8062306a36Sopenharmony_ci table: one for unicast and one for multicast. 8162306a36Sopenharmony_ci The counters counts the number of packets and bytes and exposes them in 8262306a36Sopenharmony_ci debugfs. Once can read the counters using, e.g.: 8362306a36Sopenharmony_ci cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets 8462306a36Sopenharmony_ci cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ciconfig VP_VDPA 8762306a36Sopenharmony_ci tristate "Virtio PCI bridge vDPA driver" 8862306a36Sopenharmony_ci select VIRTIO_PCI_LIB 8962306a36Sopenharmony_ci depends on PCI_MSI 9062306a36Sopenharmony_ci help 9162306a36Sopenharmony_ci This kernel module bridges virtio PCI device to vDPA bus. 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ciconfig ALIBABA_ENI_VDPA 9462306a36Sopenharmony_ci tristate "vDPA driver for Alibaba ENI" 9562306a36Sopenharmony_ci select VIRTIO_PCI_LIB_LEGACY 9662306a36Sopenharmony_ci depends on PCI_MSI && X86 9762306a36Sopenharmony_ci help 9862306a36Sopenharmony_ci VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon 9962306a36Sopenharmony_ci virtio 0.9.5 specification. 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci config SNET_VDPA 10262306a36Sopenharmony_ci tristate "SolidRun's vDPA driver for SolidNET" 10362306a36Sopenharmony_ci depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n) 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci # This driver MAY create a HWMON device. 10662306a36Sopenharmony_ci # Depending on (HWMON || HWMON=n) ensures that: 10762306a36Sopenharmony_ci # If HWMON=n the driver can be compiled either as a module or built-in. 10862306a36Sopenharmony_ci # If HWMON=y the driver can be compiled either as a module or built-in. 10962306a36Sopenharmony_ci # If HWMON=m the driver is forced to be compiled as a module. 11062306a36Sopenharmony_ci # By doing so, IS_ENABLED can be used instead of IS_REACHABLE 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci help 11362306a36Sopenharmony_ci vDPA driver for SolidNET DPU. 11462306a36Sopenharmony_ci With this driver, the VirtIO dataplane can be 11562306a36Sopenharmony_ci offloaded to a SolidNET DPU. 11662306a36Sopenharmony_ci This driver includes a HW monitor device that 11762306a36Sopenharmony_ci reads health values from the DPU. 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ciconfig PDS_VDPA 12062306a36Sopenharmony_ci tristate "vDPA driver for AMD/Pensando DSC devices" 12162306a36Sopenharmony_ci select VIRTIO_PCI_LIB 12262306a36Sopenharmony_ci depends on PCI_MSI 12362306a36Sopenharmony_ci depends on PDS_CORE 12462306a36Sopenharmony_ci help 12562306a36Sopenharmony_ci vDPA network driver for AMD/Pensando's PDS Core devices. 12662306a36Sopenharmony_ci With this driver, the VirtIO dataplane can be 12762306a36Sopenharmony_ci offloaded to an AMD/Pensando DSC device. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ciendif # VDPA 130