Help in updating AHCI ROM in Gigabyte MA78LM-S2H BIOS?

I bought a couple new SATA 6.0gbps hard drives, but they’re only running at SATA 1.5gbps on this Gigabyte MA78LM-S2H BIOS (which supports SATA 3.0gps). I thought I’d try updating the AMD AHCI ROM to the latest version to see if that would help (and maybe the onboard Realtek 8111D ROM too), but it’s a little over my head. Fernando…would you be able to help me with this?

BIOS file is here:
http://download.gigabyte.us/FileList/BIO…8lm-s2h_f11.exe

Thank you!

@ davidh44:
Welcome at Win-RAID Forum!

Since I generally do not modify any BIOS upon personal request (otherways I would not have the needed time to manage and support this Forum), I can only help you this way:
1. Your mainboard BIOS is an Award one, which can be opened and modified with the tool CBROM32_198.
2. Since the AMD AHCI ROM module is situated before/above the sensitive modules MEMINIT.BIN, HT.DLL and HT32GATE.BIN, you should not update the AMD AHCI ROM module named ahci.BIN by using the tool CBROM. Otherwise you will run into troubles while flashing the modded BIOS into your mainboard BIOS chip.
Solution:
Please read carefully, what our Forum member SummoneR has written within the first posts of >this< thread. Within the post #3 (>LINK<) he has explaned how to update the AMD AHCI ROM module without getting an error message while flashing the modded BIOS.
I hope for your understanding, that I will not do the BIOS modding for you.

Good luck!
Fernando

Thanks for the tips. Yes, I understand you don’t have time to modify BIOS upon personal request.

What SummoneR says in post #3 is, unfortunately, above my knowledge level.

Maybe someone else will do the BIOS modification for you.

Yes, if anyone is able to help me with this, I would appreciate it a lot!

@davidh44

Since SummoneR’s guide is excellent and well articulated, I decided to give this a go. It is time consuming, even though the procedures are not too difficult, so errors may very well slip. Be sure to read that part of the guide concerning restoring the backup BIOS, just in case the update fails.

Here are the updates:

Microcode (CPUID - Patch - Date)
0000 - 01000002 - 10/27/2006
0414 - 00000062 - 27/01/2006
040A - 00000068 - 20/09/2006
041B - 0000006D - 20/09/2006
0680 - 00000083 - 29/09/2006
1000 - 01000020 - 26/03/2007
1022 - 01000095 - 04/11/2008 updated to 010000C9 - 31/03/2010
1020 - 01000096 - 05/11/2008 updated to 010000CA - 31/03/2010
1040 - 01000085 - 01/05/2008
1041 - 01000086 - 01/05/2008 updated to 010000C6 - 11/03/2010
1043 - 010000B6 - 31/07/2009 updated to 010000C8 - 11/03/2010
1062 - 010000B7 - 31/07/2009 updated to 010000C7 - 11/03/2010
10A0 - 010000BF - 17/02/2010 updated to 010000DC - 24/10/2011

AMD RAID OROM + MISC.SIG (ID 4392) = 3.0.1540.59 updated to 3.2.1540.15
AMD AHCI OROM (ID 4391) = chopped 3.0.1540.59 RAID updated to proper AHCI 3.2.1.0
Realtek PXE = 2.31 RPL updated to 2.59 RPL


I can also look into updating the AGESA code from 3.7.0.0 to 3.7.1.2 and the VBIOS, if you need them too.

MA78LS2H-f11-mod.rar (541 KB)

lordkag - Wow, thank you so much! I’m away from home right now, but I can’t wait to get back and try your modded BIOS. There’s no way I could’ve done that by myself. Thanks for taking the time to do so!!

Hi Lordkag,

I loaded your firmware and it installed with no checksum error and works great! Thanks again!! If you are able to update the AGESA code and VBIOS as well, that would be awesome!

By the way, when you do firmware updates, what is the difference between keeping or discarding DMI data?

EDIT by Fernando: Fully quoted text deleted (to save space and to keep the performance of the Forum).

@davidh44

The DMI data stores some information specific to your mainboard, including some unique IDs and possible serials needed for software authentication. I suggest to leave it as default in the flasher.

I’ve looked into updating Agesa and it is done, but requires some testing. The version is coded in 5 different places besides the Agesa rom and you have to test which of the 3 test images is fully updated. I will postpone the uploading until you can test and reply in a reasonable amount of time. While this forum is built upon the principle of sharing knowledge and help, it doesn’t mean that we enjoy giving hours of our time just to see that we have to wait days and weeks before a reply. If you wonder what this Agesa code does, the answer is that it provides CPU support; this 3.7.1.2 version brings support to newest 6 cores, but also could fix some bugs for older ones.

I will start to work on VBIOS only after the above update is done and you have proven that you are a reliable tester. It concerns updating the Video BIOS of the onboard Radeon 3000 and it is a little delicate, since your board supports only DVI or HDMI at a given time, thus having 2 VBIOSes. It can be done, since I already found some new versions, but it requires some patching besides the usual tinkering with keeping important offsets, so I will need to know that my time is not wasted. You have to decide if you need it and you have to prove that the first delay was just an accident.

Thanks for the info on DMI and your time in modding the BIOS for me lordkag! How do I test it?

For the VBIOS, what benefits come from updating it?

@davidh44

Start by checking your current AGESA version; look in BIOS around CPU configuration or use a software like AIDA64 (example image). Maybe others can show it too, like HWiNFO, but I haven’t tested yet. Then use some benchmarking tools like SuperPI to have a control result, but you can also use some overclocking or stressing tests to have a clear picture of the current system. Don’t expect any performance gain by updating to 3.7.1.2, but you definitely want to avoid a performance drop.

Then use the files attached here. Update with agesa1.rom and run the tests you did at first step. This one updates only the AGESACPU module, but there are still other 5 places where the version 3.7.0.0 is hardcoded. If you do get the version updated, you can keep this BIOS. If not, read ahead.

Next test is with agesa2ins.rom, which also has the version patched in meminit module and reinserted. Check again version and stability.

If still not updated, use agesa3ins+hex.rom, which also patches the last 2 locations outside modules. I’m not sure if all checksums are in place with this file, so use with caution.

Use the files at your own risk! I am NOT sure if the AGESACPU is the only module containing related AGESA code and I can NOT guarantee a safe update! We can talk about VBIOS once this is done.

MA78LS2H-f11-mod2.rar (1.59 MB)

Hi Lordkag,

I can’t seem to find a place where I can confirm the AGESA version. It’s not on the POST screen, not within the BIOS (doesn’t have a CPU information page either like some other BIOSes do), didn’t see it in HWiNFO nor AIDA64 (http://oi59.tinypic.com/2dqm4x1.jpg). I may be out of luck in being able to confirm it.

You can also try with PC-Wizard from CPUID, which claims to show the version. Other option would be SIV, but without knowing if it really supports. Other than that, I can only think that Award is not supported, only AMI.

If the version can’t be confirmed, you may only test the .rom files for stability and choose the last one that works. Please report which files you tested and if they worked; you have the changes explained in the previous message and I’m interested to know if the patching is done right.

No luck with PC-Wizard either. I guess it just doesn’t display with either Gigabyte or Award bios. Would the microcode/patch code be a clue if it’s changed or not? I noticed the microcode/patch code changed when I updated with your first modded bios (the one with agesa 3.7.0.0 still).

No, the microcode is already updated in the previous image and it is located in NCPUCODE.bin, so not related with this update. The microcodes are only the small part in supporting CPUs, the rest comes from AGESA. You can just test the images for stability and keep the last one that works. Only agesa1.rom has the real change, updating AgesaCPU.rom from 3.7.0.0 to 3.7.1.2. The other 2 were meant only as cosmetic updates for agesa1.rom, by updating the version in meminit.bin and other 2 places, in case your BIOS still reported the old version.

I can only assume that the AGESA code is restrained to that only module, but without (you) testing, how can I step further? It is your board and your risk after all, but I already provided all the steps the best way I could: explanation of module and changes, tests for stability, images for flashing. I don’t know if I can add more without feeling like I’m chasing my tail.

I do apologize if my reply sounds rude or patronizing, but this should have been the easy part: test and see if it works or not. Any failure should have been easily spotted by boot problems or BSOD.

The VBIOS is a beast in its own, since your BIOS has 2 of them, for DVI and HDMI, without being able to use them at the same time. So it would have required tests to see if it can be updated to different versions, if it works when patching a newer HDMI VBIOS for DVI (only 3 important bytes changed), if it works with your board etc… This should have been the fun part.

I can only do half of the job (and in my non-humble opinion, a much harder one), the rest has to come from you - IF you really want the updates and IF you really understand the risks.




You can also try Sisoftware Sandra, i can recall having many info for motherboard and individual hardware.