[SOLVED] Lenovo ThinkCentre E96 BIOS with 9th Gen CPU Support

The ME_DIS jumper on my motherboard is currently connected. Do I need to remove this jumper before updating the BIOS and then dumping the complete BIOS?

To be honest, I want to use CC150. The other CPUs like 8th and 9th gen are a bit expensive. Can CoffeeTime add microcode?


It seems that 906ED implies that the BIOS has the CFL R0 microcode required for CC150, so I don’t need to do anything else?


If I want to use UBU to update the microcode, should I use the command FPTW.exe -bios -d biosinginal.bin to only dump the BIOS section instead of the complete SPI ROM? Then, should I use FPT to separately flash the ME firmware and the BIOS updated with UBU?


The compressed file contains my ME information and full BIOS dump.
fullbios.zip (6.2 MB)

Try to flash this bios with this fpt command: -f biosname.rom (to flash full bios region) while ME_DIS is shorted (ME is updated to latest, fd region unlocked, latest mcode 906EA to 906ED, and much more): Darkiaji-E96.rar (6.0 MB)

1 Like
Intel (R) Flash Programming Tool Version: 12.0.85.1919
Copyright (C) 2005 - 2021, Intel Corporation. All rights reserved.

Reading HSFSTS register... Flash Descriptor: Valid 

    --- Flash Devices Found ---
    ID:0xEF4018    Size: 16384KB (131072Kb)

    --- Flash Image Information --
    Signature: VALID
    Number of Flash Components: 1
        Component 1 - 16384KB (131072Kb)
    Regions:
        DESC     - Base: 0x00000000, Limit: 0x00000FFF
        BIOS     - Base: 0x00800000, Limit: 0x00FFFFFF
        CSME     - Base: 0x00001000, Limit: 0x007FFFFF
        GbE      - NOT PRESENT
        PDR      - NOT PRESENT
        EC       - NOT PRESENT
    Master Region Access:
        BIOS     - ID: Read: 0x000F, Write: 0x000A
        CSME     - ID: Read: 0x000D, Write: 0x0004
        GbE      - ID: Read: 0x0009, Write: 0x0008
        EC       - ID: Read: 0x0101, Write: 0x0100

Total Accessible SPI Memory: 16384KB, Total Installed SPI Memory: 16384KB

FPT Operation Successful.

Is my FD region unlocked?

When I use FPTW.exe -d fullbios.bin to dump the BIOS, is it the full SPI ROM? Can I directly use this dumped ROM to program it with a programmer?

It should be but ME_DIS might still be needed to be shorted for a full dump.

Yes, it is.

Yes.

Also, did the bios i gave work?

When flashing the BIOS, FPT reported write protection. I tried flashing only the BIOS region, but it was the same.
AFUWIN verifies the BIOS signature, and I can’t use AFUWIN to flash the BIOS with the updated microcode.
My FT4232H programmer seems to have some issues. I think I should try CH341, and it seems flashrom supports B360, so I’ll try that too.

So even with ME_DIS shorted, intel FPT could dump your entire bios (as you did use -d fullbios.bin without any arguments like -bios, -me, -desc, -gbe, etc., just -d, it means you did tell fpt to dump the entire bios chip), but couldn’t write back using -f only? So it seems the write permission is disabled in your current bios description region (as per what i saw on your fullbios.bin dump), and with the bios i gave, i did unlock the write permission in the Description region, tho i guess it will work only if ME_DIS is shorted.

Actually, I’m flashing the BIOS with the ME_DIS jumper shorted, but as you can see, the BIOS is write-protected.
I did some quick research online, and Lenovo doesn’t seem to offer a BIOS option or jumper to disable BIOS write protection.
I’m wondering if flashrom can bypass the write protection limitation.

1 Like

As per what expected, since description region forbid that.

I dont really think flashrom/flashprog are able to bypass it? But it is worth the try. If you’re abt to use the DOS version of flashrom/flashprog, check this out: [Tool] Flashprog 1.1 + Flashrom v1.5 [DOS].

Either way use CH341A, or if you do use FT4232H spi programmer you could try to remove all power from the motherboard, remove cmos cable, and proceed connecting the bios chip to the programmer, and try to detect and read it.

The error report from AFUWIN seems to suggest that the firmware is being rejected because it’s not properly signed.
Lenovo also uses AFUWIN to update BIOS, so it looks like the write protection implemented on FPT isn’t a major issue for AFUWIN. And as far as I know, flashrom doesn’t support intel_spi, which might be a good thing.
However, worst case scenario, I might have to take the motherboard apart and try to get my SPI programmer to work.

Yes, afuwin does check for firmware signature which has been violated since bios sturcture changed, so the only way to do this is by programmer.

I tried using sudo flashrom -p internal to bypass the write protection, but it didn’t work. I then attempted to flash the firmware using my CH341 programmer. However, I suspect that the flashing clip might be causing poor contact when flashing the SPI ROM online on the motherboard, or there might be insufficient power due to motherboard differences. In any case, I failed, sometimes with a write error and other times with a verification error. I previously used a CH341/FT4232H+ flashing clip to flash the SPI ROM on a Lenovo ThinkCentre M710q without encountering such issues.

In the end, I gave the motherboard to an acquaintance who repairs motherboards. He removed the SPI ROM and flashed it with the modified BIOS on his programmer. Now the computer is working properly. I want to see if there are any other problems.

I will purchase a CC150 CPU in the future, and I hope it will work properly on this motherboard.

Maybe using spi debug port might work? Probably you could flash it after you did take off the cmos battery, unplug all power cable from the psu to the motherboard, leaving the motherboard with no power and no cmos, and then usually you could actually read/write that normally.

So, did the modded bios i gave to you worked?

I removed the motherboard from the case, with no CMOS battery installed and no PSU connected, but even then I couldn’t flash the BIOS using my CH341.

This motherboard doesn’t have an SPI debug port, so without using a hot air gun to remove the BIOS chip, the only option is to flash it using a clip.

Actually, the BIOS I flashed was the one you modified, and it worked perfectly.


Finally, I want to know if the BIOS limits the TDP of the CPU?

Great to know that it works, sad to know that the ch341a isn’t able to write the bios, probably the moment you connect it with soic8 clip the bios chip have WP enabled.

TDP limits might still sets at your mainboard limit if it were ever coded to the bios itself, you should try out an i9 9900 or i7 9700 of any variant (normal, K, KF) from a local shop or an aquintance of yours, and see if it would boot, and if does boot try out the igpu and see if the igpu also works.

It seems the CPU is working properly on this motherboard. I’m currently running y-cruncher for stability testing.

1 Like

Your current cpu or any 9th gen (or CC150 you mentioned?)

Yes, it’s a CC150, 9th gen Core, with a rated TDP of 95W.

1 Like

I suggest you to test it with Prime95 (i suppose you do have a good cooling), and use the smallest fft possible for test, it should load the cpu heavy enough, but should be safe since the cpu max is 3.5 all core isnt it?

Oh also, do you mind to share your cpuz or HWInfo Summary screenshot here? Just a bit curious hehe

I ran the Small FFTs test using Prime95, but due to the motherboard’s somewhat skimpy power delivery module and heatsink, the VR VCC temperature often reached 100 degrees Celsius. To address this, I had to reduce the load and run the full stability test using y-cruncher. This essentially involves some I/O-intensive tasks, which allows the VR VCC temperature to remain lower during testing.


Here is a detailed report from HWInfo.

1 Like

It seems that even after the region of the BIOS has been unlocked, it’s still impossible to update the BIOS through the system, and it can only be updated using a programmer. Is there a switch in the BIOS to enable updates?