Z390 AORUS PRO WIFI microcode mod

Alright, will look at that guide later. I also backed up my BIOS again today and the file hash differs from the one I backed up two weeks ago. I don’t remember changing any settings in the BIOS, so I’m not sure why it’s different. Any theories? Also, have you ever used the “Save BIOS” option in Q-Flash? I don’t think it’s in newer versions of the BIOS, but I also used that option and the file hash for that dump is different than both the files. I assume this option saves different regions of the chip though, but I can’t find any information about this function online. I plan on using a programmer to dump my BIOS as well to compare that, but I don’t have it yet.

I also wanted to ask this earlier, but what does the “x.x” refer to here? I see in your image you sent it’s “Default string.” I think this might have been changed in F9 BIOS you made for me, but I’m not sure:

image

Regarding the MAC address stuff, I found this guide which apparently shows you can change it. How is this possible?

@t0rcke

I also backed up my BIOS again today and the file hash differs from the one I backed up two weeks ago. I don’t remember changing any settings in the BIOS, so I’m not sure why it’s different. Any theories?

Different values being stored in NVRAM is the most likely explanation. Some values are likely changing on each boot.

Also, have you ever used the “Save BIOS” option in Q-Flash? I don’t think it’s in newer versions of the BIOS, but I also used that option and the file hash for that dump is different than both the files. I assume this option saves different regions of the chip though, but I can’t find any information about this function online.

Yes on my Z170. If it has included your NVRAM configuration then it will have different hashes than than the stock BIOS.

I plan on using a programmer to dump my BIOS as well to compare that, but I don’t have it yet.

A good idea, even just for learning/experience.

You can use UEFITool (current version is UEFITool_NE_A67_win64.zip) to examine your current BIOS dumps (by each region) and extract/compare the modules (including NVRAM).

I also wanted to ask this earlier, but what does the “x.x” refer to here?

The PCB revision of the board.

Regarding the MAC address stuff, I found this guide which apparently shows you can change it. How is this possible?

The ROM chip on the ethernet adapter is usually set to read-only after the MAC adress has been written to it, so I think this is unlikely.

It would be easier to spoof the MAC address with software within Windows.

Are there any “comprehensive” threads on here that explain parts of the BIOS region and regions of the SPI chip(s) in general? Most I see are on here are narrowed in scope, probably due the vast amount of hardware and firmware configurations, but I’m just wondering. My understanding is that modern boards like mine store BIOS settings in NVRAM, which is stored in the BIOS ROM. But then, how do BIOS settings get reset if you remove the CMOS battery or use the clear CMOS jumper, since this memory is supposed to be non-volatile.

Do you know how to change this, since I remember it being “Default string” on my board?

Also, I forgot to ask this in my previous post but why wouldn’t Q-Flash work, since it worked for the modded F9 BIOS? I also want to try flashing this with a programmer, but I assume that will be much more of a hassle since I will have to combine the modded BIOS region with all the other regions on the chip, correct?

This will probably be one of my last posts on this thread since it is getting quite off-topic and I don’t want to bombard you with lots of questions, but thanks for the help.

Are there any “comprehensive” threads on here that explain parts of the BIOS region and regions of the SPI chip(s) in general? Most I see are on here are narrowed in scope, probably due the vast amount of hardware and firmware configurations, but I’m just wondering.

Nothing in-depth and platform agnostic. With so many years of Insyde, Phoenix, Aptio, Award and AMI BIOS/UEFI configurations and each revision having slight variations (such as the differences in FIT between Aptio IV and Aptio V) it would be a big task to cover them all.

My understanding is that modern boards like mine store BIOS settings in NVRAM, which is stored in the BIOS ROM. But then, how do BIOS settings get reset if you remove the CMOS battery or use the clear CMOS jumper, since this memory is supposed to be non-volatile.

Some values are hard-coded in the BIOS so that default values can be reloaded into NVRAM should they be overwritten/erased.

For example, Secure boot often has hard coded factory keys from the manufacturer that can be reloaded after a BIOS flash or CMOS/NVRAM clear that results in secure boot entering setup mode (therefore disabled).

You can read about Intel UEFI structure at opensecurity.info and although being slightly dated, the pdf’s have some very useful information about NVARs.

In particular look at:

Day 2 - Flash Descriptor (page 5 onwards, Flash Descriptor and Regions)
Day 2 - UEFI (page 39 onwards, UEFI Non-Volatile Variables & Runtime Access)

If you download the Class Materials (John Butterworth - 2014) and take a look at:

Advanced x86 - BIOS and SMM Internals Part 3.pptx (slide 21, Descriptor Mode & slide 30 SPI Regions)
Advanced x86 - BIOS and SMM Internals Part 5.pptx (slide 7, Firmware Storage & slide 8 Firmware Volumes)

Do you know how to change this, since I remember it being “Default string” on my board?

You can edit this string using AMIBCP:

It is purely cosmetic, I wouldn’t worry about it.

Also, I forgot to ask this in my previous post but why wouldn’t Q-Flash work, since it worked for the modded F9 BIOS? I also want to try flashing this with a programmer, but I assume that will be much more of a hassle since I will have to combine the modded BIOS region with all the other regions on the chip, correct?

At some point Gigabyte updated Q-Flash to no longer accept modified BIOS.

You don’t need to decontruct/reconstruct the BIOS. Just modify the BIOS you want with CoffeeTime and flash with either Intel FPT or Hardware programmer.

Thank you for all the resources. I recently received my CH341A programmer and tried to read the chip with a clip. Every time though, I get the message “IC not responding.” (I’m using NeoProgrammer). I’m wondering if you ever used a programmer on your z390 board and if you were successful. If so, what was the configuration you used (CMOS battery in/out, etc.)?

@t0rcke Yes I successfully made a BIOS dump on my Z390 Pro WIFI using a hardware programmer.

I removed all power from the board.

Unplug the ATX power connector as the capacitors in the PSU can stop your programmer from reading the chip and also remove the CMOS battery.

I tried all that but it still doesn’t work. May I ask what version of the CH341A you used? I’m using this one. And also, what software did you use and did you plug the programmer into a USB 2.0 or 3.0 port?

@t0rcke I don’t have a CH341A, I have a SOFi SP8-F.

You should use a USB 2.0 port if you have one.

I’m not sure what the problem is but sometimes the clip doesn’t make good contact or the software doesn’t recognise the EEPROM.

There are lots of different versions of the CH341A software so you may have to try a different version.

Hey, so I have figured out the stuff regarding the CH341A, but I have another problem when trying to run dual SSDs in the M.2 slots. Thought I would ask here since nothing has helped me online and you have this motherboard. I isolated the problem, and it seems that even just one M.2 SSD in the M2M (bottom) slot doesn’t work. It is recognized in the BIOS, but when I try to boot into it, it just gives me a BSOD and restarts the PC into the BIOS, where it says:

ROM Image is not loaded
ROM Image update denied

Note that if I put this same SSD back into the M2A (top) slot, it works just fine, so I’m really confused as to why this is happening.

@t0rcke Hi, the manual states that when using the M2M slot that SATA ports ‘SATA3 4’ and ‘SATA3 5’ must be empty - I’ll assume that you already know this and move on.

In the BIOS:

Settings > IO Ports > SATA And RST Configuration

Is ‘SATA Mode Selection’ set to ‘Intel RST Premium With Optane System Acceleration’ or ‘AHCI’?

If it is set to ‘Intel RST Premium With Optane System Acceleration’ you can select whether the the M2 slots are being controlled by RST by changing ‘RST Control PCIe Storage Devices’ from ‘Auto’ to ‘Manual’ and then setting the desired M.2 port to ‘Not RST Controlled’ (which means AHCI mode).

Here’s an image to explain what I am talking about:

Port 9 = M2A (Top)
Port 21 = M2M (Bottom)

If both of your NVMe drives are bootable (and by this I mean they have separately installed Windows installations) then you may have a conflict as the motherboard can’t determine which drive to boot from.

Normally for dual booting Windows systems the boot data for both OS installations is stored in the BCD on only one of the drives - you haven’t mentioned how your system is configured so I can only guess.

1 Like

Yes, I know it disables some SATA ports, but I don’t have any SATA devices. The SATA Mode Selection is set to AHCI, but I should have mentioned that I have NVMe SSDs. Also, note that even if I just have one of my drives inserted in the M2M slot, but not in the M2A slot, I get the same problem. If I put the same drive back into the M2A slot, it works fine.

@t0rcke What brand and model is the NVMe drive that you are trying to boot from in the M2M slot?

It is a WD_BLACK 1TB SN850

@t0rcke Have you updated the firmware? Here is a list of all the firmware updates for that drive (thanks brave):

WD Black SN850 1TB - FirmWare Updates
611100WD - 01.2021
612100WD - 03.2021
613000WD - 05.2021
613200WD - 07.2021
614300WD - 09.2021
614600WD - 11.2021
614900WD - 01.2022

Sorry for the late reply, but I’m on 614900WD, though I don’t this this problem is related to the drive or firmware. Since I was going to reinstall my OS anyway, I put my new drive (Samsung 990 PRO; 3B2QJXD7 firmware) in the M2M slot and installed Windows 11 23H2. It worked as expected; then I put the drive in the M2A slot and booted from it, which worked fine. Then, I put the same drive in the M2A slot, formatted it, and reinstalled the same OS onto it. It also booted fine, but then I put the drive in the M2M slot and I got the same problem as I did in my original reply. My guess is that it has something to do with the Windows boot loader and how it initializes the drive when Windows is installed on it.

TL;DR: When Windows is installed while the drive is in M2M slot, putting the drive into M2A slot has no issues when booting, but not vice versa.

1 Like

@t0rcke That is a really specific issue, thanks for reporting back as to the cause.

So it can be worked around but can potentially stop you from booting from the M2M slot.

Yes, it’s worth noting that the SN850 I was originally on had Windows 10 21H2 installed, so it seems this issue persists across the operating systems. Perhaps updating the BIOS would fix it, but I don’t want to change my configuration right now. I’m curious to see if this happens to anyone else. I know you have this same motherboard, but I’m not sure if you want to take the time to test this.