[HowTo] Get full NVMe Support for all Systems with an AMI UEFI BIOS

Yes, i know i can use NVMe drives for storage with no many truobles to solve. Thx @MeatWar.

Look, i’m just making a try, i’ve found 2 little problems… Can’t find anywhere AMI’s MMTool 4.50.0023, or another version for download, so i’m using the free UEFITool. Once the rom is opened a comment is displayed & the modules are expanded no “bios region” is displayed. I assume that’s just a difference beetween Intel & AMD’s formats. A comment is displayed down there…
I’ve found that the 2° tree contains all the DXE stuff, but i don’t find there any PCIeLaneDXE

1.jpg



Well, it’s done…, & everything looks right, except for this “parseBios: one of volumes inside overlaps the end of data” comment down there…, is the same message appeared in the original .rom.
Another detail; both files, original & moded bios has the same size, i’ve inserted the “NvmExpressDxe_4.ffs”, not the small…;

2_2.jpg

@AvenocturnO :

This indicates, that you haven’t read my guide carefully or didn’t take the time to follow my tips where to search for the links.

The structure and the naming of the BIOS Volumes are different and depend on the specific mainboard model, the screenshots of my guides are just examples.

Why were you searching for that module? The name of the undermost DXE module is different for each BIOS.

If the UEFITool shows the same message with the original BIOS, there is nothing to worry about.

This is a necessity. You would brick your mainboard, if you try to flash a BIOS, whose size is different from the original BIOS.

For sure i’ve missed soma of the lines in the guide, i’ii read it again carefully.
I’ve insered after de mod file, not the small, in the place you’ve pointed in the guide, i think it’s allright, i guess…
Before flash my mobo i’ll tray to get my system into GPT mode, in another disk, just to see it “clonable” for the future NVMe drive, & to achieve the chance of an UEFI clasical boot
Your guide & help is very important for me, thx a lot.

@Fernando & @MeatWar
Look, this is my modifyed .rom:

NVMe modded BIOS.png



EDIT by Fernando: 2 posts merged and picture resized (to save space, can be enlarged by clicking onto it)

@AvenocturnO :
Your screenshot from the UEFITool GUI only verifies, that the NVMe module has been inserted into the correct location, but not, whether any pad-file has been touched by the modification.
Instead of posting UEFITool screenshots it would have been a better idea to attach both BIOS files (the original and the modded one). Only this way we can check them and give an evaluation of your BIOS modification.

Ok!, can i attach both roms here?

ORIGINAL AND MOD BIOS.rar (4.54 MB)

@AvenocturnO :
The BIOS modification seems to be fine for me.
Good luck while flashing it!

Thx a lot for your valuable time, thx for @MeatWar & the whole crew too.

I’ll be back with some of my music as a humble gift for your help when my NVMe let me record some.

@Fernando SUCCESFULL FLASH!

I’ve not seen anything strange or new about typical new mobos UEFI, as secure boot, fast boot or some like that, i assume is related to the absence of an UEFI/GPT system attached to any sata port. I’ve gotta finish a guitar & a computer for a couple of clients, inmediately after i’ll start tests installing Win 10 in order to see if legendary “Windows Boot Manager” appears & some other stuff… I’ll make a GPT version of my 7 Ultimate too (from live cmd recovery/repair mode). I’ll keep all of you updated, specially about the progress of my 7 Ultimate onto a NVMe unit, i hope a nice & fast Frankenstein born!

I wanna buy a Corsair Mp510, that company does not offer any Win 7 NVMe driver yet…, i hope the KB2908783-x64, KB2990941-x64 & KB3087873-v2-x64 patches helps a little in the process, later could open a thread talking about the whole experience, if admins aprove it.

THX!!!

Hello Everyone,

I am trying to modify the bios. I have ASRock X79 Fatality Champion mainboard. I modified BIOS by UEFITool but when I save modified bios file, the file save in .ROM format but the original BIOS file from ASRock page has format .80
My mainboard does not have USB flashback so I have to flash it from BIOS. Is there any solution to this problem ?

2. I have use "NvmExpressDxe_4" module, is there any newer more efficient version ?

Thanks :slight_smile:

@Hancus :
Welcome to the Win-RAID Forum!
It is very easy to prepare a modified ASRock UEFI BIOS for the flashing procedure:
1. Open it with the UBU tool and store it thereafter. The UBU tool will automaticly remove the capsule section, where the modification would be recognized.
2. Rename the modded BIOS to the original name (inclusive extension).
3. Flash the BIOS by using the "Instant Flash" utility.

No, that is the newest and best efficient NVMe module version (supports the currently latest NVMe standard).
Good luck!
Dieter (alias Fernando)

@Fernando you might be just the bull to help me out. I’m trying to get a 2TB Samsung 970 EVO Plus up and running on my Z77X-UD5H board with the most recent F16j BIOS. As others might have noted, this BIOS does have 3 NVMe modules built into it (see pic/link), though I’m hoping to integrate the most current NVMe module as I’ve been seeing some minor issues with using a Windows 10 installer to properly recognize the drive as well as with Mac OS. e.g., trying to install Clover to the EFI partition is a no-go. Perhaps I missed it on your guide, but if the BIOS already has these NVMe modules in it, is the NvmExpressDxe_4 module additive to what is already in the BIOS (e.g, 4 modules total), or, should I remove the ones in there and simply insert NvmExpressDxe_4? The post-insertion screenshot appears to show the sole NvmExpressDxe_4 module, without any others indicated, which would seem to suggest that the older modules are no longer needed. Could you clarify?

TIA!
MMTool 4.5 f16J BIOS

@mutatio :
Welcome to the Win-RAID Forum!
Usually it doesn’t make sense to do any NVMe modification with a BIOS, which natively offers full NVMe support.
Questions:
What lets you think, that the NVMe modules of the original F16j BIOS are faulty or outdated? Which were the exact problems while trying to get Win10 installed onto the NVMe SSD while using the original mainboard BIOS?
Regards
Dieter (alias Fernando)

@Fernando

More to come on the Windows specifics. Perhaps the primary consideration I would offer as it regards the NVMe implementation being in need of updating is due to the fact that the BIOS is considered a beta. The board didn’t initially ship with the support and NVMe support isn’t even indicated as one of the improvements to the BIOS release (or any of the releases for that matter).

Doesn’t the prospect of a single module, NvmExpressDxe_4, being applicable and beneficial/functional for even the 6 series boards (which we know did not have the support factored into the design), suggest that it would be viable? For example, while I haven’t investigated all of the BIOS releases, I have read that the NVMe modules were introduced in version F14 for the UD5H board. Basically, what is the difference between stripping the NVMe modules in the beta BIOS while integrating the singular NvmExpressDxe_4 as compared to adding that same module to say, the F13 BIOS without any NVMe support baked in? Does that make sense?

@mutatio :
What you have written are just speculations. If you really want to find out, whether the insertion of the NvmExpressDxe_4.ffs module is better for your specific system than to use the stock NVMe modules of the BETA F16j BIOS, I recommend to test it yourself.
This is what I recommend to do:

  1. Customize the original F16j BIOS by
    a) deleting all 3 NVMe modules,
    b) saving the intermediate product (to get the required free space within the DXE Volume),
    c) inserting the NvmExpressDxe_4.ffs module and
    d) saving and renaming the finally modded BIOS.
    Alternatively you can use the F13 BIOS as source and miss the tasks a) and b).
  2. Flash the modded BIOS according to the advices for Gigabyte BIOSes within the start post of >this< thread. You will do it at own risk.
  3. Install Win10 onto the NVMe SSD by following point 4 of my guide’s chapter “This is what you should do”.
  4. Compare the results you get with the ones you got with the stock BIOS F16j.

@Fernando Thanks for the follow-up yet again! Just out of curiosity, do you have a sense of what all is rolled into the NvmExpressDxe_4 module? For example, I’ve seen another tutorial looking to accomplish these same results, which suggests taking those 3 modules shown in my prior pic from a Z97 board with NVMe support and inserting them into, for example, a Z68 board (which I also have). From a technical standpoint, I’m just left wondering how the single module accomplishes what the three separate ones do. e.g., does it somehow roll all of the feature into one?

@mutatio :
Already in June 2015 I have written >this< report, which verified, that it is possible to boot off an NVMe SSD by using a system without native NVMe support. As you can read there, I succeeded by inserting the 3 NVMe EFI modules, which I had previously extracted from an ASUS Z97 PRO BIOS 2401, into the BIOS of my old ASUS P8Z68-V BIOS. My report from June 2015 was the source for some guides, which have been published later on by other persons in different Forums, but all these guides do not consider the knowledge we got within the past 5 years:

  1. The NVMe modules named NvmeSmm and NVMEINT13, which are extracted from the BIOS of a much newer mainboard, are neither required for the ability to boot off the NVMe SSD nor can be used by a mainboard without native NVMe support. The tasks of these 2 modules is a better BIOS integration, but this requires a consideration within the related BIOS system modules, which is missing within BIOSes without native NVMe support.
  2. It is much better and safer to insert a universally usable up-to-date NVMe module, which definitively supports the latest NVMe v1.3 features like the NvmExpressDxe_xxx ones, than an extracted NVMe module, which has been compiled at any time by the Company AMI and customized at any time by the mainboard manufacturer for a specific source BIOS. As a proof for the latter statement I have extracted the Nvme module of the Beta BIOS F16j and opened it by using a Hex Editor. This is what I found:

    original Nvme module of Z77XUD5H.F16j BIOS.png

Hi again, & excuse me for stole your time. I’ve found a Ssd with astonishing specs…, it sems, at least. I know that through a PCIe adapter i wont obtain best features but… The ssd is Xpg Spectrix S40g 512gb M.2 2280, the web of Adata offers full support for many systems, talking about NVMe drivers & other topics. My doubt is related to the NVMe gen 1.3; does this any difference about my modifyed Asus M5A97 PRO bios?

Thx a lot for your time.

No, the ADATA XPG S40G M.2 SSDs do support the latest NVMe v1.3 standard (as the NvmExpressDxe modules we are offering within the start post of this thread).

@Fernando :
Success!
The BIOS file modded perfectly as per your guide. But you were right that the inbuilt EZ Flash utility put up a security warning and wouldn’t let me flash.
So I used the Asus AI Suite flash utility as per your link. I’m not very good with CMD prompt stuff so went that way! All worked fine with PATA SS appearing.
I left CMS on with everything set to UEFI but deleted the keys to switch off secure boot. Windows 10 then installed fine and let me choose it in boot priority.
Now it’s just remembering how much tweaking and re-installing I need to do to the OS from clean install. Ugh!

Thanks very much for your help and guide. I’ll throw you some PayPal from your donate link.

EDIT by Fernando: Unneeded fully quoted posts removed (to save space within this voluminous thread)

Thx a lot!