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

Hi folks,

Since this board and forum brought me wonders and helped me alot, it is my turn to at least thank by joining here and share my experience and comments as well. I will try to keep it short.

First of all I would like to confirm the methods described here, especially from @pcfist worked for me (more or less, with some thoughts/searchs though), in the end!

Background: Having Sony Vaio Pro 13, AMI BIOS, i5, had M.2 NGFF SSD with about 2 hecto GBs

Problem was: Bought a new 1 TB PCIe NVMe SSD (which fits perfectly to the slot), cloned entire disk from previous SSD to the new one BUT Windows did not boot. Tried to install several OSs and Windows again and again, (following many instructions out there) with many GPT/UEFI tools and options and commands, BCDEdit, diskpart blablabla and retries blablabla, I realized that the only problem must be that the new SSD cannot be booted from at all, is not able respectively. It was recognized though when booted from an USB stick, and I could later manage though booting indirectly from SSD via USB DUET REFIND method ( [Guide] NVMe-boot for systems with legacy BIOS and older-UEFI (DUET-REFIND) )

until I found this thread and @pcfist hints that motivated me either as it did him originally as well!


Long story short - and here is my comment to - what I did through pcfist - for new readers with my update:
Comment: The whole process could take you either about 20min if you use after step 2 AFUWIN in console for directly flashing the modded BIOS image back - hadn’t tried that unfortunately - wasn’t really aware of it! -
or else otherwise you can plan about an hour (because you need to read howto and download/create a bootable DOS (e.g. FreeDOS) where you copy AFUDOS and run it from there - do not forget to change to BIOS Legacy mode in this case for booting when you are there)


1. Read BIOS image from flash using AFUWINGUI, save it to ROM file.
Comment: Maybe the site has changed in the meantime, I couldn’t find that (thats why I first got unsure with all), but searched and tried then further, and I found that finally worked: https://ami.com/en/?Aptio_4_AMI_Firmware_Update_Utility.zip
Extract it, and inside the folders choose your OS, and extract it again. There is AFUWINGUI (x64) you can run it, read the BIOS mapped image with it and save it as a ROM or BIN file (~8 MB). (Under Linux you can also use the program pawn from github.)
After modifying the BIOS Image in the next step, you could probably use AFUWIN which is placed in the same folder to afuwingui to flash the BIOS then you are DONE.

2. Modify the image with MMTool following this guide. I added the first version of NVMExpressDXE.ffs (uncompressed one) that the author recommends using, And save it.
Comment: I also did like this - OK (guide link: [Guide] How to get full NVMe support for all Systems with an AMI UEFI BIOS )

Skip the next step if you can manage AFUWIN with right parameters, just open it and you can see the parameter options, there you could flash the modded BIOS.

3. Flash it with AFUDOS 3.04. (Don’t be confused with that Supermicro website—the archive with Supermicro BIOS image contains the required version of AFUDOS). I used the following command:
Comment: Here it was also simple said, especially by saying “save it and flash it”.
Currently you can follow either the link above from @yippie simply or the link: https://www.supermicro.com/products/moth…87/X10SLQ-L.cfm to go to “Update your BIOS” and download the zip file X10SLQ8_518.zip
Download&create a bootable DOS USB/DISC (like FreeDOS) (since that AFUDOS can not run under Windows because not compatible) AND extract/copy your files, both rom and afudos files, into the new media (main folder or create your own)
Now when booted in Legacy mode (because UEFI would not be supported with such an OS) with that USB, type using your filename:

afudos nvme.rom /P /GAN

//Comment: it did not work on mine with /P, but worked without /P
//after done, you normally don’t need to set back to UEFI mode in BIOS because in the flashed rom it was set already from previous image. so just restart your PC hopefully with your NVMe SSD!


For me, in the end all worked, and amazed me seeing how the ultrabook boo(s)ts completely by itself, and without using any USB!


I have two questions coming on my mind, maybe someone could answer:

1. I believe on the modded BIOS it is set to boot only from Windows - is that correct?
Because whatever Linux, and tools I use, like GRUB or Grub2Win or REFIND, even from linux, whatever Boot configuration/bootmanager I use, it always boots directly from Windows 10. Anyone a clue or suggestion? (When I use from Duet Refind USB I can choose any OS to load)
//EDIT: Seems like to be correct. I then tricked it by booting from Linux first, made a backup of MS boot esi folders/files, and copied Grub file (oyou can use your favorite bootmanager) to the MS Folder ESI/Microsoft/Boot according this: https://forums.linuxmint.com/viewtopic.php?f=42&t=243338 you basically just need to replace bootmgfw.efi from esi microsoft boot folder (the author forgot to mention + boot folder) with grubx64.efi (if you want to use Grub for example), and modify the grub config file with the new path for windows backup folder in order to be able to boot from windows as well. You need Secure Boot off.
So I now can choose between different OSes when booting.

2. I don’t know, whether this bios mod method was only for UEFI/GPT boot support or generally for both BIOS/MBR and UEFI/GPT on NVMe SSDs - would it supported if one just used MBR OS in Legacy mode (I know nobody would need that anymore, but would worth to know)?

@exiopat :
Welcome to the Win-RAID Forum and thanks for your report!

No, it should work with all Operating Systems, which are installed in UEFI mode by using the Guimode Partition Table.

No, it wouldn’t work (unless the user has connected an NVMe SSD like the Samsung 950 PRO SSD, whose Controller Chip contains an NVMe Option ROM module).

Regards
Dieter (alias Fernando)

@exiopat :
Since your linked report and questions do match better this thread and may be interesting for other users, who have followed my guide about “How to get full NVMe support for all systems with an AMI UEFI BIOS”, I have copied your related post and my answer into this thread.

Hello there,
Can you prepare the NVMe mode for MSI Z87 G45 Gaming motherboard ??

Hello, Farnando,
Is the mode that you share in the attachment suitable for the MSI Z87 G45 Gaming motherboard?

@HASAN DOĞRU :
Welcome to the Win-RAID Forum!
It is not easy to unserstand what you mean.
To whom did you address your request and what do you expect from that person?
Regards
Dieter (alias Fernando)

If you have the exactly same mainboard model, you may use it.
Nevertheless I recommend to try the BIOS modification yourself. After having done it, you can compare your modded BIOS with the one I had attached for Gkoow.

MSI Z87 G45 The NVMe mod bios is required for the gaming motherboard. Can you prepare?

Hello Fernando!
Greate job man! I write to post
@Gkoow :
Attached is the BIOS, which has been modified by me.
Good luck while doing the flashing procedure!
Fernando has attached files to this post
E7821IMSmodbyfernando.rar
I save this to E7821IMS.190 and flash my mb. After the BIOS flash, you still can not see the PCIe / PCI / PnP settings options …
The BIOS still can not see the EVO 970 disk. I do not know what to do anymore. I am asking you for help… My mb MSI Z87-G45 Gaming (MS-7821)
Regards eSKa :slight_smile:

@eska - BIOS will not see the drive like you think, follow all steps in "What should I do" section, step #4 exactly, from post one of this thread, that will get you to install OS to the NVME.
If you are using UEFI mode and USB to install from, make sure the USB is formatted to GPT before you put the OS install files onto it.

Yesss! Work! Thank You very, very much!

I am running the same Motherboard GA-990fxa-ud3-r5 rev(1.0) with the F4b bios. I injected the "NvmExpressDxe_4" module into the bios file. I am using windows 10. I cloned to the NMVe drive my OS using Macruim Reflect free. your issue sounds more Ram and voltage issues. to have the stability I increased the NB Voltage to 1.100V and my DRAM Voltage to 1.510v. I manually put in my ram timing in both A and B channel. I use Bootit UEFI to multiboot and I used that program to fix the BCD to point to the correct hard drive for boot. I boot the NVMe with no issues and my system is completely stable now. I am posting to you the modded bios that will upgrade you to F4b bios …make sure you save your profile settings to a USB drive before you flash so you can restore your custom settings…All your profiles will disappear when you flash …except what is on your USB drive.

modded.rar (2.79 MB)

@firewolfrl :
Welcome to the Win-RAID Forum and thanks for your contribution!
Regards
Dieter (alias Fernando)

I have attached the bios and screen shots, the nvme ssd is brand new and is visible as storage in windows. I would like to make it my main boot device. I have tried multiple flash drives (sandisk cruzers) in both fat32 and ntfs formats. I have tried both flash back (hold 3 seconds light blinks green then stays solid green) and the bios (security verification failed) method.

https://imgur.com/a/muYK5zc

M5A99FX.rar (3.01 MB)

Hello to all
there is a laptop asus n751jx and ssd m2 LITEON CA3-8D128
it was not detected in bios ssd, but it sees it in windows, if the standard 2.5 disk is used and the installation begins, the installer sees the disk, installs it but does not load it, goes into the BIOS cyclically.
afuwin64 removed the image of the BIOS, mmtool added a module NvmExpressDxe_Small, flashed the BIOS. Windows successfully started and booted from ssd.
But the problem is that Windows cannot reboot, the laptop hangs on the asus logo, and it still does not go into the BIOS, if you turn off the hung computer and try to enter the BIOS, then all the same, Windows immediately loads. You can enter the BIOS only if you disable ssd m2 from the motherboard
Help me solve the problem.
Thank you all in advance
I attach the original BIOS file (N751JX_original.rom), taken via afuwin64 (this is the latest BIOS version from the manufacturer)
I also attach two bios modes n751jx_mod_dxe_small.rom and n751jx_mod_dxe_small_com.rom into which I added modules
NvmExpressDxe_Small and NvmExpressDxe_Small_Compressed
Sorry for my english (translate.google)
Link to bios

mod.zip (4.64 MB)

N751JX_original.zip (2.32 MB)

Was wondering what the success rate vs failure rate is in regards to this particular nvme mod?

I have checked my modded bios and the nvme driver is present, the nvm ssd is a 970 Tb nvme it is blank no os on it. Is it possible to install w7 on it or do I have to install w8 or w10 on it before it is visible on my bios?.


Those who never try it never succeed. :wink: Sorry, couldn’t resist.

I should have been a little more specific, what i mean is do I need to install win8 or 10 on the nvme ssd so that it appears in my modded bios as a bootable device? I am fully aware on how to install win7 on nvme, I am running win7 on my nvme on my Intel system. I’m trying to mod the bios on my Amd Asus m5a99fx pro r2.0 and run Nvme 970. I should mention I am using a VANTEC UGT-M2PC100 M.2 NVMe SSD PCIe X4 Adapter.

@parazitoff :
Welcome to the Win-RAID Forum!

After having checked your modded BIOS named n751jx_mod_dxe_small.rom and compared it with the BIOS, which I have modded myself by using the AMI Aptio IV MMTool and the original BIOS as source, I found out, that your BIOS modding has been done absolutely correctly.
Consequence: It is not a wrongly modded BIOS, which causes your reboot problem.
The fact, that you obviously were able to boot instantly after having flashed the modded BIOS (that means without having done a fresh OS installation onto the NVMe SSD), indicates, that the boot sector is outside the NVMe SSD.
My advice: Follow my guide, disable the “Secure Boot” and “Fast Boot” options within the BIOS and do a fresh Win10 installation in UEFI mode onto the NVMe SSD.
Good luck!

Regards
Dieter (alias Fernando)