VMware CPU Microcode Update Driver

This Fling is a Windows driver that can be used to update the microcode on a computer system’s central processor(s) (“CPU”). This type of update is most commonly performed by a system’s firmware (“BIOS”). However, if a newer BIOS cannot be obtained from a system vendor then this driver can be a potential substitute.

Features

The driver can update the firmware on Intel or AMD CPUs. The driver attempts to update the processor when the driver is started, when the system is booted, or when the system resumed from a low power state (e.g., hibernation).

The driver will report its actions in the OS’s event log that can be examined using “Event Viewer”. The driver reports whether it found supported processors and if an update was attempted or successfully performed on a processor. This information lets the user know whether the driver is providing a benefit (otherwise they can uninstall it). For example, the processors might already have the latest firmware version.

eventvwr

A system running Windows Server 2003 or later.

1. Download the fling's zip file and extract the files contained within the zip.
2. Download these 2 files and place them in the same directory as where the files from #1 were placed:

https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd.bin
https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam15h.bin

3. Obtain a microcode file for Intel processors and place the "microcode.dat" file in the
same directory as where the files from #1 were placed.

An example URL for a file to download is:

https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=23829

This download is for a "tgz" file (i.e., a compressed tar file). You will need to extract
the "microcode.dat" file that is contained within the "tgz" file (this will likely require
the use of a 3rd party archive utility).

If you have an AMD processor and do not want to obtain an Intel firmware
file then you can also create an empty "microcode.dat" file instead.

4. Run (e.g., double-click on) the "install.bat" file. The install will attempt to report if it was successful.

The system's "Event Viewer" can be used to determine whether the fling was able to find an updated firmware for the processor and apply an update. The "Event Viewer" can be started by running the command "eventvwr" from the Start Menu. Inside "Event Viewer" you can use the left pane to navigate to "Windows Logs" and then "System". The middle pane will display the most recent system events, and there should be an event from source "cpumcupdate" that will report if an update was attempted or successful.

The fling has performed an update if the event reports "Successfully updated microcode on one or more CPUs". The firmware update must be applied each time the processor is turned on, so the driver must remain installed in order to keep the processor updated.

If the event reports "The model of the CPU is not supported", or "An update for this model of CPU was not found", or "An update for this model of AMD CPU was not found" then the fling is not providing a benefit and can be uninstalled.

The event "No CPUs needed an update" typically means that the fling is not providing a benefit and can be uninstalled. However, there is an exception. For example, if you install the fling, uninstall it, and then install the fling again then the first run can report "Successfully updated microcode..." and the second run will report "No CPUs needed an update". This is because the second run does not know the processor was already updated by the first run. To disambiguate this case you can shutdown the computer to a powered off state, turn the computer back on, and then look for the event that was generated while the system was booting.

 

Version 2.1

A user reported our microcode update fling failed to load microcode on an AMD family 15h processor. It turned out there were a couple of minor problems:

  • IsGoodAMDUpdate was using a hardcoded size of 2048, but according to the BKDG for family 15h the size will be 4096.
  • The check for patches requiring x86 code to be executed in IsGoodAMDUpdate is not applicable on family 15h.

These problems are fixed in this 2.1 release.

Add a Comment
Report a Bug