1.. SPDX-License-Identifier: GPL-2.0
2
3===================
4ice devlink support
5===================
6
7This document describes the devlink features implemented by the ``ice``
8device driver.
9
10Info versions
11=============
12
13The ``ice`` driver reports the following versions
14
15.. list-table:: devlink info versions implemented
16    :widths: 5 5 5 90
17
18    * - Name
19      - Type
20      - Example
21      - Description
22    * - ``board.id``
23      - fixed
24      - K65390-000
25      - The Product Board Assembly (PBA) identifier of the board.
26    * - ``fw.mgmt``
27      - running
28      - 2.1.7
29      - 3-digit version number of the management firmware that controls the
30        PHY, link, etc.
31    * - ``fw.mgmt.api``
32      - running
33      - 1.5
34      - 2-digit version number of the API exported over the AdminQ by the
35        management firmware. Used by the driver to identify what commands
36        are supported.
37    * - ``fw.mgmt.build``
38      - running
39      - 0x305d955f
40      - Unique identifier of the source for the management firmware.
41    * - ``fw.undi``
42      - running
43      - 1.2581.0
44      - Version of the Option ROM containing the UEFI driver. The version is
45        reported in ``major.minor.patch`` format. The major version is
46        incremented whenever a major breaking change occurs, or when the
47        minor version would overflow. The minor version is incremented for
48        non-breaking changes and reset to 1 when the major version is
49        incremented. The patch version is normally 0 but is incremented when
50        a fix is delivered as a patch against an older base Option ROM.
51    * - ``fw.psid.api``
52      - running
53      - 0.80
54      - Version defining the format of the flash contents.
55    * - ``fw.bundle_id``
56      - running
57      - 0x80002ec0
58      - Unique identifier of the firmware image file that was loaded onto
59        the device. Also referred to as the EETRACK identifier of the NVM.
60    * - ``fw.app.name``
61      - running
62      - ICE OS Default Package
63      - The name of the DDP package that is active in the device. The DDP
64        package is loaded by the driver during initialization. Each varation
65        of DDP package shall have a unique name.
66    * - ``fw.app``
67      - running
68      - 1.3.1.0
69      - The version of the DDP package that is active in the device. Note
70        that both the name (as reported by ``fw.app.name``) and version are
71        required to uniquely identify the package.
72
73Regions
74=======
75
76The ``ice`` driver enables access to the contents of the Non Volatile Memory
77flash chip via the ``nvm-flash`` region.
78
79Users can request an immediate capture of a snapshot via the
80``DEVLINK_CMD_REGION_NEW``
81
82.. code:: shell
83
84    $ devlink region new pci/0000:01:00.0/nvm-flash snapshot 1
85    $ devlink region dump pci/0000:01:00.0/nvm-flash snapshot 1
86
87    $ devlink region dump pci/0000:01:00.0/nvm-flash snapshot 1
88    0000000000000000 0014 95dc 0014 9514 0035 1670 0034 db30
89    0000000000000010 0000 0000 ffff ff04 0029 8c00 0028 8cc8
90    0000000000000020 0016 0bb8 0016 1720 0000 0000 c00f 3ffc
91    0000000000000030 bada cce5 bada cce5 bada cce5 bada cce5
92
93    $ devlink region read pci/0000:01:00.0/nvm-flash snapshot 1 address 0 length 16
94    0000000000000000 0014 95dc 0014 9514 0035 1670 0034 db30
95
96    $ devlink region delete pci/0000:01:00.0/nvm-flash snapshot 1
97