~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/networking/devlink/devlink-info.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/networking/devlink/devlink-info.rst (Architecture ppc) and /Documentation/networking/devlink/devlink-info.rst (Architecture mips)


  1 .. SPDX-License-Identifier: (GPL-2.0-only OR B      1 .. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2                                                     2 
  3 ============                                        3 ============
  4 Devlink Info                                        4 Devlink Info
  5 ============                                        5 ============
  6                                                     6 
  7 The ``devlink-info`` mechanism enables device       7 The ``devlink-info`` mechanism enables device drivers to report device
  8 (hardware and firmware) information in a stand      8 (hardware and firmware) information in a standard, extensible fashion.
  9                                                     9 
 10 The original motivation for the ``devlink-info     10 The original motivation for the ``devlink-info`` API was twofold:
 11                                                    11 
 12  - making it possible to automate device and f     12  - making it possible to automate device and firmware management in a fleet
 13    of machines in a vendor-independent fashion     13    of machines in a vendor-independent fashion (see also
 14    :ref:`Documentation/networking/devlink/devl     14    :ref:`Documentation/networking/devlink/devlink-flash.rst <devlink_flash>`);
 15  - name the per component FW versions (as oppo     15  - name the per component FW versions (as opposed to the crowded ethtool
 16    version string).                                16    version string).
 17                                                    17 
 18 ``devlink-info`` supports reporting multiple t     18 ``devlink-info`` supports reporting multiple types of objects. Reporting driver
 19 versions is generally discouraged - here, and      19 versions is generally discouraged - here, and via any other Linux API.
 20                                                    20 
 21 .. list-table:: List of top level info objects     21 .. list-table:: List of top level info objects
 22    :widths: 5 95                                   22    :widths: 5 95
 23                                                    23 
 24    * - Name                                        24    * - Name
 25      - Description                                 25      - Description
 26    * - ``driver``                                  26    * - ``driver``
 27      - Name of the currently used device drive     27      - Name of the currently used device driver, also available through sysfs.
 28                                                    28 
 29    * - ``serial_number``                           29    * - ``serial_number``
 30      - Serial number of the device.                30      - Serial number of the device.
 31                                                    31 
 32        This is usually the serial number of th     32        This is usually the serial number of the ASIC, also often available
 33        in PCI config space of the device in th     33        in PCI config space of the device in the *Device Serial Number*
 34        capability.                                 34        capability.
 35                                                    35 
 36        The serial number should be unique per      36        The serial number should be unique per physical device.
 37        Sometimes the serial number of the devi     37        Sometimes the serial number of the device is only 48 bits long (the
 38        length of the Ethernet MAC address), an     38        length of the Ethernet MAC address), and since PCI DSN is 64 bits long
 39        devices pad or encode additional inform     39        devices pad or encode additional information into the serial number.
 40        One example is adding port ID or PCI in     40        One example is adding port ID or PCI interface ID in the extra two bytes.
 41        Drivers should make sure to strip or no     41        Drivers should make sure to strip or normalize any such padding
 42        or interface ID, and report only the pa     42        or interface ID, and report only the part of the serial number
 43        which uniquely identifies the hardware.     43        which uniquely identifies the hardware. In other words serial number
 44        reported for two ports of the same devi     44        reported for two ports of the same device or on two hosts of
 45        a multi-host device should be identical     45        a multi-host device should be identical.
 46                                                    46 
 47    * - ``board.serial_number``                     47    * - ``board.serial_number``
 48      - Board serial number of the device.          48      - Board serial number of the device.
 49                                                    49 
 50        This is usually the serial number of th     50        This is usually the serial number of the board, often available in
 51        PCI *Vital Product Data*.                   51        PCI *Vital Product Data*.
 52                                                    52 
 53    * - ``fixed``                                   53    * - ``fixed``
 54      - Group for hardware identifiers, and ver     54      - Group for hardware identifiers, and versions of components
 55        which are not field-updatable.              55        which are not field-updatable.
 56                                                    56 
 57        Versions in this section identify the d     57        Versions in this section identify the device design. For example,
 58        component identifiers or the board vers     58        component identifiers or the board version reported in the PCI VPD.
 59        Data in ``devlink-info`` should be brok     59        Data in ``devlink-info`` should be broken into the smallest logical
 60        components, e.g. PCI VPD may concatenat     60        components, e.g. PCI VPD may concatenate various information
 61        to form the Part Number string, while i     61        to form the Part Number string, while in ``devlink-info`` all parts
 62        should be reported as separate items.       62        should be reported as separate items.
 63                                                    63 
 64        This group must not contain any frequen     64        This group must not contain any frequently changing identifiers,
 65        such as serial numbers. See                 65        such as serial numbers. See
 66        :ref:`Documentation/networking/devlink/     66        :ref:`Documentation/networking/devlink/devlink-flash.rst <devlink_flash>`
 67        to understand why.                          67        to understand why.
 68                                                    68 
 69    * - ``running``                                 69    * - ``running``
 70      - Group for information about currently r     70      - Group for information about currently running software/firmware.
 71        These versions often only update after      71        These versions often only update after a reboot, sometimes device reset.
 72                                                    72 
 73    * - ``stored``                                  73    * - ``stored``
 74      - Group for software/firmware versions in     74      - Group for software/firmware versions in device flash.
 75                                                    75 
 76        Stored values must update to reflect ch     76        Stored values must update to reflect changes in the flash even
 77        if reboot has not yet occurred. If devi     77        if reboot has not yet occurred. If device is not capable of updating
 78        ``stored`` versions when new software i     78        ``stored`` versions when new software is flashed, it must not report
 79        them.                                       79        them.
 80                                                    80 
 81 Each version can be reported at most once in e     81 Each version can be reported at most once in each version group. Firmware
 82 components stored on the flash should feature      82 components stored on the flash should feature in both the ``running`` and
 83 ``stored`` sections, if device is capable of r     83 ``stored`` sections, if device is capable of reporting ``stored`` versions
 84 (see :ref:`Documentation/networking/devlink/de     84 (see :ref:`Documentation/networking/devlink/devlink-flash.rst <devlink_flash>`).
 85 In case software/firmware components are loade     85 In case software/firmware components are loaded from the disk (e.g.
 86 ``/lib/firmware``) only the running version sh     86 ``/lib/firmware``) only the running version should be reported via
 87 the kernel API.                                    87 the kernel API.
 88                                                    88 
 89 Generic Versions                                   89 Generic Versions
 90 ================                                   90 ================
 91                                                    91 
 92 It is expected that drivers use the following      92 It is expected that drivers use the following generic names for exporting
 93 version information. If a generic name for a g     93 version information. If a generic name for a given component doesn't exist yet,
 94 driver authors should consult existing driver-     94 driver authors should consult existing driver-specific versions and attempt
 95 reuse. As last resort, if a component is truly     95 reuse. As last resort, if a component is truly unique, using driver-specific
 96 names is allowed, but these should be document     96 names is allowed, but these should be documented in the driver-specific file.
 97                                                    97 
 98 All versions should try to use the following t     98 All versions should try to use the following terminology:
 99                                                    99 
100 .. list-table:: List of common version suffixe    100 .. list-table:: List of common version suffixes
101    :widths: 10 90                                 101    :widths: 10 90
102                                                   102 
103    * - Name                                       103    * - Name
104      - Description                                104      - Description
105    * - ``id``, ``revision``                       105    * - ``id``, ``revision``
106      - Identifiers of designs and revision, mo    106      - Identifiers of designs and revision, mostly used for hardware versions.
107                                                   107 
108    * - ``api``                                    108    * - ``api``
109      - Version of API between components. API     109      - Version of API between components. API items are usually of limited
110        value to the user, and can be inferred     110        value to the user, and can be inferred from other versions by the vendor,
111        so adding API versions is generally dis    111        so adding API versions is generally discouraged as noise.
112                                                   112 
113    * - ``bundle_id``                              113    * - ``bundle_id``
114      - Identifier of a distribution package wh    114      - Identifier of a distribution package which was flashed onto the device.
115        This is an attribute of a firmware pack    115        This is an attribute of a firmware package which covers multiple versions
116        for ease of managing firmware images (s    116        for ease of managing firmware images (see
117        :ref:`Documentation/networking/devlink/    117        :ref:`Documentation/networking/devlink/devlink-flash.rst <devlink_flash>`).
118                                                   118 
119        ``bundle_id`` can appear in both ``runn    119        ``bundle_id`` can appear in both ``running`` and ``stored`` versions,
120        but it must not be reported if any of t    120        but it must not be reported if any of the components covered by the
121        ``bundle_id`` was changed and no longer    121        ``bundle_id`` was changed and no longer matches the version from
122        the bundle.                                122        the bundle.
123                                                   123 
124 board.id                                          124 board.id
125 --------                                          125 --------
126                                                   126 
127 Unique identifier of the board design.            127 Unique identifier of the board design.
128                                                   128 
129 board.rev                                         129 board.rev
130 ---------                                         130 ---------
131                                                   131 
132 Board design revision.                            132 Board design revision.
133                                                   133 
134 asic.id                                           134 asic.id
135 -------                                           135 -------
136                                                   136 
137 ASIC design identifier.                           137 ASIC design identifier.
138                                                   138 
139 asic.rev                                          139 asic.rev
140 --------                                          140 --------
141                                                   141 
142 ASIC design revision/stepping.                    142 ASIC design revision/stepping.
143                                                   143 
144 board.manufacture                                 144 board.manufacture
145 -----------------                                 145 -----------------
146                                                   146 
147 An identifier of the company or the facility w    147 An identifier of the company or the facility which produced the part.
148                                                   148 
149 board.part_number                                 149 board.part_number
150 -----------------                                 150 -----------------
151                                                   151 
152 Part number of the board and its components.      152 Part number of the board and its components.
153                                                   153 
154 fw                                                154 fw
155 --                                                155 --
156                                                   156 
157 Overall firmware version, often representing t    157 Overall firmware version, often representing the collection of
158 fw.mgmt, fw.app, etc.                             158 fw.mgmt, fw.app, etc.
159                                                   159 
160 fw.mgmt                                           160 fw.mgmt
161 -------                                           161 -------
162                                                   162 
163 Control unit firmware version. This firmware i    163 Control unit firmware version. This firmware is responsible for house
164 keeping tasks, PHY control etc. but not the pa    164 keeping tasks, PHY control etc. but not the packet-by-packet data path
165 operation.                                        165 operation.
166                                                   166 
167 fw.mgmt.api                                       167 fw.mgmt.api
168 -----------                                       168 -----------
169                                                   169 
170 Firmware interface specification version of th    170 Firmware interface specification version of the software interfaces between
171 driver and firmware.                              171 driver and firmware.
172                                                   172 
173 fw.app                                            173 fw.app
174 ------                                            174 ------
175                                                   175 
176 Data path microcode controlling high-speed pac    176 Data path microcode controlling high-speed packet processing.
177                                                   177 
178 fw.undi                                           178 fw.undi
179 -------                                           179 -------
180                                                   180 
181 UNDI software, may include the UEFI driver, fi    181 UNDI software, may include the UEFI driver, firmware or both.
182                                                   182 
183 fw.ncsi                                           183 fw.ncsi
184 -------                                           184 -------
185                                                   185 
186 Version of the software responsible for suppor    186 Version of the software responsible for supporting/handling the
187 Network Controller Sideband Interface.            187 Network Controller Sideband Interface.
188                                                   188 
189 fw.psid                                           189 fw.psid
190 -------                                           190 -------
191                                                   191 
192 Unique identifier of the firmware parameter se    192 Unique identifier of the firmware parameter set. These are usually
193 parameters of a particular board, defined at m    193 parameters of a particular board, defined at manufacturing time.
194                                                   194 
195 fw.roce                                           195 fw.roce
196 -------                                           196 -------
197                                                   197 
198 RoCE firmware version which is responsible for    198 RoCE firmware version which is responsible for handling roce
199 management.                                       199 management.
200                                                   200 
201 fw.bundle_id                                      201 fw.bundle_id
202 ------------                                      202 ------------
203                                                   203 
204 Unique identifier of the entire firmware bundl    204 Unique identifier of the entire firmware bundle.
205                                                   205 
206 fw.bootloader                                     206 fw.bootloader
207 -------------                                     207 -------------
208                                                   208 
209 Version of the bootloader.                        209 Version of the bootloader.
210                                                   210 
211 Future work                                       211 Future work
212 ===========                                       212 ===========
213                                                   213 
214 The following extensions could be useful:         214 The following extensions could be useful:
215                                                   215 
216  - on-disk firmware file names - drivers list     216  - on-disk firmware file names - drivers list the file names of firmware they
217    may need to load onto devices via the ``MOD    217    may need to load onto devices via the ``MODULE_FIRMWARE()`` macro. These,
218    however, are per module, rather than per de    218    however, are per module, rather than per device. It'd be useful to list
219    the names of firmware files the driver will    219    the names of firmware files the driver will try to load for a given device,
220    in order of priority.                          220    in order of priority.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php