Each version can be reported at most once in each version group. Firmware
components stored on the flash should feature in both the
stored sections, if device is capable of reporting
(see Devlink Flash).
In case software/firmware components are loaded from the disk (e.g.
/lib/firmware) only the running version should be reported via
the kernel API.
It is expected that drivers use the following generic names for exporting
version information. If a generic name for a given component doesn’t exist yet,
driver authors should consult existing driver-specific versions and attempt
reuse. As last resort, if a component is truly unique, using driver-specific
names is allowed, but these should be documented in the driver-specific file.
All versions should try to use the following terminology:
List of common version suffixes
Identifiers of designs and revision, mostly used for hardware versions.
Version of API between components. API items are usually of limited
value to the user, and can be inferred from other versions by the vendor,
so adding API versions is generally discouraged as noise.
Identifier of a distribution package which was flashed onto the device.
This is an attribute of a firmware package which covers multiple versions
for ease of managing firmware images (see
bundle_id can appear in both
but it must not be reported if any of the components covered by the
bundle_id was changed and no longer matches the version from
Unique identifier of the board design.
Board design revision.
ASIC design identifier.
ASIC design revision/stepping.
An identifier of the company or the facility which produced the part.
Overall firmware version, often representing the collection of
fw.mgmt, fw.app, etc.
Control unit firmware version. This firmware is responsible for house
keeping tasks, PHY control etc. but not the packet-by-packet data path
Firmware interface specification version of the software interfaces between
driver and firmware.
Data path microcode controlling high-speed packet processing.
UNDI software, may include the UEFI driver, firmware or both.
Version of the software responsible for supporting/handling the
Network Controller Sideband Interface.
Unique identifier of the firmware parameter set. These are usually
parameters of a particular board, defined at manufacturing time.
RoCE firmware version which is responsible for handling roce
Unique identifier of the entire firmware bundle.