xref: /linux/Documentation/networking/device_drivers/ethernet/amd/pds_vdpa.rst (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1.. SPDX-License-Identifier: GPL-2.0+
2.. note: can be edited and viewed with /usr/bin/formiko-vim
3
4==========================================================
5PCI vDPA driver for the AMD/Pensando(R) DSC adapter family
6==========================================================
7
8AMD/Pensando vDPA VF Device Driver
9
10Copyright(c) 2023 Advanced Micro Devices, Inc
11
12Overview
13========
14
15The ``pds_vdpa`` driver is an auxiliary bus driver that supplies
16a vDPA device for use by the virtio network stack.  It is used with
17the Pensando Virtual Function devices that offer vDPA and virtio queue
18services.  It depends on the ``pds_core`` driver and hardware for the PF
19and VF PCI handling as well as for device configuration services.
20
21Using the device
22================
23
24The ``pds_vdpa`` device is enabled via multiple configuration steps and
25depends on the ``pds_core`` driver to create and enable SR-IOV Virtual
26Function devices.  After the VFs are enabled, we enable the vDPA service
27in the ``pds_core`` device to create the auxiliary devices used by pds_vdpa.
28
29Example 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
58Enabling the driver
59===================
60
61The driver is enabled via the standard kernel configuration system,
62using the make command::
63
64  make oldconfig/menuconfig/etc.
65
66The 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
74Support
75=======
76
77For general Linux networking support, please use the netdev mailing
78list, which is monitored by Pensando personnel::
79
80  netdev@vger.kernel.org
81
82For more specific support needs, please use the Pensando driver support
83email::
84
85  drivers@pensando.io
86