[Guide] Award/Phoenix BIOS Modding

Hi all!
As we all know, the MINIT module in the AWARD BIOS is a sensitive module and any shift from its original address or changing/removing modules above MINIT will render the motherboard inoperative.
Previously, if we changed the ROM above the MINIT module and there was room before the MINIT location, we applied the so-called FAKE.BIN (DUMMY.BIN) using ModFix.
Today I will tell you a guide on what needs to be done to make the AWARD BIOS work, with any offset of the MINIT module.
We will experiment on my old GIGABYTE GA-EP45-DS3P board on INTEL.
First we need to check the location of the original MINIT module.
To do this, we need the CBROM199.EXE program and the command:
cbrom199.exe EP45DS3P.F9C /d - we will find out the structure of our BIOS

Fig1

At the same time, we open our BIOS in a hex editor (I like HxD) and enter MEMINITENTRYPOINT in the search (there are 2 places in the BIOS with MEMINITENTRYPOINT, we need the one that has FIXBIOS values, not 000000).

In my case it looks like this:

MEMINITENTRYPOINT - 80 FA F3 FF (i.e. FF F3 FA 80) MINIT entry point

FIXBIOS - 0C 92 62 (corrective data)

It is these values that need to be edited when offsetting MINIT from the original values.

Fig2.

In order to check the MINIT entry point, go to the address FF F3 FA 80 and see:

Fig3.

This is the MINIT entry point - these values need to be written down or memorized.
Now for an example, I will extract the MINIT module, delete and paste it with the commands:
cbrom199.exe EP45DS3P.F9C /minit extract - extract
cbrom199.exe EP45DS3P.F9C /minit release - remove
cbrom199.exe EP45DS3P.F9C /MINIT DS4_DDR2.BIN - paste

Fig.4

ATTENTION! As you can see, the MINIT module has changed the whole location and if you now flash the BIOS, it will be 100% NOT WORKING.

We continue to work.

Editing MEMINITENTRYPOINT.

We move to the editor and see that at the rate of MINIT (DS4_DDR2.BIN), CBROM199.exe carefully changed MEMINITENTRYPOINT to A0 BB F7 FF for us (i.e. FF F7 BB A0), go to this address and see (E8 B1 F4 FF FF CB E8 72 79 FF FF CB E8 E9 EF FF) exactly as in fig. 3. Everything is correct.

Editing FIXBIOS.

Here I want to dwell in more detail, because it was precisely because the CBROM did not change this data that the motherboard turned into a brick. Why the developers did not teach CBROM to change this data is not clear to me.

To begin with, you must understand that Checsum-8 FIXBIOS (3 bytes) will always be equal to “00”.

Fig5

As you can see in Figure 4, MINIT points to the DS4_DDR2.BIN module. Its header says -lh0- i.e. uncompressed module. Now we need to highlight this module without the title and its ending. In my case, this is from 732B0 - 87A6F. Or extract it with the cbrom199.exe EP45DS3P.F9C /minit extract command.

Fig6


And calculate its checksum, but not Checsum-8, but Checksum-16. The checksum is 67 9A (i.e. 9A 67)
And it remains only to choose a byte for the checksum that would be “00”. This byte is “FF”.
So for this MINIT offset, FIX BIOS is “9A 67 FF”.
After editing the BIOS looks like

Fig7

After the changes, you need to check that the Checsum-8 of the entire BIOS is equal to “00”. (I, for example, am the last to add a ROM to support and boot the system from my NVME).

In conclusion, I want to say that I am not responsible for any changes to your BIOS, everything you do, you do at your own peril and risk. If you are not sure of your knowledge, refuse to modify the BIOS. :grinning:

2 Likes

@Dagal
Thank you very much for having written a detailled guide about how to solve a specific problem while trying to modify an old Award/Phoenix BIOS.
Since your guide is now post number 120 of this very old thread and may not be found easily by the visitors of the Win-RAID Forum, I recommend to start a new thread and give it a meaningful title.

The best solution would be to offer a completely new Guide about how to modify an Award/Phoenix BIOS and to put your just offered instructions into it.
Question:
Are you willing to write the related guide? As you certainly have realized, my old guide needs a fundamental renovation and you know much more about this topic than me.

@Fernando can you help to Unlock Hidden BIOS Options ?

@matawak
No, I cannot help in this case.

@Dagal hi,

I have a 990FX chipset based Gigabyte 990FXA-UD7 version 1.0 mainboard. It has build on Award bios, file size is 4 Megabytes. (990FXA-UD7 version 3.0 build on AMI bios, totally different!)

I have managed to integrate “NvmExpressDxe_4.ffs” inside the latest 9FXAUD73.FDe beta bios with UEFITool.exe (Version 0.26.0) But I can not managed to flash the modified bios inside the chip.

I have tried many parameters:
awardflash 9FXAUD73.FDe /cc /cd /cp /sn /wb /py /sn /qi /nbl /r /cks etc. None of them worked! :slightly_frowning_face: [Awardflash version: 8.99]

The error messages:

  • Binary file is not Award Bios!
  • Unknown Flash Type!
  • The program file’s BIOS-Lock String does not match with your system!
  • The program file’s part number does not match with your system!

Do you know flashing parameters for modified bios file inside Award bios?

If not possible, according to ([Guide] Award/Phoenix BIOS Modding - #121 by Dagal) Can you please prepare a 9FXAUD73.FDe modified bios integrated with NvmExpressDxe_4.ffs with for me? I don’t want to brick my Gigabyte 990FXA-UD7 version 1.0

Notes:

  • Award BIOS Editor 1.0 did not successfully open source file, many errors.
  • Uniflash is too old, can not see the newer system.

@karakarga
As you surely know, the BIOS file named 9FXAUD73.FDe, which has been designed by Gigabyte just for the v3.0 mainboard model, is an AMI UEFI and not an Award BIOS. So it is rather unlikely to get such BIOS modified or flashed by using an Award BIOS tool.
On the other hand it is not impossible to get your current non-UEFI Award BIOS bootable off an NVMe SSD by inserting a customized NVMe Option ROM into it. >Here< is the related thread.

No no, 9FXAUD73.FDe is for 990FXA-UD7 version 1.0 which is Award bios, and 9FXAUD73.FDe is for 990FXA-UD7 version 3.0 has AMI bios.

I think version 1.0 is not UEFI bios as you said and version 3.0 is UEFI. So I have the old non-UEFI one. Do I have to integrate NvmeOpRom.zip NvmeOpRom.zip at the given link?

Can I use UEFITool or anything else? How do I integrate NvmeOpRom to the bios? I am familiar with UEFI but not with legacy bios, sorry for my knowledge on this case.

Both statements are wrong.
The latest available BIOS for the Gigabyte 990FXA-UD7 version 1.0 mainboard is named 99FXAUD7.11d.
As you can see here, it is a non-UEFI Award BIOS (with the same size as the AMI UEFI one for version 3.0):

If you want to get full NVMe support in LEGACY mode (using the “Master Boot Record” partition scheme), you should insert the previously customized Option ROM module named NvmeOpRom.bin according to the linked thread. If you want to try that and have additional questions, please post them into the specific thread. This thread is only valid for the BIOS modding procedure, not for the customization of a certain BIOS module.
Good luck!

I completely agree with Fernando.

The 99FXAUD7.11d is an UEFI image that I seen with the help of UEFITool v2.6, if the image is not an UEFI image, UEFITool warns that the image is not an UEFI image. I can successfully inserted NvmExpressDxe_4.ffs without any issue.

Only problem I encounter now is to flash image inside the chip.

This is what I get, when I try to open the 99FXAUD7.11d by using the UEFITool v0.28.0:
99FXAUD7.11d with UEFITool

You obviously have mixed the completely different BIOSes for the v1.0 and v3.0 variants of the 990FXA-UD7 mainboards. It is no wonder, that you were able to insert an NVMe EFI module into the v3.0 AMI UEFI BIOS, but not able to get it flashed into your v1.0 mainboard.

I did it, interesting!

What did you???
Please compare the extensions of the BIOS file names!
Do you really read your own text before you press the “Reply” button?

1 Like

I was at my dizzy time, as you have understand I have mistakenly programmed version 3.0 bios to my 1.0 mainboard with the help of CH341A external programmer. :face_exhaling:

It works fine but the heat sensors indicate that the processor cores are at 128 degree Celsius board temperature is about 96 degree Celsius! 3.3 Volt reading is 3.7 Volts, 5 Volt reading is 7.23 Volts and finally 12 Volt reading is 14.76 Volts! Actually those are cosmetic, not actual readings of course.

Well, it nevertheless with the addition of NvmExpressDxe_4.ffs can now allows nvme drives to boot. All CPU microcode’s updated plus some onboard component’s updated with the help of UBU.

I am still testing, so far not bad, I will make stability tests later. I think, I will leave it like that… :thinking:



@karakarga
You probably know, that the report about your experiment (flashing an AMI UEFI BIOS, which has been designed for another mainboard model) has nothing to do with the topic of this thread.

Yes I know, I first asked about flashing parameters and nvme insertion for award bios but resulted differently. People did not respond me about award bios flashing parameters!

For those who are wandering around mainboard brands:

  • Gigabyte at 970FXA and 990FXA series, the firm did not pass truly at legacy and UEFI bios! I personally do not advice being a retired computer OEM seller at my own shop! They have issues about first PCI-ex slot working at x8 mode, but this problem is present on many Asus high end desktop and Workstation mainboards. The above bios shift result is a silly example for Gigabyte!

  • MSI did it well at building earlier versions with legacy and upgraded to UEFI without any issue. Beware cheap models they malfunction quite early a lot, like Asus!

  • Asus did it well all UEFI bios truly start selling 990FX like chipsets no jump from legacy to UEFI happened. Do not choose dual processor workstation and server mainboards, their bios is generic, like Huananzhi no Asus engineering, support ends early.

In conclusion, I can barely advice Asus and MSI in general today…

@karakarga
Thanks for the evaluation of different mainboard manufacturers, but why did you post it into this specific thread about “Award/Phoenix BIOS Modding”?
Nobody among the interested users will search for your information here.

Hi. I’m trying update AHCI ROM to 1.20E on the BIOS F8 of the GA-EP43-S3L board, unfortunately every possible attempt on several versions of cbrom fails because the PCI ROM is right before MEMINIT and probably replacing the ROM/removing it and inserting the new version damages it. Could someone please help me? I already added the microcodes under the Xeon 771 and changed the logo for the test.
2024-05-23_18h14_36
This is my BIOS: ep43s3l
BTW. I’m doing this because F9c BIOS is buggy (M.I.T. freezes when I try to change memory multipler for example)

@mjd79
Try following my MINIT tutorial that I posted above.

I calculated the Checksum-16 for the meminit module (31080 → 464D0 in BIOS file), and where should I put it next to fixbios?


This board has a physical second BIOS so I can do experiments :slight_smile: