[Tool] EFIFlash v0.80/v0.85/v0.87 for Gigabyte Mainboards

@DiscoStu .efi files should be run from a USB bootable UEFI shell such as this one:

Shell.efi

The directory structure on the bootable USB device should look like this:

X:\EFI\BOOT\BOOTX64.EFI

If you download the raw file Shell.efi you simply need to rename it BOOTX64.EFI and put it in the BOOT folder as above.

Here is a guide for commands and general use:

How to Use UEFI Interactive Shell and Its Common Commands

I am running memtest right now, first pass is just about done and indicates no errors yet, but we’ll see after the next three finish up.

One thing that I noticed is that the “RAM Config” listed by memtest is “G Skill Intl F4-4400C19-16GTZR,” which is likely the same 16GB (2x8GB) kit that comes with the pc, while I have always had 32GB of RAM the whole time I’ve used this computer. My assumption is that the previous owner who sold this system to me had upgraded the ram to the “G Skill Intl F4-4400C19D-32GTZR” kit, which is seemingly absent from the QVL for the motherboard, so it can’t recognize it as anything else other than the kit that the PC was prebuilt with. He may have installed the “F4-4000C19D-32GTZR” kit, which is on the QVL, but the lack of recognition by the motherboard has me skeptical. I will crack open the case when memtest is finished and double check the model of the RAM, since I can see a sticker on the side of it from the outside but I can’t read the details. I will also try to check the revision number of the motherboard, but I can’t find anything other than 1.0. If it is a different rev, then they might have actually made a completely different version of this motherboard just for this pre-built.

I have confirmed that the RAM kit is F4-4400C19D-32GTZR, which is not on the QVL. Memtest is halfway through its third pass, still no errors.

Here’s my plan going forward:

First thing’s first, if I need to replace the RAM, I will. I already assume that this is necessary, but if you magicians know of some kind of workaround to get XMP stable with the incompatible RAM, that’d be sweet.

Then, I will check the rev # of the motherboard to see whether it’s the same as the retail board, as well as do a fully overkill CMOS reset like you suggested. I might even replace the battery, too. Even if the rev # is not the same, I might still risk the flash anyways since I have the secondary BIOS.

Then, I will perform a clean install of windows 11, install ME firmware, install CSME Tools v15.4 (I believe the ME firmware provided on the support page is v15.4, will double check when I’m at this stage, of course), and run those FPT commands to create backups of the primary and secondary BIOS as well as the MAC addresses of the ethernet ports. Do I have to install all of the motherboard drivers again to do this? Maybe just the chipset drivers? I would love to wait until I flash the new BIOS before installing any of the motherboard drivers, since there are far newer ones available on the actual support page for the Z590 XTREME. I’ll do what must be done, though.

Also, to use the FPT tool do I need to disable memory integrity or anything else like that? I’m running Windows 11 “Pro” for what it’s worth. I think I might also order a hardware programmer just in case, which one would you recommend?

If all of this looks good and I haven’t missed anything, I will go through with it and hopefully report back some time later in the week.

EDIT:
My PC currently has ME v15.0, guess I’ll be rocking with that one.
I found some old DDR4 lying around, some Corsair vengeance LPX stuff I had in a previous build. Model is CMK16GX4M2B3200C16 ver4.32, which is not on the QVL, but there is a similar set on the QVL sheet, “CMK32GX4M2B3200C16 ver5.39,” but it’s listed on the sheet as a 2x8GB kit, when the actual model number depicts a 2x16GB kit on Corsair’s website, so I’m not sure. Could be worth a shot, maybe? At this point, what even truly matters when it comes to RAM compatibility? GIGABYTE seemingly can’t even represent the different sets of RAM correctly on the QVL sheet, they’ve got 32 gig kits listed as only 16GB, and they’ve got 32GB kits listed as “2Rx8,” when they should be “2Rx16,” no? Correct me if I’m wrong on this.

Also, here are the memtest results:

Hello. I can’t flash the BIOS from B650M DS3H to B650M D2H, it gives the following error. But I can flash a modified BIOS D2H via Q-flash (button on mainboard). The main reason for the modification is to unlock CPU overclocking and PBO.

Flash BIOS Update Utility for UEFI SHELL Ver.0.87
Copyright(C) 2017-, Gigabyte Technology Inc.

Flash Type : AMD rom armor
Flash Size : 32768KB

Reading BIOS information ........ Success
   Model Name ................... B650M D2H
   Part Number .................. 8ARPL253
   Bios Version ................. FA4c
   Bios Date (YYYY/MM/DD) ....... 2024/04/22


Verifying File .................. 0%
********************
Verifying File .................. 100%
   Model Name ................... B650M DS3H
   Part Number .................. 8ARPL113
   Bios Version ................. F24c
   Bios Date (YYYY/MM/DD) ....... 2024/04/22

Transferring BIOS Data .......... 

BIOS is protected by SecureFlash.
System must restart to complete BIOS update process!


Please wait for the reset in 6 seconds...
***************************
Please wait for the reset in 1 seconds...
Please wait for the resetUEFI Interactive Shell v2.2
EDK II
UEFI v2.90 (American Megatrends, 0x00050020)
Mapping table
      FS0: Alias(s):HD0k0b:;BLK1:
          PciRoot(0x0)/Pci(0x2,0x1)/Pci(0x0,0x0)/Pci(0xC,0x0)/Pci(0x0,0x0)/USB(0xA,0x0)/HD(1,MBR,0x000FF2A4,0x800,0x3D000)
      FS1: Alias(s):HD1c0c:;BLK4:
          PciRoot(0x0)/Pci(0x8,0x1)/Pci(0x0,0x4)/USB(0x2,0x0)/HD(2,GPT,90842407-3366-4A44-8F84-129F6C5A5B89,0x8000,0x96000)
      FS2: Alias(s):HD1c0d:;BLK5:
          PciRoot(0x0)/Pci(0x8,0x1)/Pci(0x0,0x4)/USB(0x2,0x0)/HD(3,GPT,8C69D6D0-F3FA-4971-A9EE-26C6E3EEF9A3,0x9E000,0x4C54800)
      FS3: Alias(s):HD1c0e:;BLK6:
          PciRoot(0x0)/Pci(0x8,0x1)/Pci(0x0,0x4)/USB(0x2,0x0)/HD(4,GPT,83201356-9B73-4BF4-AEB3-3610E1F88310,0x4CF2800,0x19000000)
     BLK0: Alias(s):
          PciRoot(0x0)/Pci(0x2,0x1)/Pci(0x0,0x0)/Pci(0xC,0x0)/Pci(0x0,0x0)/USB(0xA,0x0)
     BLK2: Alias(s):
          PciRoot(0x0)/Pci(0x8,0x1)/Pci(0x0,0x4)/USB(0x2,0x0)
     BLK3: Alias(s):
          PciRoot(0x0)/Pci(0x8,0x1)/Pci(0x0,0x4)/USB(0x2,0x0)/HD(1,GPT,F98394CD-EAE5-405D-94FA-87FEA1280452,0x22,0x7FDE)
 in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...
Please wait for the reset in 1 seconds...

@jxding 2Rx8 means it is a dual-rank module with RAM IC’s most likely on both sides of the PCB. Single rank 8GB modules usually only have RAM IC’s on one side and the other side is empty. This is how they can double the capacity in the same form factor.

The 32GB kit will be harder for the memory controller to stabilize and you may need to increase both the VCCSA (System Agent voltage) and VCCIO (VTT/IMC voltage).

You should be safe to test setting 1.25 V manually for both VCCSA and VCCIO if the motherboard is setting them lower than this with XMP enabled.

The other voltage that you should check is VDIMM, which should be 1.50 V with XMP enabled.

The Corsair RAM should be a lot easier to get stable as it is only 3200 MHz @ CAS16 (as opposed to the G.SKILL 4400 MHz @ CAS19) so you should be able to pass memtest86 pretty easily with XMP enabled.

You shouldn’t have to re-install any drivers in Windows after a BIOS flash and disabling memory integrity shouldn’t be necessary.

The ch341a hardware programmer is the cheapest and can be bought from places like ebay and Aliexpress.

I would recommend also purchasing a SOP-8 clip at the same time.

There are several helpful guides at Win-RAID forums on using the ch314a, such as:

[Guide] Using CH341A-based programmer to flash SPI EEPROM

[Guide] How to Use a CH341A SPI Programmer/Flasher (with Pictures!)

[GUIDE] Flash BIOS with CH341A programmer

@wzrd Hi, it looks like SecureFlash is blocking EFIflash - you may need to try using Flashrom for your AMD chipset:

My concern with the drivers is more about whether or not they rely on the dummy BIOS that is currently installed (which also prevents me from changing XMP settings, so I can’t test much on the XMP stability front without flashing the retail BIOS first). If I update the BIOS while the motherboard and chipset drivers from the pre-built support page (the ones intended for use with the dummy BIOS) are installed, could that cause any conflict when the board boots up with the newly flashed BIOS?

When it comes to the memory, would you recommend that I flash the new BIOS with the Corsair memory installed as opposed to the G Skill? If the G Skill ram has passed memtest with no errors (without XMP enabled, of course), it shouldn’t be a problem, right?

Once I read your reply, I will try to do the overkill CMOS reset, then a clean windows installation, and carry out the steps to back-up and flash the BIOS once I’ve verified that everything is working correctly and nothing seems corrupted anymore. Sound good?

Apologies if I’m being obnoxiously cautious or perhaps a bit hand-holdy, I just want to be extra sure I’m not missing anything. It’d be a shame to make this any more complicated than it already is.

EDIT:
Also, is a clean windows installation necessary if I used sfc /scannow (which turns up nothing), and DISM /online /cleanup-image /restorehealth? I figured I might as well do it anyways just to be safe and also to clear off drivers that I won’t be needing anymore, but it would be kinda sweet if I didn’t have to.

@jxding The Intel chipset “drivers” for the motherboard are nothing more than text files that supply a name for each device hardware ID, Windows supplies its own drivers on setup so that it can be installed on the system.

If the hardware ID’s change, Windows update will more than likely download and install any “driver” that is missing. If it doesn’t you can download the latest chipset “drivers” from Intel using the Intel Driver & Support Assistant (Intel DSA) which will scan your system and update to the latest drivers (including WIFI and Bluetooth).

It doesn’t really matter which RAM is installed when you flash the BIOS when XMP is disabled as the motherboard will use Serial Presence Detect (SPD) to load the RAM at a safe base frequency (non-overclocked) of either 2400 MHz or 2666 MHz depending on what profile is stored on the RAM.

Once I read your reply, I will try to do the overkill CMOS reset, then a clean windows installation, and carry out the steps to back-up and flash the BIOS once I’ve verified that everything is working correctly and nothing seems corrupted anymore. Sound good?

I would only re-install Windows if the RAM has passed all tests, the BIOS has been cleared/re-written and you still can’t get the system to shut down - but it is up to you.

Cleared CMOS & replaced the CR2032, you saw the RAM results before, and it still won’t shutdown properly. Clean windows installation is almost done, will report whether the shutdown function works when I get it up and running again. If it does work, I’ll also dump the BIOS files here and let you check check the state of the corruption, which I probably could’ve done before this point.

Okay, PC shuts down properly now. Here are the BIOS dumps.

I will wait for you to check over those before I attempt to flash the official BIOS.

EDIT: At least on the primary BIOS,
fptw64 -gbe -d gbe.bin
returns
GbE region does not exist.

Also, the latest BIOS file on the Z590 XTREME support page comes with a .F13 file extension. Is it safe to just change the file extension to .bin? Or is that unnecessary? I think it’s all ready to go otherwise.

I’ve only installed graphics drivers, serial I/O drivers, chipset drivers, and management engine from the pre-built support page after the clean install, anything else that might be important to have before I go through with it?

@chinobino

@jxding The BIOS dumps both look good.

I compared your F6 dump with the official F6 and can see extra information in your dump as expected (NVRAM).

It looks like your backup chip has BIOS F5, which contains the same version of modules and microcodes as F6:

Model: Z590 AORUS XTREME
BIOS TAG: 8ARKL999
Flash Image Tool: 15.0.22.1622
ME Region: Version: 15.0.22.1622
Power Management Controller PMC: 150.2.10.1013
EFI Intel RST RAID Driver - 18.31.1.5256
OROM Intel RST for SATA- 18.31.0.4810
EFI GOP Driver TigerLake - 17.0.1055
EFI GOP Driver SKL-CML - 9.0.1111
OROM VBIOS IceLake- 1003
OROM VBIOS IceLake- 1003
EFI Intel Gigabit UNDI - 0.0.29
EFI Intel PRO2500 UNDI - 0.9.02
OROM Intel Boot Agent CL - 0.1.15
OROM Intel Boot Agent GE - 0.4.09

Microcodes in Vol 4:
A0650 BE 2019/10/10
A0651 C2 2019/11/13
A0653 EA 2021/03/08
A0654 C6 2020/01/23
A0655 EC 2021/03/08
A0670 2A 2020/09/23
A0671 40 2021/04/11

Z590AORUSXTREME.F13 has the following modules and microcodes (differences in bold):

Model: Z590 AORUS XTREME
BIOS TAG: 8ARKL002
Flash Image Tool: 15.0.42.2336 ← More recent FIT used to build the BIOS
ME Region: Version: 15.0.42.2235 ← Updated
Power Management Controller PMC: 150.2.10.1020 ← Updated
EFI Intel RST RAID Driver - 18.31.1.5256
OROM Intel RST for SATA- 18.31.0.4810
EFI GOP Driver TigerLake - 17.0.1055
EFI GOP Driver SKL-CML - 9.0.1111
RAW GOP VBT SKYLAKE - 231
RAW GOP VBT TIGERLAKE - 237
OROM VBIOS IceLake- 1003
OROM VBIOS IceLake- 1003
EFI Intel Gigabit UNDI - 0.0.29
EFI Intel PRO2500 UNDI - 0.9.03
OROM Intel Boot Agent CL - 0.1.15
OROM Intel Boot Agent GE - 0.4.09

Microcodes in Vol 3:
A0650 BE 2019/10/10
A0651 C2 2019/11/13
A0653 F6 2023/01/01 ← Updated
A0654 C6 2020/01/23
A0655 F6 2022/12/26 ← Updated
A0670 2A 2020/09/23
A0671 58 2022/12/25 ← Updated

The message about not having a GbE region confirms that you do not need to worry about the MAC address being overwritten.

All of the drivers that are currently installed should not be effected.

Before you attempt to write anything to the BIOS EEPROM you will need to check that BIOSGuard is disabled in the BIOS. [Edit] It may not be visible, which means it likely disabled

Next, to test if any BIOS locks are present (Gigabyte usually doesn’t lock the FD/ME regions) you should attempt to write the complete main bios dump (bios.bin) back to the main bios chip with the command:

fptw64 -f bios.bin

If it says it has completed successfully then you can try to cross-flash to F13:

fptw64 -f Z590AORUSXTREME.F13

Once completed you will need to run the greset command to re-initialize the ME co-processor with the updated firmware:

fptw64 -greset

Note that this will cause your system to reboot.

Your system may restart up to 3 times to boot the new F13 BIOS.

Once booted successfully, go into the BIOS and load optimised defaults to ensure any old configuration is erased/overwritten.

After you have confirmed the system is stable and working correctly (over at least a few days) I would re-flash the F13 BIOS using Q-flash to flash both the main and backup BIOS chips.

If you have any questions, are unsure about anything or get any error messages please feel free to ask me for help.

I’ve combed it pretty thoroughly, it seems there is no BIOSGuard setting in the BIOS. Is it possible that it’s hidden? Can we figure out if it’s on/exists with the BIOS dump?

Could it be referred to as something else?

I’m also confused about the first part of your message. So when I flash the F13 BIOS, the FIT, ME version, and PMC come along with it?

@jxding If BIOSGuard is hidden then it is likely disabled, you can find out by trying to write your backup bios.bin file to the main chip - if it gives you error 559 (or similar) then it could be enabled.

[Edit] I just opened bios.bin in FIT and it says that BIOSGuard is not enabled.

I’m also confused about the first part of your message. So when I flash the F13 BIOS, the FIT, ME version, and PMC come along with it?

The FIT version is just telling you which version of Intel’s software was used to build the BIOS.

Yes, the ME and PMC firmware will be updated.

Just to be clear you’re talking about the bios.bin and not the backup-bios.bin, right? The phrasing is a tad ambiguous.

@jxding Correct, I meant the backup of the main chip which is F6 and NOT backup-bios.bin which is F5.

Alright, I’ll give that a shot, then.

Do I need to use greset after it completes or can I just flash F13 right away if it was successful?

Verifying flash… Success!

1 Like

@jxding No need for global reset after flashing the same firmware.

I think it worked! I have F13! Thank you so much for all your time chino, you’re a wizard!

1 Like

@jxding You are very welcome!

If I only want to flash m_bios but leave b_bios alone, I would just use the /x flag? e.g.

efiflash Z97XSOC.F5 /x

?

@turner Try without force switch first and if it won’t allow flashing then try the force switch.