(03-31-2019, 04:22 AM)fre4kyc0de Wrote: This might explain, why it fails to boot.
But if I hex-edit the microcode into the original ROM both "ASUS EZ-Flash" and AFUDOS report the ROM as "damaged".
Is there anything MMTool changes when replacing the module (e.g. CRC32)? And if yes, is it stored before or after the module?
As MMTool shows two different sizes ("source size" and "size in rom" (== "source size" + 0x14)) I'll try to move the "new" E2-module + it's header/footer from the broken modded BIOS to 0xA0000 in a new copy and try that one.
[edit]
There is a kind of header in front of the inserted module:
original (0x9FFEC - 0x9FFFF): C0 A4 04 00 16 B4 8D AA F4 FF 04 00 FF FF E2 90 00 00 00 00
patched (0x8 - 0x1B): C0 A4 04 00 51 CD 02 D3 14 B5 13 00 FF FF E2 80 00 00 00 00
The first 4 bytes represent the size of the module ("source size" = 0x4A4C0), but I don't know / can't guess the meaning of the rest.
[/edit]
[edit2]
I copied around byte by byte and after adjusting all of the "header" bytes to match the ones from the broken MMTool-Mod the ROM flashed and booted fine.
According to "RW-Everything" the injected Microcode has been loaded and is working.
The ROM hasn't been fully tested, but is attached now.
[/edit2]
Your method and think the same with me.
But i stop at 16 B4 8D AA and 51 CD 02 D3 ,it should a checksum code.
You paste C0 A4 04 00 51 CD 02 D3 14 B5 13 00 FF FF E2 80 00 00 00 00 to replace C0 A4 04 00 16 B4 8D AA F4 FF 04 00 FF FF E2 90 00 00 00 00 and flash right by ez flash??
==========edit
Ok,i uderstood your mod ,but now i still can't realize the checksum code how to calculate.
Or it's address of next module ,but after check your modification ,i think checksum has large chance.
I guess we can't change sequence of the microcode module , if use mmtool to replace it ,the address change to 01ch ,this address original location is a pci option rom.
Another thing ,bios run post start with rom's bottom ,not head.
As long as the boot block doesn't damage ,you can recover it.