123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- .. 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
|