[Guide] Enhanced BIOS Modding of Award BIOSes

little offtop , how can I extract agesa from AMI bios? Im use mmtool, and cant find it. Already extract all modules, but cant find agesa among them
(im find 770 bard with agesa 3.7.1.1 but bios AMI)

You probably can’t put AMI Agesa module into Award BIOS anyway, probably coded different, certainly would be different headers
Link me to AMI BIOS you want Agesa from and I will check and let you know

*Edit - Ahh! See above link by Vash, AMI Agesa explained there too Summary, as mentioned, you wont be taking anything from AMI to Award

this is from msi 770-C45

msi770.zip (690 KB)

See my edit above

Thanks Vash, did you follow his link in the Minit lurb, and read those other posts too? If not, check those out as well, it pretty much says what I’ve been saying all along about all these sensitive modules (and also notes, sometimes some may not be like here, but general they all are).

Hmm, Im open my BIOS_build.bin in hex editor and try to search “AGESA”. I have 5 results, two of them are 3.7.1.2 and refer to agesa and meminit module that Im update. But three another has version 3.7.1.0 and I cant understand which modules do they belong to. I am open all extracted modules of bios_build in hex editor and dont find “agesa 3.7.1.0” in any module. Im try to insert new holes and check again.

upd1. Cbrom dont allow simply add hole0 to the bios. Im release hole0 and search agesa in hex editor again, and results contain 3.7.1.0 links, does that means there’s agesa 3.7.1.0 links dont bound to hole0 module?

upd2. Stop, agesa 3710 links is in bios_blank.bin, and I am dont know what to do

upd3. eeeeh, okay. Original BIOS have some code with links to default 3710 agesa, this code is located between some modules and this code does not affected by the operations that we did when modifying BIOS with modfreakz-summoner scripts. As result new BIOS with new agesa and meminit have some code blocks with links to old agesa. Maybe this causing issues with memory. I have only one idea: take two bioses from 770 board with agesa 3710, and 785 board with agesa 3712, release all modules from them, and after that modify clean 770 bios in hex editor by replacing code from 785 bios… Sounds crazy .

@molex , probably some in the holes file, as you found. Holes can be edited (extract, release, or insert) with cbrom, for this BIOS I would use cbrom 195, and then once done, release something else (last module above NCPUCode) with Cbrom 155 and then reinsert, so checksums properly corrected.
Yes, on your upd3, as I mentioned, you usually cannot simply swap Agesa as other modules need edited, updated, and swapped too.

Did you look at all holes? there is 0-3 (So four total) Sorry, I can’t check right now, about to reboot and don’t have VMWare running right now, so no XP

@Lost_N_BIOS , Im release all that I can from BIOS, and in hex editor I still have agesa 3710 links. Ultimately, agesa update require much more operations than only modules update.

I think I will focus on bios update without agesa and meminit. I will update ahci, raid, realtek, q-flash with auto-batch scripts pack. And try to understand how to update microcodes. Only after that Im try to do something with agesa, but I’d rather to have programmer or another board (bcose im nob) before flashes my craft bios


To sum up all information about update agesa of my mobo.
Latest BIOS for my AM2+ GA-MA770-UD3 rev. 2.0 is FKe with AGESA 3.7.1.0 module. I found only one AM2+ gigabyte board with newest agesa 3.7.1.2, its GA-MA785GM-US2H rev. 3.3. Im extract agesa and meminit modules from 785 board and add them to the 770 board. As result 770 motherboard works but have troubles with memory identification and memory stability. Im checked my bios file in hex editor and found links to new agesa 3.7.1.2 and to old agesa 3.7.1.0, obviously that doesn’t have to be. I decided to release all modules from bios and try to find what module have links to old agesa, finally Im release all modules but links to old agesa remain in place. I have no experience to discuss about bios structure but I assume that some code blocks in bios are located between modules, and that code blocks dont update when we update our modules (agesa, meminit etc). As a result links to new and old agesa mixed in new bios.
I decided to do some experiments with hex editor and try to cut code blocks from 785 mb bios and past them into 770 mb bios. But I found another one thing. GA-MA785GM-US2H uses 785 NB (sc880 codename), and bios of 785 board include links to the CIM-SC 880 module that placed in hole0 region. Mb with 770 NB (codename RX780) works with another CIM module RD790. Eventually, we will not get anything good after past code from 785 bios to 770. We will get a mix of links to difference hole0 modules.
Conclusion: if we want to update AGESA we need BIOS from motherboard with similar NB chipset, BIOS that contain CIM-RD790 module.

Then I figured that gigabyte have exactly the same board GA-MA770T-UD3, but with AM3 socket and DDR3 memory support. Latest bios of 770t board have agesa 3.7.1.2 update, bios uses CIM-RD790 module. What if we replace code blocks of 770 BIOS (with links to old agesa) by blocks from bios of 770T board?

@molex
Have you checked if all the references of old agesa are in HT modules?
BTW, you should be crazy to attempt all these experiment without a programmer in hand

@vash_85 I’m not sure about anything, but maybe one agesa link placed in microcodes module, other in holes area. Now I stopping experiments, I updated AHCI, RAID, Realtek and Q-flash roms, all works fine (but I not tested raid yet). Now I try to update microcodes, first guide from microcode update forum dont work for me, I already prepared new bios with hex edited microcodes, but dont flash it yet.
Later I will try do something with agesa, but I prefer to have another backup motherboard, because I never work with programmer. Hope I will buy something new in next year and use old board for experiments.

Today I buy cheap China DDR2 4gb, we’ll see how it works with another 2gb modules on this board XD

Hi, I’m back here. Another question about BIOS mod. When I was setting up the system I realized that BIOS haven’t some parameters. I read an article about my motherboard (exact same motherboard) and saw in this article options like advanced clock calibration, hyper transport link voltage. But I haven’t that options in BIOS. I’m downloaded some of the earliest BIOS for my mobo (version FB), then I’m extracted EN_CODE.BIN from old FB BIOS and from latest BIOS and compared them. Old BIOS have all options, new not!
Question: Can I integrate old EN_CODE.BIN to the new BIOS? Will it help bring back more BIOS options?

Answer: I’m try new BIOS with old EN_CODE.
Result: Board works, but in BIOS all options was broken.

@molex - yes, Holes will contain actual agesa related modules, and probably other modules that aren’t agesa will reference it by name or module etc.
As I’ve mentioned all along, I am not a pro at updating this, and it’s quite complicated on many boards, especially older ones where it’s not a single module

If you released all modules, and “Anything” is in the BIOS, then you haven’t released all modules I mean, if you really release everything, nothing is there, so can’t be anything saying Agesa or anything else other than FF or 00
All the editing and testing you’ve done here, is much more than I know or have ever done about Agesa, so I really can’t help anymore than what I’ve mentioned.

If you need microcode edit, additional, or just updates, that I can do, let me know and I can help/do that if needed

You need flash programmer + SOIC8 test clip w/ cable! This is cheap, less than $6 shipped for both items, let me know if you need linked examples
I too cannot believe you test any of this without programmer, best you order one now as brick is coming shortly the more you keep playing with BIOS like that

To your last post, just use older BIOS Do you see those options in Phoenix BIOS Editor, if yes, you may be able to set them visible, but I would not try that without programmer in hand

@Lost_N_BIOS Old BIOS dont support Phenom II x6 CPU that I have (old AGESA). Very strange that gigabyte engineers remove this functions from motherboard…
What version of Phoenix BIOS Editor can I use? I’m downloaded 2.2.13 and this version cant open bios file. And I’m use award bios editor v1re25, its open bios file with some errors.

Left new BIOS without sb/ht voltage, right old BIOS with sb/ht voltage :frowning:

SBHT.JPG

Hello. Guys, I completely forgot something. I extracted the Award from the BIOS through the HxD editor module, but it is compressed. How to unpack it and how to pack another module in order to place it in the Award BIOS.



The GV3 module is compressed (i.e. -lh5- in the header).
Therefore, it cannot be executed immediately and will be unpacked at the offset specified in the bytes 0Fh - 10h of the header, i.e. it is relocatable.

Аt the same time that the name and version of AGESA are found in MEMinit.dll, which is not compressed and, is executed immediately at absolute addresses (-lh0- in the header).
Then changing to a major version, like 3.6 to 3.7, is most likely not possible.
Minor version 3.7.1.0 changes to 3.7.1.2 without problems.
AGESA ORICHi which is used to initialize Bulldozer+ is in the hole - that’s another question.

@molex - sorry for the late reply. I don’t know how to do what you asked, sorry

@Dagal - That’s not how you work with legacy award BIOS, you use tools, then maybe a hex editor if you know what you’re doing and need to modify some extracted module (extracted by tools, such as cbrom, PBE, ABE etc)

@shevalier - Yes, it’s LZMA - In gigabyte BIOS, almost 99% of the time you cannot move ANY sensitive module, or BIOS is bricked. How the module is executed does not matter, it’s initial location does.
Of course, some Gigabyte BIOS it’s OK to move or change numbered location of such modules, but it’s rare and you can only find out by brick testing a BIOS with such moves made (be ready for recovery in advance!)


RE: BIOS modding success/failure overview (13)
(its me, but i forgot password)

PCI rom modules are lower then untouchable (i.e. HTinit, MEMinit & HT32Gate), Logo - higher.
PCI roms removed, combined into one and replaced by 0-fiiled Dummy.bin (like a Andyp award sl1c tool).
Modules are reordered, but bios fully functional.

From my experience in Giga-bios, it is necessary not to break the sequence somewhere in the area of the Group Rom, but to transfer them in one piece in a hex editor lower or higher.

@Lost_N_BIOS
Thank you friend. I already understood everything that I meant SummoneR.
The only thing I want to ask you. Why for bios award 1024mb. solder chip 8000mb. It’s much more.

@shevalier - Sounds like correct edit method outlined there, to keep in mind and not touch/move sensitive modules.
Some BIOS you can do certain things in that may vary from the norm, but it’s not good practice to get into such, especially while showing or talking about to others, because then someone will read later and think it’s OK for their random BIOS and end up bricking the BIOS.

@Dagal - Some BIOS may have small BIOS body itself, but then large ME FW or empty space etc. To work on such BIOS, cut only the BIOS out of the 8MB dump, edit, then put back into same location once you are done, then program back



I think it’s more safety, than add unknown executable code in Bios.
Script Dummy



Andyp method ( in my bios too)