How to update microcode without BIOS modding?

Is there a more convenient way to test new microcodes on a live system, that doesn’t involve modding/flashing the BIOS? I would typically not care, modded BIOSes in the past somewhat often, but my Z370 board is cheap and doesn’t come with a dual BIOS, and warranty is over, so I wouldn’t want to risk it if it’s not necessary.
I remember trying to convert the .bin files to whatever Windows 10 can use with one of the tools in these forums with no success, it would always spit an error. Surely, there must be an easier way that works well for this case?

Gave it another try with tools like that VMware driver and bin2dat, both the exe and the python script, the exe just errors out, and the py file doesn’t recognize the cpuid of my 8700K.

In short, is there a proper way of using the bin microcode in Windows 10 without the BIOS mod?

The prefer method for loading Microcode are from the bios, anyhow to make easy and for security Microcode can be loaded from the OS,

every OS has a bios binary in which upon start will be compared with the bios Microcode and load the newest will be loaded to the OS regardless where it is located,

The Microcode in Windows are located in the file mcupdate_GenuineIntel.dll located in %windir%\system32 replacing the file will give you the latest Microcode, In Ubuntu the Microcode are located in /lib/firmware/intel/intel-ucode

I will attach the latest Windows Binary Microcode file for you and just replace it in the system32 folder. This file contain Binary coed and it doesn’t need to be registered

If you need Linux I will help you with it also

mcupdate_GenuineIntel.rar (3.65 MB)


My 2004 Windows 10 Pro won’t boot with your attached file, had to go through Hiren’s CD and restore the old file to boot again, as not even Safe Mode or command prompt worked, and it would have probably taken a system restore or something without a way to copy back the file.

There has to be a way to properly convert a file like cpu906EA_plat22_ver000000DE_2020-05-25_PRD_76A2F81F.bin to the mcupdate_GenuineIntel.dll so the OS could use the latest microcodes without a BIOS update.

I mean, I realize that it sounds weird, but I’ve had two motherboards fail on me because of BIOS update issues and fixing would cost me more than a new motherboard at times. Modded the hell out of my dual BIOS PCs, but this one has just one BIOS, if my power goes off, I’ll have to find a store to reflash it, and I really want to avoid that.

If Microsoft has a way to add ucodes to files and serve them as an update, I’m sure it’s possible and somebody knows how.

Hmmmm, I just test it on my VM and you were right,

Maybe Microsoft has changed the coding in the new build, I have noticed the the file size increased dramatically from 2.6MB to 5MB, usually I just replace the file without even registering it or install the msu update, cause it is just a binary. I don’t do it anymore cause I modd my bios now

anyway the latest file for Windows 2004 is attacxhed you can replace it safely as I tested it

I will look up a way to replace the file

mcupdate_GenuineIntel.rar (2.29 MB)


Thanks, this one works, but sadly doesn’t changes anything, I assume it contains an older ucode compared to my BIOS’ D6, so it won’t load it. But it boots fine.

This is not the first time the non-BIOS mod methods were discussed and attempted, like here:
[Guide] Intel/AMD CPU Microcode conversion and utilization without modding the BIOS

Sadly I tried these and it just won’t work, the tools used spit out errors, don’t recognize the CPUID for Coffee Lake (I have a 8700k), or simply say there’s no need to replace anything with the vmware "method", even though I know for a fact that there’s a newer ucode that should be loaded.

Maybe Microsoft will eventually let us know how they construct that file of theirs they use for updates and how do you get to the dll from the bin files.

You are missing the new DE which is much faster as I noticed, although I have no references nor I did any benchmarks, but only the DE made me notice a boost in the performance, a huge difference.

I am little bust right now, but I will try find out why the new Microcode does work or maybe a way to make it work.

I Ubuntu, you just need to replace the binary the folder I mentioned, as I said they are binary no tweaks needs to be done

@random I just checked the file and it is a plain binary no changes, and signed from Microsoft it should work,

Anyhow, try F8 and then number 7 to disable driver signature enforcement, this worked for me, and should work for you too and you should have the Microcode DE .

Maybe there is a new signature that is not recognized that is it

@random - Sounds like you just need properly modified BIOS, then you wont have to worry
I can mod BIOS for you to update microcdes and promise it wont brick on you Link me to your BIOS download page and I’ll make you a proper mod BIOS

And, sounds like you should spend $7 on a flash programmer kit (CH341A + SOIC8 Test clip with cable) too, that way you can always recover any bricked BIOS board without issue, no need to replace the board
Let me know if you need links to those on ebay


I’m in Romania, ordering from ebay would be paying through the nose for shipping. And I just took a look domestically and only found a single store selling that for like 25EU, which to me it’s not worth it considering the PC works great as it is and I just wanted to test the new microcode. I could probably buy from aliexpress or something, which would take 40-60 days shipping and the last two times I ordered I had to pay additional taxes at the local postal authorities, so no thanks to that.

I’ll take a look at the BIOS mod, didn’t bother doing any since the days of Windows 7 SLIC mods years ago, and I’ll mod it myself and post it here, maybe you can take a look if I did it correctly afterwards, I’ll just follow some of the guides on the site later when I get home from work.

@random Just try the first file I uploaded and upon notice press F8 and then 7 to disable driver signature enforcement, i tested it and it works

mcupdate_GenuineIntel.dll is an UEFI image with binary microcode, I do it all the time, except this file has a signature without a date, and it needed internet to verify the signature when I tried with windows.

I’ve modded the hell out of the BIOS eventually and it seems to have flashed fine, didn’t get to test the new ucode yet, just booted from the update, gonna redo my BIOS undervolt and XMP/fan settings and the sort and then gonna do a few benchmarks to see how things work for DE in comparison with D6 when under similar conditions.

Sadly, one thing I can already say is that the stupid Uncore/Ring multiplier is still wrong at 43x instead of 44x. The first 2 years of Z370 BIOS updates all had the default Uncore multi for 8700K set at 44x, but not anymore for 3-4 ucode/BIOS versions now. Pretty big Intel fail, on top of the security stuff.

Screenshot 2020-09-10 202229.png



Edit:

Tested this DE ucode and it’s basically identical to D6 in all benchmarks, or a bit worse. Used CPUZ, CB R15, CB R20 and AIDA64 suite of benchmarks, before and after, with identical OS and BIOS setttings.

A few examples:
R15 - near identical scores of around 1400-1410 multicore scores and 193 CBs for single core. With B4 microcode, the scores would be consistently and reliably +50 (1455-ish) on multi and around 198-200 on single.
R20 - near identical scores of around 3430 multi and 468 single. With B4 ucode, scores would be consistently 3480-ish and 475-ish.
CPUZ is one of the benchmarks that is not affected as much, if at all, by the new round of mitigations, so I’d get a 3820-ish multi and 515-520 single. With B4 the single core score was a bit higher, 525-ish.
AIDA64 is also somewhat unaffected. For the truly curious, I’ll attach the benchmarks with D6 and now DE ucode.
Lastly, the Anvil score for my 970 Evo+ is a bit better than with D6, one would consider it “back to normal” for the B4 era (16.2K vs 15.9K-sih). Anvil seems to fluctuate significantly with CPU speed, and OC on the 8700K to 5GHz would boost the Anvil score to 18K+, on par with some Gen 4 SSDs, so that’s why I like to see how the NVMe does after big updates.

Sadly, DE is disappointing for me, even with the rumors that it’s “faster”, actual benchmarks don’t show any improvement other than (slightly) in the NVMe area.

Samsung SSD 970 EVO Plus 500GB_500GB_1GB-20200910-2131.png

AIDA64 Reports.rar (61.4 KB)

There is VMWare driver (for Windows) which updates the microcode
https://flings.vmware.com/vmware-cpu-microcode-update-driver

It can use Intel microcode binary files they distribute for Linux.

@random - Yeah, I hear that about all those order hassles and fees, I feel your pain there!! It’s too bad even ebay from China or Allibaba/express causes you import fees too, or that would be the way to go/cheapest way etc.
Be VERY careful with updating microcodes, it can be tricky and easy to break or brick the BIOS, and you need to fix FIT once done too (usually). Can’t you set your own uncore multi in BIOS? If not, link me to your mod BIOS you are using now and I will make the setting visible for you

@Lost_N_BIOS thanks, I’d appreciate if you took a look at the modded BIOS, it’s been a while since I done any. Things look to be working fine. I have the ring/uncore setting available, no issues here, but modifying it from Auto comes with some concerns for how I use my 8700K. I typically leave it at default (not overclocked) and undervolted as it’s enough for what I do, but modifying the uncore in BIOS from Auto (43x nowadays, used to be 44x) to 44x will be perceived as an overclock and I would have to redo all the stresstesting again and re-tweak the Adaptive+Offset setting I use for the undervolt, and I’m too lazy to run prime95 again for 12hrs. Plus, the Uncore being set at 44x won’t (sadly) fix the performance loss on these ucodes. It would actually do nothing for how good the 8700K runs, tested it already.
Here’s the modded BIOS from yesterday, if you wanna take a look if all is fine in it, thanks. I just followed the guide on Fernando’s post, downloaded UBU, put in the folder the new MCE files it wanted, then the MMtool files, and I think that was all of it.
LINK

@random - 44x uncore should not be considered OC, since like you said that used to be the normal default, and will likely need no tweaking or adjustments to voltages etc, so should be 100% stable as 43x is, I think you will be fine
If you want me to check BIOS for you, I need to know what model this is, and I need a link to the stock BIOS download page, so I can then compare with your mod.

@Lost_N_BIOS It’s the first bios for the MSI Gaming Plus Z370:
https://www.msi.com/Motherboard/support/…-PLUS#down-bios
The modded one is linked in the previous post.
44x used to be the normal max Uncore multi, but that changed for basically a year now. In my BIOS, the default Uncore is the Auto setting. If I modify that to 44x, the motherboard will adjust Vcore upwards, since I also use that at Auto (with the Adaptive Offset -0.085V, so it undervolts what would be the normal voltage.
MSI has been pretty annoying with voltage stuff, about the same time they mitigate the Plundervolt vulnerability, their BIOSes started to make changes to a setting that I think it’s MSI’s alone, CPU Lite Load, which is basically a baseline for the vcore motherboard provides to the CPU, so older values for offsets were no longer valid, CPU’s got overvolted and started consuming much more power (think 180W instead of 135W under AVX stresstesting) etc., until we figured out what happened.
Not really surprised that manually changing the Uncore in the BIOS is considered by the motherboard as some sort of OC that warrants increases in the Auto Vcore.

Why did you not use the USB method to set the microcode on boot up? You set a USB flash drive as the first boot option and then it installs the microcode and then continues the normal boot with the microcode installed. That is providing Winblows does not alter it and set a different microcode on boot up. This seems the safest way to test microcodes and benchmark before going to the trouble of modding the Bios.
https://www.ngohq.com/intel-microcode-boot-loader.html

BTW Long ago back in the Athlon XP days there used to be a product called a RD1 Bios Saviour which replaced the socketed bios chip with a switchable 2nd chip which made it work as a dual Bios motherboard. The original Bios was extracted and put into the top of the Bios Saviour into the socket which then provided two switchable Bioses. Many higher end modern motherboards have some form of multi Bios or Bios recovery method so they became unneeded for many people and the company looks like it no longer exists, link provided. It depends upon whether the Bios chip is socketed or not and finding a matching Bios chip.

They were a max of 4MB Bios chips and modern motherboards use larger Bioses than 4MB so a larger version would be needed. If you are handy and could construct one then you might look into whether you could make something that works in a similar way :wink: It might be worth experimenting with an old motherboard rather than risk destroying your motherboard. I have one here a RD1-PMC4 which does not work. I purchased it and found that it did not function for some reason. I have another which does work.