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

@ Hopper



Hi, congratulation Hpper, it’s giving hope to us,
Please witch file you add to the bios? THE 3 FILES or the express one?
did you used the last update BIOS of RIVE one or older??
any bios special setting?

Much thanks

Hi KAD,
I’ve used the “NvmeExpressDxE module GUID 9A4713C2 (uncompressed, for normal insertion)” from the first post of Fernando, and the last bios 4901 (file .cap) from Asus website, then I followed the first post instruction step by step, and bingo! It takes 5 minutes at all.

To flash the modded bios I used the flashback procedure for the RIVE (FAT32 formatted pendrive inserted in the special USB white-port with the system turned off, file renamed as R4E.cap and push the flashback button in the rear of the board until the led start blinking… when it stop blinking all is done). Pay attention that when you flashback the bios, all current parameters and saved configuration will be lost, so if necessary write them off in same place before update the bios.

For the installation of windows 7, you have to use a UEFI compatible image (i.e. a USB pendrive formatted with RUFUS as gpt and uefi compatible, there must be lot of guide if you search about that), then you have to put the samsung nvme driver in a folder on the pendrive, because when you have to choose the drive where you want to install the OS, win7 doesn’t recognize the 950Pro if you don’t choose the “add driver” option (and then you have to select the folder where you have stored the driver in the pendrive).
After that, if you want to use the ssd as boot drive, in the bios CSM menu you have to enable the UEFI mode as first option.

If you have other questions, let me know.

P.S. This is the result with the 950 Pro 512GB and Windows 7 Pro x64:



Not bad.

Cheers!

Hopper

Hopper, did you try to use it first without the BIOS update(adding DXE)? I have the same SSD and it’s visible in X79 BIOS(ASUS P9X79) setup and is bootable out of the box(in legacy mode, not tried UEFI yet). I’m asking because I want to convert my legacy win7 installation to UEFI, but I’m afraid that I’ll not be able to boot after that.

Hi dad,
well, sincerly I didn’t try in legacy mode because I read everywhere that nvme drive only works in UEFI mode. But yes, in uefi mode the drive wasn’t bootable without the bios mod (no option in the bios).

Are you sure you’re booting from the 950? Because if you have another drive installed it’s probably that the MBR partition with the boot info is still on that drive (and in this case is why the 950 it’s bootable)… Or you can choose the 950 name from bios as option (and this will be strange…)?

Anyway, to be sure, you can do a simple test:
disconnect any other disk from your board but not the 950.

If you are able to boot with only the 950 left, well your board has a really strange bios or the thing that nvme drive only works in UEFI mode is not true (anyway I would try to see if my bios can see and use the drive in legacy mode)!


Turned out to be not true it seems.


Yes. absolutely, I explicitly choose the 950 name in bios as boot option and it boots differently than the old drive(which has grub loader in mbr with dual-boot linux/win7 menu, while 950 PRO boots windows loader directly). I can post BIOS screenshot later if you don’t believe me that NVMe device is properly detected by BIOS in legacy mode :slight_smile: BTW what is the easiest way to check UEFI mode? (before actually converting win7 to UEFI/GPT)

@ dad
So I’ve checked in my RIVE if the drive is seen in legacy mode and the answer is… yes. I don’t know why anyone out there says that it should be used in UEFI mode, but anyway seems it work (even if I don’t try to install win7 in legacy mode to see if everything really works, but there’s no reason to don’t think so). Really strange.

Unfortunatly, I think that the only way you have to see if the drive is seen also in UEFI mode, is to try with a new installation or with the conversion of the one you already have. I can’t see any other test at the moment.


If I correctly understand what is written on the first page of this discussion in this post, legacy mode is supported by OpROM, which is stored in CSMCORE module. So it seems in our BIOSes these modules already contain nvme support somehow(we could not check this looking at the module itself by some BIOS mod tool?). Another question is - if there’s no nvme DXE driver EFI module, then I will not get "UEFI:N1 Samsung 950 PRO" boot option even if ESB partition is present? BTW I tried to run UEFI shell (from USB stick) and could not mount nvme block device - probably this indicates that UEFI boot mode should fail?



In UEFI mode the drive is seen only when you have windows intalled on it, infact it show only "windows boot manager", no drive name displayed. For this reason I told you that probably the only real test is to install windows in UEFI mode and try…

@ hopper
much thanks
@ fernando
much thanks

@Hopper
I converted my win 7 installation to UEFI/GPT and it seems to be bootable with “windows boot manager” entry. Actually I don’t know how to verify if win7 actually booted in UEFI mode(searching for UEFI in setupact.log not works for me since initially windows was installed in BIOS mode and this file is old).

Doing some other research about X79 and nvme seems like also for RIVE there’s native support, but only on older bios version.

Have a look in the comments here:

https://www.youtube.com/watch?v=PxdE49kJD-c

Anyway, it’s a matter of test. I think that anyone should try with his system and, if the bios doesn’t recognize the drive, apply the nvme module mod.

@Hopper
It’s a bit more complicated than ‘native support’. It seems there are at least 3 possibilities in my P9X79 BIOS:

1. CSM=on and boot device=[UEFI and legacy] option -> boots any device: old MBR disk or new 'windows boot manager’
2. CSM=on and boot device=[UEFI only] option -> boots only 'windows boot manager’
3. CSM=off -> unbootable, says ‘no bootable device’ or smth like that

Secure boot is set to ‘other OS’.
So, the only ‘true’ UEFI mode is actually 3 and nvme device is unbootable as expected. With added DXE driver do you have CSM support turned off and nvme is still bootable?

With windows 7 I use these settings:

CSM ON, UEFI Only and UEFI first (depending on the menu…), Secure BOOT in "Windows UEFI".

But I can boot also with csm disabled and Secure BOOT in "Windows UEFI" (full UEFI, I try with windows 10 just for test).

@Hopper
Maybe I’ll try to flash modified BIOS(using flashback procedure), but I’m not sure if there’s any performance boost(or some other profit?) in case of CSM is OFF. BTW for flashback to work - should .CAP be the only file on Fat32/Fat16 USB drive?(or it could be stored in root dir along with other files)

BTW another possible pitfall: windows 7 is not usable with CSM disabled?

UPD: flashed(using USB flashback) modified 4801 BIOS (added compressed NVMe DXE driver found on the 1st page): now windows attempts to boot even with CSM disabled, but freezes somewhere in the middle: in safe mode this happens just after asstor64.sys(driver for onboard asmedia 106x controller) is loaded, in normal mode the screen just goes black. Is this normal for win7 - it just requires CSM support(for video drivers, etc)?

I have the impression that this has been answered before, but let’s hammer down this once and for all. Samsung 950 Pro has a dedicate OROM/Module for legacy operation, as it can be <seen here>. Bottom line, if you see “N1-Samsung SSD …”, you are in legacy or CSM mode, the internal Samsung module is used, no separate EFI module is needed. If you switch to pure UEFI mode, you need a dedicated EFI NVMe module.

@ lordkag:
Thanks for your clear conclusion.

@ users with a mainboard, which supports NVMe in Legacy mode:
Can anybody upload the NVMe Option ROM module?

I don’t think it is that easy. The module is not in the mainboard’s firmware, but in the Samsung one. And even if we get a dump, there is no way to say that it will work for all others, I’m certain it is designed for Samsung 950 Pro alone. But if someone wants to give us something to work, I think AIDA or RWEverything have an option to dump such modules.

@lordkag
So - it is the same for 950 PRO as for intel 750 SSD: it contains its own OpROM which makes it always bootable in legacy/CSM mode? This is not the case with Samsung SM951 AFAIR?

@dad

Yes it’s normal that you cannot boot in win7 without csm enabled. Full UEFI is supported only from win8.

@lordkag

Thanks for the info, now the situation seems more clear.

I don’t think Intel 750 has any bootloader, if we look <at this review>. I think <this list> still stands, with one addition, HyperX Predator, according <to this>. But they are not NVMe, which could mean that the only bootable NVMe SSD out of the box is Samsung 950 Pro. Bootable in legacy that is, because in UEFI mode you still depend on external modules.