mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 07:44:21 +08:00
8b6c724cda
This commit introduces a new vDPA driver specifically designed for managing the virtio control plane over the vDPA bus for OCTEON DPU devices. The driver consists of two layers: 1. Octep HW Layer (Octeon Endpoint): Responsible for handling hardware operations and configurations related to the DPU device. 2. Octep Main Layer: Compliant with the vDPA bus framework, this layer implements device operations for the vDPA bus. It handles device probing, bus attachment, vring operations, and other relevant tasks. Signed-off-by: Srujana Challa <schalla@marvell.com> Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> Signed-off-by: Shijith Thotton <sthotton@marvell.com> Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Acked-by: Jason Wang <jasowang@redhat.com> Message-Id: <20240614144659.1776067-1-schalla@marvell.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
141 lines
4.3 KiB
Plaintext
141 lines
4.3 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
menuconfig VDPA
|
|
tristate "vDPA drivers"
|
|
depends on NET
|
|
help
|
|
Enable this module to support vDPA device that uses a
|
|
datapath which complies with virtio specifications with
|
|
vendor specific control path.
|
|
|
|
if VDPA
|
|
|
|
config VDPA_SIM
|
|
tristate "vDPA device simulator core"
|
|
depends on RUNTIME_TESTING_MENU && HAS_DMA
|
|
select DMA_OPS
|
|
select VHOST_RING
|
|
select IOMMU_IOVA
|
|
help
|
|
Enable this module to support vDPA device simulators. These devices
|
|
are used for testing, prototyping and development of vDPA.
|
|
|
|
config VDPA_SIM_NET
|
|
tristate "vDPA simulator for networking device"
|
|
depends on VDPA_SIM
|
|
select GENERIC_NET_UTILS
|
|
help
|
|
vDPA networking device simulator which loops TX traffic back to RX.
|
|
|
|
config VDPA_SIM_BLOCK
|
|
tristate "vDPA simulator for block device"
|
|
depends on VDPA_SIM
|
|
help
|
|
vDPA block device simulator which terminates IO request in a
|
|
memory buffer.
|
|
|
|
config VDPA_USER
|
|
tristate "VDUSE (vDPA Device in Userspace) support"
|
|
depends on EVENTFD && MMU && HAS_DMA
|
|
select DMA_OPS
|
|
select VHOST_IOTLB
|
|
select IOMMU_IOVA
|
|
help
|
|
With VDUSE it is possible to emulate a vDPA Device
|
|
in a userspace program.
|
|
|
|
config IFCVF
|
|
tristate "Intel IFC VF vDPA driver"
|
|
depends on PCI_MSI
|
|
help
|
|
This kernel module can drive Intel IFC VF NIC to offload
|
|
virtio dataplane traffic to hardware.
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called ifcvf.
|
|
|
|
config MLX5_VDPA
|
|
bool
|
|
select VHOST_IOTLB
|
|
help
|
|
Support library for Mellanox VDPA drivers. Provides code that is
|
|
common for all types of VDPA drivers. The following drivers are planned:
|
|
net, block.
|
|
|
|
config MLX5_VDPA_NET
|
|
tristate "vDPA driver for ConnectX devices"
|
|
select MLX5_VDPA
|
|
select VHOST_RING
|
|
depends on MLX5_CORE
|
|
help
|
|
VDPA network driver for ConnectX6 and newer. Provides offloading
|
|
of virtio net datapath such that descriptors put on the ring will
|
|
be executed by the hardware. It also supports a variety of stateless
|
|
offloads depending on the actual device used and firmware version.
|
|
|
|
config MLX5_VDPA_STEERING_DEBUG
|
|
bool "expose steering counters on debugfs"
|
|
select MLX5_VDPA
|
|
help
|
|
Expose RX steering counters in debugfs to aid in debugging. For each VLAN
|
|
or non VLAN interface, two hardware counters are added to the RX flow
|
|
table: one for unicast and one for multicast.
|
|
The counters counts the number of packets and bytes and exposes them in
|
|
debugfs. Once can read the counters using, e.g.:
|
|
cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets
|
|
cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes
|
|
|
|
config VP_VDPA
|
|
tristate "Virtio PCI bridge vDPA driver"
|
|
select VIRTIO_PCI_LIB
|
|
depends on PCI_MSI
|
|
help
|
|
This kernel module bridges virtio PCI device to vDPA bus.
|
|
|
|
config ALIBABA_ENI_VDPA
|
|
tristate "vDPA driver for Alibaba ENI"
|
|
select VIRTIO_PCI_LIB_LEGACY
|
|
depends on PCI_MSI && X86
|
|
help
|
|
VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
|
|
virtio 0.9.5 specification.
|
|
|
|
config SNET_VDPA
|
|
tristate "SolidRun's vDPA driver for SolidNET"
|
|
depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n)
|
|
|
|
# This driver MAY create a HWMON device.
|
|
# Depending on (HWMON || HWMON=n) ensures that:
|
|
# If HWMON=n the driver can be compiled either as a module or built-in.
|
|
# If HWMON=y the driver can be compiled either as a module or built-in.
|
|
# If HWMON=m the driver is forced to be compiled as a module.
|
|
# By doing so, IS_ENABLED can be used instead of IS_REACHABLE
|
|
|
|
help
|
|
vDPA driver for SolidNET DPU.
|
|
With this driver, the VirtIO dataplane can be
|
|
offloaded to a SolidNET DPU.
|
|
This driver includes a HW monitor device that
|
|
reads health values from the DPU.
|
|
|
|
config PDS_VDPA
|
|
tristate "vDPA driver for AMD/Pensando DSC devices"
|
|
select VIRTIO_PCI_LIB
|
|
depends on PCI_MSI
|
|
depends on PDS_CORE
|
|
help
|
|
vDPA network driver for AMD/Pensando's PDS Core devices.
|
|
With this driver, the VirtIO dataplane can be
|
|
offloaded to an AMD/Pensando DSC device.
|
|
|
|
config OCTEONEP_VDPA
|
|
tristate "vDPA driver for Octeon DPU devices"
|
|
depends on m
|
|
depends on PCI_MSI
|
|
help
|
|
This is a vDPA driver designed for Marvell's Octeon DPU devices.
|
|
This driver enables the offloading of the VirtIO dataplane to an
|
|
Octeon DPU device.
|
|
Please note that this driver must be built as a module and it
|
|
cannot be loaded until the Octeon emulation software is running.
|
|
|
|
endif # VDPA
|