thunderbolt: Update NVM firmware upgrade documentation

Update guide about firmware upgrade of Thunderbolt devices, replacing
outdated recommendations with the use of modern "fwupd" tool.

Signed-off-by: Alan Borzeszkowski <alan.borzeszkowski@linux.intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
pull/1354/merge
Alan Borzeszkowski 2025-08-27 13:56:47 +02:00 committed by Mika Westerberg
parent 56bcf64b61
commit d776e805f1
1 changed files with 35 additions and 15 deletions

View File

@ -203,10 +203,10 @@ host controller or a device, it is important that the firmware can be
upgraded to the latest where possible bugs in it have been fixed. upgraded to the latest where possible bugs in it have been fixed.
Typically OEMs provide this firmware from their support site. Typically OEMs provide this firmware from their support site.
There is also a central site which has links where to download firmware Currently, recommended method of updating firmware is through "fwupd" tool.
for some machines: It uses LVFS (Linux Vendor Firmware Service) portal by default to get the
latest firmware from hardware vendors and updates connected devices if found
`Thunderbolt Updates <https://thunderbolttechnology.net/updates>`_ compatible. For details refer to: https://github.com/fwupd/fwupd.
Before you upgrade firmware on a device, host or retimer, please make Before you upgrade firmware on a device, host or retimer, please make
sure it is a suitable upgrade. Failing to do that may render the device sure it is a suitable upgrade. Failing to do that may render the device
@ -215,18 +215,40 @@ tools!
Host NVM upgrade on Apple Macs is not supported. Host NVM upgrade on Apple Macs is not supported.
Once the NVM image has been downloaded, you need to plug in a Fwupd is installed by default. If you don't have it on your system, simply
Thunderbolt device so that the host controller appears. It does not use your distro package manager to get it.
matter which device is connected (unless you are upgrading NVM on a
device - then you need to connect that particular device). To see possible updates through fwupd, you need to plug in a Thunderbolt
device so that the host controller appears. It does not matter which
device is connected (unless you are upgrading NVM on a device - then you
need to connect that particular device).
Note an OEM-specific method to power the controller up ("force power") may Note an OEM-specific method to power the controller up ("force power") may
be available for your system in which case there is no need to plug in a be available for your system in which case there is no need to plug in a
Thunderbolt device. Thunderbolt device.
After that we can write the firmware to the non-active parts of the NVM Updating firmware using fwupd is straightforward - refer to official
of the host or device. As an example here is how Intel NUC6i7KYK (Skull readme on fwupd github.
Canyon) Thunderbolt controller NVM is upgraded::
If firmware image is written successfully, the device shortly disappears.
Once it comes back, the driver notices it and initiates a full power
cycle. After a while device appears again and this time it should be
fully functional.
Device of interest should display new version under "Current version"
and "Update State: Success" in fwupd's interface.
Upgrading firmware manually
---------------------------------------------------------------
If possible, use fwupd to updated the firmware. However, if your device OEM
has not uploaded the firmware to LVFS, but it is available for download
from their side, you can use method below to directly upgrade the
firmware.
Manual firmware update can be done with 'dd' tool. To update firmware
using this method, you need to write it to the non-active parts of NVM
of the host or device. Example on how to update Intel NUC6i7KYK
(Skull Canyon) Thunderbolt controller NVM::
# dd if=KYK_TBT_FW_0018.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem # dd if=KYK_TBT_FW_0018.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem
@ -235,10 +257,8 @@ upgrade process as follows::
# echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate # echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate
If no errors are returned, the host controller shortly disappears. Once If no errors are returned, device should behave as described in previous
it comes back the driver notices it and initiates a full power cycle. section.
After a while the host controller appears again and this time it should
be fully functional.
We can verify that the new NVM firmware is active by running the following We can verify that the new NVM firmware is active by running the following
commands:: commands::