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
parent
56bcf64b61
commit
d776e805f1
|
|
@ -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::
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue