blob: 4878907e92328f6bbd139f01cf6695c822fd63ed [file] [log] [blame]
Jacob Keller8559dc32020-01-09 14:46:13 -08001.. SPDX-License-Identifier: GPL-2.0
2
3==============
4Devlink Params
5==============
6
7``devlink`` provides capability for a driver to expose device parameters for low
8level device functionality. Since devlink can operate at the device-wide
9level, it can be used to provide configuration that may affect multiple
10ports on a single device.
11
12This document describes a number of generic parameters that are supported
13across multiple drivers. Each driver is also free to add their own
14parameters. Each driver must document the specific parameters they support,
15whether generic or not.
16
17Configuration modes
18===================
19
20Parameters may be set in different configuration modes.
21
22.. list-table:: Possible configuration modes
23 :widths: 5 90
24
25 * - Name
26 - Description
27 * - ``runtime``
28 - set while the driver is running, and takes effect immediately. No
29 reset is required.
30 * - ``driverinit``
31 - applied while the driver initializes. Requires the user to restart
32 the driver using the ``devlink`` reload command.
33 * - ``permanent``
34 - written to the device's non-volatile memory. A hard reset is required
35 for it to take effect.
36
Jacob Keller5948f852020-01-09 14:46:15 -080037Reloading
38---------
39
40In order for ``driverinit`` parameters to take effect, the driver must
41support reloading via the ``devlink-reload`` command. This command will
42request a reload of the device driver.
43
Jakub Kicinskicd556e42020-03-24 10:30:16 -070044.. _devlink_params_generic:
45
Jacob Keller8559dc32020-01-09 14:46:13 -080046Generic configuration parameters
47================================
48The following is a list of generic configuration parameters that drivers may
49add. Use of generic parameters is preferred over each driver creating their
50own name.
51
52.. list-table:: List of generic parameters
53 :widths: 5 5 90
54
55 * - Name
56 - Type
57 - Description
58 * - ``enable_sriov``
59 - Boolean
60 - Enable Single Root I/O Virtualization (SRIOV) in the device.
61 * - ``ignore_ari``
62 - Boolean
63 - Ignore Alternative Routing-ID Interpretation (ARI) capability. If
64 enabled, the adapter will ignore ARI capability even when the
65 platform has support enabled. The device will create the same number
66 of partitions as when the platform does not support ARI.
67 * - ``msix_vec_per_pf_max``
68 - u32
69 - Provides the maximum number of MSI-X interrupts that a device can
70 create. Value is the same across all physical functions (PFs) in the
71 device.
72 * - ``msix_vec_per_pf_min``
73 - u32
74 - Provides the minimum number of MSI-X interrupts required for the
75 device to initialize. Value is the same across all physical functions
76 (PFs) in the device.
77 * - ``fw_load_policy``
78 - u8
79 - Control the device's firmware loading policy.
80 - ``DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER`` (0)
81 Load firmware version preferred by the driver.
82 - ``DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH`` (1)
83 Load firmware currently stored in flash.
84 - ``DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK`` (2)
85 Load firmware currently available on host's disk.
86 * - ``reset_dev_on_drv_probe``
87 - u8
88 - Controls the device's reset policy on driver probe.
89 - ``DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN`` (0)
90 Unknown or invalid value.
91 - ``DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS`` (1)
92 Always reset device on driver probe.
93 - ``DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER`` (2)
94 Never reset device on driver probe.
95 - ``DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK`` (3)
96 Reset the device only if firmware can be found in the filesystem.
97 * - ``enable_roce``
98 - Boolean
99 - Enable handling of RoCE traffic in the device.
Parav Panditf13a5ad2021-08-10 16:24:15 +0300100 * - ``enable_eth``
101 - Boolean
102 - When enabled, the device driver will instantiate Ethernet specific
103 auxiliary device of the devlink device.
Parav Pandit8ddaabe2021-08-10 16:24:16 +0300104 * - ``enable_rdma``
105 - Boolean
106 - When enabled, the device driver will instantiate RDMA specific
107 auxiliary device of the devlink device.
Parav Pandit076b2a92021-08-10 16:24:17 +0300108 * - ``enable_vnet``
109 - Boolean
110 - When enabled, the device driver will instantiate VDPA networking
111 specific auxiliary device of the devlink device.
Jacob Kellerd56a0c42020-01-09 14:46:14 -0800112 * - ``internal_err_reset``
113 - Boolean
114 - When enabled, the device driver will reset the device on internal
115 errors.
116 * - ``max_macs``
117 - u32
118 - Specifies the maximum number of MAC addresses per ethernet port of
119 this device.
120 * - ``region_snapshot_enable``
121 - Boolean
122 - Enable capture of ``devlink-region`` snapshots.
Moshe Shemesh195d9de2020-10-07 09:00:53 +0300123 * - ``enable_remote_dev_reset``
124 - Boolean
125 - Enable device reset by remote host. When cleared, the device driver
126 will NACK any attempt of other host to reset the device. This parameter
127 is useful for setups where a device is shared by different hosts, such
128 as multi-host setup.