Help extracting AGESA OrochiPI v1.5.0.6 from (Dell Server BIOS M915 Version 3.2.2)

Hello,

I have the new microcode for Vishera CPU, patched my Asus bios and its working fine.
CPUID 0x00600F20; Patch 0x06000832; Errata #691, #699, #704, #708, #709, #734, #740, #778;
(microcode patch resolve a potential system stability issue affecting AMD Opteron 6300 series and AMD FX series processors running VMware)


Next step is updating the AGESA module, (final Asus version was v1.5.0.2 and I manually updated it, so current Im on v1.5.0.5 and its working)
I have the .hdr out of .exe (see attachment)
Link to the .exe

can some one help or give me an idea how to extract the AGESA v1.5.0.6 module from this bios file? Or would be this module not compatible with AMI Aptio 4??


my test machine is (Asus SABERTOOTH 990FX R2.0 and AMD FX-8350)

PEM915-030202C.rar (1.42 MB)

Microcode patch 6000832.rar (3.68 KB)

Hello,

for me it’s also very interesting how to update AGESA microcode (ASRock 990FX Extreme6 with actual v1.2.9.0) to v1.5.0.6 (AMI Aptio 4 compatible UEFI-BIOS).
This moment I will try to flash my BIOS v1.20 with AGESA 1.5.0.5 µCode Patch 6000822 …

regards

Edit:
BIOS Flash has functioned, but shows still the old µCode Patch 6000817 (AGESA 1.2.9.0).
So I went back to my old BIOS Version.

@ Modfreakz:
Since I somehow haven’t replied to your interesting report written in May this year (>LINK<), I want to thank you subsequently for that contribution and welcome you at Win-RAID Forum!

@ Modfreakz and @ MiesMosel:
Unfortunately I don’t have any own experience with the extraction or update of the AGSA microcode. That is why I cannot help you myself, but I hope, that you will get some support by an expert.

Regards
Dieter (alias Fernando)

Thank you Dieter for your reply!
It’s a pity, that there’s no help to update the agesa/µcodes at the moment.

@ Modfreakz
Do you still have actual AMD AGESA & Micro Codes for FX-CPU (OrochiPI) like v1.5.0.5?
Are they only for Gigabyte Mainboards or maybe also for ASRock?

These downloads here seems to be not exist anymore:



Best regards, MiMo

I have wrote a simple prog to extract the all AMD micro codes from “every” bios file and I have a small collection now.

It can extract only at the moment:
AMD MicroCode [Family 10h-14h]
AMD MicroCode [Family 15h]

The progy is not finished, but I can share with you. I can setup small svn server so maybe someone would like to code with me.





To update the micro codes for the “UEFI BIOS AMI Aptio 4” I simple use the HexEditor (Winhex). I will program this feature later into my tool.
After this you have to recalc the checksum, using UEFITool.exe or UBU.bat


To extract/update the AGESA OrochiPI module I use UEFITool.exe. For the update use the function (Replace and Rebuild)

Look for the GUID: 6950AFFF-6EE3-11DD-AD8B-0800200C9A66
or AmdAgesaDxeDriver


Sorry I dont know about ASRock or Gigabyte mainboards, but I would say its possible!! Because the spare Agesa v1.5.0.5 module comes from MSI board MSI 990FXA-GD65
|addpics|85-1-21a4.png|/addpics|

CPU MicroCode Patches.rar (98.4 KB)

BIOS Extractor Tool.rar (1.69 MB)

Agesa_OrochiPI_v1.5.0.5.rar (49.7 KB)

If you like I can try to make mod Bios for you.

I thank you too for the great forum!

Well, I will try to write small howto and release my *.bat files I used to modify this GIGABYTE GA-MA790FXT-UD5P Mainboard.

I have successfully update the AMD AGESA ROM module with MEMINIT.BIN and also found out that only the HT.DLL and HT32GATE.BIN are sensetive to their location.
So its possible to move everything around except HT.DLL and HT32GATE.BIN
Looks like the jumps to offsets are also hardcoded somewhere in the “System Bios” or the additional rom files (I guess awardext.rom or awardeyt.rom), we need to patch them manually.

EDIT by Fernando: Unneeded parts of the quoted posts removed (to save space)

I don’t know how far you want to go with your program, but since I also have a script/tool named… Extractor (so original that I should register this name and sue everyone else), I believe I can help with some fixes. Here are some screens and observations:

AMI.png



AWARD.png



mcupdate_AuthenticAMD.png



- Some microcodes are missing due to size or CPUID handling. AMD implemented a joke of a header, leaving OEMs to add any amount of padding. To handle this “feature”, you either always use the original AMD size, or you check the padding for some predefined sizes. I went for the second case, as I wanted to have a clear picture on every BIOS file I’m working, without spending extra time with manually checking the padding. The issue is restricted to 0Fh-14h families, where I have found the same microcode to be padded to 0x400, 0x800, even 0x1000 in mc_update dll. Check the official AMD release for getting the sizes, also compare with multiple sources for the missing ones. I already have all the known sizes in my Extractor, but why should I spoil all the fun? The latter families are not so much affected, as they are part of AmdProcessorInitPeim and also have an extra hook ($UCODEVS, $UCODE2K, $UCODE4k) for size. Only seen the first one used (Variable Size), but I have read about the other ones (2K, 4K) in some public sources, possible Coreboot.
- there are some old microcodes that don’t have the middle 0F byte in the CPUID. They should have the CPUID 5xx, 6xx, Fxx - but I haven’t yet researched the distinction, neither do I know where to find them.
- the program is not DPI-aware, check green boxes.
- some unknown fields. It took me a while to figure the message “File already exist!”. Having no control over this function is confusing to say the least. If the extraction or the location can’t be changed, at least make the folder next to main exe or have a clear message on what happened.

For the other things you wrote:
- you can indeed replace the microcodes in Aptio 4 or Aptio V. I assume you already tested and I also received successful reports.
- you can replace AGESA in AWARD, as it is inserted as a single module.
- you can not replace AGESA in AMI, no matter if it is AMIBIOS, Aptio4 or Aptio5. It is compiled with the rest of the source code, there is nothing you can do to replace it. In AMIBIOS it is part of System BIOS (1B module), but also in E1/E2/E3 modules. In Aptio it is spread across many files, but the important code is in AgesaDxeDriver, FchDxe, FchSmmInit and AmdProcessorInitPeim. You can try to replace those modules and you might even get lucky to have a bootable board, but what you have obtained is a franken-board and not a fully operational one. Would you replace parts from your car with others from a totally different car? Not to mention that besides the initialization of important hardware components, those 4 ffs files also contain SMU and PSP firmware, another “wonderful” place to experiment with different code parts.
- I can give you at least 5 different AGESA OrochiPI 1.5.0.5 files that will light like a Christmas tree in a comparison tool, but feel free to test this on your own.
- I see that you mention replacing MEMINIT in AWARD. Why?? It stands for memory initialization, the core of a bootable machine. The only time I would think of doing that is when you know a certain board has some fixes/support for a certain memory kit AND you have that kit AND you desperately need that fix/support. And even then I wouldn’t recommend anyone doing that. Are you sure about MEMINIT not being a sensitive module? Read this message and read the reply two posts bellow. I assume that HT comes from HyperTransport, so MEMINIT seems more likely to have caused that issue. And since the three modules are often added one after the other, I don’t know how you could touch MEMINIT without disturbing the others.

Attached Agesa_OrochiPI_v1.5.0.6 from that Dell file. Obviously, you won’t be able to use it. I hope you won’t try.

Agesa_OrochiPI_v1.5.0.6.rar (177 KB)



Hi, thanks for your great post.

As I mentioned before, this progy is simple, buggy and not finished. "File already exist!" means that the micro code is already extracted to the folder "C:\CPU MicroCode Patches". This folder is hard coded atm.

I know about missing microcodes but have no concept to extract them. I would appreciate any help.



Yes and yes, this working like a charm!



I have found three different AGESA OrochiPI v1.5.0.5 files (AgesaDxeDriver) and only one is working for my mainboard after the replacement. Replacing AmdProcessorInitPeim gives me no boot all the time. I think you are right about "compiled with the rest of the source code" or we need proper donor board.



Because for my mod bios F8X on GIGABYTE GA-MA790FXT-UD5P mainboard I couldn’t update the AGESA module without updating the MEMINIT.
See the order of the files/modules in that Bios.

|addpics|85-2-cb95.png|/addpics|

@ MiesMosel

Would you like to test this bios for you board?


ASRock 990FX Extreme6 Mod v1.22

- updated AMD AGESA OrochPI [v1.2.9.0 -> v1.5.0.5] (no guaranty on this)
- updated AMD AHCI ROM [v3.0.5 -> v3.3.0.0]
- updated AMD RAID ROM 4392 [v3.2.1540.6 -> v3.3.1540.19]
- updated AMD RAID ROM 4393 [v3.3.1540.11 -> v3.3.1540.19]
- updated LAN ROM [v2.1.1.4(PXE) -> v2.1.1.5(PXE)]
- Microcode update
Date:2010/02/17 CPUID:00100FA0 PatchID:010000BF -> Updated Date:2011/10/24 CPUID:00100FA0 PatchID:010000DC
Date:2010/03/11 CPUID:00100F41 PatchID:010000C6 -> Updated Date:2011/10/24 CPUID:00100F41 PatchID:010000DB
Date:2012/01/04 CPUID:00600F12 PatchID:01000626 -> Updated Date:2013/03/06 CPUID:00600F12 PatchID:0600063D
Date:2012/05/24 CPUID:00600F20 PatchID:06000817 -> Updated Date:2014/07/23 CPUID:00600F20 PatchID:06000832

ASRock_990FX_Ex6_Mod_1.22.rar (3.2 MB)

hi! @Modfreakz !

My environment is using 990FXExtreme4.
If you than want a lot of verification, if it is possible to prepare a MODbios of Ex4,
I also will be able to verify the normality of the behavior of your program. :D

In fact I also am one want the ability to update the AGESA.lol



I have 2 bios files for you, please try the v2.77 first.

ASRock 990FX Extreme4 Mod v2.77
- updated AMD AHCI ROM [v3.0.5 -> v3.3.0.0]
- updated AMD RAID ROM 4392 [v3.2.1540.6 -> v3.3.1540.19]
- updated AMD RAID ROM 4393 [v3.3.1540.11 -> v3.3.1540.19]
- updated Marvell ROM 88SE9120 [v1.0.0.1027 -> v1.0.0.1038]
- updated Marvell ROM 88SE91A0 [v1.0.0.1027 -> v1.0.0.1038]
- updated Broadcom Boot Agent [v14.6.9 -> v16.8.0]
- updated EFI Broadcom UNDI [v15.2.2 -> v16.8.5]
- Microcode update
Date:2010/02/17 CPUID:00100FA0 PatchID:010000BF -> Updated Date:2011/10/24 CPUID:00100FA0 PatchID:010000DC
Date:2010/03/11 CPUID:00100F41 PatchID:010000C6 -> Updated Date:2011/10/24 CPUID:00100F41 PatchID:010000DB
Date:2012/01/04 CPUID:00600F12 PatchID:01000626 -> Updated Date:2013/03/06 CPUID:00600F12 PatchID:0600063D
Date:2012/05/24 CPUID:00600F20 PatchID:06000817 -> Updated Date:2014/07/23 CPUID:00600F20 PatchID:06000832


ASRock 990FX Extreme4 Mod v2.78
- updated AMD AGESA OrochPI [v1.2.9.0 -> v1.5.0.5] (no guaranty on this)

ASRock_990FX_Ex4_Mod_2.77.rar (2.74 MB)

ASRock_990FX_Ex4_Mod_2.78.rar (2.74 MB)

@Modfreakz
thanks you.
As soon as the trial, we will report again!

with this you can very simply check your microcode version the windows is running atm.

[HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0]

“Previous Update Revision” - default original microcode version from BIOS

|addpics|85-3-194e.png|/addpics|

hi.@Modfreakz

The BIOS that had you made, I tried two different trial.
Those who 2.77, correctly microcode has been recognized!

2.78 Are You a but, but update itself was okay, it was ready to in the BIOS SETUP, capacity and type of memory does not appear without being recognized.

mod_2.77.jpg

mod_2.78.jpg



sorry don’t understand you, what exact is the problem with v2.78

Hi im new, i have the motherboard 990fxa-ud3 v4.0 from gigabyte. The latest bios update is 2015/05/28 , Update CPU AGESA code, but the microcode version is 06000822.

I need a utility to flash the new microcode 06000832, somebody can help me?

Also i want to know if it’s possible to disable NRAC blocking (x87 instruction) from the motherboard bios, like the bulldozer conditioner patch from the Stilt.

I DID IT, i downloaded 832 microcode and the latest version of my bios with 822, i used winhex , searched for the string comparing to 822 microcode, and replaced all the microcode. Then used the UBU in order to update all the other modules, then saved the new bios, updated.


Thanks to all. From Argentina.-|addpics|cv-1-c965.png|/addpics|

hi.@Modfreakz

2.78 This is the finding of.

* Microcode has been correctly recognized.

* Exchanged AGESADxeDriver has not been able to get the memory information.

* As of contents # 7 @ lordkag have pointed out, only the exchange of AGESADxeDriver alone, I believe that the problem comes into association with other files.

These problems, by the OEM of the BIOS, I believe because that specifies the data address that references or GUID associated with the other.

In the past I, when it was attempted to exchange of AGESADxeDriver, because was the same result as this time.

I, for even surgery to know how these files are any way related? It does not have even material, chose to become with your subject.

can you fix motherbord ?

@ powerrush:
Welcome at Win-RAID Forum and your contribution!

It is fine, that you were able to solve your problem yourself.
Greetings from Germany to Argentina
Dieter (alias Fernando)


@ 迅维网小白白:
Welcome at Win-RAID Forum!
I have deleted your account because of the chinese letters. This is an english language and not a chinese language Forum.
Please re-register by using a nickname with latin and not chinese letters.
Regards
Dieter (alias Fernando)