forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
8.2 KiB
195 lines
8.2 KiB
.. SPDX-License-Identifier: GPL-2.0 |
|
|
|
=================== |
|
ice devlink support |
|
=================== |
|
|
|
This document describes the devlink features implemented by the ``ice`` |
|
device driver. |
|
|
|
Info versions |
|
============= |
|
|
|
The ``ice`` driver reports the following versions |
|
|
|
.. list-table:: devlink info versions implemented |
|
:widths: 5 5 5 90 |
|
|
|
* - Name |
|
- Type |
|
- Example |
|
- Description |
|
* - ``board.id`` |
|
- fixed |
|
- K65390-000 |
|
- The Product Board Assembly (PBA) identifier of the board. |
|
* - ``fw.mgmt`` |
|
- running |
|
- 2.1.7 |
|
- 3-digit version number of the management firmware that controls the |
|
PHY, link, etc. |
|
* - ``fw.mgmt.api`` |
|
- running |
|
- 1.5 |
|
- 2-digit version number of the API exported over the AdminQ by the |
|
management firmware. Used by the driver to identify what commands |
|
are supported. |
|
* - ``fw.mgmt.build`` |
|
- running |
|
- 0x305d955f |
|
- Unique identifier of the source for the management firmware. |
|
* - ``fw.undi`` |
|
- running |
|
- 1.2581.0 |
|
- Version of the Option ROM containing the UEFI driver. The version is |
|
reported in ``major.minor.patch`` format. The major version is |
|
incremented whenever a major breaking change occurs, or when the |
|
minor version would overflow. The minor version is incremented for |
|
non-breaking changes and reset to 1 when the major version is |
|
incremented. The patch version is normally 0 but is incremented when |
|
a fix is delivered as a patch against an older base Option ROM. |
|
* - ``fw.psid.api`` |
|
- running |
|
- 0.80 |
|
- Version defining the format of the flash contents. |
|
* - ``fw.bundle_id`` |
|
- running |
|
- 0x80002ec0 |
|
- Unique identifier of the firmware image file that was loaded onto |
|
the device. Also referred to as the EETRACK identifier of the NVM. |
|
* - ``fw.app.name`` |
|
- running |
|
- ICE OS Default Package |
|
- The name of the DDP package that is active in the device. The DDP |
|
package is loaded by the driver during initialization. Each |
|
variation of the DDP package has a unique name. |
|
* - ``fw.app`` |
|
- running |
|
- 1.3.1.0 |
|
- The version of the DDP package that is active in the device. Note |
|
that both the name (as reported by ``fw.app.name``) and version are |
|
required to uniquely identify the package. |
|
* - ``fw.app.bundle_id`` |
|
- running |
|
- 0xc0000001 |
|
- Unique identifier for the DDP package loaded in the device. Also |
|
referred to as the DDP Track ID. Can be used to uniquely identify |
|
the specific DDP package. |
|
* - ``fw.netlist`` |
|
- running |
|
- 1.1.2000-6.7.0 |
|
- The version of the netlist module. This module defines the device's |
|
Ethernet capabilities and default settings, and is used by the |
|
management firmware as part of managing link and device |
|
connectivity. |
|
* - ``fw.netlist.build`` |
|
- running |
|
- 0xee16ced7 |
|
- The first 4 bytes of the hash of the netlist module contents. |
|
|
|
Flash Update |
|
============ |
|
|
|
The ``ice`` driver implements support for flash update using the |
|
``devlink-flash`` interface. It supports updating the device flash using a |
|
combined flash image that contains the ``fw.mgmt``, ``fw.undi``, and |
|
``fw.netlist`` components. |
|
|
|
.. list-table:: List of supported overwrite modes |
|
:widths: 5 95 |
|
|
|
* - Bits |
|
- Behavior |
|
* - ``DEVLINK_FLASH_OVERWRITE_SETTINGS`` |
|
- Do not preserve settings stored in the flash components being |
|
updated. This includes overwriting the port configuration that |
|
determines the number of physical functions the device will |
|
initialize with. |
|
* - ``DEVLINK_FLASH_OVERWRITE_SETTINGS`` and ``DEVLINK_FLASH_OVERWRITE_IDENTIFIERS`` |
|
- Do not preserve either settings or identifiers. Overwrite everything |
|
in the flash with the contents from the provided image, without |
|
performing any preservation. This includes overwriting device |
|
identifying fields such as the MAC address, VPD area, and device |
|
serial number. It is expected that this combination be used with an |
|
image customized for the specific device. |
|
|
|
The ice hardware does not support overwriting only identifiers while |
|
preserving settings, and thus ``DEVLINK_FLASH_OVERWRITE_IDENTIFIERS`` on its |
|
own will be rejected. If no overwrite mask is provided, the firmware will be |
|
instructed to preserve all settings and identifying fields when updating. |
|
|
|
Regions |
|
======= |
|
|
|
The ``ice`` driver implements the following regions for accessing internal |
|
device data. |
|
|
|
.. list-table:: regions implemented |
|
:widths: 15 85 |
|
|
|
* - Name |
|
- Description |
|
* - ``nvm-flash`` |
|
- The contents of the entire flash chip, sometimes referred to as |
|
the device's Non Volatile Memory. |
|
* - ``device-caps`` |
|
- The contents of the device firmware's capabilities buffer. Useful to |
|
determine the current state and configuration of the device. |
|
|
|
Users can request an immediate capture of a snapshot via the |
|
``DEVLINK_CMD_REGION_NEW`` |
|
|
|
.. code:: shell |
|
|
|
$ devlink region new pci/0000:01:00.0/nvm-flash snapshot 1 |
|
$ devlink region dump pci/0000:01:00.0/nvm-flash snapshot 1 |
|
|
|
$ devlink region dump pci/0000:01:00.0/nvm-flash snapshot 1 |
|
0000000000000000 0014 95dc 0014 9514 0035 1670 0034 db30 |
|
0000000000000010 0000 0000 ffff ff04 0029 8c00 0028 8cc8 |
|
0000000000000020 0016 0bb8 0016 1720 0000 0000 c00f 3ffc |
|
0000000000000030 bada cce5 bada cce5 bada cce5 bada cce5 |
|
|
|
$ devlink region read pci/0000:01:00.0/nvm-flash snapshot 1 address 0 length 16 |
|
0000000000000000 0014 95dc 0014 9514 0035 1670 0034 db30 |
|
|
|
$ devlink region delete pci/0000:01:00.0/nvm-flash snapshot 1 |
|
|
|
$ devlink region new pci/0000:01:00.0/device-caps snapshot 1 |
|
$ devlink region dump pci/0000:01:00.0/device-caps snapshot 1 |
|
0000000000000000 01 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 |
|
0000000000000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000020 02 00 02 01 32 03 00 00 0a 00 00 00 25 00 00 00 |
|
0000000000000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000040 04 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000060 05 00 01 00 03 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000080 06 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
00000000000000a0 08 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
00000000000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
00000000000000c0 12 00 01 00 01 00 00 00 01 00 01 00 00 00 00 00 |
|
00000000000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
00000000000000e0 13 00 01 00 00 01 00 00 00 00 00 00 00 00 00 00 |
|
00000000000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000100 14 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000120 15 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000140 16 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000160 17 00 01 00 06 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000180 18 00 01 00 01 00 00 00 01 00 00 00 08 00 00 00 |
|
0000000000000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
00000000000001a0 22 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 |
|
00000000000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
00000000000001c0 40 00 01 00 00 08 00 00 08 00 00 00 00 00 00 00 |
|
00000000000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
00000000000001e0 41 00 01 00 00 08 00 00 00 00 00 00 00 00 00 00 |
|
00000000000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000200 42 00 01 00 00 08 00 00 00 00 00 00 00 00 00 00 |
|
0000000000000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
|
|
$ devlink region delete pci/0000:01:00.0/device-caps snapshot 1
|
|
|