How to Update CPU Microcode in Award or Phoenix BIOS – For LGA 771 & 775

MODs

155 Comments

In this guide, we're going to show you how to update the CPU microcode in an Award or Phoenix BIOS. If you have an AMI BIOS, check out this guide instead.

Note: This information has only been tested with LGA 771 and LGA 775 BIOS files, so if you have a newer motherboard (especially UEFI ones), it probably won't work.

Why would you want to do this?

Updating the microcode is helpful if:

  • You did the LGA 771 to 775 MOD, and your Xeon is not working as expected (or is missing functionality, such as CompareExchange128, Speedstep, SSE 4.1, or VT-X).
  • Your BIOS doesn't support a newer processor that you want to run.
  • The microcode for your processor is old and may be buggy.

Disclaimer

There's an element of risk just flashing a normal BIOS, and especially when you start modifying it, so please attempt this mod at your own risk (and only if you're experiencing some problem). We highly recommend that you don't flash the modified BIOS unless you've verified the microcode was added correctly. If you accidentally remove the microcode that your processor needs, your system may fail to boot. We are not responsible if your system is damaged while attempting this.

Things you'll need

  • The latest BIOS for your motherboard
  • cbrom195.exe - Updates microcode for Award and Phoenix BIOSes

Method 1 (recommended) - Replace all of your existing microcode with the latest microcode from Intel

This method will delete all of your old microcode and replace it with the latest microcode from Intel.

Other programs you'll need

Step 1 - Download the file that contains the microcode for all the processors you want your motherboard to support

The following microcode is only compatible with method 1 of this guide (it's in a combined NCPUCODE.BIN format instead of individual microcode files). This makes it easier to update all of your microcodes at once.

Alternate microcode (in case the others are too big)

Step 2 - Move all of the files you just downloaded to the same directory (or folder), and open that directory in a DOS command prompt window

How to open a folder in a DOS command prompt window

Step 3 - Rename the microcode file to ncpucode.bin, and make it readonly

You can make it readonly with the following command:

attrib +R ncpucode.bin

This is necessary to stop cbrom from overwriting this file with your old microcode.

Step 4 - Delete the old microcode and replace it with the new code

The following command will delete all of the original microcode and replace it with the new microcode (which is in ncpucode.bin). It will just update YOUR_BIOS.BIN (it won't create a new file).

cbrom195.exe YOUR_BIOS.BIN /nc_cpucode NCPUCODE.BIN
  • YOUR_BIOS.BIN is the name of your BIOS file (it doesn't have to end in .BIN)
  • NCPUCODE.BIN is the name of the microcode file downloaded earlier

Having trouble finding the BIOS file that you need to MOD?

Read this

What to do if you get an error about not enough space

First, try one of the smaller, alternate microcode files mentioned earlier. If that doesn't help, you probably have a BIOS that doesn't support the ncpucode.bin method of updating the microcodes, and you'll need to use the 2nd method instead.

Step 5 - Verify that the microcode was added correctly

The following command will show you a list of all of the microcodes in your BIOS file:

intelmicrocodelist.exe YOUR_BIOS.BIN

You should verify that the microcode for your processor's CPUID is present. If you don't know what your CPUID is, check out the following guide: How to get the CPUID, Stepping, or sSpec for an Intel CPU.

If the dates of the microcodes are from 2010 (which is when Intel last updated them), you should have the newest microcode.

Step 6 - Update your BIOS using the modified BIOS that you just created

You should be able to update it the same way you'd update a normal BIOS.

Step 7 - Do a FULL BIOS reset (use the 3-pin motherboard reset jumper, and then load the default BIOS settings on the first startup)

How to fully reset your BIOS

Method 2 - Only add support for a new processor that isn't currently supported (old microcode will not be updated or removed)

This method is useful if your BIOS doesn't currently support a processor, and you want to add the microcode to support it. It should also work for adding LGA 771 Xeon support to an LGA 775 BIOS. All of your existing microcode will remain untouched and won't be updated or removed.

Note: This method may not work if you're trying to update the microcode for a processor that's already supported by your BIOS (you should use method 1 instead). This is the case because this method doesn't remove the old microcode, so the old microcode may get used instead of the new microcode you're adding (we're not sure which microcode the BIOS will use).

Step 1 - Download the microcode for the type of processor you want to install

The microcode files shown below are NOT the same as the ones referenced in method 1 above (they're in a different format), so you'll need to download these instead.

  • LGA 771 microcode
    • If you're only trying to add LGA 771 Xeon support to an LGA 775 motherboard, this is the only file you need to download
    • Contains microcode for all LGA 771 Xeon processors (except older Pentium 4 based 50xx models).
  • Desktop LGA 775 microcode
    • Contains microcode for all Core 2 Duo and later desktop processors (no Pentium 4 or mobile support)
  • Mobile LGA 775 microcode
    • Contains microcode for all Core 2 Duo and later mobile/laptop processors (no Pentium 4 or desktop support)

Step 2 - Look up the CPUID for your processor

You'll need the CPUID to update the right microcode (how to get the CPUID for an Intel CPU).

Step 3 - Set aside the microcode files for your processor's CPUID

Note: If your CPUID ends in an "h" and you don't see microcode with an "h" on the end, just ignore the "h" because it isn't actually part part of the CPUID. That just means it's a hexadecimal number.

When you unzip the microcodes, you'll see a bunch of individual microcode files that have filenames like this:

cpu0001067a_plat00000044_ver00000a0b_date20100928.bin

Here's what the different parts of the filename mean:

  • cpu0001067a - 1067A is the CPUID that is supported by this microcode
  • plat00000044 - plat is short for platform. This tells which sockets are supported by the microcode.
    • LGA 771 microcodes have a 4, 40, or 44 in this section
    • Desktop LGA 775 has a 1, 10, or 11
    • And for mobile LGA 775 it's a 20, 80, or A0
  • ver00000a0b - a0b is the version number
  • date20100928 - 2010-09-28 is the date the microcode was last updated

Set aside the microcode files for your processor's CPUID (there may be more than one).

Step 4 - Move cbrom195, your BIOS file, and the microcode files you set aside earlier to the same directory, and open that directory in a DOS command prompt window

How to open a folder in a DOS command prompt window

Step 5 - Rename your CPU's microcode file to cpucode.bin (plus what to do if you have multiple microcode files)

If there are multiple microcode files for your CPU, you'll need to combine them into 1 file with the following command:

copy /b file1.bin + file2.bin + file3.bin cpucode.bin

The example shown above will combine file1.bin, file2.bin, and file3.bin into 1 new file called cpucode.bin.

Step 6 - Add the new microcode to your BIOS

The following command will add the new microcode to your YOUR_BIOS.BIN (it won't touch any of the existing microcode).

cbrom195.exe YOUR_BIOS.BIN /cpucode CPUCODE.BIN
  • YOUR_BIOS.BIN is the name of your BIOS file (it doesn't have to end in .BIN)
  • CPUCODE.BIN is the name of the microcode file

Having trouble finding the BIOS file that you need to MOD?

Read this

Step 7 - Verify that the microcode was added correctly

Run the following command to display information about what's stored in your BIOS:

cbrom195.exe YOUR_BIOS.BIN /D

You should see a new module called "CPU micro code" at the end of the numbered list, and its filename should be the same as the microcode file you added in step 6 (cpucode.bin).

Why don't I see the new microcode in the "Micro Code Information" table at the bottom of the screen?

This table is supposed to list all of the microcodes in your BIOS. However, since we added the new microcodes as a compressed module, they won't show up in this list. Additionally, since the microcodes are stored in a compressed form, you also won't see them if you run intelmicrocodelist.exe on your BIOS (this program was mentioned in method 1).

The "Micro Code Information" table may also be empty for some BIOSes

This is normal, and you'll usually see this happen when method 1 failed due to not enough free space. It just means the microcodes are stored in a non-standard way in your BIOS. However, the method we just used for updating the microcodes should still work fine.

Step 8 - Update your BIOS using the modified BIOS that you just created

You should be able to update it the same way you'd update a normal BIOS.

Step 9 - Do a FULL BIOS reset (use the 3-pin motherboard reset jumper, and then load the default BIOS settings on the first startup)

How to fully reset your BIOS

Troubleshooting Problems

I can't find the BIOS file that I need to MOD

If your BIOS is in an .EXE format

You'll need to first extract it with an unzipping program like 7-Zip. Then look for a file that ends in .BIN, .ROM, or possibly something else like a number. LGA 775 BIOSes are usually around 1024 KB in size, so look for a file about that size.

You can also try running the following command on each of the files that could be your BIOS:

cbrom195.exe YOUR_BIOS.BIN /D

If cbrom displays information about your BIOS after running that command, it should be the correct BIOS file. If it hangs or gives you an error, try another file.

How to extract the actual BIOS from a Dell .EXE file

Execute the following command from a DOS command prompt window:

DellBiosFilename.exe /writeromfile

This should extract the actual BIOS file to the same directory.

I'm not sure how to update my BIOS with the modified file I just created

The method for updating your BIOS is different for each motherboard manufacturer.

  • With some, you can simply put the BIOS file on a USB key, reboot and enter the BIOS, and update it from there.
  • Others may have a BIOS updating program that you can run from within Windows.
  • And in some cases, you may need to put the BIOS on a bootable DOS USB key, CD, or DVD and update it from a command prompt.

If there's a Windows or DOS BIOS updating program, it will usually be included with the BIOS or mentioned when you download the BIOS. If you don't see it, check the downloads section, FAQ section, or support section.

If all else fails, try searching Google for your motherboard’s model and update BIOS or something like that.

155 Responses

  • vitor September 21, 20168:51 pm

    personal hello I Have A mother P5N- D board WITH Xeon Processor X5450 , I AM NOT GETTING IN THE microcodes Place Latest bios My P5N- D board could someone please help me

    Reply
    • vitor September 21, 20168:52 pm

      latest bios version and 1401.bin

      Reply
      • vinicius January 16, 20179:15 am

        dude i got tha samne board at the latest bios and my core2quad q6600 islocking up at random. can u help?

        Reply
  • Phoenix bird October 19, 20164:38 pm

    Cant find bios as .ROM or .BIN or anything that’d work with cbrom195….

    mobo: D2344-A3 /fujitsu siemens

    Vendor site only gives me disk.bim or exe-files which haven’t the right while after extraction..

    Any ideas?

    Reply
    • Vincent-Schulz November 22, 20162:31 pm

      @Phoenix bird

      Do you have newest BIOS installed installed for D2344-A3x already? (6.00.1.12 (11.10.2007)
      I know how to update BIOS, because I’ve done the procedure with three other Fujitsu Mainboards D2750-A2x (Micro-BTX) – G31 chipset – running with Xeon.
      Also Microcode Update done.

      Price on ebay 15€.
      Two baords from one seller have a Vcore problem. But the third D2750-A2x from another seller has a slitely differenty layout/components which seems to run very fine with the Vcore :-)

      Fujitsu Microcodeupdate Tool (universal for all older Fujitsu Boards)
      http://support.ts.fujitsu.com/IndexDownload.asp?lng=&SoftwareGUID=9B9B360E-DD12-4A4D-87D3-E5BCC25BBAA7

      I know how to get a bootable USB flash drive for flashing new BIOS and microcode update.
      Writing a whole description here at once it would be too much.

      But I could help and go further into detail if needed.

      Reply
      • Vincent-Schulz November 22, 20163:38 pm

        To get a bootable USB Flash drive with BIOS Update for Fujitsu D2344-A3x:
        NO extra DOS/Freedos installing for flash drive needed.

        Boot Linux/Debian/Ubuntu or Knoppix Live Linux System
        If you don’t have it Linux, you can download Knoppix iso and burn it do DVD and then boot from the DVD.

        ftp://ftp.rz.uni-wuerzburg.de/pub/linux/knoppix/DVD/
        ftp://ftp.rz.uni-wuerzburg.de/pub/linux/knoppix/DVD/KNOPPIX_V7.7.1DVD-2016-10-22-EN.iso

        Open a command window (console/bash/shell/terminal)

        Typing in a console as superuser (root):

        su

        To find out the correct device node used for your USB flash drive:
        type in the console:
        ls -la /dev/disk/by-id

        Result (example):
        lrwxrwxrwx 1 root root 10 Nov 21 18:42 KINGSTON_DATA-TRAVELER -> ../../sdh

        Result (example) If there are more partitions on the USB flash drive
        lrwxrwxrwx 1 root root 10 Nov 21 18:42 KINGSTON_DATA-TRAVELER -> ../../sdh

        lrwxrwxrwx 1 root root 10 Nov 21 18:42 KINGSTON_DATA-TRAVELER-part1 -> ../../sdh1

        lrwxrwxrwx 1 root root 10 Nov 21 18:42 KINGSTON_DATA-TRAVELER-part2 -> ../../sdh2
        “”{…}

        dd if=/*/DISK.BIM of=/dev/sdX

        WARNING IF YOU CONFUSE WITH THE WRONG DEVICE NODE YOU COU LOSE ALL DATA ON THE PARTITION(S) OR ANOTHER DISK. I WILL NOT BE HELD RESPONSIBLE FOR ANY MISTAKE YOU MAKE.

        Replace “sdX” with the corresponding device node your USB flash drive uses:
        to find out:
        ls -la /dev/disk/by-id
        THE DEVICE NODE CAN CHANGE AFTER REPLUGGING THE USB-DRIVE AND AFTER REBOOTING!!!

        Microcode Update bootable USB flash drive:
        dd if=/*/FTS_MICROCODEUPDATE.IMZ of=/dev/sdX
        Replace “sdX” with the corresponding device node which is in use for your USB flash drive. THE DEVICE NODE CAN CHANGE AFTER REPLUGGING USB-DRIVE AND AFTER REBOOTING!!!

        to find out:
        ls -la /dev/disk/by-id

        Reply
  • dratewka November 8, 20163:18 pm

    Hello,

    Recently purchased Xeon 5450 E0 (Costa Rica SLBBM). I have ABIT IP35 Pro, flashed with the Bios 18 + neccesery latest microcodes (verified). Board is booting, but cant start Win10 nor Win7. During Win10 startup, I have BSOD with “UNSUPPORTED PROCESSOR” message; same issue during clean Win10 installation. Cant also install clean Win7 (no error message thought, just stoppping ). Any clues ?

    Reply
    • Vincent-Schulz November 22, 20165:10 pm

      That’s odd. Installing a fresh Win7, Win 8.1 and Win10 worked all fine on my socket 775 boards with Xeons L5430 (E0), E5450 (E0)
      (P45, P43, G45, G31 chipsets)
      Also Windows 7 and Windows 10 still boots when I replug the SATA HDD on every computer’s mainboard (P45, P43, G45).
      Just when plugging the HDD to the Fujitsu D2750-A2x Board with G31 chipset I needed to reinstall Windows 7, because it somehow doesn’t load the necessary drivers.

      The G31 chipset does not support the SATA Advanced Host Controller Driver (AHCI). Even changing the start type in the registry from IDE Mode to SATA before using here didn’t help. Just reinstalling Windows 7 helped.
      Booting Windows 10 works at once when Plugging the Hard drive disk to G31 board without reinstalling.

      Reply
    • Vincent-Schulz January 26, 20175:55 pm

      @dratewka

      try rising the Vcore a little bit. Make sure not to go above 1.350V

      Find out the VID of your Xeon E5450. One Program than can do that is called RealTemp.
      There also other programs out called Coretemp.

      To be safe better don’t go higher than 1.30V maximum, because some BIOSes might set a bit higher than specified manually, because it might not be quite exact always with the voltage regulation.
      If you go higher the chip could suffer elctromigration which leads to that far, that the CPU needs more and more higher Vcore to operate stably.

      My E5450 has a VID 1.2375 and my X5470 has a VID 1.250V.
      1.2375V for an E54xx is quite much already, as some people report to have an X5470 with VID 1.1875V (if they really didn’t have Speedstep enabled during read out with CoreTemp.

      You can also try to boot Knoppix Live Linux System. If it hangs with a “Kernel Panic” or other error message thing, it might indicate a bit too low Vcore.
      If the Vcore was much too low it wouldn’t even post, not boot!!

      I had this problem with booting Windows 7 and Knoppix, tset a little bit too low

      http://ark.intel.com/products/33083/Intel-Xeon-Processor-E5450-12M-Cache-3_00-GHz-1333-MHz-FSB?q=e5450
      VID Voltage Range: 0.850V-1.3500V

      Reply
  • ben December 4, 20164:25 pm

    Hi i’m trying to make a X5460 SLBBA work on a XFX nForce 680i SLI.
    bios recognized the cpu and identify it correctly
    So I went and tried to install Win7, but I get a 0X0000007E error before I get to the installation screen. So I did the bios microcode update with a complete bios reset but the result is still the same… any ideas?

    Reply
    • Vincent-Schulz January 26, 20175:27 pm

      Is the Full FSB 1333 speed of X5460 detected with the nForce 680i SLI?

      http://www.delidded.com/lga-771-to-775-adapter/2/
      Xeons that are compatible with each chipset:
      5xxx Series 45nm: nForce 680i and 650i : Maybe (see below)

      Maybe your BIOS is setting too low Vcore!!

      You can also try to boot Knoppix Live Linux system from DVD or USb flash drive and see if it hangs at booting procedure.

      The Harpertown X54xx series have a higher Power consumption than the Harpertown Xeon L54xx series

      I have two X5470 SLBBF.
      Both Gigabyte boards (EP35-DS3L) 4-pin ATX-CPU-power, set a too low Vcore (1.220V)
      But my both X5470 have a VID of 1.250V (so a 0.03 higher Vcore needed).

      The VID is a fixed value, programmed into each CPU. And it differs from CPU to CPU, due to different production quality. It’s for the motherboard to find out the correct Vcore setting.

      So on some boards with weaker power phases or whatever it seems not to be working optimally always with the VID and Auto setting.

      When I let CPU Vcore on Auto, Windows nearly always crashed at booting.
      After rising the Vcore manually to 1.2750 V then Windows 7 is booting fine.

      When I had the Auto setting, which here didn’t use optimal Vcore also Knoppix crashed when booting.
      After hightening the Vcore manually a little, Knoppix boots fine. :-)

      For example the BIOS now shows 1.250 V when I set manually to 1.2825V
      When I set to 1.250 BIOS shows 0.03 V lower (1.220V).
      So some kind of Vcore shifting here.

      Reply
    • Vincent-Schulz January 26, 20176:12 pm

      @Ben
      Try raising Vcore a little bit.
      If Vcore was too much less under optimal VID the board wouldn’t even boot/post at all.
      When rising Vcore manually in BIOS, don’t go above 1.30V,.

      At first don’t change the Vcore and try too boot Knoppix Live Linux system.
      If it hangs here too, it’s not a Windows problem. It rather might indicate not high enough Vcore.

      Then set the Vcore manuall higher a little step by step, until Knoppix and Windows is booting.
      When you see the Vcore setting, you’ll notice that it is 1/8 of 0.1 V (=0.0125V) ; 2/8 of 0.1V =0.025 V; 0.1V* 3/8 =0.0375V; 4*0.1V/8 =0.05V; … etc)
      don’t go above 1.30V!!

      Reply
  • clk1946 December 16, 201610:17 pm

    I’m trying to do an update on my DG41TY Intel MB, but none of the .BIO files that I have downloaded from the Intel download center for this board can be processed by CBROM195.EXE – it just hangs. I have TY0045P.BIO that was downloaded from the Intel site and there is some sort of compatibility problem with that bios file. Any ideas on where or how I can get a bios file that can be processed by CBROM195.exe.

    Reply
  • Michal January 16, 20175:06 pm

    I have the same problem as dratewka has, with one difference – I have IP-35-E. I have also added microcode to the newest bios. What’s interesting, my E5450 worked on non-modified bios rev. 18, but when I added the latest microcode it crashes during system (Win 7 Ultimate) startup… Now I regret I added the latest microcode. The only benefit is that the bios shows normal temperature of the CPU. Please, if anyone can provide a solution, I would be grateful.

    Reply
    • Vincent-Schulz January 26, 20174:09 pm

      @Michael
      It would be wise to have an empty spare SATA HDD just for installing and testing purposes.
      Maybe it’s faulty RAM.

      Which stepping has your E5450?
      if it has stepping E0 (SLBBM), see on Heatspreader, you need Microcode:
      cpu0001067a_plat00000044_ver00000a0b_date20100928.bin

      if on the E5450 it’s shown SLANQ on the heatspreader then need one of this/ or all of those both:
      cpu00010676_plat00000004_ver0000060f_date20100929.bin
      cpu00010676_plat00000040_ver0000060f_date20100929.bin

      ————————————————————-
      There are two different microcode revisions of the same CPUID, from same release date:
      revision 60B and revision 60C
      What’s odd, is, that the Asus P5E-VM DO BIOS contains different microcode revision (60B from same date 2008/01/19 and there’s also Revision 60C of same CPUID

      All other boards like Asus P5Q3, Asus P5Q-EM, Asrock P43 Pro/USB3, Asrock P45DE3, Asrock P45X3 Deluxe, etc. use revision 60C, also from date 2008/01/19
      ——————————-
      cpu00010676_plat00000001_ver00000[60b]_date20080119test.bin <=Asus P5E-VM DO
      cpu00010676_plat00000001_ver00000(60c)_date20080119test.bin <=Many other boards
      ——————————–
      cpu00010676_plat00000010_ver00000[60b]_date20080119test.bin <=Asus P5E-VM DO
      cpu00010676_plat00000010_ver00000(60c)_date20080119test.bin <=Many other boards
      —————————–
      If had extracted those from BIOS with MMTool, then read out it's details from MMTool and called them like this, with "test" in behind, to mark them that they were extract, not contained in intel microcode file. And I used intelmicrocodelist.exe to double check that I've picked the one I wanted and given them correct names according to Intel naming scheme.

      Those four above are not inluded in the Intel microcode data file, as Intel released newer microcode versions of those.

      The same you can do to get older revision of CPUID 1067A microcodes etc.

      To get older microcode revisions you need to download a BIOS file from another boards with AMI American Megatrends Inc BIOS like Asus P5Q3, Asus P5E-VM DO, Asrock, P43 Pro/USB3, Asrock P45DE3 etc…
      Even many boards with BIOS update after latest Intel Microcode update for LGA775 and LGA771 CPUs still have older microcode revisions in place :-)

      Reply
  • victor February 7, 20171:24 am

    MS-7525 board, verified not supporting xeon, tested with L5420, flashed latest bios with method one MOD.
    chipset: G31
    FSB max: 1333MHz
    mobo manual: http://www.ctechinfo.net/documentation/manuals/boston_manual.pdf

    L5420 CPU verified NOT defective on another board.

    MS-7525 boot well with normal C2D CPU, but shows CPU not supported after POST when boot with XEON.
    Enabled virtualization technology and other possible things in BIOS.

    well, it just don’t work =(

    Reply
    • MegaDeivs March 19, 201710:21 pm

      Motherboard GA-P35-DS3R Xeon X5450(SLBBE) trying first method-microcode not replacing, it just updating(old microcode still on bios).
      After bios flashing I checked L2 cache (enter cmd “wmic cpu get L2CacheSize, L2CacheSpeed, L3CacheSize, L3CacheSpeed”) system use only 6144kB L2 cache memory instead of 12288kB… Where is a problem?

      Reply
  • Max March 27, 20175:01 pm

    This tutorial is not complete. If you need add 2 microcode with method 1 you do not need replace module ncpucode.bin only update:
    copy 1.bin+2.bin ncpucode.bin -> make this read only
    cbrom bios.bin /nc_cpucode ncpucode.bin

    This operation update microcode – not replace !!!

    Reply
    • Max March 27, 20175:04 pm

      Of course copy /b

      Reply
      • Max March 27, 20175:29 pm

        Sorry – one more time – previous post is bad !!! You need like this:

        1. make dummy file e.g. from right-click on Windows select Text Document and change name to ncpucode.bin
        2. cbrom bios.bin /nc_cpucode.bin ncpucode.bin – this extract microcode module to disk (in my case 76KB)
        3. copy /b ncpucode.bin+1.bin+2.bin new.bin (84KB)
        4. delete previous file ncpucode.bin
        5. change name new.bin to ncpucode.bin and make read only !!!
        6. cbrom bios.bin /nc_cpucode.bin ncpucode.bin

        This update microcode – not replace.

        Reply
        • Max March 27, 20175:48 pm

          I forgot about one thing:
          step 2a. cbrom bios.bin /nc_cpucode release

          Reply

Leave a Comment