Recently, I purchased an old, used Lenovo M900 with a dual-core Pentium CPU. As a Mac Mini user who loves its small form factor, I was looking for something similar in size. The small Lenovo seemed like the perfect candidate.
I soon discovered that this platform officially supports only Skylake CPUs. However, after searching through internet forums, I found that it’s possible to make a small BIOS modification to run CPUs up to 9th generation. I am now successfully running an Intel i5-8500T in this tiny form factor computer.
But how did I achieve this? I’ll guide you through the entire process.
Things needed
As there was a lot of information about modifying the BIOS in this machine, it was mostly incomplete. I’ve decided to dive into this topic and bring a final solution. Not only modify the BIOS, but compile Coreboot and get rid of the BIOS completely.
Before we start with the mod process, we will need few thinsgs:
- Lenovo M900 / M700 unit
- CH341A programmer
- Intel CPU from 8th or 9th generation
- Another PC for compiling open core and programming the bios chip
- Some patience
- Bios from m910q and bios backup from M900
- Pencil 🙂
Starting with Coreboot
This may sound terrifing, but don’t worry – I’ll guide you through the entire process how to run Coreboot on M900.
We’ll need a Linux machine to compile Coreboot – you can find example process here. This example explains how to build Coreboot for QEMU, but process for real hardware is almost the same.
Download all neccessary tools and libraries needed
To be able to build Coreboot, we’ll need some tools and libraries:
sudo apt-get install -y bison build-essential curl flex git gnat libncurses-dev libssl-dev zlib1g-dev pkgconf python3 python3-is-python
Get Coreboot source code and compile toolchain
Clone Git repository:
git clone https://review.coreboot.org/coreboot
cd coreboot
Build Coreboot toolchain:
make help_toolchain
make crossgcc-i386
Build the Payload:
make -C payloads/coreinfo olddefconfig
make -C payloads/coreinfo
Setup your mainboard config
Cofnigure your mainboard usign command:
make menuconfig
Now you should be able to see window like this:

We will have to make changes in:
Mainboard
Select “Mainboard Vendor (Lenovo)” and “Mainboard model (ThinkCentre M700 / M900 Tiny)”.
Chipset
Make sure you’ve selected “Board can contain Coffee Lake CPU”. Then find option “Add Intel descriptor.bin” and provide path to Intel Firmware Descritpor. In my case I am usign descriptor I’ve extracted from M910Q (with the one from M900 I wasn’t able to boot with 6 core CPU like i5-8500T). This probably causing the boot being little bit slower, but it’s the only way to run CPU with core count higher than 4.
Select “Add Intel ME/TXE firmware” and add path to me.bin from M900. Do the same for Gigabit ethernet configuration (gbe.bin from M900).
You can find files needed here.
Payload
I am using SeaBios, but feel free to use whatever suits your needs 🙂
Final step:
make
After compilation process is done, you will find coreboot.rom in build folder.
Congratulations! You successfully compiled coreboot for your Lenovo M900 tiny! Now just flash the rom to the BIOS chip (I’ve used neoprogrammer) on the board and you are ready to go, almost…
CPU pin mod
There is slight difference in pin setup between Skylake and Coffelake. You’ll need to short two pins and isolate few others. In my case was enough to shor two pins using pencil and isolate the “T shape” on left side as on the picture bellow:

Ready? Turn it on!
If you read the article to this point, you are probably running you new Coffe Lake CPU with Coreboot on Lenovo M900. Were you able to run another CPU? Share your experince in comments! And… If you are not able to go through entire process, I have a suprise for you! You can download my Coreboot build.