Firmware Timestamping for Multi-Host Environment

In a multi-host environment, every host can upgrade the NIC firmware. All hosts are treated equally and there is no designated host. Hence, there can be situations where one host will try to upgrade the firmware and another will try to downgrade; which may lead to two or more unnecessary server reboots. In order to avoid such situations, the administrator can add a timestamp to the firmware they want to upgrade to. Attempts to burn a firmware image with a timestamp value that is lower than the current firmware timestamp will fail.

Warning

Firmware timestamping can be used on Connect-IB/ConnectX-4/ConnectX-4 Lx HCAs for controlling the firmware upgrade/downgrade flow.

In order to set a timestamp on an image, run:

Copy
Copied!
            

# flint -i ./fw-4115.bin timestamp set [UTC time]

Warning

The user can either specify a combined date and time timestamp in UTC which conforms to ISO 8601, or let the tool use the machine’s time for the timestamp.

To view the timestamp that was set on the device, run:

Copy
Copied!
            

# flint -d /dev/mst/mt4115_pciconf0 timestamp query Current timestamp : N/A. No valid timestamp found Next timestamp : 2015-12-21T10:58:23Z 12.15.0005

  • “Current timestamp” represents the current running firmware timestamp. If “N/A” is visible, then the timestamp entry is invalid (example: first use of the feature or after resetting the timestamp).

  • “Next timestamp” represents the next firmware that is allowed to be burnt on the HCA. Updating the “Next timestamp” requires an equal or newer timestamp to be provided.

To reset the timestamp that was set on the device, run:

Copy
Copied!
            

# flint -d /dev/mst/mt4115_pciconf0 timestamp reset

Resetting the timestamp on device causes invalidation of both “Current timestamp” and “Next timestamp” fields.

In case it is not possible to modify the firmware image, it is possible to set the timestamp directly on the device by specifying the timestamp and firmware version tied to it.

Copy
Copied!
            

# flint -d /dev/mst/mt4115_pciconf0 timestamp set <UTC time> <Firmware version>

To view the timestamp that was set on the device, run:

Copy
Copied!
            

# flint -d /dev/mst/mt4115_pciconf0 timestamp query Current timestamp : N/A. No valid timestamp found Next timestamp : 2015-12-21T10:58:23Z 12.15.0005

  • “Current timestamp” represents the current running firmware timestamp. If N/A is visible, then the timestamp entry is invalid (example: first use of the feature or after resetting the timestamp).

  • “Next timestamp” represents the next firmware that is allowed to be burnt on the HCA. Updating the “Next timestamp” requires an equal or newer timestamp to be provided.

To reset the timestamp that were set on the device, run:

Copy
Copied!
            

# flint -d /dev/mst/mt4115_pciconf0 timestamp reset

Resetting the timestamp on device causes invalidation of both “Current timestamp” and “Next timestamp” fields.

Please note the following:

  • If a firmware image contains a timestamp, the burning tool will automatically attempt to set it on the device. If the operation succeeds, the firmware will be burnt.

  • If a timestamp was only set on the device, the burning tool will prevent the burning of any firmware version different than the one set in the timestamp set operation.

  • Lack of timestamp in both image and device will cause no checks to be performed.

© Copyright 2023, NVIDIA. Last updated on May 23, 2023.