1.. 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 37Reloading 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 44Generic configuration parameters 45================================ 46The following is a list of generic configuration parameters that drivers may 47add. Use of generic parameters is preferred over each driver creating their 48own name. 49 50.. list-table:: List of generic parameters 51 :widths: 5 5 90 52 53 * - Name 54 - Type 55 - Description 56 * - ``enable_sriov`` 57 - Boolean 58 - Enable Single Root I/O Virtualization (SRIOV) in the device. 59 * - ``ignore_ari`` 60 - Boolean 61 - Ignore Alternative Routing-ID Interpretation (ARI) capability. If 62 enabled, the adapter will ignore ARI capability even when the 63 platform has support enabled. The device will create the same number 64 of partitions as when the platform does not support ARI. 65 * - ``msix_vec_per_pf_max`` 66 - u32 67 - Provides the maximum number of MSI-X interrupts that a device can 68 create. Value is the same across all physical functions (PFs) in the 69 device. 70 * - ``msix_vec_per_pf_min`` 71 - u32 72 - Provides the minimum number of MSI-X interrupts required for the 73 device to initialize. Value is the same across all physical functions 74 (PFs) in the device. 75 * - ``fw_load_policy`` 76 - u8 77 - Control the device's firmware loading policy. 78 - ``DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER`` (0) 79 Load firmware version preferred by the driver. 80 - ``DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH`` (1) 81 Load firmware currently stored in flash. 82 - ``DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK`` (2) 83 Load firmware currently available on host's disk. 84 * - ``reset_dev_on_drv_probe`` 85 - u8 86 - Controls the device's reset policy on driver probe. 87 - ``DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN`` (0) 88 Unknown or invalid value. 89 - ``DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS`` (1) 90 Always reset device on driver probe. 91 - ``DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER`` (2) 92 Never reset device on driver probe. 93 - ``DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK`` (3) 94 Reset the device only if firmware can be found in the filesystem. 95 * - ``enable_roce`` 96 - Boolean 97 - Enable handling of RoCE traffic in the device. 98 * - ``internal_err_reset`` 99 - Boolean 100 - When enabled, the device driver will reset the device on internal 101 errors. 102 * - ``max_macs`` 103 - u32 104 - Specifies the maximum number of MAC addresses per ethernet port of 105 this device. 106 * - ``region_snapshot_enable`` 107 - Boolean 108 - Enable capture of ``devlink-region`` snapshots. 109