-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failsafe and Optimal are being ignored #9
Comments
I have found in my testing (see link below) that it takes optimized default settings from NVRAM. The solution would look like this:
So, how does UEFI Editor know what byte to change in NVRAM.bin? Example: Now, where is "Setup" within "StdDefault" within "AmiNvramMainRomAreaGuid"? What is Setup's offset within "StdDefault" within "AmiNvramMainRomAreaGuid"? In hex editor, it looks like this. Now, knowing that the Setup variable's body starts at 0xb8 within the user uploaded Volume_FFSv2_AmiNvramMainRomAreaGuid.vol file, add to that, the offset that UEFI Editor already knows is 0x5d. From there, adding "0x5d" gives us 0x115. This is the byte that needs changing to 0x1. I have posted some of my findings here: [Guide] Enabling hidden BIOS settings on Gigabyte Z690 mainboards. Only chapter 4 will be of interest to you. |
Has this been tested on other vendors' boards as well? |
So far, this has only been tested on one mainboard. If it helps, I have a few Intel PCs that I could test it with: ASUS Prime H470-PLUS, ASRock B360M-HDV, Gigabyte B660M DS3H DDR4. Also, Laptops (Intel 10th gen, 11th gen). Don;t know how much of this applies to Laptops though. |
Short answer: Very likely. Long answer: I've looked into the It basically boils down to whether the gap between |
Today, I tested this with my ASUS Prime H470-PLUS, to see if this works across different mainboard manufacturers. At first, I tried to change defaults in UEFI Editor and then to re-insert the resulting AMITSESetupData_body.bin. The I flashed and loaded optimized defaults. This did not work (which I kind of expected at this point but I wanted to try it). Then, I tried with the NVRAM StdDefaults method that I described above and this worked. Now we know, it works with ASUS too. To this, I can add, the offset of Setup was once again 0x8b. This is because it seems that the Setup variable is always first among the StdDefaults. But the other variables occur in different order, and therefore have different offsets within NVRAM. I excepted this. If this is done programmatically, the offsets/positions of StdDefault variables/VarStors, like PchSetup, cannot be assumed to be in the same place in every BIOS. Rather, they need to be found using UEFI Tool or some other tool. |
I'm aware the addresses are different. Check the image I sent above. It might be possible to figure out the offsets using just the |
Same problems on Gigabyte Z170N-GAMING 5; |
I have a couple dells here that I've flashed the bios a few dozen times in an attempt to over clock them. (It's just something to do) the issue above seems to be what I was facing. I ended up finding a copy of the correct version of amisce which doesn't change defaults but mostly accomplished what I needed. I'm more than willing to test out anything of them. I have a programmer to flash if bricked which I've had to use alot lol. |
It might not be possible to implement an unified workaround. Vendors do things differently. Thus, if workaround would require changing some fickle piece of code, you would need to write a very flexible algorithm. I want to present a routine that might be what you looking for. Executing which, I think, is the solution for Failsafe and Optimal are being ignored. But referring londbell:
Things are not that simple. In some cases, Defaults can be controlled by NVRAM too, along with values set in AMIBCP. |
I can confirm this method worked on Asus Crosshair X670E Gene to force CSM by default, by changing the failsafe value at the given offset. |
explain this |
It's the same method explained in one of the earlier posts: #9 (comment) I've changed the value in AmiNvramMainRomArea. The base address and header size and the offset are the same as the Setup variable is the first one for me as well. Then reinserted everything back and flashed with usb flashback function. |
Failsafe
andOptimal
are being ignored, as seen here and here. I lack the necessary information on how to proceed implementing a workaround for these (probably very common) cases. If anyone can point me towards documentation or forum/blog posts dissecting this topic, please post here.The text was updated successfully, but these errors were encountered: