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

Hi Jan771,

My drive came with the newer firmware installed.

I’m not aware of any firmware update being available as it is really an OEM drive for system builders.

Best chance is to keep an eye out on Dell and HP sites/forums as this is most likely place an update will be found (if at all).

Throttling may be reduced if you have good air flow in your case or maybe install a small case fan to cool the drive?

To help detecting drive by bios when trying to install windows, try attaching drive as a secondary drive and just intializing it (but not partitioning or formatting it) in Computer Management console.

Then turn off, disconnect all other drives (including DVD rom etc), attach NVMe in the PCI-e slot, boot up and go into bios and set up CSM to boot via UEFI only with fast boot disabled, restart computer with GPT-UEFI FAT 32 formatted USB flash drive inserted and go to boot menu, choose UEFI USB stick and let windows setup start.

Go for a custom install and hopefully the NVMe drive will now show up!

Finally, I managed to add nVme support to my bios. I bought CH341A-based programmer to flash SPI EEPROM and followed the instruction written by CodeRush. But still I do not understand why some of the users (including me) have problem with Asus flashback. Anyway, now I am buying Samsung 950 Pro and I am going to install Windows 7. I found it instruction here: http://forum.notebookreview.com/threads/…mbdrive.783921/

Hello, first of all thank you all for this work.

I would like to know what’s the difference about doing an insert of the NVMeExpressDxE.ffs instead the 3 modules separately Nvme.ffs, NvmeSmm.ffs, NVMEINT13.ffs

Have an ASRock P67 Extreme4 Gen3 and I want to give it a try. So as stated in this post: [Guide] How to get full NVMe support for Intel Chipset systems from 6-Series up (8)
I downloaded the Z97 bios from ASRock and extracted the 3 modules from it but now I don’t know if I should insert only the NVMeExpressDxE.ffs or it’s better to insert 3 modules extracted from Z97 bios instead.

Thank you.

@4anangel :
Welcome at Win-RAID Forum!

According to my own tests it doesn’t matter, which one of both methods you choose, but the insertion of just 1 module (NvmeExpressDxE.ffs) is easier and doesn’t need as much free space within the BIOS file as the insertion of 3 modules.

Regards
Dieter (alias Fernando)


@Fernando :
thank you for the quick reply! I’m going to test it with a Lycom DT-120 + the new samsung 960 when its available in the market.

I’ll inform asap how did things go.

Hello win-raid-community!

First I wanna thank Fernando and all the other people for this great forum. I learned alot of stuff from you. Nicely detailed guides. I’m very grateful for that!
But now I’m having some trouble, so this is why I signed up.

I’ve modded different AMI-based UEFI/BIOSes from Fujitsu motherboards. One model I’m going to own soon, has the CSMCORE, the others do not, which made me fail probably. Bricked a FUJITSU CELSIUS M740 (YLXR) Motherboard, which is named D3348-A1x. That was a friends machine, In which I tried to get his Toshiba OCZ RD400A working.
SSD: http://geizhals.de/toshiba-ocz-rd400a-1t…hloc=at&hloc=de
Workstation: https://sp.ts.fujitsu.com/dmsp/Publicati…ELSIUS-M740.pdf (Yes, it supports NVMe by default, but only the newer revisions of the motherboard: D3348-A2 and D3348-B2)


UEFIs: http://www30.zippyshare.com/v/jNx4CdN4/file.html

So:
D3348-A1 uses D3348-A2 NVMe modules (3 of them), also used the universal one out of this guide, but couldn’t try, because the board was dead after the first flash with the 3 modules.
D3128-A1 uses the universal module, couldn’t try yet though.

As you can see, the D3348-motherboards don’t have any CSMCORE, so I inserted the 3 modules “alike” with the order of the D3348-A2.
For the universal one: With the MMTool, I just inserted it at the same index volume and with UEFITool where the original Fujitsu Nvme.ffs was.

Flashed with “AFUDOS.EXE “ROM” /GAN” from a Supermicro BIOS-updatepack, mentioned somewhere in this forum, because all the others failed to flash. (Fujitsu signature check prevented me flashing with the official tools and the plain AFUFlashtools from AMI)

Also ordered a CH341A + clamp for future problem fixings like these (dead boards).

To clarify once more:
D3348-A1 → has no CSMCORE, used 3 extracted modules out of the new motherboard revision D3348-A2. Also prepared one D3348-A1 UEFI with the universal module from this guide. Couldn’t try though. Board is now dead, tried the official recovery-mode, removed the CMOS battery and so on.
D3128-A1 → has CSMCORE, used universal module from this guide. (Not tried yet)

Any ideas/improval suggestions?

Thank you in advance!

@Nyctophilia :
Welcome at Win-RAID Forum!

When you don’t find a module named CSMCORE within any AMI UEFI BIOS, it indicates, that the related mainboard BIOS has the newer AptioV and not the older AptioIV platform.
In this case you should not follow my guide, but ask the mainboard manufacturer for NVMe support.

Regards
Dieter (alias Fernando)

Hello Fernando,
thank You for your help. Now (with .inf driver) i have installed W7 on my Samsung SM951 NVMe M2 drive and can boot image in RAM-disk.
I start my installation from cd, in first screen mit Caps+F10, in DOS-window start DISKPART.

Then:
create partition primary
format fs=ntfs quick
assign letter C
create vdisk file="c:\w7.vhd" maximum=55000
select vdisk file="c:\w7.vhd"
attach vdisk

Then i install windows on VHD Disk without any problem.

I install grub4dos in MBR with bootice.

with command:
map --mem (hd0,0)/w7.vhd (hd0)

i load VHD image on RAM-Disk. But this is very slow: ca. 3400 MB/min !!!

I have made exactly the same installation on SATA ssd connected on sata3 port and i can load the image with a speed of 19800 MB/min (55 GB in ca 3 minutes) !

I suppose the BIOS dont supports NVMe natively.
My MB is GA-X99 Ultra Gaming with F5 bios (APTIO V)
With MM-Tool i have looked BIOS modules and found some NVMe modules:

NVMe
NVMeInt13
NVMeSmm

I dont know what modul must i install um OS from NVMe M2 SSD quick in RAM-disk to load. M2 slot on my MB is permanently connected with 4 PCIe gen3 lanes .

Do You have idea what modul must i install in my BIOS ?

Thank You

@dogar :
1. Since the BIOS of your GA-X99 Ultra Gaming natively does support NVMe (the required NVMe modules have already been inserted by Gigabyte), there is nothing to modify for you regarding the BIOS.
2. My guide (= start post of this thread) is only valid for AMI Aptio IV BIOSes.
3. If you should not succeed trying to get the desired NVMe SSD bootable as system drive, I recommend to contact the Gigabyte Support.

Hello Fernando,

thank You for your answer.
I have succeed to boot from NVMe SSD. My problem: booting from VHD to RAM-Disk is to slow. I hope M2 SSD can proceed it with 32 GB per second by 4 PCE lanes connected.
I will try to contact the Gigabyte Support.

Thank You.



Hi all. Finally I have got the resolution that HP Turbo Z controller works only with HP Workstations (as declared by HP).
I’ve asked my friend who has a Motherboard natively supporting M.2 to test this drive and the only thing that he could make work was direct connection Samsung module from HP Turbo Z into M.2 slot (without Turbo Z controller).
Than it became detected by OS, but transfer speed was hardly good ~ 7 Mbps. Here I can only guess why is so that.
Therefore I decided to try this module with some 3rd party M.2 controller and when it come I will post the result.

After some reading about the promise of NVMe, I decided to try out the Intel 600P 512 GB using a pass through card. According to marketing materials, the speed of the drive scaled wonderfully at 512, but wasn’t quite as profound a difference at 1 TB. After some initial confusion about what I had purchased, I ended up buying an ASUS FM2+ model, based on claims that ASUS quietly supports NVMe on their A88 Bolton boards. Currently, I’m running a A10-7860K Godavari, 16 Gb DDR3-1866, a couple 5400 rpm notebook drives, an RX480 via HDMI to an LCD TV, and the NVMe. Initially, I was able to use the drive for data but I couldn’t boot from it. The CSM would complain that it was missing drivers when I tried to force it to work.

Curiously, ASRock makes a FM2+ board, the A88M-G/3.1, which features a M.2 socket between the PCI 3.0 slots, but I had decided it was too small. After some deliberation, I made a call to ASRock in California (a little after 9 am PT seems to be the start of their day) and I was advised by a technician that the 600P would be fully supported in their mATX board. An investigation with MMTool of their latest BIOS for this offering yielded the same three modules as mentioned in the guides here. I extracted them, and after insertion I renamed the result A88X-PRO.CAP so the Flashback utility could find the file.

My 600P is detected by the UEFI and I am able to install and boot Windows 10 on it. For those of you who are wondering, I also tried the single file NVMeExpressDxE.ffs and there is a difference. The triple file solution did a better job of resolving my NVMe device name, while the single file yielded only a generic listing in BIOS. I haven’t tested anything else, but my build is ridiculously quick when it’s using the NVMe.

@jman0918 :

Welcome at Win-RAID Forum and thank you very much for your interesting report.

Regards
Dieter (alias Fernando)



Thats interesting as I too had notice that if I had the nvme modules from a newer generation motherboard alongside the NvmeExpressdxe ffs file I created I was able to see the drive from the bios boot menu and not just the uefi partition name. Unfortunately while experimenting I removed those initial first three files and upon trying to add them back I couldnt reproduce that effect. Not sure what was going on or if my bios was being flashed in its entirety. Should have kept better notes. Late night hacking has its pitfalls!

Well, I am very happy to report that following your mod guide for my Lenovo D30 type 4353 worked, and I can now successfully boot Windows 10 from a PM951 Samsung. A few tips for others:

I modded the A3KT57A bios which was the latest as of Nov 10, 2016. I grabbed the version that works under Windows. If you’ve never updated the bios before, you might want to follow the standard procedure with the unmodified file to familiarize yourself before trying with a modded file.

The bios file is a .cap file, and if you try to work with it you will get a security fail when programming, so you have to first extract the body into a .bin file before modding as explained deeper in Fernando’s tutorial. Once you mod the resulting .bin file, then attempting to program with the tools in the A3KT57A bios download doesn’t seem to work. You will get a version mismatch error. I overcame that by downloading the A1KT59A bios for the 4223 model D30. The tools within that download include AFUWINGUI.EXE which you can use to program the bios. Just load your modded .bin file, select 'Program all blocks", then hit the ‘flash’ button. Once done reboot and jump into bios. For some reason, I had to do a hard reset the first time - I initially got a black screen. Once in bios, you will have to reset all your settings. I first chose ‘Load optimized settings’ and ‘load operating system optimized settings’ to turn on UEFI only boot. Note that if your video card or other critical component doesn’t have a UEFI bios you won’t boot and you’ll have to reset cmos. I also enabled NUMA in the north bridge as I have discovered that this gives radically better memory benchmark performance (that’s unrelated to this SSD mod).

If you reboot now, and pop back in bios, you will find ‘Windows boot device’ in the boot list. You now only have to install your OS in GPT mode to the SSD and you are all set.

Thank you Fernando - donated $20 via your Paypal button.

@jkloepping :
Welcome at Win-RAID Forum and thanks for your report!
I am glad, that you succeeded by following my guide.

You are welcome and thanks for your donation!
Enjoy your NVMe SSD with your Lenovo D30.

Regards
Dieter (alias Fernando)

Asus P9X79 pro bios 4801 revision and Samsung PM961 1TB boot help

Hi, im struggling to get this to install windows 10 and boot, been a loong evening… help much needed.

Ive tried your tutorial inputting the NvmeExpressDxE file and the bootable devices does not show" Windows Boot Manager" it does show ‘pata ss’ as a new option which ichor tried installing windows 10 and it doesn’t let me.

and ive also tried the tutorial at : http://www.overclock.net/t/1571271/tutor…n-intel-chipset

Ive successfully extracted the Nvme, NvmeSmm & NVMEINT13 files from X79 BIOS and imported them to my P9X79 pro bios version 4801 (also tried 4608), flashed the bios, gone into the bios, disabled ‘fast boot’ and there is no ‘Windows Boot Manager’ to confirm that the PM961 is bootable. Ive tested installing windows and cant install onto the partition.

This guide mentions using X99 bios to extract the bios Nvme, NvmeSmm & NVMEINT13 files. Ive been through a load of Asus bios revisions and cannot see these through MMTool? Are the nvme files called something different for X99?

Has anyone been able to get this to work on my configuration?, if so what bios version did you use? or can anyone please help? am i doing something completely wrong to get this bootable?

Many thanks

@ooaldridge :
Welcome at Win-RAID Forum!

Maybe the Win10 in-box MS NVMe driver is not able to detect the new Samsung PM961.
Have you already tried to load the latest "pure" Samsung NVMe driver v2.4.7.0 WHQL at the beginning of the Win10 installation? You can find this driver within the start post of >this< thread.

Good luck!
Dieter (alias Fernando)

Hi, yes ive also tried those drivers on the standard version 4801, 4801 with Nvmeexpressdxe & 4801 with the X79 nvme - nvmesmm - nvmeint13.

still doesnt work :frowning:

found another link: https://rog.asus.com/forum/showthread.ph…0-2126-Download
but seems to be the same nvmeexpressdxe file and its in the ‘under testing’ folder which to me suggests no one has confirmed it works with the asus p9x79 pro mobo.

do you have any other ideas?