To apply a .update file with devlink:
- List the Xilinx PCIe devices for the
X3522:
# lspci -D -d 10ee:5084 0000:01:00.0 Ethernet controller: Xilinx Corporation Device 5084 0000:01:00.1 Ethernet controller: Xilinx Corporation Device 5084
- Note the PCIe address
of the first interface, which can be identified as an Ethernet controller of type 5084.
In the above example, the address of the first interface is 0000:01:00.0.
Note: The PCIe address includes the domain (0000) before the bus, device, and function (01:00.0). - Get the current bundle version for the PCIe address
that you noted in step 2:
# devlink dev info pci/0000:01:00.0 | grep bundle fw.bundle_id 1.27.143.3710
- Note the bundle version that is output.
In the above example, the bundle version is 1.27.143.3710.
- Apply the .update file to the PCIe
address that you noted in step 2:
# devlink dev flash pci/0000:01:00.0 file xilinx/x3/x3522-bundle.update
The devlink command hands the filename to the driver, and the driver then calls the firmware to perform the update.
- Wait for the firmware to finish the update, viewing the progress report from
devlink:
# devlink dev flash pci/0000:01:00.0 file xilinx/x3/x3522-bundle.update Checking update Starting update Erasing 100% Writing 100% Finishing update Update complete
Note: Older versions of devlink might not output a progress report.Note: If you press Ctrl-C it halts devlink and its progress reports, but the firmware continues to apply the update.Note: If the update fails, refer to the kernel message log for details. The error messages fromdevlink dev flash
are generic and can be misleading. - Do a cold reboot of the server using one of the following methods:
- Use a tool such as iDRAC/BMC to issue a cold reboot or power cycle command.CAUTION:When using this method of cold reboot:
- If you are updating from a bundle version that is less than 1.25.101.3090 (see
step 4), you must repeat the entire
update a second time for it to complete successfully.
(Because the auxiliary power remains enabled, the first update is only partial, and puts the X3522 in an unpredictable or failed state. A second update is required to complete the process.)
- If you are updating from bundle version 1.25.101.3090 or later this limitation does not apply, and a single update is sufficient.
- If you are updating from a bundle version that is less than 1.25.101.3090 (see
step 4), you must repeat the entire
update a second time for it to complete successfully.
- Physically disconnect the server from all power
sources for at least 10 seconds.Note: When using this method of cold reboot, a single update is sufficient for all bundle versions.
- Use a tool such as iDRAC/BMC to issue a cold reboot or power cycle command.
- Confirm the version numbers are as
expected:
# devlink dev info pci/0000:01:00.0 pci/0000:01:00.0: driver xilinx_efct serial_number 0123456789ab versions: fixed: board.id X3522 running: fw.mgmt 1.16.1.8 fpga.rev 1_I9 fw.mgmt 1.16.1.8 (0) x3_llnic fw.mgmt.suc 3.0.24.1003 type 0 (2022-10-14) board.rev 1.1.0.0 fw.bundle_id 1.27.143.3710 stored: fw.bundle_id 1.27.143.3710 fw.mgmt 1.16.1.8 fw.mgmt.suc 3.0.24.1003 fw.exprom 1.3.6.18 fw.psid x3522-disable_hybrid + enable_uefi