<Request> Flagship X470 Gaming 7 Wifi Motherboard BIOS Fix

Id love it if someone could do me a uefi bios for this amazing board, it needs to have FAIL_CNT for the memory unlocked (Fail Count) also "Relaxed EDC Throttling" needs to be unlocked, without this AVX instruction set workloads are not running at full speed. with edc throttling set to auto or disabled you can lose as much as 15-20 GFlops of performance, thats like having a whole core2duo 3GHz cpu lost.

Thank you.

I do not see either of those settings anywhere in BIOS. They may need to be added in before we can disable/enable them, unless they are hidden and I cannot see (via AMIBCP)

I found FAIL_CNT & Relaxed EDC Throttling (And I see enabled / disabled strings for these in hex) via EUFITool and hex, 2x instances, but I am not sure how to change, hopefully someone else will be able to help point you or I in the correct direction

More progress, I see EDC default setting is auto, other option enable or disable, no unlock. I am not familiar with this setting, so you’d have to explain or choose what you wanted other than “Auto” I can set this now I believe, what do you want enable or disable (instead of auto)?

EDC.png



I also found the FAIL_CNT, but will need advice from someone on editing these (unless I learn more via reading in next day or so). There is no enable/disable, so not sure what can be done.

FAIL_CNT.png



Will post back as I learn more about IFR editing. While I do that, what would be your desired outcome with the EDC setting and it’s three choices there, I assume Auto is not picking what you want?
Neither of these, I do not think can be enabled/added to the setup menu, I checked the entire image with AMIBCP and didn’t find either, and checking the setup menu via EFI extraction does not list either setting to be enabled or disabled either.

* Later edits

Can you recover from bad BIOS flash? If yes, I have two test file for you to try if you want, with EDC enabled. These do not enable a relaxed EDC setting BIOS option for you, I only changed default value from auto to enabled instead.
This setting may be able to be enabled in BIOS, but I am not sure if changing suppress values simply enables it or not, someone with more skills would have to speak on that or show me or make those changes.
If you want to try, and understand the risk that you may need to recover the board from a bad BIOS flash (ie flash programmer or somehow making dual BIOS recovery kick in), let me know and I will upload files for you to test.

Here is what I’m changing, for anyone reading that would like to approve, disapprove or give advice etc.
This is extracted from GUID A5E369C8-ABF9-4B43-B212-FF1BFD35666D PE32 body as-is, edited via Hex, then reinserted and rebuilt.

Default Settings - Before Changed -

Suppress If: {0A 82}
0x9989 Variable 0x7 equals 0xFF {12 86 07 00 FF 00}
0x998F Not {17 02}
0x9991 End {29 02}
0x9993 Setting: Relaxed EDC throttling, Variable: 0x93 {05 91 8F 00 90 00 31 70 00 50 93 00 14 10 00 03 00} - Editing this string via hex, to below
0x99A4 Option: Disabled, Value: 0x0 {09 07 18 00 00 00 00}
0x99AB Option: Enabled, Value: 0x1 {09 07 17 00 00 00 01}
0x99B2 Option: Auto, Value: 0x3 (default) {09 07 10 00 10 00 03}
0x99B9 End of Options {29 02}
0x99BB End If {29 02}

To (in try first folder = “ModTest2.rom”) -

Suppress If: {0A 82}
0x9989 Variable 0x7 equals 0xFF {12 86 07 00 FF 00}
0x998F Not {17 02}
0x9991 End {29 02}
0x9993 Setting: Relaxed EDC throttling, Variable: 0x93 {05 91 8F 00 90 00 31 70 00 50 93 00 14 00 00 01 00}
0x99A4 Option: Disabled, Value: 0x0 {09 07 18 00 00 00 00}
0x99AB Option: Enabled, Value: 0x1 {09 07 17 00 00 00 01}
0x99B2 Option: Auto, Value: 0x3 (default) {09 07 10 00 10 00 03}
0x99B9 End of Options {29 02}
0x99BB End If {29 02}

And to (In try second folder = “ModTest1.rom”)

Suppress If: {0A 82}
0x9989 Variable 0x7 equals 0xFF {12 86 07 00 FF 00}
0x998F Not {17 02}
0x9991 End {29 02}
0x9993 Setting: Relaxed EDC throttling, Variable: 0x93 {05 91 8F 00 90 00 31 70 00 50 93 00 14 10 00 01 00}
0x99A4 Option: Disabled, Value: 0x0 {09 07 18 00 00 00 00}
0x99AB Option: Enabled, Value: 0x1 {09 07 17 00 00 00 01}
0x99B2 Option: Auto, Value: 0x3 (default) {09 07 10 00 10 00 03}
0x99B9 End of Options {29 02}
0x99BB End If {29 02}

Thank you for getting back to me so quick, these 2 settings are the only things letting the board down, why gigabyte didnt enable them is beyond me, this board has already taken my 2700x to 4.35GHz with 3600ram so its a stellar performer there. i have no experience with bios modding but the board has a dual bios also a removable bios chip itself

Thank you id love to test this out, since i always leave the EDC throttling option enabled anyway and never switch it off as im watercooled with ek block and triple radiator.

I always set FAIL_CNT to 1, this setting is for the ram, how many retries it takes for the ram to reset, if this isnt set to 1 (usually 3 or 5) the board will reboot 3 or 5 times before loading defaults, this gets to be a pain when you are ram overclocking and puts wear on your hard drives by constantly powering them off an on all the time.

You’re welcome! It’s good you say this board has removable BIOS chip, then if bad flash and the dual BIOS can’t be kicked in automatically or by you manually.
That way you can remove the chip and reprogram in a cheap CH341A Flash programmer (Usually $3-6 depending on if you need fast/locally or can wait on longer cheap shipping).

I assume it probably has BIOS1 and BIOS2 switch too correct? I checked, it does! So when bad flash on one, you can switch to the other, and get it running, then reboot and use ALT+F10 at startup to copy main BIOS to backup.
That would reflash the badly flashed one with the current working BIOS you switched to in this instance. Then you could move the BIOS switch back if you wanted, or leave and try new flash again with different BIOS mod.
ALT+F10 is copy main/current BIOS to other BIOS chip, ALT+F12 is copy backup to main/current. Those are pressed at same time (Spam style) at start, same time and way you’d hit Del to get into the BIOS.

Before I post file for you to test, tell me about this EDC setting, so I can see if I was thinking about the changes I made properly.
Since this is not a visible setting in the BIOS (Correct?), how do you know when it’s enabled? And, since Auto is default, why do you think it’s not enabling by default?

Can you only tell by Gflops, or do you see this as a BIOS setting? If you do see this in the BIOS, great, please show me an image of where you see it and then I can probably modify in a better way.
I couldn’t find it in the regular menus the way I’d normal look to make a setting visible, or to give enable/disable options for a setting.

You also say you set Fail_CNT, Do you see both of these in the BIOS? If yes, please post an image of both, I couldn’t find either where normal user settings are visible or hidden.
Or are you talking about these settings you set on another motherboard usually?

I will look more into the FAIL_CNT tonight, I may be able to enable it, I’m not sure, but if I can enable that one with method I’m considering then I can later enable the EDC one same way.

* Later Edit

OK, here is a few test BIOS for you to try, separate ones for EDC change and Fail_CNT change. Then once you have tested to see which one works from each set, I can combine both modifications into a single BIOS.
Hopefully one from each will work properly, I mean will give you desired results in test. Neither will have visible BIOS changes, no settings to enable or I would. I can un-suppress, but without entries for these in the BIOS Setup file there can’t be an menu entry for enabled/disable/value etc.

Note * On the EDC, I have two folders, containing opposite labeled BIOS files (“Try First” folder has modtest2, “Try Second” modtest1), I meant to change that around to be less confusing, but didn’t want to edit the above if you’d already read it earlier.
I do want you to use the “Try First” folder first, that contains the modtest2 BIOS

Relaxed EDC Throttling - Enable Attempt - This one I am uncertain, but think it’s set properly in one of the files, unable to verify due to auto and multi-options on this - changes noted above in text format
http://www.filedropper.com/edctest

Fail_CNT (Fail Count) - Set to value of x1 instead of default x3 - This one should be working no problems, easy to find and extract and it’s a simple one byte change, verifies correct values as expected in IFR re-extraction after hex mod.

Orig1Set1Only.png

Orig2Set1ONLY.png


https://www.sendspace.com/file/mth7wh

Later if you feel lucky, I can send mod files for these with attempts to make visible, but I don’t think it would make any differences with the items missing from the “Setup” bin

Thanks mate

EDC throttling supposed to be in the CBS options, pstates/throttling menu

A quick run of IntelBurnTest AVX will determine if its enabled or not, at stock with 3600MHz ram the 2700x should be over 210GFLops at the moment its about 185.

FAIL_CNT should be in the memory subtiming settings but its not there, usually the first setting right at the top (is on my asrock x370 taichi)

Both FAIL_CNT and EDC throttling should be visible by default with that latest agesa from amd, i really cannot understand why they arent. If you could default FAIL_CNT to 1 for me that would be awesome, and as i say Relaxed EDC throttling i always ENABLE this, it should only be disabled if you are running on an air cooler. it basically is a setting that bypasses all thermal throttling of the cpu when enabled, there are massive performance gains to be had by enabling this.

the settings for this should be AUTO, ENABLED, DISABLED

Thanks again fella, very much appreciated this.
you are a star.

You’re welcome!

Ohh yes, I can see where it “Would go” and “Should Go”, but I can’t add it.
That needs a separate addition into a compiled and already assembled setup menu, it can’t be simply inserted in setup and then the other files modified or I would have done that.
It’s the adding to BIOS setup menu that’s the problem really, if it was already there but hidden that would be easy, I could have fixed for you in less than a minute.
But it’s not already there, it needs to be added into a very intricate file, linked to other resources within that via an assembler and then compiled. I’m sure someone here can probably do that, but I am not skilled enough.

I hoped it would be a quick test for you on the EDC, hopefully one of those files enabled it for you!

I assumed the Fail_CNT could be easy and quick too, although I know it’s painful to set bad memory settings that you know will fail and need crash/recover/wait etc.
Same applies for this one, I know where it should be, but can’t add to BIOS setup menus. If it was hidden same applies, I would be able to instantly unhide and send you a file with option shown.
Usually it is that easy too, when setting is there but hidden! At least you’re lucky and the settings are really there in the BIOS code, so they can be adjusted, but as of now in the latest BIOS they are not in the menus so can’t be enabled for user view (By me anyway)

Does this BIOS have that latest Agesa coding in it, I didn’t check? Even if it does, Gigabyte will need to add those options in the “setup” region of the BIOS before anyway can unhide them (if they add and hide, we can unhide easy)
So keep checking, and looking out for beta BIOS, maybe you find one with the settings soon.

EDC does have Enable/Disable and Auto (Default)
Fail_CNT is open value 0-0 user input, as it’s in there now, without a max amount visible either but I’m sure there is a limit probably

You’re welcome again! BIOS files for you to try above, please report back and let me know testing outcome and which work as desired, then I can combine both EDC and Fail_CNT into single BIOS so you can have both at once.

Right, just tried it, it says "invalid bios image" when i tried to flash from the uefi.

You will need to flash certain way with modified BIOS for Gigabyte now, see here (Digging up link and info, one second will edit in) -
Here is thread - Flashing Gigabyte while avoiding “Invalid BIOS image” and here [Guide] How to flash a modded AMI UEFI BIOS (19)

Unless you have flash programmer already, if so pull the BIOS out and program it.

Last time I linked someone to that thread, the modified files didn’t help, but the originally included EfiFlash worked fine. So please try the original EFIFlash from DOS, then if no luck try the modified ones in that thread
Here, for quicker help I added them all to a zip, try original one from your board first, then if no luck try modified 65 next, then 62

EFI Flash Modified.zip (134 KB)

Well this is gonna keep me busy for a while, wish i was as fast as you at sorting problems haha, seriously though you are a bloody credit to this site

Awww man, Thanks!
EFIFlash is easy to use, setup a DOS USB Stick and you’ll be done in a few minutes. I use Win98SE for BIOS flashing. Do you need help doing that, if you do I can post a little guide

Here is quick guide and attached files - Your USB drive will be formatted, all data on it will be lost, copy or move any data you need to keep, you can add it back later if needed

1. Run the HPUSBFW program 2.18 - Select the correct USB device from the drop-down menu, set file system to FAT32 and check Create a DOS startup disk as shown in the included image
2. Then browse for the extracted boot files folder “USB-Boot” - once done hit start and will be finished shortly.
3. Manually copy from “USB Boot” folder all files and put on the root of the USB once the above program is completed (Overwrite if asked)
4. Leave USB plugged in and reboot
5. Hit F12 on reboot to get "Boot Menu"
6. Choose USB by name or recognition, or choose HDD and then see if USB is shown next (Don’t want UEFI-USB)
7. Once in DOS, run flash by typing “Efiflash BIOSFileName.bin” (May need /switches as mentioned /x or /c /r)

Try your original EFIFlash I included first, then if no luck try the modified .65 one

You posted while I was editing, hope you get it with the DOS you mention, if not try above.
Also, smaller USB stick tend to work better, like 1-2GB or 2-4GB. And as you’d expect with computers, some don’t work for BIOS flashing no matter what you do, so don’t let any single USB stick frustrate you for too long

USB-Bootable-BIOS-Fflash.zip (1.17 MB)

Right, ive just made a freedos bootable 32gb drive using rufus, ill report back with info

Well ive just found out one thing, i have a solid gold 2700x, at 4.1GHz it passes intelburntest AVX with only 1.23v !!

FAIL_CNT is working, Relaxed EDC throttling doesnt seem to be, but i havent tried both yet mate

Nice golden CPU! So full AVX workload & speeds? If yes, doesn’t that mean the EDC changes worked too?

I assumed the Fail_CNT would work, it was an easy thing to address. But, I wasn’t 100% sure on the EDC due to how it’s settings are laid out.
I may need to try another few edits on that one if you confirm it’s not working either of those ways. Let me know after you’ve tried both EDC if either seem like they work or not.

So, which EFI flash ended up working for you?

Next thing I will try for you on EDC is making the
Auto, Value: 0x3 (default) {09 07 10 00 10 00 03}
Match the Enabled, Value: 0x1 {09 07 17 00 00 00 01}

That way, both options = enabled! I assumed that would work from the beginning, but I know it isn’t the right way to do it, but I think it’s a possible way to get what you need accomplished

Now that I think about it, can you link me to a BIOS where you know for a fact this is an option, or at least enabled.
Then I can compare how the PE32 body looks in hex and IFR extractions vs this one we’re trying to modify. I can probably figure it out better that way, and do it with the right method!

Just the fail count one is working mate, the relaxed throttling doesnt seem to be working, thanks for trying though

OK, we’ll try some more on the relaxed EDC. Can you post me a BIOS link like I asked about above, from another BIOS you know with this option working, maybe you didn’t see my edit before you posted?

I tried all 4 bioses from gigabyte none have the option to select edc throttling, so its just this one setting i need to get working now, im surprised gigabyte dont have any beta bios files on their site, shocking lack of support

I meant another brand motherboard, like you had before or used before, or saw someone say theirs from some brand had the setting option.

Asrock Taichi x370 is my other board with bios version v4.60, this has the edc throttle setting enabled, its in the cbs options menu

Thanks, just what I need to look at this from a better perspective. I’ll get back to you later today or tonight

Can you post an image of that page in the BIOS? What is the exact name of the BIOS pages before and after, and the exact name of the BIOS EDC setting in that BIOS since every brand has their own terminology.
I don’t see a CBS BIOS page section, looking at BIOS 4.70 though, my luck it’s removed for some reason. I see one mention of CBS at the Advanced >> OC Tweaker section on CPU Configuration area at setting OC Mode Change Switch - ASRock Setting or AMD CBS Setting.
I am not familiar with AMD so maybe that is a common shorthand for another name I’m not familiar with? I’ll find it all I’m sure, have to look later after some zzzz’s
Or probably this tool AMIBCP, several versions, just not showing a sub-menu or something

* Well I found it in the BIOS itself, in the exact same file, with exact same settings shown, except a few different variables beforehand that I cannot change without knowing how to decompile and assemble in code.
This is same problem I have with adding new menu items that aren’t already there and hidden, not enough skills I find the string in hex 05 91 83 00 84 00 31 70 00 50 93 00 14 10 00 03 00 and go from there.
These are just “extracted” strings from the actual IFR code with a program that grabs them and puts to text, I can’t edit them like this and put back into the file, or that would be easy copy/paste.
I may however, be able to just insert the Taichi GUID file into the Gigabyte BIOS, I will have to compare the file a bit and see how much they both differ, gigabyte one is only 1k larger but that’s only size at a glance, could be many settings different too. NOPE, way too many differences!
It would be better probably to find a x470 BIOS that has this same settings in GUID A5E369C8-ABF9-4B43-B212-FF1BFD35666D, I bet there would be a lot less differences (If any, this looks like AMD specific code by AMD, so probably not edited much or at all by manufacturers)

Taichi IFR for this setting -
Suppress If: {0A 82}
0x9B05 Variable 0x7 equals 0x4 {12 86 07 00 04 00}
0x9B0B Not {17 02}
0x9B0D Variable 0x7 equals 0x1 {12 06 07 00 01 00}
0x9B13 Not {17 02}
0x9B15 And {15 02}
0x9B17 Variable 0x7 equals 0x5 {12 06 07 00 05 00}
0x9B1D Not {17 02}
0x9B1F And {15 02}
0x9B21 End {29 02}
0x9B23 Setting: Relaxed EDC throttling, Variable: 0x93 {05 91 83 00 84 00 31 70 00 50 93 00 14 10 00 03 00}
0x9B34 Option: Disabled, Value: 0x0 {09 07 18 00 00 00 00}
0x9B3B Option: Enabled, Value: 0x1 {09 07 17 00 00 00 01}
0x9B42 Option: Auto, Value: 0x3 (default) {09 07 10 00 10 00 03}
0x9B49 End of Options {29 02}
0x9B4B End If {29 02}

Gigabyte IFR -
Suppress If: {0A 82}
0x9989 Variable 0x7 equals 0xFF {12 86 07 00 FF 00}
0x998F Not {17 02}
0x9991 End {29 02}
0x9993 Setting: Relaxed EDC throttling, Variable: 0x93 {05 91 8F 00 90 00 31 70 00 50 93 00 14 10 00 03 00}
0x99A4 Option: Disabled, Value: 0x0 {09 07 18 00 00 00 00}
0x99AB Option: Enabled, Value: 0x1 {09 07 17 00 00 00 01}
0x99B2 Option: Auto, Value: 0x3 (default) {09 07 10 00 10 00 03}
0x99B9 End of Options {29 02}
0x99BB End If {29 02}

0x99A4 Option: Disabled, Value: 0x0 {09 07 18 00 00 00 00}
0x99AB Option: Enabled, Value: 0x1 {09 07 17 00 00 0001}
0x99B2 Option: Auto, Value: 0x3 (default) {09 07 10 00 10 00 03}

Thats exactly what the settings should be, Auto, Enabled, Disabled.

I dont know how were going to do this friend, its defaulting itself to AUTO which is 0x3, maybe changing that to 0x1 will work i really am not sure here ie: this should be set: "0x99B2 Option: Auto, Value: 0x1 (default) {09 07 10 00 10 00 01}"