[Problem] Up-/Downgrading GA-Z97X-SOC BIOS

@turner Hi and welcome to Win-RAID forums,

Hey thanks mate :slight_smile:

I have done exactly as you did and erased the backup BIOS as I didn’t know that the motherboard had failed over after flashing a corrupt BIOS download from Gigabyte servers.

Its silly how they can push a buggy firmware out there and it becomes our problem and they do nothing to help and on top of that they put in code to prevent you from reverting back to a previous version.

There really should be a message or warning that you are booting from the backup BIOS, I guess a BIOS switch is too much expense for Gigabyte.

Yeah it sucks mate.

I used a programmer to recover the motherboard and it looks like you are on the right track.

And the programmer that I linked is compatible with my chip?

As mentioned, you should make a backup of both BIOS chips so that if your MAC address is overwritten you may easily recover it. Otherwise you will have to attempt to read the stickers that should be present on the motherboard - which can be a hassle.

I will do that before I write to the chip. But one thing I wanted to still understand is that when I do a regular bios update, doesn’t that firmware image overwrite the mac address? Why doesn’t that overwrite the mac address but directly connecting the eeprom chip does?

@turner Yes, being an older model motherboard it should be supported by some version of the software (there are quite a lot of releases for the ch341a).

I will do that before I write to the chip. But one thing I wanted to still understand is that when I do a regular bios update, doesn’t that firmware image overwrite the mac address? Why doesn’t that overwrite the mac address but directly connecting the eeprom chip does?

The BIOS tool Q-flash will not overwrite the GbE region, using a hardware programmer will (normally) write to all BIOS/UEFI regions. The same can be said for Intel’s Flash Programming Tool, by default it overwrites all regions unless you specify to only write a specific region.

By that I assume you mean software programmers/writers like neoprogrammer, asprogrammer etc?

The BIOS tool Q-flash will not overwrite the GbE region, using a hardware programmer will (normally) write to all BIOS/UEFI regions. The same can be said for Intel’s Flash Programming Tool, by default it overwrites all regions unless you specify to only write a specific region.

I see so what will it overwrite it to then? I assume my NIC wouldn’t work or something? And if it has been overwritten then what should I do to exactly fix/restore the previous mac address?

By that I assume you mean software programmers/writers like neoprogrammer, asprogrammer etc?

Yes.

I see so what will it overwrite it to then? I assume my NIC wouldn’t work or something? And if it has been overwritten then what should I do to exactly fix/restore the previous mac address?

It will overwrite it with whatever MAC address is in the GbE region of the BIOS file.

UEFITool can show you this:

You can see it is stored at offset 1000 so if you open the BIOS with a hex editor you can modify it there (but only if you know what your MAC address should be):

1 Like

Ok thanks mate, I think I have everything I need now but two last questions?

  1. Do I need power to my motherboard and do I need to remove CPU if I do require power from powersupply and don’t change any connections (as the motherboard is still in the case of the computer)?
  2. If I don’t change the mac address in the bios file, would my NIC still work or not?

@turner

  1. Do I need power to my motherboard and do I need to remove CPU if I do require power from powersupply and don’t change any connections (as the motherboard is still in the case of the computer)?

To do an ‘in-place’ program using a SOIC-8 clip, keep the ATX power plugged in but the motherboard turned off, keep the CPU installed and remove the CMOS battery. Disconnecting any peripherals is a good idea (i.e. SATA/USB cables) just to get them out of your way.

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

  1. If I don’t change the mac address in the bios file, would my NIC still work or not?

If it gets overwritten to 888888888788 it won’t work.

[Edit] People have reported that their NIC still works after erasing/overwriting the GbE region, it could be that Windows is still using the MAC address stored in the registry from before it was overwritten.

Uninstalling and re-installing the NIC or doing a clean Windows installation may cause it to not work so it is best practice to edit the MAC address into the BIOS.

[Edit2] There are anecdotal reports of the MAC address being overwritten and the Intel Gigabit Ethernet Adapter no longer working:

Wiped mac address while trying to fix BIOS

Lost mac adress after downgrading bios from f20 to f8 z170x g7

Better to be safe than sorry I guess.

Hey mate I read a bit from what the links that you have sent me,

So currently I haven’t removed my motherboard or anything, so I assume that the atx power is how my computer is currently connected. But how would I turn my motherboard off then if power is still coming through? Or you mean like just don’t turn on my computer but keep power coming in? Sorry if I sound silly or whatever I am quite new to all of this, this is my first time doing this so yeah I am trying to learn it.

Damm sir… that’s really sad, you still don’t know how a simple ATX power supply works… and your taking adventures on SPI programming and a forum of this category… interesting indeed.

Unplugged AC (UE/US) cable from wallet to PSU ATX (AND/OR if switch in the back present set it OFF), ATX 24pins + 4/8 pins EPS CPU plugged into ATX motherboard, but that its no power standby from 12, 5 or 3,3v.

30m to 1h to TOTAL DRAIN all capacitors on the whole system.
Discharge yourself and avoid direct body contact with circuits/pcb when handling the proper connection from the CH341A test clipp to the IC.

So currently I haven’t removed my motherboard or anything, so I assume that the atx power is how my computer is currently connected. But how would I turn my motherboard off then if power is still coming through? Or you mean like just don’t turn on my computer but keep power coming in?

I have a hardware programmer (SP8-F) that has 2 configurations for programming in-circuit :
a. Programmer supplies current to the target board
b. Current self-supplied by target board

For in-circuit programming the ch341a needs to supply enough current to power the EEPROM while it is connected to the motherboard, which is sometimes a problem as the current can drop when a SOP-8 clip is used and the motherboard circuit is still connected:

Attach the ATX PSU to the motherboard (with the BIOS chip) BUT DO NOT power on the motherboard via the case power switch (but only at the Mains supply). On my motherboard there’s board power switch with an LED which lights up to indicate ATX PSU is ready.

I was then able to read back, erase, write and verify the Main BIOS chip with my BIOS and the also the Backup BIOS chip with Gigabyte’s stock BIOS.

A note on the external supply: even though it is rated over 1A @ 3.3v, it does not regulate well. When not loaded, it supplies 3.26v. The voltage drops to around 2.86v when the Clip cable is connected to the motherboard BIOS chip. That voltage is within the tolerance of the BIOS chip. I measured the current drawn from the 5v USB supply it was drawing around 380mA during read/write.

The ch341a is the cheapest programmer with no circuit protection, there is no guarantee that it can program in-circuit and you may need to de-solder the BIOS EEPROM if it fails to read/write.

1 Like

I don’t know the terminalology all I wanted to know was if I had to connect it to some other port or not that is all I wanted to know since I don’t work with hardware or psu

1 Like

I made a post over here: [Problem] Up-/Downgrading GA-Z97X-SOC BIOS

Regarding how my motherboard is nearly bricked and cannot boot into any OS (other than MS-DOS through rufus).

Problem is that I cannot downgrade from F7 to F5 without reprogramming it using ch341a as the motherboard actually prevents me from downgrading.

I have placed ch341a for order but was wondering in the mean time is there a payload out there that I could run that force my motherboard to downgrade from F7 to my desired version?

OR

possibly if there is a way to modify the F5 firmware image file to change its version number to F7, that way when I put in my USB drive I can trick the motherboard into thinking I am putting in F7 when in reality it is F5?

If you could make ms dos usb boot, try to use fpt ver 9.1 Dos version to flash it. Dump the current bios using the arguments -d backup.bin and use -f biosname.F5 to flash it. Use the backup to see info about the mac address if there is any mac address baked in the bios, so that you could use the .F5 bios file, replace the mac address using uefitool, and flash it using qflash if possible.

If you could make ms dos usb boot, try to use fpt ver 9.1

I assume this particular program you are referring to:

Also using qflash since its preventing me from flashing F5, I assume this program will bypass the bios’s restriction on flashing an older version?

@turner
Since it doesn’t make much sense to have 2 threads about the same topic, I have merged them.

1 Like

ok sure

I could find this one:

https://ess-wiki.advantech.com.tw/view/BIOS/FPT

Not too sure if this one will work?

@turner As Kookieezz suggested, attempt to make a backup from bootable USB using FPT from either MS-DOS or a UEFI shell.

You should download FPT v9.1 which can be found in ME System Tools v9.1 r7.rar from this thread:

Intel (Converged Security) Management Engine: Drivers, Firmware and Tools (2-15)

The archive contains versions for Windows, MS-DOS and UEFI shell.

2 Likes

Just making sure I don’t get anything wrong over here, I have made a backup of my current bios file and I have obtained the mac address.

I have opened the bios file I wish to flash on my PC and this is what I am seeing:

I am assuing that this area (in red rectangle) is where I will change the values according to my mac address?

Also how do I edit this, I can’t seem to replace the values?

Edit:

Nevermind I modified it using external hex editor tool but yeah something I would like to know for next time.

Hey so I did flash it with fpt, and even though fpt has stated it flashed successfully, after a reboot, my computer rebooted a few times and when I checked the bios version it will still at F7. For some reason I think the b_bios restored the m_bios. Not too sure what went wrong?

here is what I did

I booted into my USB drive, typed fpt -b file.bin

After dumping the contents, I inspected it in uefitools, I copied the gbe mac address, openeed the F5 bios flash file and I saw the off set for the mac address, I went to an external hex editor, and I replaced the mac address with my backup file, then I exporeted it to my ms-dos usb drive, then booted from usb drive and typed fpt -f <biosfilename> and it flashed the m_bios but had issues.

@turner It looks like you have worked out how to add the MAC address using a hex editor as I suggested, which is good.

If FPT won’t work you can use Gigabyte’s EFIflash instead:

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

I would suggest using the modified version of EFIflash as you have likely changed the checksum of the official BIOS when you added your MAC address (which will cause the official EFIflash to reject the modified BIOS).

If you can downgrade the main BIOS chip to F5 with EFIflash, then you can also flash the backup BIOS chip using the command line switch /DB

E.g. efiflash Z97XSOC.F5 /db

This will flash the BIOS file to the main BIOS chip first and then the backup BIOS chip.