Re: M93p Tiny BIOS FBKTD2A is broken - bad BIOS update on website
11-28-201806:15 PM - edited 11-29-201803:21 PM
Alright, so I figured out a solution. It took a few days of trial and error. But before I get to that, I want to make it clear that Lenovo's support never reached out to me, never responded to my support ticket, and they never offered any kind of solution. I have never had a worse support experience for a business product in my life. These M93p PCs are from 2014, and as they get to the end of their life, I will not be replacing them with any more Lenovo products after they have demonstrated this negligent product and customer support. I strongly encourage anyone else with this issue to not buy any more Lenovo products either, because the next time this happens, you will be out of luck since they will not support you.
The root cause was that Lenovo screwed up their latest BIOS releases. If you try upgrading directly from a very old version to a new version, the upgrade will fail. And any subsequent attempts to flash any upgrades, even older ones, will fail. There is no warning about this anywhere on the website, and no warning in the flashing utility either.
In order to recover from this, you will need to downgrade the BIOS in recovery mode, and then perform upgrades incrementally to newer versions.
First, enter the BIOS setup utility. On the first screen, identify the boot block revision level. This is the BIOS file you must download and install in a downgrade.
Unfortunately, Lenovo does not publish a history of prior BIOS versions. You will need to guess the URL manually based on the following format:
You must replace the XX in the URL with the two characters between FB and A in the boot block revision level number. For example, if your boot block is FB56A, you would replace the XX with 56 to get the URL
Extract your bios to the default c:\swtools folder.
Inside of the folder where you extracted the BIOS, then look for the IMAGEFB.ROM file.
Format a USB flash drive as FAT32. Copy the IMAGEFB.ROM file from the extraction folder to the root of the flash drive.
Shut down the computer. Open it up, move the CLR CMOS jumper to the recovery position.
Plug the flash drive with the ROM file on it into the system, then power it on. The system will beep a few times, flash the Main Block, and then turn off. When it's turned off. Remove the flash drive, and move the CMOS jumper back to the original position.
Close up the system and power it on. It will say invalid configuration. Press F1 to enter setup. You should now see the BIOS revision and boot block are the same version. Scroll to the Exit tab, save config and exit.
Boot into Windows. Now, you can install newer versions of the BIOS. You MUST incrementally upgrade some major milestone releases, including:
I found the March 2014 (74A) BIOS to be MANDATORY for applying any future BIOS upgrade when upgrading from 72A or earlier. After that, I was able to upgrade directly to D2A (Aug 2018).
After each upgrade, check in the BIOS setup to ensure that both the bios revision and boot block are the same number (74, D2, etc).
There is one other thing I learned. I ran into another issue where the Embedded Controller failed to flash. It failed verifying, and as a result Windows was not booting properly. Attempting to re-flash the same version was not working, since the flashing utility saw the same version number installed, even though it was corrupt. There was no way to force it to flash, so I had to create a hacked exe to skip the version check.
However, there is a more general workaround for this. If you download an older BIOS release with an older Embedded Controller version, the utility will flash an older firmware version, as long as it is not an identical version number. Then after a successful flash, you can re-run the newer BIOS EC flash.