Bad embedded controller flash Lenovo Thinkcentre M93p


I updated the "embedded controller" bios under windows7. After the flashing the program said: wait 1s the always freeze. Now I have a blank black screen with spinnign fans.
I used the FBJYD4USA version which uses FBCT32A.bin. I think the bios stored in the W28Q80bvsg SPI eeprom. This eeprom has a 8Mbit capacity but the content (FBCT32A.bin) is 128kbytes only.
Is there any failsafe method to reflash the SPI?


@GreaT - CH341A + SOIC8 test clip, these items are $2.50 each on ebay, but take 3-5 weeks for delivery unless you pay more there or elsewhere for faster shipping.

How did you flash the EC from windows, and why did you do this outside of a normal BIOS update? Did you use this command >> SPIW0323.exe FBCT32A.bin /V 32A
And did you immediately flash the BIOS too after that? If not, you may need to do that in order for it to be compatible with the EC. So if you can, and have not already, update the BIOS from DOS or via recovery method
Here is command for BIOS flash >> wflash2.exe imagefb.rom /bb /rsmb %1

Here is a guided method that may help you get all this sorted out…te/td-p/4281617

And here is links for recovery method also, see post 2-3 + 5…on/td-p/2248849

EC Rom will always be much smaller than the BIOS rom, so 128KB file for EC sounds normal, But the chip usually contains more than that amount (not always) W25Q80 is 1MB chip, same for W25Q80 in case you had that correct.
Dump that chip before you write anything to it, and verify it’s not all FF or 00 before proceeding with any writes, this way you have a backup to work with. if all FF or 00 try another software version until you get actual dump.

You may need to find your exact model EC and BIOS dump from someone else before you can fix this.


I used the windows BIOS updater package for BIOS flashing. Why I flashed under win? The DOS flasher said: my BIOS version is too old (under 79 or something). :slight_smile: Now I know. I have to update ther BIOS step by step. I used to update the bios from the 2014 version to the 2018 version. That’s why the updater hangs. The window software did’t work also I mean the flash.cmd.

Unfortunately I typed >> SPIW0323.exe FBCT32A.bin /V 32A

I didn’t flashed the bios after the EC flashing because the flasher freeze at the “wait 1s sting” after 10 minutes of waiting I got a bricked or incompatible BIOS.
The original BIOS version was around 2014 but I don’t know the exact EC version.
Tomorrow I am going to read the SPI with raspberry pi + flashrom utility. Currently I don’t have a CH341A adapter.

One question: What does it mean the 32A or 29A in the parameters line?

Thanks, yes, sounds like you skipped too many BIOS versions, and sounds also like you updated EC without following with actual BIOS update too (correct?)

Raspberry will be fine, once you get it working. I bet EC is updated properly, just BIOS update now needs done. Dump the BIOS chip and open it or upload for me to check, before you write anything to the board, this way you have a known backup of your serial, UUID, MAC etc.
Then we can make a BIOS for you from the stock package to program into the main BIOS chip

/V 32A, from the flash.cmd batch file is calling ITE SPI Flash updater to update the EC using /V (Version) 32A file (Short name for FBCT32A.bin maybe?) Or may mean Variant32 type
I do not see /V 29A, I assume some other older BIOS, same as above applies just different version/file name (I assume, or variant type)

You should be able to recover using the info in the Lenovo links above, if not then I’m sure we can sort it out with your Pi programmer.


I’ve dumped the EC SPI flash. It contains the new “FBCT32A.bin’s content” firmware and nohing more (I though the EC update was successful). I made a new 1MB flash file with the old EC 29A firmware. I wrote into the eeprom and soldered back. Unfortunely nothing has changed. No beep at the flash recovery mode only a blank screen with fans.
I dumped all the bioses U4 and U5.

I found FBKT65AUS @ x1dfd6
I found FBKT75AUS @ x22fb6,
I found CFBKT75AUS @ x23041
I couldn’t find “real” the EC version info in the dump 7 digits like: FBCT32A . Do you know the exact location of the EC version?


@GreaT - New EC Being on there was fine, you could leave it that way, just needed to update main BIOS I think to be compatible with the new EC.

Dump main BIOS and send me contents, I will update to latest version for you, if you are unsure how to do that and keep your serial, UUID etc,


I’ve sent you the backup link in pivate.

@GreaT - This BIOS is RSA Signed internally, so modifications may break it no matter what you do…620463412221173
Program in 4MB and 8MB files. If these fail, it may also be due to some issue in your dumped NVRAM. In this case, if that happens, we’ll try again with only one empty/stock NVRAM volume, instead of both copied out from your dumps and inserted into stock BIOS.
For that test, you will loose your serial, UUID etc, but we can put back later if we find that method works, which would let us know something in the NVRAM is set badly.


Thank you,

I think I found the original EC firmware version from a friend’s machine.
Same BIOS, same date. That BIOS contains a FBCT13A EC.
Unfortunately I can’t find this EC version in the official BIOS installers. Maybe this version was the initial relese?
Is there any way to dump the EC firmware without desoldering the SPI eeprom?



I programmed all your edited bioses 4m/8m and the 32A (EC) back. Sadly the PC is still dead.

Yes, that could be some earlier EC release, it’s not needed though, but you can dump it from his board and try it if he’s close to you

The way the warnings are about updating BIOS though, seems like you need to use certain EC with certain BIOS, and needed to be updated in certain way/in-a-row without jumping form one to other,
So, final EC and final BIOS programmed on should be working. If not, then we may need to try and start at the beginning, with first ECC and first BIOS.

You don’t need to desolder anything to dump it, you need SOIC8 test clip, order one and wait, especially do this if you have another system to use while you wait, that way you aren’t doing a bunch of unnecessary soldering/desoldering etc.

My BIOS may not work due to RSA signature as mentioned or it could be it’s simply not working too due to flash method used prior and not doing as they outlined so something else is messed up, hard to know for sure.

Lets test this for now, before going back to older EC/BIOS. You will loose serial, UUID etc, but this is only a test. This is stock BIOS not modified (Nothing touched, all locks in place too), so if it works then we know RSA signature breaking was the issue.
If this fails also, then we have two options, try going back to earlier/initial release on the BIOS and EC. Or, finding a confirmed working dump set (I’ll try to find)…825985028771112

Also, with any of these in place (on chip) this BIOS or previous one, you should try the above linked recovery methods again too

* edit - I can’t find any dumps, you will have to get your friend to dump both chips or purchase a dead/faulty complete system or board on ebay.


A tried the two new bioses. It’s still dead.

Do you still/now have the latest EC on there too? If not, put that back too, so it’s all updated, then try Lenovo recovery methods.
I was not able to find any dumps for this system, so if you cannot get recovery to work only thing we can try it going back to some older version and hoping RSA is not used there. Otherwise, I think buying a dead/faulty board on ebay may be best bet to recover this


I flashed back my original BIOS U4/U5 then tried to flash with the Cmos clear 2-3 (beeping method).
First I flashed with the 75 then D2 and finally with the D4 BIOS.
The bootblock number is still the same ‘75’.

The motherboard boots up but the EC controller version is INVALID.


@Great - sorry for the delayed reply, I’ve been buried here lately You’ll have to go to your friends and get a dump of his EC, or now that you’re booting up, have you tried putting the latest EC back on the chip directly via programmer?
If yes, and it fails, try updating to latest BIOS again since that BIOS is required with the latest EC. Otherwise, if you are using older BIOS, you need older EC put on the EC chip.

Just went through this mess myself. The flash.cmd that Lenovo gives you is screwy and if the ReadGPIO.exe line doesn’t run: the script logic doesn’t work right. It ends up flashing an EC firmware that doesn’t apply. No factory recovery method worked for me.

I ended up copying the FBCT13A firmware from working M93p and burning it to the bricked M93p. I did this by de-soldering U107, a Macronix MX25L8006E, and putting in the my TL866II programmer. The SOP8-DIP8 Adapter that came with the programmer fit the chip. I didn’t have a SOP8 chip-clip handy so I couldn’t try the idea without de-soldering. It did however work and got the PC bootable again. Afterwards, I ran the bios update again by CD and it worked fine.

I am now on FBKTD5A BIOS with the original FBCT13A EC Firmware. FBCT29A and FBCT32A EC firmwares did not work on my platform.

Thanks for your insight on this @itsupport - can you provide the EC Files you have that did work, so @GreaT can try them later if needed, thanks!

Sure thing!

Dear sir, i have exactly done the same as you. Running the command SPI042 FBCT32A.bin /V 32A
and pc halt. i can’t boot and cant recover.
How do you manage to boot the pc again?
thank you
my pc is m83.

Do i need to desolder the cmos to fix?

@nikkotwh - sounds like you flashed EC, but didn’t update the BIOS, so now you will need flash programmer (CH341A) + SOIC 8 test clip with cable
Unless you can make BIOS do recovery flash, google this model and or this brand and you’ll find recovery BIOS flash instructions.