T480 Thunderbolt Firmware Issues

So a while ago I bought a second hand T480. A very nice machine, which I consider to be the last modern Thinkpad worth of it’s name.
This model though has an issue with the thunderbolt firmware below version 20. Basically, there’s a bug that causes it to continuously write to the chip that handles the USB-C and thunderbolt ports until it brakes. This causes the only charging ports on the device to stop working and effectively bricks the laptop. Also, the connectors are soldered onto the motherboard, so you would need almost a new T480 to make it usable again.

The Story

The first thing I did with my T480 was to check the version of the thunderbolt firmware. In my case I had the version 14.0.

Next, I searched for the newest driver and tried to install it. But the version did not change.
I then tried reading and following different guides/forums, but the version was still the same.

Eventually, I found a fix; A working method to update the firmware. And I posted a guide on reddit under the most active thread on the issue.
Since then, it seems that many have find it useful and have used it to fix their T480.
Many also have added details and their own experiences. From all the comments, I want to highlight _PPBottle’s one.

He updated my guide to take in account the DCH (Windows Declarative Componentized Hardware), that seems to be something that my windows version didn’t have.
So, many thanks to him and to everyone who commented.

I report here my full comment with the update from _PPBottle.
I might rewrite a full guide in a second moment.

The Solution

My original post (reddit):

Got a new t480 just today.
I’ll leave here my experience and hope it can help someone.

The latest N22TA14W.exe (Driver) works ok.
The latest N24TH13W.exe (Firmware) installs, but actually does not do anything.

Despite everything I tried, the powershell command output was the following:
Error: 0x227 SDK_NO_DRIVER - Thunderbolt(TM) UWD software is not installed. Please install the Thunderbolt(TM) UWD software and run the tool again.

So I tried with another (older) firmware, N22TH11W.exe and the output changed to: 14.0
Then I started to try to install, reinstall, remove, delete, etc… the driver and firmware but again, everything I tried lead to the 14.0

Then I started to fiddle with the FwUpdateCmd tool. And finally I got a solution:

  1. Install the Driver ( N22TA14W.exe )
  2. Clear the C:\DRIVERS\WIN\THUNDERBOLT directory
  3. Execute the Firmware that works ( N22TH11W.exe )
  4. Execute the Firmware that doesn’t work ( N24TH13W.exe )
  5. Now you should have 2 folders in the C:\DRIVERS\WIN\THUNDERBOLT directory. These folders have as the name the timestamp when you executed the firmware .exe . So the more recent is the one that doesn’t work.
  6. Enter the working firmware’s folder and execute the following command:
    .\FwUpdateCmd.exe GetCurrentNvmVersion "$(.\FwUpdateCmd.exe EnumControllers)"
    It should give a version like 14.0 (under 20).
    This is just to ensure that the tool is working. If it gives an error you’re out of luck and you need another version of the firmware…
  7. What we are about to do next is to use the working version of the older tool to install the new firmware.
  8. Execute the following command:
    PS C:\DRIVERS\WIN\THUNDERBOLT\N22TH11W> .\FwUpdateCmd.exe FWUpdate "$(.\FwUpdateCmd.exe EnumControllers)" ..\N24TH13W\TBT.bin
    Where the current directory is the working firmware folder, and the folder named N24TH13W is the other firmware folder (the only other one in C:\DRIVERS\WIN\THUNDERBOLT )
  9. Once the command has ended reboot the system
  10. Then once again go to the working firmware folder and rerun the first command:
    .\FwUpdateCmd.exe GetCurrentNvmVersion "$(.\FwUpdateCmd.exe EnumControllers)"
    In my case it shows 23.0 , so the firmware has been updated correctly!
    Even the Thunderbolt Software shows that version so all is good!

Here I leave links to download the firmwares and driver from lenovo:
– N22TA14W.exe -> https://download.lenovo.com/pccbbs/mobiles/n22ta14w.exe
– N24TH13W.exe -> https://download.lenovo.com/pccbbs/mobiles/n24th13w.exe
– N22TH11W.exe -> https://download.lenovo.com/pccbbs/mobiles/n22th11w.exe

Happy troubleshooting!


_PPBottle response (reddit):

[…] my suggestion would be to make the following changes to the guide:

Prerequisite: Note down the following information, as it changes the procedure:

  • A. Is it windows 1709 or earlier? -> Check BIOS and see if TB Assist Mode is enabled.
  • B. Is it a DCH or non DCH version? -> You can note this either by checking your current TB driver version (1.x means DCH, 1x.y means non-dch) / inferred from winver (if its non Windows 10 S, its non-DCH, eg W10 pro) / using the detect20220530.exe in command line.

Step 3 is not needed at all, and step 4 should add that you need to select ‘Extract Only’ instead of going through with the install itself.

Step 6 can be done with the context if you have DCH or non-DCH drivers.

  1. For DCH -> execute .\FwUpdateCmd.exe EnumControllers from the root of the extracted folder.
  2. Non-DCH -> Navigate first to the /non folder, then execute .\FwUpdateCmd.exe EnumControllers

This leaves 4 permutations for your step 8: (replace <extracted> with the path to your extracted installer folder):

  1. Windows 1709/earlier + non DCH -> cd <extracted>/non then .\FwUpdateCmd.exe FWUpdate "$(.\FwUpdateCmd.exe EnumControllers)" ASSISTTBT.bin
  2. Windows 1709/earlier + DCH -> cd <extracted> then .\FwUpdateCmd.exe FWUpdate "$(.\FwUpdateCmd.exe EnumControllers)" ASSISTTBT.bin
  3. Windows after 1709 + non DCH -> cd <extracted>/non then .\FwUpdateCmd.exe FWUpdate "$(.\FwUpdateCmd.exe EnumControllers)" TBT.bin
  4. Windows after 1709 + DCH -> cd <extracted> then .\FwUpdateCmd.exe FWUpdate "$(.\FwUpdateCmd.exe EnumControllers)" TBT.bin


Leave a Reply

Your email address will not be published. Required fields are marked *