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.