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

Since nobody else was able or willing to test the new NvmExpressDxe-ovmf module, which was offered >here< by our Forum member davidm71, I have just done it myself by using my old Intel Z68 chipset machine (MB: ASUS P8Z68-V with BIOS 3603).
To minimize the risk of a failure, I customized davidm71’s 27 KB sized EFI file regarding 4 points:

  • Changing the header (my used 3rd generation FFS module has the same GUID as the modules, which I have offered within the start post of this thread and which definitively are working)
  • Delition of the last bytes (shown by the UEFITool as “version section”)
  • Renaming the shown DXE Driver to “NvmExpressDxe_3” (to make it easier to distinguish this new module from the previous ones)
  • Correction of the checksum-8

The NvmExpressDxe_3.ffs module I have used is attached.

This is what I have done:
  1. Preparation of a bootable USB Flash Drive with Win10 x64 Pro v1703 EN-US: I used the tool Rufus v2.16 and chose the option “GPT Partion Scheme for UEFI”.
  2. Modification of the BIOS: The ony modification was, that I inserted my freshly created NvmeExpressDxe_3.ffs module into the original ASUS BIOS 3603 according to my guide (= startpost).
  3. Hardware preparation of the Computer: I removed all HDDs/SSDs and inserted the M.2>PCIe Adapter containing a 250 GB Samsung 960 EVO into the PCIe Slot1 of the mainboard.
  4. Flashing of the modded BIOS: After having renamed the BIOS to the original name the flashing was no problem by using the BIOS-own standard EZ tool.
  5. BIOS settings: As first step I set everything to “Optimized Defaults”. Then I entered the “BOOT” section and set the “PCI ROM Priority” option to “EFI Compatible ROM” and the “Option ROM Messages” option to “Keep Current”.
    These settings are mainboard specific. Users of other mainboards may have to look for the equivalent settings within their specific BIOS.
  6. Installation of Win10 in UEFI mode: After having inserted the bootable USB Flash Drive I started the PC, hit the Boot Manager F key and chose the listed USB Flash Drive with the [UEFI] prefix.

Result: Full success!
The NVMe SSD (here: Samsung 960 EVO) has been detected immediately by the Win10 Setup and was offered as target system drive.
The Win10 installation itself went flawlessly.
Update: After having completed the OS installation I have realized, that the on-board Intel SATA AHCI Controller doesn’t work properly. The Device Manager shows it with a yellow flag and the message “This device cannot start (Code 10)”. This is currently not important for me, because no SATA devices are connected, but this may be a problem for other users, who want to use the PCIe connected NVMe SSD and some SATA HDDs/SSDs simultaneously. Tomorrow I will try to find out more about this issue.

Conclusion:
The attached NvmExpressDxe_3.ffs works definitively.
What I cannot evaluate is, whether this new FFS file supports the latest NVMe standard v1.3.
As soon as the problems with the Intel SATA AHCI Controller are solved, I will offer the new NvmExpress_3.ffs module within the start post as an alternative.


Hoping, that my testing will help you to get full NVMe support with your old UEFI capable mainboard
Dieter (alias Fernando)

Update (written at 09/01/2017):
The Intel SATA AHCI Controller problem is solved. It turned out, that it was caused by a hardware management error during the first OS installation (look >here<).
The attached NVMe EFI module has been removed, because the latest NvmExpressDxe_3 modules are now offered within the start post.

@all interested users:

Update of my last post
Today I have done some additional tests with my Z68 system running a freshly installed Win10 x64 v1703 on a Samsung 960 EVO SSD:

  1. As first step I wanted to know what happens, when the on-board Intel SATA Controller has been set to “RAID” mode. So I switched temporarily the SATA mode to RAID within the BIOS and rebooted.
    Result: The Intel SATA RAID Controller worked properly (no yellow flag, no Code 10 error message).
    Conclusion: Only the AHCI mode of the Intel SATA Controler seems to be affected by the issue.
  2. To find out, whether it is just the brandnew NvmExpressDxe_3.ffs module, which gave me the Intel SATA AHCI Controller issue, I flashed a BIOS, where I had replaced the NVMe module by the NvmExpress_2.ffs file offered by me within the start post. Then I restored all previous BIOS settings and rebooted into the OS.
    Result: Everything worked, but the Device Manager showed again the Intel SATA AHCI Controller with a yellow flag and the message “This device cannot start (Code 10)”. To exclude, that this message was a relict of the issue I had with the previously flashed BIOS, I uninstalled the device from within the Device Manager and rebooted. This action didn’t change the result. The yellow flag and the error message came up again.
    Conclusion: The issue seems to be not specificly caused by the brandnew NvmExpressDxe_3 module.

What I do not yet know is, whether the Intel SATA AHCI Controller issue is a specific one of my ASUS Z68 mainboard or a common one.

To find it out, we need more test results from other users with an older Intel Chipset system, who are using an NVMe SSD as system drive and had inserted any NVMe module into their mainboard BIOS to be able to boot off it.
Questions: What about your Intel SATA AHCI Controller? Does it work properly?
Don’t forget to mention the model/chipset of your mainboard and the NVMe module variant you had inserted into the BIOS.

By the way: As long as the system drive (here: Samsung 960 EVO) is not SATA connected, the SATA AHCI mode issue doesn’t affect the data of the related SATA connected HDDs/SSDs, which have been written in AHCI mode. They can be read and modified in RAID mode as well.

Hey Fernando,

I’m currently using the NvmExpress_2.ffs module with my Asrock Z77 Professional motherboard. I disconnected my RAIDed drives, connected a single drive to one of the Intel SATA2 ports, changed the setting in the BIOS for the Intel controller from “RAID” to “AHCI”, booted into Win10 (1607, build 14393.1480) and checked Device Manager for the Intel AHCI controller. I had three generic (Microsoft) AHCI controllers installed (one was for the Intel controller and the other two were for Asmedia controllers). I updated one of them with the Intel 11.2.0.1006 AHCI driver, giving me an “Intel® 7 Series/C216 Chipset Family SATA AHCI Controller” without any problems. I rebooted and still had no problem with the Intel AHCI controller.

I did not try the SATA3 ports, as I did not think it would make a difference which type of Intel SATA port I used.

Hi Fernando,

Regarding this AHCI error, I have the same board (revision 1 with PCIE 2.0) successfully modified with the NvmExpress_2.ffs file.
Unfortunately, I don’t yet have an NVMe drive & adaptor to test with (I’ve converted to GPT on my current SATA3 SSD).
My settings are currently Legacy Option ROM and Keep Current respectively so I have no issues with the AHCI.

Could the BIOS require the insertion of an EFI module for the Intel RAID controller for full compatibility, or have you already done this?

Just a thought

@Fernando ,

I have the Asus P8Z68 Deluxe board and have never noticed the yellow exclamation mark you speak of regarding AHCI mode. I’m not 100% sure raid is disabled but pretty sure. Will check friday.

Hello

Im trieing to get my 960 EVO to running

Having an Asus Maximus Gene V and using a Delock NVMe Converter and patched my bios regarding your Tutorial.

Im able to boot and install Windows with an GPT usb stick and it seems to install it on the Drive (which is fine so far!), then it reboots the system.

But after the reboot the issue is that "Windows Bootmanager" is not showing up in the List of Bootable Options.

I tried several kombinations with CRM / Fastboot / Uefi especially:

- CRM Disabled
- Fastboot disabled
- Uefi only
- Sata Disabled
- only one drive (the nvme) attached
- Delete all partions (within the installer and let windows create it itself)
- deleting the keys…

nothing seems to help :(…

Anyone maybe (@Fernando ) has an idear why it seems the bootmanager is not installed on the device?

Im currently not even sure where i should go on with searching… is it hardware? is it bios? is it windows? =(

@scratchy2

You should boot into a Uefi shell. Most systems will boot into a shell if you have a fat32 formatted USB disk with either shellx64.efi on the root or placed in an Efi/boot folder naming file bootx64.efi. From there in the shell type ‘Drivers’ and verify that the nvme driver has loaded. If so verify that Windows is installed on your nvme drive using the shell to check that the boot files exist on the system partition. If they do you need to manually create the boot entry using bcfg. Sorry it’s messy at this point but it is what it is…

@Paulos7 and @Iken :
Thanks for your reports.

No, the currently in-use mainboard BIOS doesn’t contain any EFI module for the Intel SATA RAID Controller.
Although I cannot imagine, that this may have caused the error code of the Intel SATA AHCI Controller (whereas in RAID mode everything seems to be fine), I will test it with added Intel EFI RaidDriver, when I have the required time.

@scratchy2 :
Welcome to the Win-RAID Forum!

What do you mean with “GPT USB stick”? The USB stick itself has to be FAT32 formatted.
If you use the tool Rufus, the related GUI should look like this:


Very important: When you want to get the OS installed in UEFI mode, you have to choose the Boot Manager entry “[UEFI] name of the USB stick”.

How many partitions did the Win10 Setup create onto the target Disk Drive (your NVMe SSD)?

Which reboot do you mean (there are several reboots during the OS installation until it is completed) and where did you miss the entry “Windows Bootmanager”?

Regards
Dieter (alias Fernando)

Thanks i booted in the uefi shell and it seems that the driver isnt loaded… any idears why?
Files are there after the first reboot screen (4 partitions created)
Will try now to switch the physical slot maybe that helps out…

thanks thats exactly what i did and this worked out so far…

this i also did, during the installation there were 4 paritions created and then the installation starts (copys files… prepares update and so on…) then theres the reboot where it should first boot into windows, but then its rebooting again to the usb stick.
Yes i tried to remove the usb stick / change the order but theres nothing except the usb stick detected. Normally there should be the “Windows Bootmanager” at this point if im right.

Update1: switching slots didnt help out to load the driver. Also GUID is not listed there…

Update2: Found the issue which wasted my livetime…
The issue was im using USB flashback for the custom bios because its needed otherwise the mainboard disagree to flash it.
The flashing process was starting, looked fine (leds started flashing) and then the backlight stopped flashing after a couple of seconds. But the thing is - it wasnt flashed at all (noticed by flashing old bios version and double checked).
Afters hours of digging figured out that my USB stick (16 GB) was not supported switched to 2GB and then it worked fine.
NVMe now fully works sorry about the trouble… Works very well is there any donate thing? :slight_smile:

EDIT by Fernando: Unneeded parts (incl. screenshot) of the quoted text and unneeded blank lines removed (to save space)

The ASUS Flashback method does work with "classical" small size USB 2.0 key only with additional restrictions:
MBR schema only
No multiple partitions
FAT32 only

All other parameters choice such as (GPT, size larger > 4GB, USB 3.x, etc…) are source of problems (by experience).

@scratchy2 :
It is fine, that you found the reason for your problems and got your NVMe SSD working finally - congratulations!

At the bottom of each Win-RAID Forum page is a Donate button.

@Iken :
As already predicted by me, the missing EFI RaidDriver was not the reason for my Intel SATA AHCI Controller issue.
Today I have flashed a BIOS, where I had inserted not only the NvmExpressDxe_3 module, but additionally the Intel EFI RaidDriver v12.9.0.2006. Result: The problem persists.
Interesting find: When I additionally connect a bootable “normal” SATA SSD (here: 512 GB Samsung 840 Pro) to one of the Intel SATA ports running in AHCI mode and boot off that SATA SSD, the Intel SATA AHCI Controller works fine (and I have still access to the data of the NVMe SSD).
So I suspect, that my reported issue is caused by an interference between the NvmExpressDxe module and the function of my on-board Intel SATA AHCI Controller.

Hi Fernando,

Interesting, and a little worrying for me as I want to use the AHCI controller for my data drive after converting to NVMe boot…
Thanks for your efforts, as always.

@winyl - can you please elaborate again on what’s necessary and what not inorder to get NVME working ?
I wish to update my G751JT with NVME… Although T and Y models are similar, they got different bios - so I need to be sure what to do.

1. Should we wipe Mtftp6D inorder to insert NVME module ?
OR you mean that the bios is compatible with NVME out of the box ?

I understood that it’s NOT a good idea to use UBU to update IRST module… nontheless, I know from other users that’s OK to update just the CPU microcode using UBU.

2. what about samsung’s magician SW/driver issues ?
what about read speed issue ? was it solved ?

EDIT by Fernando: Unneeded fully quoted voluminous post removed (to save space)

Hi Fernando and other forummembers,

first of all i wanna thank you so much for you time and work to put this tutorial together!

And i can say i have managed to install and boot Windows 10 on my brandnew evo 960 in an Delock m2 adapter - with your tutorial.
I followed your tutorial and everything works ! Only Problem i cant flash the bios !
If the name is not exactly the same(E7751IMS) and the .1B0 suffix it were not even found on the usb stick.
The only method is to use the Boot Bios from usb function. There it will find any suffix like .bin or .rom and i can select to boot it.
When iam booting this BIOS , the sdd is recognized as PATA and i can boot from it !

Dont get it why i can boot it but not flash it.
When iam trying to flash just freeze and nothing happens , only tried it one time and were feared that i had bricked my bios chip !

My Board is an MSI Z77-GD55 ! You ever heard from such an Problem?
Now i simply switched to an old cheap usb stick and running like that for the moment. It simply boots up the 960 when iam not selecting anything other by F11.
But the Bootsequence is very long because of bios from usb so its not a good solution

Thanks

hi guys,

I’m new here, hope you can help me and thanks for the guide…
I have a HP Z420, BIOS ver 3.91 Rev A. I’ve followed the instructions without success.
When I flash the BIOS with original file from HP website, it works fine. With the mod BIOS, it jumps straight to “update complete” without doing anything.

HP BIOS website is : https://support.hp.com/au-en/drivers/sel…mId/wk-177812-1

Could someone please help, thank you.

@Dr.Grinspoon :
Welcome to the Win-RAID Forum!
When you want to flash a modded BIOS, you have to give it the same name as the original BIOS (inclusive the suffix).
Regards
Dieter (alias Fernando)

@leon69_01 :
Welcome to the Win-RAID Forum!
HP BIOSes are very specific and not easy to modify and to flash later on.
Since I do not have any own experience with HP BIOSes, I cannot help you myself.
Hopefully you will get support by someone else.
Regards
Dieter (alias Fernando)

@ all interested users, who are waiting for my final test results:
Today I have repeated from scratch my recently done tests with the new NvmExpressDxe_3.ffs module (look >here<). Surprisingly everything worked perfectly and my previously reported problem with the on-board Intel SATA AHCI Controller was blown away. I don’t know the exact reason for the stop code message I got during my first test, but I suspect, that it was just a hardware management error during the first OS installation.

As a consequence of these good test results I am going to additionally offer the new NVMe modules within the start post of this thread. If your feedback should be consistently positive, I will remove the older variants of the NVMe modules from the start post.

Good luck with the new NvmExpressDxe_3 modules!
Dieter (alias Fernando)