• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

Customizing your CPU Microcode w/ USB

PiePowerUP

New Member
Joined
Dec 19, 2020
Messages
6 (0.00/day)
There exists a tool previously discussed here a few years ago. Thank you to NGOHQ. Intel Microcode Boot Loader Thread

The above link describes a method to load custom microcode after the bios but before memory initialization/kernel loading. This has a few different uses but the most common use is likely for older machines that never received bios level updates for CPU vulnerabilities via microcode updates.

The usage case of a somewhat more exciting utility would be optimizing performance on older systems that were particularly hit hard by Spectre/Meltdown and others, such as Sandy Bridge and Ivy Bridge. Other CPU generations such as Haswell can also benefit from this but it really does work for both AMD and Intel systems, regardless of the OS.

I'll defer to Win-Raid's own Killkernel: "...CPU Micro-code Rev. 1B for Ivy Bridge and 29 for Sandy Bridge may oblige you to increase the VCore of some step to maintain the level of stability achieved in an overclocked CPU with the older revisions that in this case are the Rev. 19 for Ivy Bridge and 28 for Sandy Bridge and for this reason in UBU is indicated "For Overclockers". Many overclockers claim they can maintain OC stability with less voltage when using these microcodes, using less power and producing less heat.

This can already be performed by means of editing or creating a custom bios for your motherboard that contains the desired CPU microcode but it cannot be swiftly swapped out for testing, benching, overclocking or for reasons of pure curiosity. That's where the USB stick method starts to shine! You can set it and forget it, or swap in different microcodes in the matter of 2 clicks or even remove the usb stick completely to return to stock behavior.

You might say "Great!" (or not, see below) So where's the hang up? The problem is that the Intel Boot Loader has a check in place that prevents the usage of older microcodes! Fine, if you're updating an old box that just needs vulnerability protection but no bueno for those who desire to choose which microcodes they wish to use.

For the inevitable number of folks who may look at this and didn't say "Great!" but maybe said:
"Why bother?" "Just leave it alone you'll never notice the difference." "Just use InSpectre." "Not needed, microcode updates have been slowly clawing back ALL lost performance with every update, just use the latest." (lol)

I submit to you the following: "What has your microcode done for you, lately?" All thanks to Travis Downs.

So where does that leave us? Unfortunately I do not possess the ability to work back through the Intel Boot Loader in attempt to disable the "newer microcode" check. The files needed are located HERE. Setup is easy, just extract the archive onto a fat32 usb stick and go.

Does anyone posses the necessary skills to dechiper enough python/find a solution to the microcode version check? Please discuss!
 
I do apologize for any offense for the links. I have reviewed the rules and do not believe I am in breach. The links are not obfuscated and lead only to winraid, github, NGOHQ and techpowerup.
Just interested in healthy discussion. However, I do believe it is in breach to make off topic posts so I must refrain from responding to you further on this matter.
 
Last edited by a moderator:
Unless he bypasses the Windows mcloader mechanisms he'll still end up with up to date microcode in most instances.

Bypassing that is possible, but not advisable. These security updates exist for valid reasons.
 
Last edited by a moderator:
Wanted to mention that Intel keeps a large database of nearly all microcodes from 1996 and onward so the testing pool is very far and wide when considering other architectures than the Core series.

Bypassing that is possible,
Indeed! "Super easy, barely an inconvenience!"
 
Hardly an inconvenience if you don't mind breaking sfc and such.

Wanted to mention that Intel keeps a large database of nearly all microcodes from 1996 and onward so the testing pool is very far and wide when considering other architectures than the Core series.

And the security issues well established too.

Just sayin'.
 
Hardly an inconvenience if you don't mind breaking sfc and such.
Why would I mind? Manipulating mcupdate_GenuineIntel.dll is trivial, and reversible in 2 clicks. Maybe the original post was not clear that this is for research purposes.
It was unforseen that the merits or methods of the scientific exploration of CPU microcode would be questioned or criticized. I apologize as I should have established that there are also valid reasons to explore this material. Perhaps the gatekeeping attitudes could have been prevented.
 
Why would I mind? Manipulating mcupdate_GenuineIntel.dll is trivial, and reversible in 2 clicks. Maybe the original post was not clear that this is for research purposes.
It was unforseen that the merits or methods of the scientific exploration of CPU microcode would be questioned or criticized. I apologize as I should have established that there are also valid reasons to explore this material. Perhaps the gatekeeping attitudes could have been prevented.

That's true, and I appologize. My posts are more a warning to the uneducated and not intended to stop you from this, as is your right.
 
Using older microcode is useful for some scenarios:

1. Restore overclocking after microcode update in some products.
2. Slowdowns on old products due to security mitigations (e.g. Spectre) on specific apps.
 
Back
Top