[Guide] How to get M.2/PCIe connected Samsung AHCI SSDs bootable?

Introduction:
Originally this thread had been started by our Forum member felix, who was not able to get his Samsung SM951 AHCI SSD bootable with his AMD Chipset mainboard Crosshair 5 Formula-Z (you can find his post within the Annex part of this post).
Since we meanwhile know how to solve this problem, I decided to hijack his start post and to offer here some informations, which may be useful for users with a similar problem.

The problem:
Generally it is possible to use a PCIe or M.2 connected SSD with older PC systems with an UEFI BIOS, but as soon as the user tries to boot off such SSDs to get benefit from their performance potential, the frustration begins: The SSD is not available as bootable drive disk, because the required BIOS modules are missing within the original BIOS versions and the mainboard manufacturers usually are not willing to add them.

The solution
The simple solution is, that the user adds the missing BIOS module himself.
After having searched a long time for a universally usable Samsung EFI module, which is compatible with the big majority of UEFI BIOS systems, it was our Forum member xelanaiznac, who found a module named SAMSUNG_M2_DXE within a BIOS, which had been modded by the ASRock Support, and tested it successfully with his ASUS Rampage IV Extreme. You can find his report >here<.
According to several reports given by other users and according to my own test results (look >here<), the simple insertion of this special Samsung M.2 BIOS module into the UEFI BIOS of the user’s mainboard will solve all the boot problems.

Download Link
You can download the already on various systems successfully tested Samsung M.2 EFI module from here:


Note: This special module has been found, successfully tested the first time and delivered to the Forum by our Forum member xelanaiznac. Big thanks to him!

Guide how to get the Samsung M.2 AHCI module into the BIOS
A detailed guide about what you need (except the Samsung module) and how to do it, can be found >here<.
The preparation and insertion of the related BIOS modules (there: NVMe, here: Samsung AHCI) is absolutely similar. That is why there is no separate guide needed here.

The Goal you may get
Here are the benchmark results I got with my ASUS P8Z68-V running Win10 x64 on a 256 GB Samsung SM951 AHCI after having inserted the above linked Samsung M.2 DXE module into the BIOS:



If you have any questions or additional remarks, please post them into this Forum!

Good luck!
Dieter

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Annex:
This was the original start post written by our Forum member felix (Note: To save space I have shortened the text and removed the big sized picture.):

And this was my reply:
@ felix:
Thanks for your interesting report.

Questions:
1. How and at which place did you insert the BIOS modules?
2. What did you do to avoid the MSI mainboard BIOS security scan failure?

Thank you for your reply, Fernando.

My motherboard is the ASUS Crosshair 5 Formula Z. That is the one i’m getting the "Security Scan Failure", while trying to flash from the Utility in BIOS (EZ Flash 2).
I’ve tried inserting the module using the AMI_Aptio_EFI_MMTool_v4.50.0.23 in 2 places defined by "Volume Index", 1st attempt was @ Volume 3 and second @ Volume 4. Each time the module was inserted in a new place in the end of each volume.
E.g. Before insertion Volume 03 had 33 modules, after it had 34, etc.
I have extracted the Samsung_M2_DXE module both from latest bios of ASRock 990FX Fatality Killer and ASRock Z97 Extreme6 ( i do not own these boards).
I haven’t tried so far other modding with APTIO EFI tool (only normal MMTool experience), so i am not familiar with the procedure and various difficulties that could occur.

A bit OT, but i’ve also tried the HyperX Predator in my Crosshair 5 Formula-Z (i will refer to as CH5F-Z from now on) and i could use it as bootable. Here are some numbers, while OS drive :




EDIT by Fernando: Unneeded part of the fully quoted text and blank lines removed (to save space)

EDIT :
I found the solution in one of your posts, Fernando, >here< . I have to use the "USB BIOS FlashBack" in order to avoid the security check.
I am now waiting a reply from ASUS Support about the SM951 compatibility. If it is negative, i will try and flash the modified BIOS.

Thank-you for the helpful posts.

Trying this on Asus Maximus Hero VI and updated BIOs using EZFash2. Flash worked but getting "system bios contains invalid data please update your system bios" each boot. Driver placed in wrong section?

@ Tasate:
Welcome at Win-RAID Forum!

Since the BIOS of your mainboard is capsuled (named as .CAP file), you cannot flash a modified BIOS via EZFlash. You have to use the USB FlashBack method (if available for your board).

Where did you insert it?

Regards
Dieter (alias Fernando)

It is Asus ROG motherboard, so naturaly supports FlashBack.

Format usb thumbdrive to FAT32, copy bios (BIOS image name must be M6H.CAP), turn off computer, insert thumbdrive in USB 2.0 port, the one closest to the PCB in press flashback button for about 3 sec, than wait at least 3 minutes, just to be sure.
BIOS settings will be at default.

Flashback has gotten rid of the error, thanks for the tip. I have tried driver on volume 3 and 4 but still get winefi error trying to boot so it must not be in the right place yet.

I also tried with the DXE module inserted, but no-go.

I’m looking to modify my MAXIMUS V EXTREME Z77 BIOS to allow booting Windows using a Samsung SM951 (AHCI or NVMe version) installed in PCI-E adapter. Do you have any recommendations which Z97 board would best match the MVE? Some people have said the AHCI version of SM951 should work without any modification, but that is not the case. The SM951 does not have a boot loader built in.

You may have to test it yourself, but I would start with the modules from the ASUS Z97 Pro.

The latest BIOS of my ASRock Z97 Extreme6 contains an EFI module named "Samsung_M2_DXE", which I have attached to this post. Maybe it will help you to get the Samsung SM951 bootable.

Samsung_M2_DXE.rar (3.56 KB)

Fernando, Thanks. I’m not sure if I should get the AHCI version of the SM951 now, or wait and get the NVMe version when it’s available in a couple weeks or so. Performance wise, they are similar for normal desktop usage, so compatibility and price will be the determining factors. Do you think I would only need to add that Samsung_M2_DXE module or are there others that also need to be updated/added? I’m pretty new to BIOS modding, so I might need a little guidance.

As long as nobody has tested this special mainboard/Samsung SM951 combination, any answer is just a speculation.
Neverteless I am pretty sure, that you will be able to boot off the Samsung SM951.

The insertion of an originally not present UEFI module into a BIOS is very easy. You can find a short guide within the start post of >this< thread.

I started reading that guide yesterday. Seems self explanatory for the most part. Figuring out which versions of the modules to install might be the tricky part. I do remember reading that some people have trouble flashing the modded BIOS because of the checks done with ASUS BIOS. I was just looking at all the Z97 ASUS boards listed on their website. Holy cow (pun intended). It’s odd that they didn’t do a Maximus VII Extreme. I was thinking one of the Maximus VII boards would be the best choice for picking a BIOS, but I’ll try the Pro. Would there be a way to compare the extracted modules from different ASUS Z97 boards? I wish Samsung would sell the SM951 retail. It would make it easier for me to experiment. I might just wait until the NVMe model is released before making a purchase. Hopefully I can create a few different BIOS to try out by the time I get the drive and adapter.

This is NVMe support thread and I see one, two, three links with AHCI SM951. The first one seems like the appropriate place to talk about AHCI and SM951. I may have some ideas, but it requires a tester equipped with bravery and a backup method, like programmer or spare BIOS chip. Given the fact that from all the users who asked for NVMe, it was the one who needed the least that actually tested the proposed modding - Fernando, I won’t go into further details until a brave user assumes the position of tester, with all the risks and unwanted consequences.

To stay a little on topic, it would seem that NVMe is a better choice at this moment, not only for being future-proof, but also easier to implement/patch. It could be the M.2 specification (or rather the SATA Express interface) that prevents the proper functionality of the devices like XP941 and SM951 in older cards, considering that AHCI should be fully supported by now.

@ MacGyverSG1:
Since your recent discussion about the Samsung SM951 using the AHCI protocol matches better this thread than >this< one, I have moved the related posts.

Since I totally agree with you, I have moved already some posts inclusive yours into this thread.

I would be able to do some tests with my Samsung XP941 M.2 card and my still existing Z68 system. The only thing I would need is an M.2>PCIe adapter. On the other hand it may be even better, if an owner of a Samsung SM951 and an Intel 6-Series Chipset mainboard would do the tests.
What is your opinion?

Sorry, I was talking about the AHCI SM951 because it’s the only one available currently, but since I hadn’t purchased anything yet, the NVMe model was an option. Performance wise I don’t see a difference for normal desktop use.

I did order the AHCI version of SM951 and an ASUS Hyper M.2 PCI-E adapter card on Sunday. I should have both of them by Thursday or Friday.

My ASUS MAXIMUS V EXTREME does have Dual BIOS, so I should be able to switch BIOS if a modded BIOS has problems. Over at the ASUS ROG website someone with a Z87 board was successful at getting the SM951 (AHCI) with PCI-E adapter working (boot Windows). He stated that he added Ahci170, NVME, Samsung_m2_dxe, and SataDriver modules to his BIOS. The files came from Z97 equivalent board. I wonder if that would allow the NVMe model of SM951 to also operate as boot drive?

When the NVMe SM951 is available, and if the price is reasonable, I would try it out also. I can use both SM951s if my MSI Z77A-GD65 GAMING can utilize one of them. I don’t know how modifiable MSI BIOS is compared to ASUS.

I doubt, that the addition of the NVMe and Intel SataDriver module to the mainboard BIOS has any effect on the ability to boot off a Samsung SM951 AHCI SSD.

When I get my drive and adapter I will try only inserting the Samsung_m2_dxe module into my BIOS. Is there a specific way to insert the module? I’ve been reading all the guides and other posts, but I’m still confused on how to know where to insert or replace modules.

The insertion of any originally not present EFI module into an AMI Aptio IV UEFI BIOS should work, if you follow this guide:

  1. Open the AMI Aptio UEFI BIOS file you want to modify with the AMI Aptio IV UEFI MMTool v4.50.0.23.
  2. Check the Volume number (leftmost column) of the file "CSMCORE".
  3. Hit the tab "Insert".
  4. Hit the button "Browse" and navigate to the UEFI module (= *.ffs file) you want to insert.
  5. Enter the Volume number of the file "CSMCORE" (will be 01 or 02) into the field "Vol. Index".
  6. Go to the "Insert FFS Options" section and check the option "Insert Compressed".
    Now the MMTool should look similar to this picture:

  7. Hit the button "Insert".
    After having done that, the inserted EFI module should be listed by the MMTool as the last one with the chosen "Volume" number (leftmost column):

  8. Save the modified BIOS file.

Good luck!

Fernando, Your the best. That definitely clarifies things a little bit.

One thing I noticed when I was using MMTool to look at a few ASUS Z97 BIOSes (Maximus VII Impact, Formula (2702)) is that I could not find Samsung_M2_DXE listed. Is it hidden within another file?

BTW, I thought I remember reading in a post that it’s possible to flash a modded ASUS .cap BIOS normally by using a hex editor to pass checks. Am I mistaken? I do remember having an issue trying to flash the BIOS the USB way. It’s possible I screwed up a step during the process (ASUS MVE).

If you don’t find a module named "Samsung_M2_DXE" listed, it is probably not present.
Maybe ASUS gave the module another name?
Anyway you can find the module >here<.

Probably not, but since we don’t know the exact Bytes, which have to be altered, I do not recommend to try it that way.