@@ -203,10 +203,10 @@ host controller or a device, it is important that the firmware can be
203203upgraded to the latest where possible bugs in it have been fixed.
204204Typically 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
211211Before you upgrade firmware on a device, host or retimer, please make
212212sure it is a suitable upgrade. Failing to do that may render the device
@@ -215,18 +215,40 @@ tools!
215215
216216Host 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
223226Note an OEM-specific method to power the controller up ("force power") may
224227be available for your system in which case there is no need to plug in a
225228Thunderbolt 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
243263We can verify that the new NVM firmware is active by running the following
244264commands::
0 commit comments