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

Hi,

I was wondering if anyone tried that with ASUS Z87-WS Rev 1.04 ?
It would be awesome if somebody provided bios with mod :slight_smile:

@Lez :
Welcome to the Win-RAID Forum!

You should do the required work yourself. The BIOS modification is much easier than you may think (if you want, I will do a look into the modded BIOS), but the critical point is to get it properly flashed.

Good luck!
Dieter (alias Fernando)

@Lez

I own the Asus Z87-Deluxe motherboard and did this procedure approx 3 years ago.
The Z87-WS similarly should be a no brainer using the FLASHBACK procedure, check your manual for the correct USB slot on the back of your motherboard.
After creating a bootable USB DOS FAT32 drive with the modded bios inserted, hold the flashback button for 5 seconds and let continue blinking until it stops. My board takes about a minute to do the actual flash procedure. The blinking light speeds up just near the end of the flash procedure. Reboot AFTER the blinking light STOPS COMPLETELY! Reenter UEFI/BIOS and enter your set up parameters, ensure that CSM is DISABLED and OS is set to OTHER. You want to use the UEFI part of this mixed BIOS! Set up ALL your drives as GPT and install windows 10 per normal procedure. Obviously make backups of all your drives beforehand… You should be good to go!


Fernando’s NVMe UEFI/BIOS upgrade is dead simple if you can follow instructions.
I came back after 3 years and upgraded to the NvmExpressDxe_3 in preparation of putting in an M.2 Samsung 960 Pro SSD;
after enjoying the 950 Pro for some years. Worked like a charm.

Using the UBU tool vUBU v1.69.14-fixed with UEFITool v22.3 I also upgraded the following:
EFI IRST RAID for SATA 12.7.0.1936 ----> 14.8.2.2398
EFI GOP Driver Haswell 5.0.1036 ----> 5.5.1034
EFI Intel Pro/1000 UNDI 5.4.19 ----> 6.6.04
EFI Realtek UNDI 2.020 ----> 2.043
CPU microcode 19 ----> 23

Parenthetically, the above UBU works with MMTool v4.50.0.23 or v5.0.0.7.

Result: Very stable and reliable NVMe boot drive and system.

Fernando and company give good sound advice so the NVMe upgrade is highly do-able.
I did the NvmExpressDxe_3.ffs mod first and then applied the UBU tool second to get the rest
of the updates.

Cheers and thx to all the computer spelunker contributers who make old systems NEW!

Hans

Hi, thank you for the guide.
I am trying to install Windows 10 on Samsung 960 Pro SSD on ASUS P8Z77-V deluxe motherboard. The SSD is connected via a PCIe adapter. I have tried both the second gen3 slot and the bottom gen2 slot. Both exhibit the same behavior when trying to install Windows 10.

I have inserted the module using MMTools and flashed it successfully with AFU, and after a CMOS reset the BIOS shows PATA SS: or PATA SM: (somehow it changes from time to time) as a boot device.
However, after booting from a windows 10 installer USB stick, whenever I choose the drive in Windows 10 installer and click next, the installer will say “Couldn’t create a new partition or locate an existing one.” If I delete all partitions, choose the drive and click next, the installer will go to the next step but then say something along the line of “Windows Installer can’t prepare the computer to boot for the next stage of installation. Please try again.” and go back to the start installation screen.

I also tried to access the formatted drive in the UEFIShell that came with Clover, but the mapping shows the 960 pro drives with a question mark in the path ( http://puu.sh/zuu9S/718f0646ed.JPG ), and ls gives the error "No such file or directory FS0:/"

Is there something wrong with my configuration? How can I get windows to install on the drive?
Thanks.

Reply to dennis

Try the FLASHBACK method with your UEFI/BIOS modded file which your board supports.

Also ensure that the NvmExpressDxe_3.ffs is after the CSMCORE header with the Aptio IV type bios, and place at the end of the volume as per instructions.
I’ve modded a sample for you to check as attached. The Aptio IV bios from Asus has several volumes.

Ensure the setting CSM (Compatibility Support Module) in the boot settings of the UEFI/BIOS is “Disabled”. Also set Secure Boot OS to “Other”. Reboot computer, enter UEFI/BIOS again.

You might also try pre loading the NVMe Boot Driver prior to installing the OS so you : >“pure” 64bit Samsung NVMe Driver v2.3.0.1709 WHQL for Win10 x64< (>MIRROR<)

Recommended AHCI/RAID and NVMe Drivers

may increase the probability of the OS finding your drive…

Look for the “WINDOWS BOOT MANAGER” to set your first boot priority in the UEFI BIOS, that will be the correct NVMe drive. ie your Samsung 960 drive

See my post #356 of this thread for pics…on a Samsung 950 PRO
Also I used the M2 PCIe SSD Adapter X110

http://www.addonics.com/products/ad2m2s-px4.php

adapter which supports both NVMe and Sata SSDs but in DIFFERENT SLOTS!
Check you’ve used the right slot…

Good luck

Hans

mod_NVME_P8Z77-V-DELUXE-ASUS-2104.zip (4.55 MB)

@hancor
Thanks for the quick reply.
Turns out it’s just the Windows installer refusing to install (maybe because it can’t see the drive in the BIOS). I borrowed a Z170 chipset computer and installed Windows 10 on 960 pro with that, then put the drive back into my machine and it booted successfully.

@dennis97519 :
Welcome to the Win-RAID Forum!

Since I have spent a lot of time to find out the way how to get full NVMe support for older systems and to write a detailed step-by-step guide, I expect, that the interested users will carefully read the start post of this thread and follow the related procedure, before they are asking for help.
Questions:
1. Where did I recommend to insert the NVMe module by using the AMI MMTool?
2. Did you follow my advices to disable the “Fast Boot” and “Secure Boot” options within the BIOS?

Since your ASUS mainboard supports the “USB Flashback” feature, it would have been much better/safer to use this BIOS flashing method (look >here<).

You obviously forgot to create a suitable partition as part of the required GPT partition scheme.
This would have been the corrrect procedure, when the OS Setup has asked you where to install the OS:
1. Delete - one after the other - all shown partitions of the target Disk drive.
2. Create a new partition on the target Disk drive, which offers enough space for the future system drive (drive C:).
3. Then click onto “Next”.
The rest will be done automaticly.

Regards
Dieter (alias Fernando)

Thanks for the quick reply.

Sorry for leaving the details out. I actually tried to follow the guide on linus tech tips forum first, seeing that Windows didn’t install I found your guide and decided to try the NvmExpressDxe driver instead of the AMI Nvme driver. That’s why I used MMTool and AFU.

I tried disabling Fast Boot, but a lot of the boot options disappeared as if disabling fast boot is enabling it, so I changed it back. I disabled Secure Boot.

I have tried over 10 times in
1. deleting all partitions on the target drive or diskpart clean the drive then convert gpt
2. either create new partition or directly click next on the unallocated space,
and all attempts have failed. Also, clicking on unallocated space will make the installer automatically create the partitions required for installation, and this was suggested at many forums to solve the “Couldn’t create new partition” problem.

So I think it’s just the installer unwilling to work on an old motherboard to install in an NVMe drive, since everything installed smoothly on my friend’s Z170 motherboard.

This doesn’t matter, because my advice to disable the “Fast Boot” option is only valid for the OS installation (to enhance the chances of a successful OS installation onto the NVMe SSD). Once the OS is up and running, the user can re-enable the “Fast Boot” option.

Which tool did you use to create a bootable USB Flash Drive containing the desired Win10 Image?

Modded the latest bios for the MSI Z77a-GD65 the other day (E7751IMS.AC3 , https://forum-en.msi.com/index.php?topic=163874.0 , the beta bios that has been accepted as ‘final’) and installed it on a system which did not yet have an nvme drive installed. For the first boost it seemed fine, but on the second boot it seemed like it may have trashed the UEFI mapping table, and on boots after that it would spit me directly to UEFI shell until I booted up the recovery bios and flashed back to the official build.

The bios modding itself had gone flawlessly, with the module installed where expected and the bios reopened and verified. Any idea why things got corrupt? The system now has an nvme drive in place, and I’ve just been using it as a storage drive unless I can figure this out.

@serverror :
Welcome to the Win-RAID Forum!

To be able to help you, I need some additional information:
1. After having flashed the modded BIOS, did you clear the CMOS and recover your previous BIOS settings thereafter?
2. Before re-flashing the original BIOS, did you see a system drive named “PATA SS” listed within the BIOS?
3. How did you get the OS installed onto your NVMe SSD? Has it been a fresh install after having deleted all existing partitions or did you clone your previously used system drive?

Regards
Dieter (alias Fernando)

Hey Fernando,

CMOS was cleared on image flash, and I did not attempt to recover my BIOS settings, but instead set similar values manually and disabled CSM. I did not disable secure boot/fast boot yet as the NVMe drive was not yet installed and still in transit. Could that have caused a problem?

I don’t believe so, but I didn’t check closely. Would it have appeared regardless of the NVMe drive not being installed yet?

I hadn’t gotten that far yet, this was a bios mod flash in preparation for an NVMe drive still in transit, so no OS install yet.

@serverror :
Provided, that you have modified your BIOS correctly, I doubt, that your problem has been caused by the modded BIOS itself. If you want, you can attach it as *.ZIP or *.RAR archive and I will do a look into it.
Once your NVMe SSD is ready for the insertion, I recommend to re-flash the modded BIOS, to clear the CMOS and to recover the required BIOS settings. Absolutely important: You have to allow the booting in UEFI mode and should DISABLE the “Secure Boot” and “Fast Boot” options.
After the insertion of the NVMe SSD, enter the BIOS and look for the didk drive named “PATA SS”.
As last step I strongly recommend
a) to remove all HDDs/SSDs except the NVMe SSD and
b) to do a fresh install of Win10 in UEFI mode by using an USB Flash drive, which has been prepared by the tool Rufus.
Look into the start post of this thread regarding the details.

Good luck!

@serverror :
I have same board with the same bios modded as you. It is working now for around two years in conjunction with a Samsung 950 Pro as Win10 boot and system drive.
The UEFI does not list the SSD if it’s empty. You need to install Windows in UEFI Mode, then UEFI will show you the Windows Boot Manger as boot option.
My relevant bios settings are:
Advanced: Windows 8 Configuration: All Disabled
Boot: Boot Mode UEFI
Boot: Boot Option 1: UEFI Hard Disk: Windows Boot Manager

@sandok :
Thank you for the data point and settings, that inspires some confidence.

No, it has a different arrangement of components on the board. It also has an extra ethernet port dedicated to remote management.

I can confirm that the Optane 900p is bootable on X79 with the BIOS mod.

I successfully modded the Asus P9X79 WS/IMPI board and another Asus P9X79 WS board. I will offer the modded bioses in the appropriate forum for others to use if they wish. The IMPI board unfortunately has the Overclock locked to a password by the OEM. Even changing the bios chip did not get rid of it so the only way to overclock is from the desktop interface. At least it boots to Nvme now though. Both of these boards showed the PATA SS in bios after successful flashing but indeed would not show the Nvme as a boot device until Windows was loaded on it. I also had to disable the secure boot features until AFTER the loading was done.

Hi,

I think I may have found an alternative way to boot from an Nvme drive on an non-uefi system. First I should say this idea has not been tested and probably will not work but it would be very interesting to say the least to test out. So basically I found a utility called ‘Efirom.exe’ that belongs to the edk2 toolset. What it does is take an efi driver, like our nvme_expressdxe driver, and convert it to an option rom. The only thing is you have to give it proper device id vendor id for your drive and probably set it to pci 2.3 spec. If it works you would have to set up a mbr type partition. Forget about Uefi of course not going to happen. I havent tried this yet on account of not having a spare nvme drive. Got my doubts though wether it would work but probably worth a try!

@davidm71 :
Your idea regarding a possible new option to get an NVMe SSD bootable with a non-UEFI system is brilliant. To make it visible for interested users of an old system without an UEFI BIOS, I recommend to start a new thread about this specific topic (I don’t believe, that they will read all posts of this thread, which has been designed for users with an UEFI BIOS).

What you certainly mean are the HardwareIDs of the SSD’s NVMe Controller.