How to get NVMe support with UEFI BIOS?

NVMe is for accessing Solid-State Drives (SSDs), which are attached through the PCI Express (PCIe) bus. “NVM” stands as an acronym for “Non-Volatile Memory”, which is used in SSDs.

Advanced Host Controller Interface (AHCI) interface has the benefit of legacy software compatibility, it does not deliver optimal performance when an SSD is connected via PCI Express bus. This is because AHCI was developed back at the time when the purpose of a host bus adapter (HBA) in a system was to connect the CPU/memory subsystem with a much slower storage subsystem based on rotating magnetic media. Such an interface has some inherent inefficiencies when applied to SSD devices, which behave much more like DRAM than like spinning media.

NVMe has been designed from the ground up, capitalizing on the low latency and parallelism of PCI Express SSDs, and fulfilling the parallelism of contemporary CPUs, platforms and applications. At a high level, the basic advantages of NVMe over AHCI relate to its ability to exploit parallelism in host hardware and software, manifested by differences in depth of command queues, interrupts processing, the number of uncacheable register accesses etc.

Who will benefit from an NVMe supporting SSD?

  • The latest Windows Operating Systems from Win8.1 up natively do support NVMe.
  • Manufacturers are meanwhile offering new BIOS versions with full NVMe support for their mainboards with an Intel 9-Series or X99 Chipset.
  • Many consumer SSDs with NVMe support are already available or will be available soon.

How to use an NVMe SSD as bootable drive with older systems with CLOVER ?

Clover is a powerful designed boot loader well known from Hackintosh users. It allows to boot and install macOS on a non-Mac computers. Clover also supports booting many other OS such as Windows, Ubuntu and any Linux distributions.

Clover Bootloader supports booting in both UEFI and Legacy modes. Interestingly, it supports UEFI firmware emulation, this allows us to boot into UEFI mode from Legacy mode. It is capable of booting .efi files even if Clover is booted in Legacy BIOS.

How to boot Windows 10 from NVMe based PCIe storage, featuring Samsung 960 EVO M.2 SSD in a Gigabyte Z87X-D3H motherboard ?

Clover has an installer and an ISO file. Its installer only supports macOS, so we just have to use the ISO file to install Clover on USB from Windows and Linux.

Since the Gigabyte Z87X-D3H motherboard doesn’t come with an M.2 PCI-E x4 slot (most off motherboard launched before 2015 will require an adaptor), you will need to buy a PCI-E X4 adaptor. I personally found this one pretty good for the price but you have a lot of choices everywhere on internet.

Requirements

Whatever NVMe drive you buy, you’ll still likely need to meet all of the following requirements, if you plan to also use it as a boot device:

  • UEFI BIOS that supports boot from NVMe
  • an M.2 PCI-E x4 adapter as mentioned earlier
  • BIOS in UEFI boot mode
  • some motherboards also require CSM (Compatibility Support Mode) be turned on.
  • a bootable Windows 10 installation media (USB or a plain optical disc)
  • a plain USB flash drive
  • download BDU (Boot Disk Utility by Cvad) and extract the .zip

Step by step prep for Windows 10 boot from NVMe

  • From Download Windows 10, use the Download Tool 64-bit link to get MediaCreationToolx64.exe
  • Insert a USB 3.0 flash drive and create the bootable install media
  • Open up BDU (Boot Disk Utility)
  • Insert the second USB flash drive
  • Select your flash drive/hard disk
  • Click on “Format Disk”

  • Access your Cloverstick via Explorer
  • Copy CLOVER/EFI/CLOVER/DRIVERS/OFF/NvmExpressDxe.efi to CLOVER/EFI/CLOVER/DRIVERS/UEFI

  • Edit EFI/CLOVER/config.plist with your favorite Editor

Change this value:

    <key>Timeout</key>
    <integer>5</integer>

to something lower like 3 seconds

    <key>Timeout</key>
    <integer>3</integer>

Change DefaultLoader path as follow:

    <key>DefaultLoader</key>
    <string>\EFI\Microsoft\Boot\bootmgfw.efi</string>

You can now reboot your machine and enter your BIOS/UEFI.

Legacy BIOS: Change your boot order. Setup the freshly created stick as primary boot device.
UEFI: If possible, disable CSM or change the Storage Oprom to “UEFI only”. Change your boot order.

Setup the freshly created stick as primary boot device and reboot your computer but don’t forget to attach your Windows 10 Installation media.

You can now boot into the Clover-EFI bootloader ! I ran a few benchmark in order to compare different hard drive performance. If you need any help or want to share your experience, you can contact me over email at [email protected]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.