Skip to content

Commit d776e80

Browse files
aborzeszwesteri
authored andcommitted
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>
1 parent 56bcf64 commit d776e80

1 file changed

Lines changed: 35 additions & 15 deletions

File tree

Documentation/admin-guide/thunderbolt.rst

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,10 @@ host controller or a device, it is important that the firmware can be
203203
upgraded to the latest where possible bugs in it have been fixed.
204204
Typically OEMs provide this firmware from their support site.
205205

206-
There is also a central site which has links where to download firmware
207-
for some machines:
208-
209-
`Thunderbolt Updates <https://thunderbolttechnology.net/updates>`_
206+
Currently, recommended method of updating firmware is through "fwupd" tool.
207+
It uses LVFS (Linux Vendor Firmware Service) portal by default to get the
208+
latest firmware from hardware vendors and updates connected devices if found
209+
compatible. For details refer to: https://github.com/fwupd/fwupd.
210210

211211
Before you upgrade firmware on a device, host or retimer, please make
212212
sure it is a suitable upgrade. Failing to do that may render the device
@@ -215,18 +215,40 @@ tools!
215215

216216
Host NVM upgrade on Apple Macs is not supported.
217217

218-
Once the NVM image has been downloaded, you need to plug in a
219-
Thunderbolt device so that the host controller appears. It does not
220-
matter which device is connected (unless you are upgrading NVM on a
221-
device - then you need to connect that particular device).
218+
Fwupd is installed by default. If you don't have it on your system, simply
219+
use your distro package manager to get it.
220+
221+
To see possible updates through fwupd, you need to plug in a Thunderbolt
222+
device so that the host controller appears. It does not matter which
223+
device is connected (unless you are upgrading NVM on a device - then you
224+
need to connect that particular device).
222225

223226
Note an OEM-specific method to power the controller up ("force power") may
224227
be available for your system in which case there is no need to plug in a
225228
Thunderbolt device.
226229

227-
After that we can write the firmware to the non-active parts of the NVM
228-
of the host or device. As an example here is how Intel NUC6i7KYK (Skull
229-
Canyon) Thunderbolt controller NVM is upgraded::
230+
Updating firmware using fwupd is straightforward - refer to official
231+
readme on fwupd github.
232+
233+
If firmware image is written successfully, the device shortly disappears.
234+
Once it comes back, the driver notices it and initiates a full power
235+
cycle. After a while device appears again and this time it should be
236+
fully functional.
237+
238+
Device of interest should display new version under "Current version"
239+
and "Update State: Success" in fwupd's interface.
240+
241+
Upgrading firmware manually
242+
---------------------------------------------------------------
243+
If possible, use fwupd to updated the firmware. However, if your device OEM
244+
has not uploaded the firmware to LVFS, but it is available for download
245+
from their side, you can use method below to directly upgrade the
246+
firmware.
247+
248+
Manual firmware update can be done with 'dd' tool. To update firmware
249+
using this method, you need to write it to the non-active parts of NVM
250+
of the host or device. Example on how to update Intel NUC6i7KYK
251+
(Skull Canyon) Thunderbolt controller NVM::
230252

231253
# dd if=KYK_TBT_FW_0018.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem
232254

@@ -235,10 +257,8 @@ upgrade process as follows::
235257

236258
# echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate
237259

238-
If no errors are returned, the host controller shortly disappears. Once
239-
it comes back the driver notices it and initiates a full power cycle.
240-
After a while the host controller appears again and this time it should
241-
be fully functional.
260+
If no errors are returned, device should behave as described in previous
261+
section.
242262

243263
We can verify that the new NVM firmware is active by running the following
244264
commands::

0 commit comments

Comments
 (0)