I had an m.2 AHCI based SSD (SM951) initially but moved to an NVMe based Samsung 960 Pro via a system image restore. That appeared to work great that day with no real issues. However on the next day on a cold boot, the SYSTEM_CHECK BSOD hit me as though my new SSD was somehow failing a machine check in UEFI when loading the OS, which is Windows 10 Pro x64 in this case.
My system setup: SATA 1 Controller (RAID mode): 2x HDD in RAID1 for data and bulk file storage like music, ISOs, etc... there aren't any OS files here just data drives.
SATA 2 Controller (AHCI mode) : 1x Samsung EVO 840 500GB, 1x Samsung EVO 850 1TB (both are program drives, 1x for games, the other for my video editing software). There is also a Blu-Ray burner on this controller... as I mentioned, I edit video so I usually burn copies.
CPU : Intel 5930k (Haswell-E Core i7) Memory : 32 GB g.skill 3200 Gfx : ASUS STRIX GTX1070 oc
My machine would eventually let me into Windows after several resets and it would run fine for that session. One quirky item that I noticed was the the 960Pro was showing up in Samsung Magician as connected via PCI-E 2.0 x4 instead of the expected PCI-E 3.0 x4. No combination of BIOS settings to the NB-PCIe config, Fast Boot, Secure Boot or CSM helped with the issue. I then went to Intel's site to see if there was any chipset updates is IRST version that conflicted with NVMe and found this article.
The article is old but it listed out various mobo brands and models and the required settings to get the Intel NVMe SSDs to work well in them. it is complete with BIOS screenshots and it even included my board. I also read the recommendation that one should ALWAYS clear the CMOS before trying to boot with a new NVMe SSD installed. I cleared CMOS, set the BIOS per the linked document and my issues have gone away. I boot without fail now.
An added bonus attributed to clearing the CMOS is my 960 Pro now shows up in the software as connected via PCI-E 3.0 x4.
Hopefully this helps others struggling with this. The document covers an OS support list as well...
UPDATE : well applying my CPU OC even with a retained BCLK of 100 results in Samsung's Magician to show my m.2 slot connected at PCIe 2.0 x4 and not PCIe 3.0 x4. I will be benching the speed of the 960 Pro to see if it is just Magician being stupid or if there is actually a problem. Any tips on that issue would be great. However my BSOD issue is still a-ok.
Many thanks for posting this, I've been battling with the exact same issue on an X99-PRO board with a 960 Pro SSD on and off for a couple of weeks now.
After purchasing the 960 I followed the usual steps to install Win 10 in UEFI mode and all went seemingly well with none of the well-documented issues that have plagued NVMe users in the past. Windows installed and everything was fine up until first reboot, when I received the dreaded SYSTEM_CHECK QR-BSOD. Restarting the machine following the Windows error then brought up an unexpected "OVERCLOCK FAILED" BIOS error.
Given that the system was overclocked (but not to any extreme) I took this at face value and reset the BIOS defaults. Windows booted fine after that so I went through the settings one by one until I found the failure point - Secure Boot. Enabling CSM allowed Windows to boot but this was frustrating as the system had been previously running happily in pure UEFI mode (and overclocked) on an MX300 SSD without a single issue. And as for the OVERCLOCK FAILED message, this was possibly the most misleading error message possible as obviously you're going to start looking at other possible avenues - such as how the OC setup could be influencing the PCIe bus (which was running at standard frequencies anyway), and therefore affect the NVMe, for example.
What I couldn't understand was why while everything was UEFI compliant, including the 960 Pro, I couldn't reliably boot without CSM enabled. From cold it would occasionally boot successfully but SYSTEM_CHECK would pop up on a restart. And, given the 960 series is still reletively new, I couldn't see why there would be a problem with Samsung's drivers being fully UEFI compliant, especially as others were using 960s without any of the issues described here.
The one thing I didn't do was a CMOS reset, and now you've mentioned it it makes sense - and it's odd that such a useful piece of information isn't mentioned more frequently as there are plenty of folks out there struggling to set up NVMe for their first time.
Anyway thanks again, it's nice to find an exact solution after reading so many NVMe related posts that make no mention of this basic step.
Quick update - been testing for a day and so far so good, not a single boot or restart failure. And, Magician reports the interface as PCIe Gen 3 x4 with the system running at 4.2GHz (BCLK 100 x 42) in Manual OC mode.*
So it all seemed to work fine for a few days. And then it didn't. I purged the CMOS again and it all seemed okay for a couple more days and then the CHECK_MACHINE BSOD reappeared. As before I could boot straight into BIOS and then come straight out again with no changes made and the PC would boot just fine. Incidentally, hooking up the case RESET connector to the DirectKey header on the mobo saves a lot of time if you're frequently accessing the BIOS while troubleshooting, overclocking etc.
The fix? Disabling CPU C-states has nailed all my problems. No more BSODs on startup or reboot, no more OVERCLOCK FAILED messages and no more problems booting pure UEFI with SecureBoot on my Samsung 960 PRO NVMe.
There are other more detailed posts regarding C-states on the ROG forum, all you need to know right now is where you'll find the C-states setting...
ADVANCED > CPU CONFIGURATION > CPU POWER MANAGEMENT > CPU C-STATES
Disable it and your issues should be a thing of the past 😄