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

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.

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

Just curious why didn’t the fpt tool work? I mean it showed it was installed successfully but after a reboot, the computer had to restore the firmware from b_bios, why was this? Is it cause I changed the file name of my bios image file?

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).

I used the original version from gigabyte (that comes when you download the bios image file) and it rejected F5 as it was too old, so I assume this modified version will work?

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

I think I will leave just m_bios with F5 just in case if something went wrong then it can be restored. Otherwise I will have a truly bricked computer and I can’t even get into the bios without using the programming tool to flash the bios chips.

If you could a DOS bootable drive, try to flash it using flashprog. You could use a clean stock old bios as per what you wish, make a DOS bootable, copy the contents of Flashprog.exe and CWSPDMI.exe, and the bios file to the dos drive directly, boot up to bios and enable csm, save and exit, boot to bios again, then on boot override select on your flashdrive name.

After you enter DOS, type flashp~1 -p internal -w yourbiosname.theformat (for example the bios name is Z97XSOC.F5, then type flashp~1 -p internal -w Z97XSOC.F5). Wait till it finishes, and after it finishes just press ctrl + alt + del and it will reboot automatically, spam DEL and see if it has changed. If you could, please provide the execution success if it a success like this:

Usually gigabyte copies the content of B_Bios to M_Bios if the M_Bios is corrupted, or if you manually do it by shutting down your pc, press and hold power + reset/restart button (make sure the reset header is connected to the board) for about 11 seconds, release and power up normally.

And to update the B_Bios if it isnt updated through qflash, simply just spam Alt + F10 and it will bring you to Update Backup Bios page/Copy Backup Bios from Main Bios page.

If you want to flash both bios chip using flashprog (let’s say Flashprog method succeed), probably you could use flashp~1 -p internal:dualbiosindex instead of normal -p internal arguments, tho i never tested it yet.

1 Like

ok thanks mate, I will try both yours and the other dude’s suggestion. though I am curious why didn’t fpt work though, is it cause I named the bios name as Custom.F5 I mean does it care if its a different file name for the bios image filename? Or did I edit my bios file incorrectly when changing the mac address?

I changed this porition:

and replaced the values with my hex mac address values. As it says offset is 1000, I went to https://hexed.it and went to 1000, found the mac address and replaced it with my one and exported it.