What is the BIOS?
BIOS is an acronym for Basic Input Output System on your PC. It is responsible to initiate and make available all devices and their chips (including CPU) are to the operating system on your PC motherboard. Some PC parts like RAID controllers and video cards have their own BIOS. For instance, such BIOSes are integrated into the main system BIOS on the laptops or tablets.
Different BIOS manufacturers
One of the major players is Phoenix Technologies in BIOS market, which acquired some other brands like American Megatrends (AMI), Award Software and Microid Research and General Software.
There are some differences between different vendors BIOSes but still all of them serve the same purpose – to initiate the chips and give the operating system control.
Modding BIOS for different purposes became quite popular. Few of them are: enabling disabled by the hardware vendors BIOS features (e.g. virtualisation support), adding extra functionalities or features (e.g. newer CPU support, hard drive controller BIOS update, overclocking etc.).
There’s some risk to modify and flash a BIOS. I strongly suggest to read about the BIOS recovery before flashing your system BIOS. It is a good practice to verify that the CPU patch or whatever other changes were correctly applied before flashing a modified BIOS. Your system might fail to boot in some situations. We are not responsible if your system is damaged while attempting this.
Target of this exercise
To show how is possible to modify the motherboard’s BIOS to support officially unsupported CPU. In my case, the mobo is Asus P5LD2-VM SE with AMI BIOS.
If you would go to the drivers & tools section, you will find that the BIOS was updated last time on 2007/08/14. Quite old mobo but it is very suitable for the exercise 😉
I got on eBay an Intel E5300 dual-core CPU which was not supported by P5LD2-VM SE. The mobo produced such error after installing this CPU:
Intel CPU uCode loading error Press F1 to Resume
This means that CPU patch is missing in my BIOS. However, it booted after pressing F1. So I decided to fix that error 😉
Things you’ll need
- The latest BIOS – that is v.0701 from ASUS support website
- Intel CPU micro code, which can be downloaded from Intel website
- Intel microdecode extract tool
- MMTOOL v.3.26 for playing with AMI type BIOS
Extracting Intel CPU uCode
You will download tgz file, which you can extract using a free 7Zip archiver on Windows or using an usual tar -xvf archive_name command on Linux.
You are supposed to get a microcode.dat file, in which all CPUs microcodes are stored. The specific CPU patch needs to be extracted by using Intel microdecode tool. You will get a bunch of the files like this in your directory:
The beginning of the file shows the CPUID, which is 1067A in my case. I do not know which platform should be used in my case, so I will integrate all three CPU uCode files into the main system BIOS.
This uCode release date is 2010/09/28, what is at least 3 years later after last official ASUS bios update. It might become a reasonable extension of the support 😀
Modify AMI BIOS using MMTOOL
You will have to load your AMI BIOS file using MMTOOL and go to ‘CPU patch’ tab:
Here, you can see the list of 16 supported CPUs by this BIOS version. Next, you have to add the patches of CPUs, in which support you are interested:
- Click on ‘Insert a Patch Data’;
- Browse & select the CPU patch file.
You have to click ‘Apply’. I did this three times by inserted three CPU patches.
Save modded BIOS & flash to your mobo
You need to save your freshly modded BIOS and flash this BIOS to your motherboard. You will need an USB bootable flash drive.
You can follow the following steps to create an USB bootable flash. After this, you will have to put a flashing utility together with the BIOS on your drive and get the ancient DOS 😉
I used AFUDOS utility to perform flashing:
You will have to reboot your PC and just tweaked BIOS should come alive 😉