Focus of this repo will be on the X2100. The X210 and other repos are linked in this repo. A copy of this article is on my website as well, along with older versions of the BIOS. This repo aims to cover all the relevant BIOS/EC information on the X210 and the X2100.
Download the latest release and read the README to flash the updates. The instructions are also found here.
- x2100 (Main content of this repo, includes the BIOS and EC)
- X210 EC: Original X210 EC patches
- X210 BIOS/EC: Compiled X210 BIOS/EC patches in a single repo
- X2100 EC: X2100 EC patches based on the X210
- X2100 EC updated: exander77's patches based on jwise's repo, not included in this repo
- Flashrom for Linux
- Coreboot for X2100
The git repos listed above are listed as git submodules, once you cloned this repo you can fetch them by git submodule init and git submodule update.
-
bios_15122021.bin- BIOS is properly configured with sensible power levels (15W fallback).
- CPU C states are enabled with options of promotion and demotion. Enables better power savings.
- UEFI video is disabled under CSM. Disable if OS does not display.
- RAM is set to 2666MHz all the time to reduce screen tearing.
- IGP is set to 1GB for higher intel GVT-G resolutions.
- CPU microcode is updated.
- Intel ME is updated to 14.1.
- GOP updated.
- EC is updated using patches
-
bios_15122021_me_disable.bin- Exactly the same image as
bios_15122021.binexcept the following: ME disabled, useful for those with the ME issue.
- Exactly the same image as
-
dual_pcie_15122021_me_disable.binanddual_pcie_15122021.bin- Exactly the same image as
bios_15122021.binexcept the following: The stock mSATA/4G module (top slot) has been changed to PCIe. Unfortunately it does not work with Intel WiFi cards, but NVMe drives and other WiFi drives do work. This would unlock faster NVMe SSDs by using an NVMe 2242 female to mPCIe male adapter. This also enables dual WiFi cards, allowing those who wants dual WiFi cards for development and testing.
- Exactly the same image as
-
v25_original.bin- The latest factory BIOS (V25)
-
*_fast_charge.bin- Patched EC using exander's patches. Includes all the patches except the fn/ctrl patch. Power charging is set at 80W peak. Only chargers >65W will work, excluding most 65W chargers. Fan speed is set to silent 1 profile.
-
*_slow_charge.bin- Patched EC using exander's patches. Includes all the patches detailed above. Power charging is set at minimum 45W. 65W chargers will work, useful for those who wants to bring a small USB-C charger.
-
*_fn_ctrl_swapped.bin- Patched EC using exander's patches. Includes all the patches detailed above including swapped fn/ctrl patch.
- May have weird behaviour when using an external mouse. Try it out and revert to non swapped variant.
-
layout- BIOS layout files for the X2100 BIOS image
-
x2100_helper.sh- BIOS and EC update and management script for Unix users. Requires flashrom to be in the same directory.
-
flashrom- Compiled flashrom from master that will work on 10th gen Comet Lake. Compiled for Linux x64 systems. SHA256: dbfadc52b1e1aa12bfb3e26c8e72d183037962b0ba0e65fb1987df5b2d888e56
Note: after updating the BIOS to some of the recent unofficial ones, the version and build date shown in the BIOS setup won't change.
This patches both the BIOS and EC. You'll need to build the BIOS with your preferred BIOS image and EC if you want a customised image.
- Download the BIOS update programme from my website or from the release tab on this page.
- Be sure to install the drivers in the downloaded folder.
- Copy the preferred full BIOS image to the folder.
- Rename as
bios.bin. - Run
update.batas admin. - Shutdown and unplug power, including battery power.
- IMPORTANT: Wait 1 minute before plugging power back in.
For Linux users, flashrom has to be compiled from source in order to flash the firmware as the support for 10th generation Intel chipsets is not included in the stable release yet. A compiled binary is provided in this repo, or you can compile it yourself:
- Run
git clone https://github.com/flashrom/flashrom.gitto clone flashrom cd flashromand build flashrom by runningmake. More instructions are located in the flashrom README.
- Set the
iomem=relaxedkernel parameter in your bootloader config (see a guide for GRUB here). - Download the files needed from my website or from the release page or generate your own using the helper script.
- Make sure you have the full BIOS image, flashrom and
x2100_helper.shin the same directory - Run helper script:
sudo bash x2100_helper.sh -f -i bios.bin - Alternative, look here to update the BIOS only
- Or here for the EC only
- Set the
iomem=relaxedkernel parameter in your booloader config (see a guide for GRUB here). - Download the BIOS and EC you want to use. There are 4 options for BIOS (HAP bit 0 vs. 1, top slot mSATA vs. mPCIe) and 4 options for EC (with or without Fn/Ctrl swap and fast charge) so you have a total of 16 options:
HAP bit (disables Intel ME) Top slot Fn/Ctrl swap Fast charge BIOS file EC file 0 mSATA no no download download 0 mSATA no yes download download 0 mSATA yes no download download 0 mSATA yes yes download download 0 mPCIe no no download download 0 mPCIe no yes download download 0 mPCIe yes no download download 0 mPCIe yes yes download download 1 mSATA no no download download 1 mSATA no yes download download 1 mSATA yes no download download 1 mSATA yes yes download download 1 mPCIe no no download download 1 mPCIe no yes download download 1 mPCIe yes no download download 1 mPCIe yes yes download download - Rename the BIOS as
bios.binand EC asec.bin - Download flashrom and the helper script (both are also available in the releases). Alternatively, you can compile flashrom yourself.
- Place
bios.bin,ec.bin, flashrom binary andx2100_helper.shin the same folder. - To build a full flashable BIOS image, run:
sudo bash x2100_helper.sh -c -b bios.bin -e ec.bin -o output.bin - Update the whole BIOS image or only the BIOS or only the EC
- Run the helper script to update the BIOS:
sudo bash x2100_helper.sh -f -b bios.bin - IMPORTANT: Shutdown and unplug the power for 1 minute.
- Reboot and verify that all the settings are intact.
- Run the helper script to update the EC:
sudo bash x2100_helper.sh -f -b ec.bin - IMPORTANT: Shutdown and unplug the power for 1 minute.
- Reboot and verify that all the settings are intact.
- Go into BIOS
- Advanced
- PCH-FW Config
- PTT
- Change dTPM to PTT
- Turn off CSM settings in the advanced menu.
- Disable SA GV for RAM.
- Located under advanced > chipset.
- Undervolt the machine
- Advanced > Overclocking Performance Menu.
- Enable overclocking features
- Processor > core/ring
- Change the offset of the voltage in mV.
- Change prefix to negative to indicate undervolt.
- Take caution with this and do plenty of test to ensure stability.
- There are also software options to do this.
- PL1/PL2 adjustments
- Article I wrote on this
- Advanced > Power & Performance > CPU - Power management Control > Config TDP
- A few presets here. Default is nominal and you can change the nominal preset.
- Adjust PL1, PL2 and tau setting for nominal profile.
- Enable C states
- Advanced > Power & Performance
- Enable C1 & C3 states.
- Enable promotion and demotion of C-states.
- Change package C-state to auto.
- Changing factory presets:
- Use AMIBIOS (google around for the binary) to adjust settings. Several versions don't really work. Just try out different versions on the internet and see which one works.
- Updating internal ME, change PCIe/SATA lanes etc:
- Intel CSME v14 R1 (Intel FIT) to adjust these internal settings.
- By using Intel FIT, you can technically provision Bootguard yourself as the machine comes unprovisioned with a clean unfused PCH.
- Google around to find out more. All warranty is voided if you attempt to do this.
- Doing this would probably make this the most secure laptop in the world as literally only you own the firmware keys.
- mjg59 has kindly ported coreboot to the X2100. Feel free to compile from his repo. It is included as a submodule for in this repo as well.
Thanks to everyone who made it possible. EC patches: mjg59, jwise, l29ah, exander77 X210 coreboot: mjg59 X210 compilation: harrykipper X2100 BIOS updates: chose to remain anonymous Flashrom: flashrom team Motherboard: 51nb, Hope, 17m19
The BIOS binaries contains copyrighted material from AMI but this repo is for documentation so please do not sue me. Everything else belongs to their respective copyright owners. Everything by me is GPLv3 including the helper script. Feel free to fork and play around.