Lenovo M900/M700 Coreboot and Coffee Lake mod

Ad - Web Hosting from SiteGround - Crafted for easy site management. Click to learn more.

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.

Ad - Web Hosting from SiteGround - Crafted for easy site management. Click to learn more.

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.

Ad - WooCommerce hosting from SiteGround - The best home for your online store. Click to learn more.

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:

menuconfig

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.

Leave a Comment