-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Thunderbolt controller firmware update - X1 Carbon gen6 #264
Comments
@LordChaos73 what firmware version are missing? Thanks. |
@hughsie My question is: is the thunderbolt controller firmware update (as linked above) available on the LVFS platform? |
Hmmm - looks like we last updated the TBT controller on the X1 Carbon 6 two years ago.. with version 43. All that being said - I don't see why a TBT controller update would have any impact on HDMI display - unless you're connected via a TBT dock maybe? Any reason you think this particular FW update will help? I'm happy to chase an update (it should be done) but I don't think it's going to fix the root cause of your issue. I've created internal ticket LO-1984 for tracking |
@mrhpearson please see the following posts: |
Got it - thanks. |
I have the same issue with thunderbolt not working and hdmi also having issues. I'm even unable to see thunderbolt in lspci. @LordChaos73 Are you even able to see the thunderbolt controller in lspci? |
Do you know which version of FW you had on there previously? There was a critical update a while back (2019) that was published and I'm pretty sure we put those updates on LVFS. My understanding was that if the FW wasn't updated it was possible to brick your TBT controller. |
I remember about the critical update back in 2019 and I've always had the latest possible firmware installed since. Since so many X1C6 owners seem to have this issue, I'm wondering if the patch was successful in the first place. |
@mrhpearson I'm not sure as I'm unable to connect to the controller in any way that I know of. But here is a dump of the fw from the W25Q80DVSNIG |
Ack - thanks for the details and they've been forwarded to the FW team. |
Hi - can you confirm the BIOS, EC and ME FW versions please (easiest is to grab them from the BIOS setup screen - F1 during early boot). The note from the FW team says: I checked history, there was an issue that system will lost TBT controller and fixed by one EC firmware on X1 Carbon G8 project, never hear this issue on X1 Carbon G6 project. So that is why I suggest to have a try with upgrade BIOS/EC to newest, feel sorry that cannot give specifics of which version of EC. Not sure why they can't tell me which version of FW...(I'm pretty annoyed about it, but it gets worse) It looks like they released a new BIOS/EC combo update on the Lenovo support site - but the EC has not been released on LVFS (the BIOS has). I'm really grumpy about that (the BIOS is updated) Can you try the cab file that is on the Lenovo site (https://download.lenovo.com/pccbbs/mobiles/n2wul23w.zip). I did the update on mine ('fwupdmgr install N2WHT20W.cab' - I had to set 'OnlyTrusted=false' in /etc/fwupd/daemon.conf) and it looks good - but I also wasn't having TBT issues. I don't know if the new EC will fix the issue - there is nothing in the internal release notes that references it - but it sounds like it should be tried. I'm pushing them to get the EC on LVFS ASAP. Mark |
By the way, I downloaded the ISO of the latest BIOS and wanted to see if I could re-apply it. So I created a bootable USB stick with the latest BIOS, but I can't seem to re-apply it; the setup program states there is nothing to do. Is there any way to re-apply the BIOS update? I was hoping the ISO is carrying the EC update as well. |
Sorry - those are X1Carbon 8 items...my bad. |
Hi @mrhpearson were you able to find them? |
I checked and the X1 Carbon 6 versions I can find are the same you already have - so I went back to the FW team and asked for any other suggestions. Not heard back yet. |
@mrhpearson what about the EC update that was never provided on lvfs? |
EC 1.22 is here (and under stable) https://fwupd.org/lvfs/firmware/5728 Checking the released notes on the support site it's the latest version: |
Is there any hope on restoring Thunderbolt/HDMI functionality? A BIOS update maybe? |
I see there's a new version of the Intel ME available - 11.8.93.4323. It's not on LVFS yet? |
Howdy all -- having the exact same issue w/ the exact same bios. Any suggestions here? |
hi @LordChaos73 still under testing... hopefully will be available by end of this month... please open separate issue for proper tracking. thank you very much |
@cdrn Same issue here. I'm trying the full hardware route by buying W25Q80DVSNIG chips to replace the one on my motherboard that has gone bad, and programming them through a CH341-based programmer. Before the fix, the laptop was not shutting down properly by Windows, could only pull 15W from the charger instead of 65W, and had no HDMI output. The binary file provided by @dal00 fixed the charging issue, but nothing else. I'm not sure if that's a compatibility issue between BIOS, EC, and TB versions or there are other problems. I have BIOS 1.57 and EC 1.22, which I think is the latest. I just need to find a working binary for the TB controller. |
I also have this issue (HDMI and DP not working). When I first noticed it I updated all firwmares through fwupd so I have everything on the latest version now. I have no idea if the critical fix from 2019 was applied on this computer as it is second-hand so I'm not very hopeful in my case. Does anyone know if it was rolled out automatically through Windows Update? I'm in the process of getting an EEPROM programmer myself, because the controller does not even appear in lspci output or in Windows Device Manager. Do you still have the original data that was on your chip before you flashed it by any chance @RAY5D ? I'd be interested in comparing it to what I have. It's interesting that after changing the chip for a new one you still seem to face some issues. |
@tw0flower Sorry, I don't have any data backed up. When I used the programmer on the old chip, it read all 0xff, which I think is the "default" value for this type of storage. It will still read 0xff even after writing whatever data, so the chip is most likely dead as dust since the programmer could still read its model number, indicating a correct connection. I'm pretty sure the only thing I need now is the binary file, but that is, unexpectedly, hard to find. Can you post your data here so I can try? Thanks! |
@RAY5D Ah, I misunderstood your comment. I thought you had already replaced the chip, and that some other component was writing 0xFF data all over the new chip after you flashed it. I will post my data, but I don't think flashing it will be useful as my computer also has the HDMI/DP problem. Have you checked these binary files on the LVFS website? https://fwupd.org/lvfs/devices/com.lenovo.ThinkPadN23TF.firmware During my desperate search for answers on this issue, I also found this blog post from a user that had a somewhat similar problem years ago on a Thinkpad P1. He apparently had to flash zeroes over the chip before being able to flash the actual firmware. It goes without saying, I don't know much about hardware so anyone reading this please take it with a grain of salt. At this point I'm desperate and accepting the risk of bricking things. |
@tw0flower I did replace the chip and flash the firmware. I also saw that post earlier, but apparently I didn't notice the part about writing 0's first and then flashing the actual firmware (oops). I'll do more testing with the binary files I found and post updates here. However one thing that confused me was that the official binary files from both Lenovo and https://fwupd.org/lvfs/devices/com.lenovo.ThinkPadN23TF.firmware are exactly 260KB while the chip is 1MB, and the dumped binary in this issue has some content after that region, so I'm not sure about what should I write after the 260KB. |
@RAY5D That's what I hope I will find out if I can still extract some data from my chip. There might be some padding involved. I wonder if this information might not be available somewhere in the LVFS files? Because the flashing software must be aware of it right? But in theory if you zero-out the chip first, then flash the firmware, this would ensure that only the firmware on the chip I think. If there is some padding involved you could also try writing it at the end of the memory by concatenating some zeroes followed by the 260kb file so that the total is 1MB. If the padding is some arbitrary value however we have to find another way. |
@tw0flower OK I did some more testing. I had 2 binary files, the first one was the 260KB official release, with the extra space filled with 0's, the second one is the dumped data from this issue posted by dal00. For each test case, I filled the chip with a certain value (0x00 or 0xff), started the PC, shutdown, flashed the binary, and start again to see if it works. Here are the results:
The results looked overall similar to my previous attempts. Only the charging speed was fixed. However, before the tests today, I noticed that the replacement chip was dead again (wtf!?!?). I think I tried enabling assist mode in BIOS earlier, maybe that caused the early death? Anyways, I just replaced the chip again before the tests since I bought 10, and was careful to only enable assist mode while using Linux, and the chip still works for now. I don't think there is a lot left to do before we can find more binaries to compare and test with. Should I try the official binary but extended with 0xff next time? |
I got my CH341 SPI today and I found a few things. First of all @RAY5D if you only see 0xFF bytes on your chip it might be that your clamp is not properly attached. I had this issue at first, I solved it by re-attaching it until I read some data and by using flashrom instead of ch341eeprom. If the RUN led on your SPI board is not on when reading/writing it means something is wrong in your setup. The first thing I did was to extract the firmware I had installed on my machine. Compared to the firmwares I found online, it had an offset: the first 4096 bytes were all 0xFF. What remained was similar to the firmares I found online. My initial situation is that everything worked except plugging a second display (HDMI or via Thunderbolt).
So in my case:
The files that I flashed on the chip are in the attached zip file. |
Thanks |
I tried downgrading the BIOS of my computer yesterday. I really don't get why our Thunderbolt are working in USB mode but completely transparent at the same time (no listing in Windows Device Manager and lspci). Could it be a killswitch that was introduced in some an update? The paper published on the Thunderspy vulnerability states that there is no fix for computers released before 2019. The X1 Carbon Gen 6 was released in 2018. So this vulnerability simply cannot be fixed when it comes to memory protection.
Thunderspy involves several problems. One of which is that the signature of the firmware is not checked during boot. I believe this is what the author is referring to when he says that Intel has not done anything beyond Kernel DMA Protection. But what if they found a way to change this recently and introduced a bug? And the chip is wrongly and silently being deactivated at some stage? Downgrading the BIOS did nothing, and we cannot downgrade Intel ME through software solutions, I've also tried. Might be doable through a SPI programmer. I've begun analyzing the files I have with tcfp yesterday, I'll write my results here tonight. |
Everyone's research on this has been very useful IMO. We have no idea what's causing the issue and it takes a lot of time to dig information. And we're all doing that on our free time. I'm personally not convinced that the problem lies with the Thunderbolt chip itself. But this might be wrong. One interesting thing to try would be to patch one of the bin files with the Thunderspy vulnerability to force it to the SL0 level. All images provided by Lenovo are using the SL1 level (user authorization). One interesting thing to note is that the version 47 advertises a fix for a vulnerability without mentioning which one. I don't know any other Thunderbolt-specific vulnerability outside of Thunderspy. As opposed to the newer firmwares provided by Lenovo, my original firmware's SL level is not even detected by the tool. When I looked manually it seemed close to one of the signatures listed in the tool's code (see here) in terms of offset but the values are different. I have not tried any of the other firmwares that people uploaded here but it might be worth a try. I'd like to contact the researcher that worked on the Thunderspy paper to ask him if he heard of any mitigation that might have been developed recently. I'll write him a message tomorrow or this weekend. I've only ever owned Thinkpads as well, my first one was a T42 that I might still have somewhere haha! I remember a common fix for the ATI GPU overheating was to put the motherboard in the oven. Maybe we should try that ;-) |
Hey. I've managed to get a working bin from a generous donor. |
Surprise Christmas present O.o?! Did you get it through a programmer or some sort of software means? My friend has an Thinkpad tablet on the problematic list and wants to back up the firmware before anything bad happens. However, the flash chip in that model is not readable without desoldering, and is a pretty annoying DFN package, so it would be very helpful if we can get the data without messing with the motherboard. |
Some good samaritan responded to my post from December last year. He extracted it with a SOIC clip. |
can you help me get one for T580? |
I have a similar issue but I'm waiting my SOIC clips for more than a month now (delivery issue) to be sure. Meanwhile, I bought an Hoping this |
I installed the Thunderbolt Firmware Update Utility (https://pcsupport.lenovo.com/us/en/products/LAPTOPS-AND-NETBOOKS/THINKPAD-X-SERIES-LAPTOPS/THINKPAD-X1-CARBON-6TH-GEN-TYPE- 20KH-20KG/downloads/DS502615), |
Has anyone made any progress on this. I have exactly the same issue No thunderbolt no alt DP no hdmi no external display outputs showing up on Xrandr but fast charging still works. from reading this whole thread it seems like something is missing and the reported issue with a bad firmware isn't the whole story. Sounds like replacing the eporom and reflashing dosent work? could the issue be further down stream or are people thinking it's a signature issue? Interestingly I got my machine in mid 2020. I did all the updates on the Lenovo website in windows befor swapping to Linux so I should of installed the thunderbolt firmware fix. although I can't recall reading about this issue until it happened to me. could it be that damage was already done to the chip and even with new firmware it's life time shortened and this failure was going to happen sooner or later? |
I still think the issue is with the firmware flash chip. The reason mine wasn't fixed is that the original chip has lost all the data, which seemed to be somewhat unique to each computer. I also had a Thinkpad tablet that is vulnerable to this problem, but I backed up the original data, then replaced the chip and updated to the latest version. In this way, no further damage can be done during the update process, and it's still working fine. |
|
I no longer use the monitor to power the computer, but use the power supply that comes with the computer, and use a type-c cable to connect the thunderbolt interface and the monitor, and it seems to be normal now. |
Hey REY5D So i think im in exactly the same boat as you now |
I didn't zero the EEPROM out before all the attempts of re-flashing, I did it for at least some of the binaries, but these attempts were apparently not successful. |
Hey! That's my original post but I've kind of given up on this. I did swap the chip even and it didn't help. So must be the firmware. I'll follow your progress though. |
things don't fully add up. with other thinkpads people have fixed this issue flashing the official .bin from Lenovo after over writing with zeros. so it dosent seem like there should be something in the binary that is IDing the chip. You your self have managed to replace a chip on another machine with a working binary pulled from the same machine so it dosent make sense that the chip ID is baked in to silicone either as then the replacement chip wouldn't have worked. |
The one I replaced was flashed with its own extracted binary, so it for sure will work. I did it because I think the software update will damage the flash IC to some extent, and wanted to be safe with a new IC before trying the software update. The experiment idea you had is actually pretty smart, but I'm afraid it's not practical on my side because the model (X1 Tablet 3rd Gen) requires desoldering the flash chip to read and write it correctly (imagine messing with the board twice just to try one binary, rip). But I'll try something else. |
Ok bit more digging today |
I have an X1CG6. I find that at some point the HDM port stopped working. I was about to try to get my motherboard fixed or replaced . . and I find now that one of Lenovo's carefully crafted updates might have borked the port. I seem to see too - from all the posts above - that . . there is no fix, at least not for Linux. I am hoping that someone can tell that actually there is a fix - and one that does not involved some special piece of flashing hardware. It does not help that finding out which version of the relevant firmware I am running does not seem very easy on fwupd. |
I bought my expensive X1CG6 in order partly to give presentations. Seemingly a firmware update has broken the HDMI port (and perhaps - for something has broken this - the main charging port). I bought a USB-C-to-HDMI adaptor to try to work around the problem. It does not work. So now I cannot give presentations. How is this Lenovo going to make this situation right? |
I think you need to contact customer support for this issue |
Thanks, but I fear I'd have terrible trouble getting someone who is able and willing to help (and, perhaps, who has even heard of Linux). Could you supply an email address to which to write? Please note that, having had terrible problems ever since I got this machine, if I replace the machine it might not be with a ThinkPad. The problems: the trackpoint have never worked with Linux, despite a motherboard change; the motherboard change means one firmware update will never install, and now this broken port. |
As this is a FW update problem and you should be able to demonstrate HDMI not working from the BIOS setup menu. I don't think the OS should matter. |
I emailed Lenovo support, giving a brief account of the issue. The response: 'We regret to inform you that the repair of your machine is not covered under the terms of warranty. Please advise if you wish to proceed with a billable repair.' (I know that you do not work in support, but whom else are we to turn to?) I will try reasoning with the support people . . UPDATE: the support people were unable or unwilling to discuss anything with me; they kept repeating that I would have to pay. |
Just as a follow up for anyone with the same issue : |
Any leads, how can i fix this problem?? |
Similar to many in this thread. I bought a used X1 G6 in mid 2023. It came with Windows installed. I installed Ubuntu and video out worked (USB and HDMI). As it was a new install, I was running through the updates shown to me in Ubuntu. One was for a firmware. My external monitor was plugged in and working (via USB C). Upon reboot, the external monitor was not receiving video, and I've never been able to get video output to work again via USB C or HDMI in Windows or Linux. I'm not sure what the exact connection of steps were that caused the video output to brick. Was it because I was running an external monitor while updating the firmware? Did I update the firmware out of order? Was the wrong firmware detected? Did updating firmware in Linux, when previous updates had been done via Windows, creating inconsistencies? Lenovo support has been total hogwash. After being a long time Lenovo advocate, I've fallen into the camp of never buying another, and telling others the same. But I'd like to understand what happened, and if there are options to get it working. It seems so hit and miss to troubleshoot this issue. No clear answers from anything I've found online. |
Hi,
I'm one of the many owners with this laptop and I've lost HDMI output. I'm not sure when it exactly happened, but I think it was when I updated the Intel ME firmware a month or three ago. Basically, nothing happens when an external monitor is connected.
I've read a lot about this particular issue on (Lenovo) forums and it seems the following firmware update can fix this issue:
https://pcsupport.lenovo.com/nl/en/products/LAPTOPS-AND-NETBOOKS/THINKPAD-X-SERIES-LAPTOPS/THINKPAD-X1-CARBON-6TH-GEN-TYPE-20KH-20KG/20KH/downloads/DS502615
The laptop has the latest BIOS update (1.57) and the latest Intel ME firmware installed as well.
The thing is, my laptop is running Arch Linux solely. Could this update be made available for Linux users (fwupdmgr) as well?
The text was updated successfully, but these errors were encountered: