587927d3de92a41444eb57b62ddda9cf658b9001
[linux-modified.git] / pds_vdpa.rst
1 .. SPDX-License-Identifier: GPL-2.0+
2 .. note: can be edited and viewed with /usr/bin/formiko-vim
3
4 ==========================================================
5 PCI vDPA driver for the AMD/Pensando(R) DSC adapter family
6 ==========================================================
7
8 AMD/Pensando vDPA VF Device Driver
9
10 Copyright(c) 2023 Advanced Micro Devices, Inc
11
12 Overview
13 ========
14
15 The ``pds_vdpa`` driver is an auxiliary bus driver that supplies
16 a vDPA device for use by the virtio network stack.  It is used with
17 the Pensando Virtual Function devices that offer vDPA and virtio queue
18 services.  It depends on the ``pds_core`` driver and hardware for the PF
19 and VF PCI handling as well as for device configuration services.
20
21 Using the device
22 ================
23
24 The ``pds_vdpa`` device is enabled via multiple configuration steps and
25 depends on the ``pds_core`` driver to create and enable SR-IOV Virtual
26 Function devices.  After the VFs are enabled, we enable the vDPA service
27 in the ``pds_core`` device to create the auxiliary devices used by pds_vdpa.
28
29 Example steps:
30
31 .. code-block:: bash
32
33   #!/bin/bash
34
35   modprobe pds_core
36   modprobe vdpa
37   modprobe pds_vdpa
38
39   PF_BDF=`ls /sys/module/pds_core/drivers/pci\:pds_core/*/sriov_numvfs | awk -F / '{print $7}'`
40
41   # Enable vDPA VF auxiliary device(s) in the PF
42   devlink dev param set pci/$PF_BDF name enable_vnet cmode runtime value true
43
44   # Create a VF for vDPA use
45   echo 1 > /sys/bus/pci/drivers/pds_core/$PF_BDF/sriov_numvfs
46
47   # Find the vDPA services/devices available
48   PDS_VDPA_MGMT=`vdpa mgmtdev show | grep vDPA | head -1 | cut -d: -f1`
49
50   # Create a vDPA device for use in virtio network configurations
51   vdpa dev add name vdpa1 mgmtdev $PDS_VDPA_MGMT mac 00:11:22:33:44:55
52
53   # Set up an ethernet interface on the vdpa device
54   modprobe virtio_vdpa
55
56
57
58 Enabling the driver
59 ===================
60
61 The driver is enabled via the standard kernel configuration system,
62 using the make command::
63
64   make oldconfig/menuconfig/etc.
65
66 The driver is located in the menu structure at:
67
68   -> Device Drivers
69     -> Network device support (NETDEVICES [=y])
70       -> Ethernet driver support
71         -> Pensando devices
72           -> Pensando Ethernet PDS_VDPA Support
73
74 Support
75 =======
76
77 For general Linux networking support, please use the netdev mailing
78 list, which is monitored by Pensando personnel::
79
80   netdev@vger.kernel.org
81
82 For more specific support needs, please use the Pensando driver support
83 email::
84
85   drivers@pensando.io