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

@davidm71 :
Processor architecture of UEFI binaries have to match that of the UEFI firmware. As such you need to use 64-bit UEFI drivers when using a 64-bit UEFI firmware. Note that most motherboards come with a 64-bit UEFI firmware.

I have some ideas to refactor the EDK2 NVMe driver so that it only contains the bare minimum functionality and the binary is optimized for extremely small size. Is the community interested in having such an NVMe driver and is willing to test it?

I doubt it nevertheless.
By the way: You can boot off the NVMe SSD without any problem after having enabled the CSM BIOS setting. The only must-do is: You have to install the OS in UEFI mode and EFI modules should be loaded while booting.

@Ethaniel :
Thank you very much for your offer!
Since several users had problems to get the NVMe module inserted due to limited space within the DXE Driver Volume, it is very good idea to offer a much smaller sized NVMe EFI module (provided, that it has the same functionality).
So I am interested in having such NVMe module and I would be able to test it with my Z68 system.

Well theres still work to be done to get it smaller. I have not tried the ‘Os’ option on GCC to have it optimize the code. I can try later to recompile it but I think 20 kb is a good size. Of course thats with UDK 2014. The file sizes got bigger with each succesive release of EDK so there will be a trade off of size vs features i’m sure.

@Fernando
You were right. After booting with CSM enabled, I installed the OS (Proxmox) in UEFI mode and after that I disabled CSM and the POST message about not being able to boot went away.
For the record, the message was: "Warning. The current BIOS setting do no fully support the boot device. Press F1 to enter the BIOS Setup. Go to Advanced > Boot > CSM Parameters, and adjust the CSM settings to enable the boot device". I guess the BIOS gave the warning because the drive was empty and it could not find anything to boot.

Thanks! :slight_smile:

Hello all, So I followed the initial guide and had somewhat successful results. I am running GA-990fxa-ud3-r5 rev(1.0) with a AMD FX8350 CPU and EVGA DDR3 1600 CL9 2 x4,2x8 total 24gig memory, Samsung PM961 128gb drive. So I modded in the NvmExpressDxe_3 module to the F2 bios and flashed using the @Bios Tool. After flashing and reboot the drive first appeared as PATA SSD1. I then installed Window 7 pro x64 from flash drive that had I had injected MS hotfixes into and the MSI SmartTool to add NVME driver and then Rufus to create flashdrive. I did notice after Install PATA SSD1 disappeared and was replaced with Samsung and serial number in Bios and Boot manager. I initially tested with bios raid turned on and seen no conflicts and also booted Fedora 22 from USB drive 3.0. The bios raid is now disabled and it is up and running but the somewhat comes in as I seem to now have system hangs that require hard boot to get out of. One I am posting to share results for anybody who is interested and Two I would like to ask about Using three extracted modules…Nvme.ffs, NVMEINT13.ffs, and NvmeSmm.ffs from a GA-990fx gaming F2 bios on my GA-990fxa-UD3-R5? Sorry not a good with my words but maybe this will be legible.

@Harry :
Welcome to the Win-RAID Forum!

Are you sure, that the Win7 installation has been successful and that you now boot off your NVMe SSD?
Questions:
1. When you created the USB Flash Drive by using the tool Rufus, did you check, that you had chosen the correct UEFI settings as shown in the below picture?


2. Did you boot off the USB Flash Drive in UEFI mode?
3. Are you sure, that the Win7 Setup has put the usually hidden partition with the EFI “Windows Boot Manager” onto the NVMe SSD?

This may work as well, but
a) the 3 modules require much more free space within the DXE Driver Volume of the BIOS than the single NvmExpressDxe_3 module and
b) will not give the user any benefit.

Regards
Dieter (alias Fernando)

@Fernando Thank You

Yes I installed and booted with this being only drive present.
Yes when using Rufus I chose the GPT with UEFI.
Yes Boot Manager gave UEFI option as well as legacy option to boot…and yes I chose UEFI.
Yes the hidden EFI partition was installed onto the NVME SSD again was only drive present at install and I seen a third partition.

I have already added the 3 mods to the F2 but have yet to flash.I will gives results of success or not after I flash again.

Thank You.

@Harry

After installing Windows 7 did you boot from PATA SSD1/Samsung PM961 or "Windows Boot Manager"? Booting from PATA SSD1/Samsung PM961 will not work. You must select "Windows Boot Manager" as the bootable drive in BIOS and/or the Boot Manager.

@Paulos7
I think when I did the original flash and boot the Windows boot manager appeared but after installation of win 7 and reboot it disappeared and only have UEFI Samsung option, no windows boot manager appears in Bios or Boot Manager.

As Far as the adding three mods and flashing from the GA-990FX Gaming from my previous post…I used the @Bios Tool again just re-flashed again and it appears to be successful…OS(win 7) booted up no issues so far and now I will have to watch and see if the system hang continues. After re-flash I just noticed that I now have a Sata SM appearing as drive option in Bios and Boot manager. Sorry adding this stuff as I think of it…I noticed when using using the original flash with the NvmExpressDxe_3 when OS was loaded there appeared to be a noise moving through the display, not highly noticeable but there and I should have included my video adapter in my original post, my bad. It is a Msi Geforce GT 710 2gig card and I mention this because since the re-flash the noise is no longer present


I been reading through the forum for awhile but I have not stumbled across any post reporting a successful bios mod on the older non-UEFI boards, I have a Asrock X58 extreme I7-960 sittting on it I would love to move into UEFI but not being Gigabyte Dual Bios, I am not willing to risk it without some solid confirmation it could be done.

Did you add the 3 extracted NVMe modules additionally or instead of the NvmExpressDxe_3 module?

Hello, I am out of ideas looking for some help!

I have tried every possible exception that I can think of to try and get my ASUS Gryphon Z87 machine working on Server 2008 R2 (Windows 7 kernel of course) with a PCIe SM961. Please let me know if there is anything left to try because I am at a loss. What I was trying to do is simply clone my existing system to this drive and have it magically be bootable and I really don’t see what the issue is as I have used every possible obscure solution across the Internet that all of these people post and theorize ‘work’ (when they actually in real life don’t).

Already preinstalled KB2990941 and KB3087873 along with the Samsung NVMe Controller 2.4.7.0

Using GRYPHON-Z87-ASUS-2103.CAP; Modified twice with insertion of NvmExpressDxe_3.ffs, one attempt using MMTool (In the Volume 04) and one using the UEFITool (also under the DXE Driver section).

I have also tried extracting the uncompressed “Nvme.ffs” “NvmeSmm.ffs” and “NVMEINT13.ffs” modules from the Gryphon Z97 just because I figured well hey, they couldn’t change THAT much, right? Just FYI, these modules do not work at all.

The NvmExpressDxe_3.ffs - Modified BIOS does display the “PATA SS:” drive in the BIOS so it at least ‘partially’ works.

Before cloning, tried the “fix_hdc.cmd” from Hirens’ in order to wipe out all HDD controllers and put the OS back to IDE mode before cloning. Neither attempts worked. I don’t even know if, but this was logical for me to try so that AHCI drivers would not be interfering.

I tried cloning my old system two different ways using Clonezilla sector-by-sector copy and AOMEI, both having the same results.

All attempts were done under manually selecting “PATA SS:” under the “Boot” menu:
- Under CSM enabled and Legacy OPROM First, the SSD is attempted to boot 3 times, the screen stays black but the cursor advances ~10 or so lines to the right and down then restarts at the beginning top left. No additional text is displayed.
- Under CSM enabled and UEFI OPROM First, the SSD is attempted to boot once, the screen stays black and cursor does not advance and then reverts back to the BIOS screen.
- The system will not boot at all with “CSM Disabled” as the BIOS reports that “some bootable devices are imcompatible” and recommends to enable CSM.
- Changing the Secure Boot settings between UEFI and “Other OS” does not give any benefit/detriment either way.

I also tried booting both in Legacy and UEFI modes to my Server 2008 R2 install disk and loading the Samsung NVMe driver (which makes the drive visible) but in either case, the installer reports that it can’t install because “Windows cannot boot from this device, please enable the controller in the BIOS”.

Also, no, please do not tell me to install Windows 10, obviously I know that it will probably work but I do not want to use it and I never do want to use it. I like my Server 2008 R2. If it can’t be done, it can’t be done. I just want to raise the attention of this not working so that genius Fernando is aware and maybe would find some solution :slight_smile:

Inserted the 3 modules only, minus the NvmExpressDxe_3 mod.

@Kohina :
Welcome to the Win-RAID Forum!

The fact, that a disk drive named “PATA SS” has been detected by your NVMe modded BIOS, indicates, that the insertion of the NVMe module was perfect and your system is able to boot off the NVMe SSD.
The cloning procedure doesn’t work, because the boot procedure of the cloned OS partition has not been managed by an NVMe driver and the connected Controller has not been an NVme one.
So if you want to get Windows Server 2008 R2 installed onto your NVMe SSD and to boot directly off the NVMe SSD, I recommend to do a clean install of the OS according to my guide (= start post). Since your desired OS doesn’t have an NVMe driver in-the-box, you will have to integrate it into the OS iage.

Regards
Dieter (alias Fernando)

No expert here, not using the same board,Using win 7 not server 2008 R2 and installed not cloned but I was reading through your post and noticed a few things different…I used the NvmExpressDxe_3 mod initially and also got a listing for a Pata ssd1 and windows boot manager after I installed this stuff disappeared and instead I got a UEFI Samsung with serial(Samsung PM961) but I first did get a windows boot manager option as the Pata ssd1 would not work as boot option.I then installed(OS) but when reboot time came for install,I believe but not sure I had to choose windows boot manager. But if this is not showing up in your Bios or boot manager then look for a samsung reference. The biggest difference I noticed was when you cloned you disabled the ACHI and I only mention this because that communication protocol has caused me nightmares in the past on windows installs and if you changed the way you initially set it up I could see it hanging and crashing…I left mine set to ACHI enabled and native Ide on ports 4 and 5. No I do not think this will help you but I am pointing it out as maybe a possibilty…Also if the bios is reporting a PATA SS I would think there would be a another to the drive if not under Windows boot manager or Samsung maybe some obscure reference.

IMAG00242.jpg

Well, I followed the instructions and made a GPT-based Server 2008 Bootable USB drive with USB3.0 controller drivers, Samsung NVMe driver and KB2990941 and KB3087873 integrated using NTLite but no change from the originally reported problem when completely disabling CSM.

Yeah I don’t know at this point, I think my motherboard might be screwed up or the Server 2008 R2 install is incompatible with the board’s UEFI system and I don’t expect an answer, it is just disappointing. The board itself does not support full secure UEFI mode when booting into a USB-based or DVD-based Server 2008 R2 install for whatever reason, maybe the BIOS and/or board is just crappy and nobody bothered to make it 100% right. During the Windows 7 colored logo ‘coming together’, the machine reboots and reports:

“The current BIOS settings do not fully support the Windows UEFI mode.”
"The CSM (Compatibility Support Module) settings have been changed for better compatibility.

I already tried removing every component one by one, literally all except for the PCIe SM961 including the videocard (Used the onboard iGPU) producing the same error.
I know it is not the NvmExpressDxe_3.ffs module as I reflashed the BIOS with stock GRYPHON-Z87-ASUS-2103.CAP and got the same problem.

So I basically give up unless anyone has any possible reason why this error is happening or maybe knows if a previous or differently modified BIOS would be more compatible. I know it’s unrelated to this topic. I assume the answer is simply that Server 2008 R2 doesn’t support this particular board’s full secure UEFI mode (and maybe others as well). Probably Windows 10 does but I have no means to try it and I do not want to anyway.

I will just stick with the PCIe SSD for use as a secondary program drive in Server 2008 R2 which it indeed does work with/without the BIOS mod (and KB2990941 and KB3087873 installed, of course). Thanks for all your help.

@Kohina :
To find out, whether it is your self-modded BIOS, your specific BIOS settings, your hardware configuration or the Windows Server OS, which is responsable for your problems, I recommend to do the following:
1. Attach your currently in-use modded BIOS file (compressed as *.ZIP or *.RAR archive). Then I will do a look into it.
2. If the BIOS file seems to be ok for me, try to get Win10 installed according to my guide.

“https://social.technet.microsoft.com/Forums/en-US/a6679550-a343-463c-9301-1bf9706ad9af/howto-install-2008-r2-on-uefi-systems-using-gpt-disk-using-mdt-2010-with-update-1?forum=mdt” …Don’t know if you have already been here but if not might want to check it out. Also I was reading through your post and following your method and would suggest a few other ways…First I would use the USB 2.0 as the USB 3.0 is not native to the older Windows and seems to be a pain. I would use your NTlite to inject the hotfix’s but then I would take that image and try MSI Win7 SmartTool because like you pointed out the Server 2008 R2 has that win 7 kernel so it might pick it up? if so then I would use it to create another ISO with the NVME drivers added there and then I would take that image to rufus and create your USB 2.0 GPT with UEFI install drive. The one thing I don’t really have knowledge of is the CSM setting in Bios because I do not have that specific setting in my Bios but if your disabling it and things are not working maybe you should not disable it. these are just suggestions and I am trying to learn and maybe possibly even give something back along the way. This is Fernando’s Bus and I am just a passenger :slight_smile:

Whoa thanks Harry! I didn’t actually look too much into the Windows side of things, thank you. That post has basically exactly the issue in KB975535, in fact literally THE error and there is KB979374 too!

I will work on this for awhile, you have gave me new hope.