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

The checksum-8 of the FFS has been corrected (to F8).

@Fernando
Well, I tried the “clean” module and it would not detect my 960 EVO in the BIOS or the boot menu (F11). The 960 EVO was available in Windows 7 as storage, even though it was not apparently seen in the BIOS. I had previously used MMTools 4.5 to insert NvmExpressDxE_2.ffs (after removing the network boot related files) and that has worked fine for the last two months. So I decided to do a fresh BIOS mod using UEFITool to insert the NvmExpressDxE_2.ffs module. This way I could clearly determine if it was the NvmExpressDxE_3 module that was the problem or something else in the modding process.

Again, using UEFITool I was not required to remove files to make room for the NvmExpressDxE_2.ffs module. After flashing this BIOS I had “PATA” in the Hard Drive boot priority section, and “Microsoft Windows” in the boot order. I don’t recall seeing “Microsoft Windows” in the boot order, but it was there in the boot menu (F11) also. After booting into Windows 10 and back into the BIOS, it now showed “Windows Boot Manager” (no longer “Microsoft Windows”) in the boot order and in the boot menu (F11). So, something is not right with the NvmExpressDxE_3.ffs module. If you figure something out and need me to test it again, I will.

Also, UEFITool was much easier to use than MMTools. At first I thought it would be more difficult (probably because of the learning curve), but it worked very well. Thanks for your UEFITools tutorial/screenshots, and thanks again to CodeRush for UEFITools!

@Paulos:
Thank you very much for having taken the time to test the NvmExpressDxE_3 module and to give us your feedback about your test result.
I have no idea why it didn’t work with your system.

@all:
If anyone else should be interested in testing the newest NvmExpressDxE module from the EDK2/Clover team, I attach the related module in different variants (2 *.ffs files with different GUIDs and the “pure” *.efi file without header).
Please let us know your test results.

NvmExpressDxE_3_GUID-5BE3BDF4.rar (14.6 KB)

NvmExpressDxE_3_GUID-9A4713C2.rar (14.6 KB)

NvmExpressDxE_3.rar (14.6 KB)

Also one thing about the NVMe module and BIOS settings: Everything runs fine with CSM disabled completely and every FastBoot option turned on. Board: ASUS Z87 Gryphon.

@e.v.o :
These "Fast Boot" and "CSM" settings may work fine with your specific system, but this is obviously not valid for everyone.
That is why I recommend to turn off the "Fast Boot" option completely while trying to get the OS installed in UEFI mode onto the NVMe SSD. Once the OS is up and running fine, the user can test other "Fast Boot" settings.
Regarding the "best" CSM settings everything depends on the individual hardware configuration (especially the UEFI compatibility of the discrete graphics card). AFAIK the user has the best chances to get a bootable NVMe SSD by enabling CSM and set the "Storage Option ROM Policies" to "UEFI prefered".

I know. This is why i wrote my specific board behind it. :wink:

Greetings everyone! I am very nooby in EUFI modding section, so I wanted to ask the veterans if I am doing everything okay. So i folowed the tutorial in the first post, i used the version 2, this is the bigger file i guess, and read the last 10 comments and found out that there is a version 3, wich has 3 different package, I used the .ffs file and there is a .efi file. So i have modded my bios using version 2 .ffs, but do i need to do anything with any .efi file? I haven’t got any not enought space error. I tryed using the latest version of UEFITool, but it did not allow me to use insert option and also gave me some weird errors. So if someone could confirm that i’ve done everything okey, i could flash this new modded bios sooner :slight_smile: Sry for my bad english and thank you for your time!
Edit: Asrock released a beta bios called 1.90M. I am currently using it and i can only boot using clover-boot method, because my intel ssd does not apear under boot menu.

Untitled.png

@speter2 :
Welcome at Win-RAID Forum!
According to your screenshot you have inserted the NVMe module absolutely correctly.

No, the *.efi file is only usable for users, who want to update an already existing NVMe module.

The name of the NVMe SSD will never appear within the Boot Menu, but nevertheless you will be able to boot off the NVMe SSD. The related Boot Menu entry must be "Windows Boot Manager".
Regards
Dieter (alias Fernando)

I can’t see the windows manager entry from boot menu using official beta bios. I will try to flash this modded one made by me using your tutorial. Is there any chance that i will brick my mobo? Ohh and thank you for the fast reply :slight_smile:
Edit: i flashed the new bios and the Microsoft Windows apeared under boot menu. I enabled UltraFast boot and it booted just fine. Thank you for your help and for this helpful tutorial. :slight_smile:

Hi,
First off - Brilliant work!

I’m in the process of converting about 25 Windows 2003 servers to Windows 2016 and my plan was to put a Samsung 960 Pro m.2 on a StarTech PEX4M2E1 card and load Widnows leaving the LSI SAS array alone.
The Motherboard is a Supermicro X9SCA-F (https://www.supermicro.com/products/moth…204/X9SCA-F.cfm)
It’s a C204 based \ LGA 1155 with a E3-1240 Xeon Processor
So far I’ve followed your instructions and added the FFS and flashed the server, but I cant get it to boot :frowning:
I’ve tried your normal, compressed, a DxE_3 in a current post, even exported some Nvme\NvmeDynamicBody from a newer X11 Supermicro bios with no luck
The only difference I see with your ffs is an additional "PATA: SS" in the boot list when in legacy\Non Efi mode?
If I boot into the EFI Shell, your driver is listed too
Windows does see the m.2 (even without modding the bios) but tells me it cant install windows on it.
I did force install windows on it in a newer machine, but still it wont boot back in the X9

Any suggestions?
Appreciate it!

Kind Regards,
Mike Pisano - Long Island NY

Thanks Dieter,

1) I will double check Fast\Secure boot
2a) 2016 Media burnt with rufus,
2b) m.2 has a 2016 bootable OS on it installed on a from another Motherboard

I would assume the OS should begin booting… It might bluescreen for the motherboard is different, but since the HD controller is the same (nvme) it might PNP.
Either way, the m.2 OS install is just to test booting as I flash the bios.

Appreciate the help
Mike

EDIT by Fernando: Unneeded blank lines removed (to save space) and quoted post personalized

@mPisano1 :
Welcome at Win-RAID Forum!

Here are some additional tips:
1. BIOS settings: The "Compatibility Support Module" (CSM) should either be completely disabled or enabled with full UEFI support regarding the "Storage OpROM Policy".
2. Hardware configuration: Only the target NVMe SSD should be connected tothe mainboard.

Good luck!
Dieter (alias Fernado)

I finally got my SM961 256GB NVMe SSD. BIOS modding went right, I had no issues during install. The linear read speed almost reaches 3GB/s, the other speeds are slightly lower than expected. However, that’s not a problem.
But in the past 2 weeks, after the modding, my PC randomly froze. The screen just shows a black nothing. No BSOD and any other that may help. I looked up Win logs, but nothing again. This reinforces the suspicion that there will be a hardware problem.
I encountered this two times on Windows 10 and once on Windows 8.1, so it might be OS independent. If I remember right, one time the SM961 was a boot device (W10), another two times just a secondary drive.
My RAM is neatly overclocked from 1600MHz to 2400MHz. I had similar problems when the voltage was not enough. Forgetting this, because I solved by increasing a bit and had no issues in past months.
Two days ago, I had to unplug the computer due to the storm. When I tried to turn it on, it did not react to anything. I had to reset the CMOS and load the setting that worked before. The same as it was before reset, and until now it works fine. Weird. Maybe the fast boot feature after AC loss…
So after all, now I don’t know what to do with random black screens. Any idea?

Thx Fernando and the others, who made this mod possible.

Edit: I’m happy because I can boot between two Windows 10 (one of them is on the NVMe SSD), Windows 8.1 and an Ubuntu without unplugging any drives. Which was written in the first post, that I can’t do this.

EDIT by Fernado: Unneeded blank lines removed (to save space)

@gabro0 :
I would start over and remove all mods including the nvme bios mod and any overclock. To me it sounds like a video card issue. Anyhow found these tips on Overclock.net:
1. Remove all overclocks, reset CMOS.
2. Update your chipset, windows and video drivers.
3. Check the CPU temps and see if that is throttling.
4. Check the GPU temps and see if that is throttling.
5. Remove the video card and run on iGPU and test for stability.
6. Test with another PSU.
7. SSD/HDD may be suspect, disconnect all but the one running your OS.
8. Install a fresh copy of Windows on a trusted drive and test for stability.

EDIT by Fernando: Unneeded fully quoted post replaced by directly addressing to its author (to save space)

@davidm71 :
Why do you propose to remove the inserted NVMe EFI module from the BIOS?
If you suspect the discrete graphics card as source for gabro0’s problems, this action doesn’t make any sense for me.

@Fernando ,
Just an extra ounce of caution wouldn’t hurt especially since it seemed like according to his write up that it happened right after modding even though my instincts are saying its coincidence. Also the two could be related.

Your RAM module is gradually degrading, I think. Run Windows Memory Diag (mdsched) once to check for your memory problems.
OFF TOPIC: I have two Kingston HyperX 4GB 1600MHz, which have been running fine at 2000MHz for over 3 years. I think 2400MHz is too much.

Well I’ve been at it for a few day, hacking anything nvme related ffs’s from random motherbords with no success.
“Reboot and select proper boot device"

There isn’t any options for CSM, and only the M.2 is on the PCIe adapter

I’ve tried making EFI setting
"Quiet Boot” to Disable
"Launch Storage OpROMPolicy" to UEFI frst, and UEFI Only - no success
"Boot Option Filter" to "UEFI and Legacy"

Also note if I remove Legacy then the PATA: SS goes away and it boots into the Shell

If I pull the Pcie board with the M.2 on it and put in a newer machine it boots fine, but wont on this X9 board :frowning:

I’m guessing it’s missing another DXE - possibly Filesystem or Bus related?

There was another person (around page 20) that had no success with X9 too… starting to think this is not an option.

Are there any other ffs that should be imported.

No, only the NvmExpressDxE module is required.

I’ve been poking around in the EFI shell…
in the devtree I can see Ctrl [148] Samsung SSD 960 Pro below NVM express Controller
and below it
[159] PciRoot (0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)/?/HD(1,MBR,0xe861b6b70x800,0xfa000)
[15A] PciRoot (0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)/?/HD(2,MBR,0xe861b6b70xfa000,0x3b8e6000)

These are also in the Map as blk0 and blk1 ad null alias… but I do not see any fs0, or fs1
and if I map and dir them, I get
ls/dir: Cannot open current directory - Not Found

Mike

@mPisano1

Whats an X9 board? You mean X79? Why don’t you post your bios file. Seeing the PATA SS is a good sign. Also just how are you getting into the UEFI shell? Do you have a ShellX64 efi file on a usb drive? Also if you pull the m.2 card you say Windows loads so you know you have a live windows install on the drive? Sure Windows is installed in UEFI mode? The single NVMExpress dxe driver mod method does not require any other mods in the bios and you will never see the drive registered in any boot menu except the UEFI boot entry for the Windows boot manager. So if the NVMExpress Dxe driver is loaded you should see it in the Shell environment by doing a ‘map -r’. There is also a way by typing ‘load nvmexpressdxe.efi’ in the shell to check that the driver is loaded or even load it as an ‘efi’ file inside the shell environement. From there a map -r should see the partition.