[Guide] How to make Z370 chipset MBs compatible with 128GB RAM

1.Extract SiInitPreMem,GUID:A8499E65-A6F6-48B0-96DB-45C266030D83.
2.Search “C786…000000…00”,"…" is any HEX value.
3.The first place of “…” is not important,the second place of “…” will show “8000” or “0001” , “8000” means maximum 64GB , and “0001” means maximum 128GB.
4.Replace “800000” with “000100” .
5.Make sure the Chipset->System Agent (SA) Configuration->Above 4GB MMIO BIOS assignment is set to Disabled. Some motherboard do not need this adjustment.
6.Set HAP bit of Intel ME in Flash Descriptor.
7.After all, you can use 128GB on it.

I can see the same hex pattern in Z170/Z270 BIOS , but I don’t know whether SKL/KBL can support 128GB or not.
Most MSI Z370 motherboard already have “000100” in their latest BIOS , so they should be ready for 128GB RAM.
Some Z170/Z270/Z370 with patched BIOS and 128G RAM will face PCIE RESOURCES ERROR every boot.But in system ,all 128GB can be accessed.

Update: Test with ASUS/Gigabyte Z370 , G4400/i3-8100/i5-9400 , must set HAP bit of ME in Flash Descriptor , or the 128G won’t work.
G4400 + ASUS Z370-P Ⅱ + 32GB *4 works perfectly.
ASUS Z170-A works.


Edit by Fernando: Thread title customized

1 Like

awesome post, thank you dsanke. I have been searching everywhere to see any indication that Z370 might work with 128GB (which it absolutely should do!) … and you have done exactly that. I use an Asrock Z370 though, so not sure if the BIOS is set up for it. Hopefully it is before paying so much for the (excellent I’m sure) Corsair 32GB RAM units.


What program are you using to extract?


My Z370 can recognize 32GB DDR4 RAM.

My guess is SkyLake and Kaby Lake cannot support 128GB RAM. I think starting with Coffee Lake did CPUs add 128GB memory support as shown on the i5-8400.


The Z370 can support 32GB DDR4 RAM. But when mixing 32GB with 16GB or other capacity RAM the BIOS will see over 64GB but the OS will not acknowledge anything more than 64GB. I will have to spend another $300+ or $600 to know for certain.

My theory is you must go ALL-IN like in Poker. You can’t use anything but 32GB DDR4 memory sticks all of the same brand/type in all the slots or it won’t work.

I believe even if you went with 96GB DDR4 using 3 sticks it will not work and show 64GB in the OS. So be prepared to spend $600+ plus tax to find out and buy 4 of these memory modules.

I was tempted to go all out but I’m kind of thinking of waiting till DDR5 so I can hit 256GB MAX tests and also see what happens when breaching 128GB and 196GB memory limits for XP and W7.

Use UEFITool , and the TE Image of PEI Modules usually do not compressed.
So when you find the right hex pattern , you can search and replace via HxD , just open BIOS file directly.
I tried do not correct module checksum , nothing happen , it still boots without issues.

Looking into the BIOS isn’t my expertise.

I tried using UEFITool v0.25.1 and couldn’t do much.

Here are the links to the actual BIOS download files from the AsRock site.


You can take a look at both versions 7.10 and 7.50 and let me know if you see any result if it supports 128GB or not. I only have 7.10 installed.

you said exactly what I wanted to do. I was going to buy 2x32gb corsair just to test with 96gb, but sounds like it doesn’t seem to work as you expect. Thank you for mentioning this.

I am considering then buying the full 4x32gb, but need a bit of time to gather the money to do that. Hopefully within the next two months … I will let you know here if I do that and what happens!


btw, it might not work as you expect because you mentioned trying to use 3x32gb? This doesn’t work well because it will no longer be dual channel. Perhaps if you try 2x32gb in one channel and 2x16gb in the other channel it would then work for the full 96gb?


No I attempted this already before I came to the conclusion:

32GB x 2 in Dual Channel
16GB x 2 in Dual Channel

96GB shows in BIOS but in OS XP-32Bit/64-Bit, Windows 7 64-Bit none would recognize more than 64GB in the OS. My theory is you must buy (4) 32GB DDR4 of all the same type don’t mix brand or speed either just to be certain.

And I do not have (3) 32GB to test pure 96GB in 3 slots.

It’s either one of two things that the BIOS really is seeing the 96GB but the mismatch of 2400 MHz with 2666 MHz causing an issue or different density RAM causing an issue. But doesn’t the memory get synced to the lowest common speed denominator? I even forced all to run at 2400 MHz which didn’t change anything. Now I didn’t update my BIOS to the latest since I can’t reverse and downgrade yet and my MB has a soldered BIOS which I hate and not ready to risk upgrading if it messes up some legacy support feature and cannot reverse it back.

But if the BIOS sees 96GB then it should see it in the OS which is why the only way to know for certain is to buy all (4) of the same type of Brand/Model/MHz speed for all the modules to make another conclusion. If it sees more than 64GB inside the OS after that then I know. If it doesn’t the only other thing I can try it a BIOS upgrade to the latest.

It will cost roughly $600 plus tax to attempt this for a new user because 16GB DDR4 cannot mix with it is my guess and I also tried 16GB and 4GB and (2) 32GB to see what happens and still had the same result. If the (2) 32GB memory drops to $150 each I might get (2) to try and see if mixing different speeds 32GB will work. If it fails I will either give up or make another expensive purchase of (2) more 32GB and try all 128GB simultaneously all matching. But a very expensive experiment!

Even 32GB x2 + 4GB or 2GB memory module still shows 64GB in OS but BIOS will see the exact total value which is why I was a bit upset that I couldn’t even test 96GB.

But DDR5 is coming soon that it might be worth waiting for DDR5 and buying 64GB DDR5 memory instead to get the same result if you can wait a year either Intel or AMD will likely release it in the next chipset. For most 64GB will be plenty but I’m itching for more. And DDR5 should be twice the speed and double the capacity per memory stick making it quite a technological leap forward.

256GB would really be a huge boost especially for multiple VMs for consumer motherboards. It might make running XP Pro 64-Bit possible to run Windows 7 64-Bit inside it?

- Based on P7.50
- Update ME FW to and set it disabled.
- Update iGPU vBIOS and GOP to v1059 and v9.0.1080.
- Insert All LGA1151 microcodes.
- Patch 128GB RAM.
- Patch DSDT and SSDT for 16 threads.

See if this one works.


I might do a 32GB pop in test to see if it detects it at all without modding.

I downloaded your P7.50 BIOS mod,

But if you can repeat the same for the P7.10 that is the one that I used for XP->Windows 10 Compatibility Testing.

Also what software can burn this ROM directly to the BIOS chip while still in the MB BIOS socket while in DOS?

Now I’m curious since you added Coffee Lake microcodes and I do have a i5-8400 but from what Lost_N_Bios has told me it still requires a CPU Pin modding.

Any ideas if this can be avoided if the CPU Core Voltage and Clock speeds are lowered for 800 MHz operation to reduce wattage for testing?

I’m not quite read to sacrifice that chip. But does going the other way and adding older gen SkyLake and Kaby Lake microcodes allow these CPUs to work on the newer Coffee Lake Z370 socket without CPU pin modding?

So were both the P7.10 and P7.50 BIOS versions missing 128GB Memory Capacity support?

Yes , search "C786DF24000000800000" and replace with "C786DF24000000000100".

Just use F6 Instant Flash.


No, you must do this.
[quote=XPLives|p89351]I’m not quite read to sacrifice that chip. But does going the other way and adding older gen SkyLake and Kaby Lake microcodes allow these CPUs to work on the newer Coffee Lake Z370 socket without CPU pin modding?/quote]
Z370 can run Skylake/Kaby Lake , most do not need pinwork , but some still need.

I did some more tests.

I got the 96.0GB recognized in Vista Ultimate 64-Bit SP2 on my older AMD AM4 MB using a Bristol Ridge Dual Core.

Since this CPU is extremely old compared to the i5-8400 and the BIOS is older than the Intel Z370 one by half a year this leads me to believe the CPU does not affect the > 64.00 GB memory limit.

It is a BIOS related issue most likely since both MBs can see 96.0GB installed in the BIOS and in the System Properties, General Tab but on the Intel Z370 it wouldn’t see above the 64.0GB for usable memory for some strange reason.

Some further testing showed Windows 7 32-Bit could not break the 64.0GB memory barrier on the AMD AM4 despite breaking it on the 64-Bit OS.

So the 32-Bit PAE might have a true 64.0GB limit after all regardless of AMD or Intel and is a forced MS OS limitation.

Anything more than 64.0GB of memory to be accessible will require a compliant BIOS and a 64-Bit OS maybe as early as XP IA64 might have been able to hit this limit or at least above 64.0GB but unknown if it was ever attempted on such legacy hardware at the time and MS states 128GB as not supported leaving XP Pro 64-Bit probably the earliest to break the 64.00GB limit without issue.



After further testing if you’re willing to invest in 2 x 32GB to pair with your 2 x16GB to reach 96GB, I suggest trying these tips.

Set the memory clock speeds for all to 1600MHz first and saving the BIOS settings before installing any new memory or removing.

After it is powered off install the memory in this pattern.

Starting with the memory slot closest to the CPU:

After powering on it should automatically try and detect the total 96.0GB and be sure to use a 64-Bit OS such as XP Pro 64-Bit, Vista Ultimate 64-Bit, or Windows 7 Ultimate 64-Bit which should fully detect the memory in the OS and in the Task Manager. Later you can adjust up to 2400 MHz Memory Clock Speed and up incrementally from there for the lowest compatible stable setting.

If this works let me know when you take the second set plunge to hit the 128GB max.

I think using all the same Brand / Model / Clock Speed all matching it will work smoothly without issue.

If not upgrade the BIOS version increment one step at a time to see which BIOS version finally patches the 64.0GB+ usable memory issue.

Also which Brand MB / Model / BIOS version and CPU model are you using?

@dsanke do you know what is the value of 32 GB RAM limit string? I am sitting on Asrock Z270M ITX Gaming with 2 slots - there is 32 GB limit and I could try to modify it to 64 GB limit for future use as 32 GB dimms have just entered the market.

I never see 32G limit in LGA1151 motherboards. Have you tried 32GB *2 yet?

I haven’t try 2x32 yet. It is just info on manufacturer website (- Max. capacity of system memory: 32GB). Even though I can’t find 64GB limit string from your point 2 in bios image.

@dsanke - Do you know if this edit, or similar, would be same on Asus Rampage IV Extreme (X79)?
I think Asus already made some of their X79 128GB compatible, but not this one

Hello @dsanke , thanks for this useful post. I’m already using already using one your modded BIOS on my Clevo laptop. I would like to get this 128GB RAM mod working on my Asus ROG MAXIMUS X HERO (non-WiFI model) which is a Z370 board. But, unfortunately I don’t have any BIOS editing experience.
This seems to be the latest BIOS update from Asus https://dlcdnets.asus.com/pub/ASUS/mb/LG…O-ASUS-2203.zip

@Lost_N_BIOS helped (REQUEST - ROG MAXIMUS X HERO BIOS Mod to Allow 128GB RAM) with identifying the HEX pattern “C7 86 7F 25 00 00 00 80 00 00”. I searched the .cap file included in the zip and it has 2 iterations of this pattern using Bless Hex Editor on Ubuntu. I didn’t convert the .cap file to .bin and didn’t extract it. I’m kind of noob for that.

According to your first post, it seems support for 128GB is not present on this MB. Would you please be kind enough to help me on this?

Thanks in advance.

@dsanke your mod worked on my Asus ROG Maxumus X Hero Z370 board + i7-8086k processor + 128GB RAM. @Lost_N_BIOS did the mod for me according to your guide. Thank you very much for putting this guide together.
I haven’t done any stress test or any thorough test yet. I’ll be doing that soon and will post if I find any issues :slight_smile:

hey @dsanke , i am in a boot loop right now with my Gigabyte Z370 HD3, with my two 16GB ADATA 2666MHz RAM, so what I did was change the bit from 0001 to 8000 as you did, and use me_cleaner to set the HAP bit with -S (–soft-disable)and -O as the command prefix. And used efiflash to flash the BIOS. What should I do now? Could it be a problem that the 16GB RAM could not be used anymore, or the board is bricked?

@bios_guy if you used https://github.com/corna/me_cleaner , try with “-s” in small letter and try flashing it again. I used “-S” on couple of systems which disabled one my LAN port and another one 3 LAN ports. Using “-s” fixed that issue.

Also, changing 0001 to 8000 would make your board support only 64GB of RAM. If you had 0001, that was ready for 128GB RAM.

https://github.com/corna/me_cleaner/wiki…ltMeDisable-bit - 3rd paragraph from the bottom shows the following.

me_cleaner sets this HAP/AltMeDisable bit when the “-s” (enable only the kill-switch, but don’t remove the extra code from the firmware) or the" -S" (enable the kill-switch and remove the extra code from the firmware) are passed.