REQUEST Bios Flash for ROG ASUS Apex XI Z390

Hi all, I’m having issues reading or editing the bios for the z390 apex xi with the latest mega trends tool.
I wish to unlock the feature of being able to toggle on and toggle off HPET High Precision Event Timer.
As this is forced on (in the BIOS).
In windows 10 1809 I am locked to a 10mhz QueryPerformaceFrequency.

I have tested this OS on another board which has this option, and it does indeed get it down to 3.4-3.7mhz when disabled in bios.
I have tested many bcdedit commands also, and other things so I am all out of options and need this feature unlocked.

Would greatly appreciate your help to either point me into the right direction.
OR
Am more than happy to pay anyone out there to help me edit and make one.

This is a fantastic board, apart from lacking this feature.
I really do not want to go down the path of selling this new board and going towards an z390 evga dark.
Although I guess that’s worst case scenario.

Look forward to your feedback or reply’s.

Regards
-Chris

  1. Download EFI Shell: https://www.firewolf.science/wp-content/…4/EFI-shell.zip
    2) format a flash drive with FAT32 filesystem
    3) put efi file from zip file into Boot/bootx64.efi on your flash drive
    4) boot from flash drive. you will get uefi shell
    If it is not booting - Go to bios, boot sequence - and add custom entry pointing to that efi file. then reboot, F12 and choose your custom entry


    Code-Information:
    One Of: High Precision Timer, VarStoreInfo (VarOffset/VarName): 0xA86, VarStore: 0x1, QuestionId: 0x62F, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 E0 09 E1 09 2F 06 01 00 86 0A 10 10 00 01 00}
    0x7FD0D One Of Option: Disabled, Value (8 bit): 0x0 {09 07 04 00 00 00 00}
    0x7FD14 One Of Option: Enabled, Value (8 bit): 0x1 (default) {09 07 03 00 30 00 01}
    0x7FD1B End One Of {29 02}

    Write the following and press enter:

    //For HPET Enabled
    setup_var 0xA86 0x1

    //For HPET Disabled
    setup_var 0xA86 0x0

    STRG + ALT + ENTF ( For Reset )

    If Pc is not Booting, CLEAR CMOS.

    Timers:
    https://steamcommunity.com/groups/TheUse…75115082070040/
    My conclusion is with
    HPET BIOS Disabled and USEPLATTFORMCLOCK Enabled, 3.5Mhz instead of 15.2Mhz is not better.

This method does not work.
I have tried everything, even stripped out HPET in both machine.inf’s and regedit this did not work either.
I used a clone drive to try this method (just in case a blue screen would occur lol)

With st1cky’s above method, i tried a bunch of times and it did not work.
After multiple tries and reboots going back into EFI typing in "setup_var 0xA86"
It would show value “0x0” which means disabled although this would not reflect in the os.

st1cky tried to manually edit a bios for me that did not brick the mobo but simply did not work.

Can anyone shed some light on this subject for me please?
Is it just the case that ASUS has locked out doing this on new z390 boards?
I have contacted technical support although I doubt they will be able to help me or make a custom bios for me.

FYI windows 1803/1903 has changed the QueryPerformaceFrequency to 10mhz.
THUS having a bios without the option means HPET is forced on.
Then you dont get the option to run “ACPI Power Management Timer” OR "TSC"
I’m stuck with 10mhz or 24mhz at the moment, mouse feel and over all performance is horrible.

1803 and previous operating systems it would (kinda) ignore HPET in bios and run “Invarient TSC” 3.91

IMO TSC “3.4mhz” or ACPI Power Management Timer “3.57XXX” are the best for general use and gaming.
The clock syncs much better and the overall feel of the PC is much better.

I would like to stick to 1809 and make it work with this motherboard.
This is the best z390 board on the market and the results with my memory over clocks are just out of this world.
We are talking BDIE XMP 4000mhz ram overclocked to 4600mhz with low timings and 30000% coverage stable in karhu.
There is no way another board will be able to do this.
Cpu overclock is great also, it’s such a shame that ASUS has “hidden” this option in new boards.
I never had this problem on my x79.

https://wiki.osdev.org/Timer_Interrupt_Sources

Could someone please help me out?
I’ve spent a week configuring and trying out different options and I’m all out of luck.

The board
https://www.asus.com/au/Motherboards/ROG-MAXIMUS-XI-APEX/

The bios i’m using 0805
https://dlcdnets.asus.com/pub/ASUS/mb/LG…X-ASUS-0805.zip

I have managed to export my bios through AFUWINGUIx64.EXE
Happy to give it to someone who wants to do this for me, obviously posting it here would be a security concern.
Like I mentioned before I’m happy to pay someone for their efforts.

Regards
-Chris

Also just an update, this board has a dual bios. So I’m willing to take the risk.

Regards
-Chris

@FR33THY - there is probably duplicate HPET In this BIOS, I’ve seen 2-3 sometimes, and of course sometimes even disabling them all does not help if it’s actually broken/bugged in BIOS.
There is also TCO timer something too right near HPET, unsure if this is relevant to your uses, but it can be made visible as well.

I can either disable them all for you, or unlock the BIOS so you can disable them all (If multiple are present) - Check BIOS main page and see if ME FW version is shown, if not then download HWINFO64 and on the large window on left side, expand motherboard and find ME area, inside that get the ME Firmware version.
Once you have that, go to this thread and in the section “C” download the matching ME System Tools Package (ie if ME FW version = 10.x get V10 package, if 9.0-9.1 get V9.1 package, if 9.5 or above get V9.5 package etc)
I checked BIOS, you need package for V12 ME FW
Intel Management Engine: Drivers, Firmware & System Tools

Once downloaded, inside you will find Flash Programming Tool folder, and inside that a Windows or Win/Win32 folder. Select that Win folder, hold shift and press right click, choose open command window here (Not power shell).
At the command prompt type the following command and send me the created file to modify >> FPTw.exe -bios -d biosreg.bin

This will also help me check if this is being disabled in your NVRAM and Setup module when you change it or not, some BIOS only one or the other we can set them all to disabled.
Since I cannot properly parse this BIOS in AMIBCP, I may not be able to find and disable the 2nd and 3rd ones I mentioned, hopefully they aren’t used and enabled currently!

@Lost_N_BIOS

AMIBCP is not working because of Setup - Section. Maybe someone can try to Mod AMIBCP? I found a way to parse it in AMIBCP. But everything is without Strings :D.

What we tried so far:

0. Backup BIOS with AFUWINx64

1. True {46 02} > False {47 02} - not working

2. EFI Shell manually change Value - not working

What if we try to change

VarStore: 0x1 -> 0x0 ?

One more Question, when we change something in AMIBCP why isnt changed anything in Setup.bin? Changes are made, yes. But not in Setup.bin.

I was trying to compare my BIOS with Changed Value and not Changed there a lot of changes. But Setup.BIN is the same?

How can we find were the changes are made?

==============================================================================================

What i found so far. Related to HPET -> High Pre.

ASCII text "HPET" found in Raw section at header-offset AFABh
ASCII text "HPET" found in PE32 image section at header-offset 20BC4h
ASCII text "HPET" found in Raw section at header-offset 188D4h
ASCII text "HPET" found in Raw section at header-offset 04h

Unicode text "High Pre" found in PE32 image section at header-offset C63E2h [SETUP]

6CE6B0DE-781C-4F6C-B42D-98346C614BEC -> HpetTimerDXE

@Lost_N_BIOS

I have followed your instructions and sent you a pm with the link to my bios dump "biosreg.bin"

Regards
-Chris

Thanks @FR33THY - How did you get it to show setup in AMIBCP, and did you mean all settings are shown as blank? If yes, that’s not good Show/tell me anyway so I can look, maybe figure it out so it doesn’t break.

1. Where did you do this, in setup, directly above the setting? Was it not already visible? Was it then visible after your edit, or not? If you edited correctly, this should show up at it’s normal location (I think Advanced >> PCH Config)
But, this may also require AMIBCP edit to User if unsuppressing fails. - which we can change manually since AMIBCP not working, but I’ll have to figure out the correct location for this byte change first.

2. EFI Shell, do you mean grub or actual shell or RU etc? It must be grub for setup_var to work

VarStore: 0x1 -> 0x0 ? <<< No, that is all (it will just break the setting, that’s not something you do for this)

HPET only this one is relevant, but not what you’re after - found in PE32 image section at header-offset 20BC4h
If you have flash programmer, or your dual BIOS setup has switches where you can switch back and forth to reflash one or other so you can boot to one, flip the switch and reprogram the broken one, then you can test making a change here
Extract body, edit at 0x20bf8h - change 01 to 00 - if boots and all OK, even if HPET still shows enabled, leave this way for further testing - sometimes you need to disable a few places as I mentioned initially.

AMIBCP changes are reflected in AMITSE/SetupData Module, and this is polled by the BIOS and copied (Sometimes) into NVRAM
You can manually make the change in Setup to 0x0 - extract setup as-is (not body) and edit at 0x7fd11h >> 00 change to 30 + 0x7fd18h >> 30 change to 00 (This switches the default enabled/disabled setting)

High Precision is the term used in this BIOS now, but that is not how you’ll find in in settings we’d change aside from Setup/IFR.
Let me figure out which byte you need to edit in AMITSE/SetupData to make setting visible in BIOS, but even with it hidden the above change should disable it.
The issue may be the hidden/debug one, which we can’t see due to AMIBCP not parsing this BIOS correctly. But, even if it did, sometimes the debug folder is all blanks anyway, so might not be much help even if we can get it working.

* Edit - I checked your dumped BIOS, all still set to 0x1 in both NVRAM volumes (this should have been changed via proper grub setup_var edit) and setup was still set default enabled too.
Do you have USB Flashback on this model, or do you need to reflash mod BIOS via FPT (thus disable BIOS Lock)?

@Lost_N_BIOS

Hey man, thanks for the detailed reply.
If im honest all of this stuff is just over my head, but I’m willing to learn.

I had sticky help me out up until this point, he has thrown in the towel.

So my bios was never visible in AMIBCP the “setup configuration tab” would never show up no matter the AMIBCP version we tried.
My old motherboard z370 shows this tab but my current board does not.

Sticky tried to manually edit the bios, i flashed and this did not work.

He then go me to try an EFI shell where I tried setup_var 0xA86 0x0.
This did not work either.
This was through a bootable usb and entering the command.
Following his instructions above.

After your first reply he tried to manually edit the bios again with a hex editor I guess?
He tried and failed.

"i compared your file
its complete different
:smiley:
i think lost, knows better then me"

So I decided to flash back to the original bios which we backed up.
Which would be the reason the dump file I showed you has factory hpet hidden and enabled.
I did not want to take my chances with his edited bios, although it did not cause anything to break.

I am willing to do what it take is that means buying a “flash programmer”.
This stuff is like learning a new language to me.

I believe this board only has BIOS Flashback® Button NOT a "usb flashback feature"
We used the AFUDOS_v5.0.5 method to flash my bios.
As I mentioned earlier I am back at my original bios before we did anything.

Thanks for your help.
I’m a quick learner, I just need to be pointed in the right direction.

Regards
-Chris

@FR33THY - You’re welcome! And It’s OK, I know we don’t all understand how to modify BIOS in depth, good to learn as you go though And sorry, I thought st1cky’s reply was from you too, didn’t notice until now (Sorry @st1cky )
So, I guess these more detailed replies will be better absorbed by him than you, but that’s OK maybe someday you will learn more about BIOS editing by digging into it this time.

On EFI Shell, maybe that’s the problem why it didn’t work for you, unless you did actually use grub and setup_var (All black screen always, with white font always)? I can’t check his file due to Eset blocking his website
If you used some normal shell then setup_var wont work properly - it has to be the shell/grub linked in my guide, there are others but this is the main one to use for this - [GUIDE] Grub Fix Intel FPT Error 368 - BIOS Lock Asus/Other Mod BIOS Flash

What I meant above when I said I checked your dumped BIOS, was that it did not appear in that BIOS that you’ve used grub and setup_var to change the setting yet, was still 0x1 in all locations
Ohh! So, you meant that was stock BIOS, OK then, that makes sense! I was expecting you’d send me a backup after you did the setup_var attempt so I could see if it was going in or not, but it’s OK
But, I still see the edit to “suppress if True”, changed to False in this dump!?!? Anyway, I left that as it, and took the setting outside of the suppression brackets anyway, so it can be true or false now and it wouldn’t matter

USB Flashback button invokes the USB Flashback feature This only works with some USB, some do not work at all, and then some do, you’ve got to find one that does work. Smaller (128MB-2GB) and cheaper is often better, but not always, sometimes a large expensive one will work, it’s picky.
File must be on root of USB, and must have a special flashback name.extension (For your BIOS this is M11A.CAP) I will do this below, so it’s easier for you. For flashback, put M11A.CAP file on root of USB (ie not in a folder), then shut down and push the flashback button.
The LED on the button and or the USB will light up and blink, getting faster and faster as it goes, takes about a minute or more, when it’s done it will either go blank (LED off) or remain solid, I can’t remember.
But, if you push it and it only blinks a few times (2-3) and then goes solid or off then it’s not working. That is how you know if USB is compatible or not, if you get that, try more USB.

Or you can use AFUDOS if you want, sometimes it only appears to flash mod BIOS but flashed nothing, so hard to know if you have good version for this or not? (I hate it, but that’s me)

OK, here is mod BIOS for you, High Precision Timer should be unlocked and visible now in the BIOS, and disabled by default in the visible BIOS settings and I set to disabled by default did in NVRAM too (x8)
I also disable BIOS Lock, so after you put this on next time you can flash easier with FPT. This bios region needs to be reflashed via FPT, but, before you can do that you need to disable BIOS Lock via grub / setup_var >> 0xA83 >> Set to 0x0 (See my guide above if you are unsure if you’ve been doing this correctly)
Here is the command to flash back in via FPTw.exe -bios -f biosregm.bin

If you cannot get this, and keep getting BIOS Locked error in FPT (error 368) then something is wrong with your grub / setup_var method, and that may explain why you couldn’t get high precision changed previously
If you can’t get it, then here, you should be able to use this via USB Flashback - Actually all files here derp I included all stock/modified files so you or st1cky can see what was edited/compare with stock etc.

Also included is the full BIOS ready for USB Flashback
*BIOS Link Removed

DO NOT flash stock BIOS via FPT, do not flash .CAP BIOS via FPT.
This file I named biosregm.bin and your original biosreg.bin FPT backup are the only files you can use with FPT (in general, for what we’re discussing, to keep things simple etc)


More detailed info here for st1cky
For the AMIBCP Access level to User, edit on AMITSE/SetupData (as-is), since we can’t edit in AMIBCP
Extract AMITSE/SetupData (As-is) w/ UEFITool @ SubGuid - FE612B72-203C-47B1-8560-A66D946EB371
Edit 0x3103ch >> Change 09 >> 0d
This = AMIBCP Access level change - Default >> User
This location obtained by setup/IFR >> QuestionID (backwards) for the setting you’re doing will find you the proper area (last result will be the Access Level Setting option - 09=default / 0d=User - in this BIOS series)

Em, he used AFUDOS /GAN Methode to flash his mod BIOS. Not FTP.
This is actually the only AFUDOS Version that works for me :slight_smile:

Ahhh nice to know.
I was checking my BIOS and Compare changes made to Visibility ( Default → USER or Super. )
But i couldnt find the correct offset for HPET. How did you find the correct offset in AMITSE/SETUPDATA?

https://steamuserimages-a.akamaihd.net/u…87898BEEBBACCF/

* This location obtained by setup/IFR >> QuestionID (backwards) for the setting you’re doing will find you the proper area (last result will be the Access Level Setting option - 09=default / 0d=User - in this BIOS series) *

Oh my God Fuck me :D, i was looking at the right place yesterday but didnt figure this one out :slight_smile:

When i change SETUP Section.


No Error and no Strings :smiley:

Thanks for the Information :slight_smile:


Edit 0x3103ch >> Change 09 >> 0d how? :smiley: still dont know^^


One Of: High Precision Timer, VarStoreInfo (VarOffset/VarName): 0xA86, VarStore: 0x1, QuestionId: 0x62F,

QuestionID: 0x62F = 0xF26 ( Backwards ) ???

Anyway i figured it out now. With hex ez to find.

What did you change in nvm? 01? xD

@st1cky - AFU /GAN is old news, outdated long ago, and probably does not work at all on this most recent chipset/BIOS model board. It may look like it flashes, but probably does not, and should not be attempted to be used either
Which DOS version are you using, it may be working? It’s not ideal or suggested to use for many reasons, but if it works you can continue to risk it if you want. Did you confirm it’s actually flashing in your mod BIOS?
BIOS Lock only needs disabled for FPT flashing, so that is why I assumed you helped him FPT flash. That is how I suggest to flash mod BIOS too

I explained how to find the correct byte to make the access level change in AMITSE/SetupData above, it’s from the Setup-PE32 module/IFR output, find the setting you want to change and use it’s “QuestionID” (Backwards), search that in the AMITSE/SetupData module and last result is the one that holds the access level setting
I think you got it now though, right?

So, you got it open in AMIBCP, what did you change to make the setup section show up this time? Remove the strings file? If yes, then that’s the problem, we can find the issue in that module (Or remove some strings that we don’t need) then put back in and it should open properly.

Yes, if setting QuestionID = 0x62F then you are looking for 2F06 - Download the package I linked above, you can see all my edits if you compare stock file with mod file (Same name but with M at end of names)
You’re last question, What did you change in nvm? 01? xD? Did you mean NVRAM? If yes, I changed 01 to 00 in all instances (x8) at 0xA86 within the setup sections of NVRAM.
There is two NVRAM volumes at top of BIOS region, and a third stock on inside main volume that contains setup and AMITSE too (It’s near AMITSE)

@FR33THY - did you test the BIOS I sent yet, if yes is HPET disabled in windows or not?

@Lost_N_BIOS

Hi lost, yes we got it all unlocked.
Very happy with my board now.

A big thank you to @st1cky as we could not get the board unlocked with grub setup_var method.
Thanks to your advice lost sticky was able to edit a custom bios for me and we used the / gan method.

Heres what we unlocked.
https://imgur.com/hxz8syi

Sadly I have also come into the realization that 1809+ future versions windows has a forced timer of 10mhz.
Thus not being true TSC, I’m going back to 1709.

Thankfully now HPET is unlocked I am able to use ACPI PMT if i want to.

I appreciate all your help and efforts.

One last thing @Lost_N_BIOS
Could you please take the links to my bios’s down.
I feel uncomfortable with them being shared to the public.
It could get my hardware id banned from gaming services if someone out there were to use and exploit it.

Regards
-Chris

@FR33THY - great you got it sorted out how you wanted it! And now, HPET is disable when you want, and enabled when you want, verified in windows?
Yes, I will remove your BIOS links

@Lost_N_BIOS

Yes confirmed working!
Reflects in windows, beware new boards and I hope this helps others, use win timer tester or cpuz to check.
For some reason HPET will show in device manager with new motherboards even if its disabled in bios.

With this option in bios unlocked, I now have the option to use ACPI PMT timer in windows.
Fantastic work, I have learnt so much already!

THANK YOU!

Hi all, i’m new to motherboard bios modding. I’ve already read the post from FR33THY regarding the same thing. Now, as him i’d like to unlock HPET values and if possible i’d like to remove intel ME. After talking a bit with him i’m also interested in changing my cpu microcode, wich i suppose is also related to bios itself. If there is someone so nice to help me out i’d be very glad :slight_smile:

PS: this is FR33THY’s post REQUEST Bios Flash for ROG ASUS Apex XI Z390

@Cancretto - moved this over to that thread, since there is already a thread about this exact same issue we might as well carry on there.

Please send me your FPT BIOS region dump as per how I requested it in that thread.

@Lost_N_BIOS Hi, thanks for helping me out. Here is the link for the bios i’m currently using https://drive.google.com/file/d/10N-_sHM…iew?usp=sharing

Let me know if you need anything else and thanks again :slight_smile:

@Cancretto - I will not remove Intel ME, but if you want it disabled I can do that if you have flash programmer or pinmod’d your board already to unlock the FD (otherwise huge hassle to write ME)
Please host above file somewhere else, google is terrible cancer on us all, thanks

Please also be specific, what do you want in regards to HPET, do you want it visible, or disabled, or disabled by default and visible
Plus microcodes updated (OK)

@Lost_N_BIOS thanks, I’d like to have hpet and tco timer unlocked, so basically configurable I suppose, about microcodes he mentioned a “me80” microcode, which in his opinion works slightly better than standard one. Got an 8700k btw

And yeah I uploaded bios file on mega https://mega.nz/#!bEoBFKrK!r8tRIyz5toW1l…ljXwmLnroVb3w-o

Let me know if you need anything else and thanks