Monthly Archives: December 2018

Booting to Samsung 970 EVO NVMe M.2 SSD on Asus B85M-G Motherboard

Samsung 970 EVO NVMe M.2 SSD

Samsung 970 EVO NVMe M.2 SSD

This was my dilemma… I wanted to use a shiny new super fast NVMe SSD on my older Intel B85 chipset based motherboard as my primary boot drive in order to boost system performance. Upgrading the motherboard, CPU and memory wasn’t going to be as cost effective as just adding this, many times faster, storage to my existing system. The machine was pretty fast already; Asus B85M-G motherboard with Core i7 CPU, 32 GB RAM, and a 500GB OCZ Trion150 SATA3 SSD as the boot drive. Despite this configuration, I was still waiting on disk operations with very large files. Some examples are raw images in Photoshop, video processing and rendering, as well as application loading times. It’s funny how quickly one can become accustomed to the speed of an SSD to the point it starts to seem slow again.

I ended up purchasing the Samsung 970 EVO NVMe M.2 SSD drive which boasts read and write speeds of roughly 3 GB/s+. This is about 6 times faster than my SATA3 SSD at roughly 500 MB/s (0.5 GB/s).

However, the Asus B85M-G motherboard is too old to sport a built in M.2 slot. So I also purchased a KingShare NVMe M.2 to PCI-E x4 adapter card that will allow me to use a conventional PCI-E slot with the M.2 SSD. Please note that you will have to use the x16 PCI-E slot as this board does not have any x4 slots that this adapter requires. If you are using an add-on video card in this slot, then this isn’t going to be feasible.

M.2 Installed in PCI-E adapter

Oh how happy was I when these parts arrived? Like a kid on Christmas of course. But little did I know of the hell that would ensue in order to boot my system from this PCI-E card. The main problem is that this motherboard does not support booting from an NVMe drive. There are options in the BIOS for booting to PCI-E. But alas, I was confronted with a BIOS error stating that it does not support the boot device. It would not boot to the new drive no matter what combination of BIOS settings were tried. The Windows 10 setup program as well as Acronis imaging software both see the NVMe drive just fine. Booting into Windows on my old SATA SSD also lets me see and use the NVMe drive as a data drive. However I wanted to fully leverage the super fast NVMe drive as my boot drive to run the system from.

After a lot of Google searching I learned that I am not alone in this. But there is no clear answer for boards this old. There are are quite a few suggested work arounds out there such as using a USB thumb drive loaded with UEFI manager boot software which allows the system to boot to the USB drive and then hand off to the NVMe drive. This did not work for me on this motherboard as the NVMe driver would just hard lock the system while booting to the USB drive. I tried various other methods but the following is exactly how I was able to get my BIOS to fully support the NVMe drive with no USB drive or any other special setup needed. The NVMe SSD now shows up in the BIOS as a boot option along with all the rest of my regular SATA drives.

Note: This should work on many other Asus boards as well, not just the B85M-G.

Disclaimer!!
Follow these steps at your own risk. The author is not responsible for any damage that may be caused to your motherboard by following these steps. You have been warned.

In order for the BIOS of this motherboard to support booting from NVMe drives, we have to install the NVMe driver module into the BIOS. This involves downloading the latest BIOS from the Asus website and then installing the driver into that BIOS file. Then flashing the system with this modified BIOS. And viola! NVMe support built right into BIOS.

Step 1:
Download the latest BIOS from the Asus support site here: https://www.asus.com/Motherboards/B85MG/HelpDesk_BIOS/
Note: You can use any version of the BIOS you want, but I only tested this on the latest version which as of this writing is 3602.

Step 2:
Download the following two files:
NVMe Driver:
https://mega.nz/#!5I8HiIbA!iiE0K-g8uKPI-GA08c0UGp_lsFKNyEpcQcyemdPeH-Y
BIOS Mod Tool:
https://www.chip.de/downloads/UEFITool_74657773.html

Step 3:
Install the NVMe driver module into the BIOS file:
a) Unzip/rar all three files that you downloaded and place them all in a new folder together.
b) Launch the BIOS Mod Tool (UEFITool.exe.) From the File menu, select “Open image file…”.
c) Select the BIOS file you downloaded from the Asus support site and click Open. The file should end with the .CAP extension.
d) From the File menu, select Search.
e) Click the “Text” tab and then enter “DXE” in the search box. (Without the quotes)
f) A large number of results will show in the bottom section of the application. Double click on the first result “Unicode text “DXE” found….” This will bring you to a spot in a long list of BIOS drivers (DXE) that are currently installed in this BIOS file. Maximize the window to see all of the columns.
g) Scroll down and find the last DXE entry right above where it says “Free Space”.
h) Right click on the last DXE driver entry, identified above, and select “Insert after…” Select the NvmExpressDxE_2.ffs file that you extracted earlier and click Open. You should now see the new NvmExpressDxE entry in the list.
i) From the File menu, select “Save image file…”. Give it a meaningful name denoting that this is the modified BIOS file. Click Save.
j) The tool will ask if you want to now open the new file. This is optional but you can do this and then follow steps D through G again and you should be able to see the new NvmExpressDxE entry still in there at the bottom of the DXE driver list. This confirms that the driver was successfully saved into the BIOS file.

Step 4:
Flash the newly saved modified BIOS image to the motherboard. This step proved the most difficult to figure out. The problem is that all of the BIOS update methods will refuse to flash because of a security verification error. As this is a modified BIOS file, this does make sense. But how can we get around this? Other guides say to use the Asus Flashback method but this board does not have that. I even tried using the Crashfree Auto Recovery Tool, but that also refused to flash the modified file. The method I figured out was to use the following steps:

a) Download the ASUS AI Suite 3 software from the support site. This motherboard does not have this as a download option on the Asus Support site so I had to get it from another board’s download section here:
https://dlcdnets.asus.com/pub/ASUS/mb/Utility/AI_Suite_III_3.00.13_DIP5_1.05.13.zip?_ga=2.260643469.1093459202.1545413149-1161538718.1543356867

b) Install the AI Suite 3 software and deselect everything except for EZ Update. The EZ Update is what we need. You may be prompted to reboot.

c) Open the EZ Update app. Select the ORIGINAL BIOS file that you downloaded from the Asus support website. We have to do this first because the modified file will fail the security verification. Wait for the verification to complete on the original file and it will then ask you if you are sure and you are ready to click the “Flash” button. But do not click the Flash button yet!

d) Rename the original BIOS file to something else. (Add “.old” to the end for instance.) Then rename the modified BIOS file that was saved earlier to match the exact name of the original file. We are doing this so as to fool the EZ Update utility into flashing the modified file; As it has already completed the verification phase.

e) Click Flash and then click reboot when complete.

You should now be presented with a newly flashed BIOS screen asking to press F1 to enter the BIOS settings. Go into the BIOS and the NVMe driver should be loaded and allowing you to select the NVMe drive as a boot device. Boom!

After you load Windows or restore your image to the NVMe drive, it is recommended that you install the Samsung NVMe driver into Windows. This will give additional performance and stability, but technically isn’t a required step because the Microsoft provided NVMe driver does work. This driver can be downloaded from Samsung’s website here:
https://www.samsung.com/semiconductor/minisite/ssd/product/consumer/970evo/

I have to say, the difference is very noticeable in my system. Boot times dropped by about 50% and file operations are insanely fast now. Here are the benchmark results using the Samsung Magician software:

Task Manager during the Samsung benchmark: