1.. SPDX-License-Identifier: GPL-2.0+
2
3========================================================
4Linux Driver for the AMD/Pensando(R) DSC adapter family
5========================================================
6
7Copyright(c) 2023 Advanced Micro Devices, Inc
8
9Identifying the Adapter
10=======================
11
12To find if one or more AMD/Pensando PCI Core devices are installed on the
13host, check for the PCI devices::
14
15  # lspci -d 1dd8:100c
16  b5:00.0 Processing accelerators: Pensando Systems Device 100c
17  b6:00.0 Processing accelerators: Pensando Systems Device 100c
18
19If such devices are listed as above, then the pds_core.ko driver should find
20and configure them for use.  There should be log entries in the kernel
21messages such as these::
22
23  $ dmesg | grep pds_core
24  pds_core 0000:b5:00.0: 252.048 Gb/s available PCIe bandwidth (16.0 GT/s PCIe x16 link)
25  pds_core 0000:b5:00.0: FW: 1.60.0-73
26  pds_core 0000:b6:00.0: 252.048 Gb/s available PCIe bandwidth (16.0 GT/s PCIe x16 link)
27  pds_core 0000:b6:00.0: FW: 1.60.0-73
28
29Driver and firmware version information can be gathered with devlink::
30
31  $ devlink dev info pci/0000:b5:00.0
32  pci/0000:b5:00.0:
33    driver pds_core
34    serial_number FLM18420073
35    versions:
36        fixed:
37          asic.id 0x0
38          asic.rev 0x0
39        running:
40          fw 1.51.0-73
41        stored:
42          fw.goldfw 1.15.9-C-22
43          fw.mainfwa 1.60.0-73
44          fw.mainfwb 1.60.0-57
45
46Info versions
47=============
48
49The ``pds_core`` driver reports the following versions
50
51.. list-table:: devlink info versions implemented
52   :widths: 5 5 90
53
54   * - Name
55     - Type
56     - Description
57   * - ``fw``
58     - running
59     - Version of firmware running on the device
60   * - ``fw.goldfw``
61     - stored
62     - Version of firmware stored in the goldfw slot
63   * - ``fw.mainfwa``
64     - stored
65     - Version of firmware stored in the mainfwa slot
66   * - ``fw.mainfwb``
67     - stored
68     - Version of firmware stored in the mainfwb slot
69   * - ``asic.id``
70     - fixed
71     - The ASIC type for this device
72   * - ``asic.rev``
73     - fixed
74     - The revision of the ASIC for this device
75
76Parameters
77==========
78
79The ``pds_core`` driver implements the following generic
80parameters for controlling the functionality to be made available
81as auxiliary_bus devices.
82
83.. list-table:: Generic parameters implemented
84   :widths: 5 5 8 82
85
86   * - Name
87     - Mode
88     - Type
89     - Description
90   * - ``enable_vnet``
91     - runtime
92     - Boolean
93     - Enables vDPA functionality through an auxiliary_bus device
94
95Firmware Management
96===================
97
98The ``flash`` command can update a the DSC firmware.  The downloaded firmware
99will be saved into either of firmware bank 1 or bank 2, whichever is not
100currently in use, and that bank will used for the next boot::
101
102  # devlink dev flash pci/0000:b5:00.0 \
103            file pensando/dsc_fw_1.63.0-22.tar
104
105Health Reporters
106================
107
108The driver supports a devlink health reporter for FW status::
109
110  # devlink health show pci/0000:2b:00.0 reporter fw
111  pci/0000:2b:00.0:
112    reporter fw
113      state healthy error 0 recover 0
114  # devlink health diagnose pci/0000:2b:00.0 reporter fw
115   Status: healthy State: 1 Generation: 0 Recoveries: 0
116
117Enabling the driver
118===================
119
120The driver is enabled via the standard kernel configuration system,
121using the make command::
122
123  make oldconfig/menuconfig/etc.
124
125The driver is located in the menu structure at:
126
127  -> Device Drivers
128    -> Network device support (NETDEVICES [=y])
129      -> Ethernet driver support
130        -> AMD devices
131          -> AMD/Pensando Ethernet PDS_CORE Support
132
133Support
134=======
135
136For general Linux networking support, please use the netdev mailing
137list, which is monitored by AMD/Pensando personnel::
138
139  netdev@vger.kernel.org
140