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

hi Fernando.
i try to mod bios of asus P8H61-M-LX2-R2 to support boot from nvme but it wont work, wont detect nwme on boot.
flashed with AFUWIN64_v3.05.04
nvme is showing in windows
link to bios:

Edit by Fernando: Splitted posts merged (to save space)

@Darkmmater : Welcome to the Win-RAID Forum!

Windows shows the NVMe SSD (as "Disk Drive") and the NVMe Controller (as "Storage Controller"), but this not a proof, that the NVMe SSD is bootable. Instead of looking into the Device Manager you should better enter the BIOS, enable temporarily CSM and look into the "BOOT" section. If you should see a device named "PATA" or "PATA_SS", you can be sure, that
a) the BIOS modification and the BIOS flashing were successful and
b) you will be able to get the desired OS installed onto the NVMe SSD and to boot off it.
By the way - please stop splitting your posts. This thread is already voluminous enough.
Regards
Dieter (alias Fernando)

sorry for spliting the messages I tried to bypass the restrictions on sending links.
here is a picture of the modified bios.
bios definitely doesn’t see nvme either “PATA” or “PATA_SS”,
CSM is enabled

moded rom.png



i dumped bios with flashrom 1.2 and when open in
now when i open the dumped bios in uefitool there is no NvmExpressDxe sections

dumped bios with flashrom1.2 .png

Do the mod with AMI MMTool, not with UEFItool, the rest of Fernando guidance in previous post is valid.
Also read point 4 of the guide in 1rst page of this thread.

EDIT: Ur mod ROM seems ok, the DXE module is inserted in the correct volume, good luck.
If the last file is the mod flashed, then it was not flashed correctly, because the NVMe DXE module is not present anymore.

orig bios
extracted rom
moded rom
dumped rom after flashed with AFUWIN64_v3.05.04



The flash passed! Now see nvme and boot the system.
The problem was in the process of flashing, it is obligatory to first flash the original bios with the “cap” extension and immediately without restarting flash the modified bios with the “rom” extension with /GAP switch .
It was definitely my fault, i didn’t follow instructions to the end.
Thanks again Fernando!

I updated the bios for an X10SLL-F and I noticed a missing pad file after modification. I used MMTools to insert and UEFITool to review the PAD placement. What can I do to fix this?

modded - Copy.jpg

Original - Copy.jpg

X10SLL1.zip (4.02 MB)

X10SLL1M.zip (4.03 MB)

Small variant dxe only, bios volume has no space for the standard, by chance did u made any other changes/updates/mcodes to the mod? If yes it can happen that situation.
EDIT: No m8 by ur screencaps, ur mod is not correct, do read again and follow the guide and try the UEFItool insertion method.
Confirmed, ur bios mod solution is using UEFItool 0.28 and small DXE variant.

Please I need the bios of my ThinkCentre M83 PC to detect the MVME PCI-E as boot for the Operating System Attached the BIOS in ZIP. Thanks for your help.

bios_ThinkCentre M83.zip (4.81 MB)

@Jorcas : Welcome to the Win-RAID Forum!
Please read, what I have written >here<.
If you don’t feel able to try the BIOS modification yourself (we will check the result before you flash it), please post your BIOS modding request into >this< Sub-Forum.
Regards
Dieter (alias Fernando)

I created a new version, NvmExpressDxe_5 based on the latest edk2-stable202108. It contains some bug fixes and I was able to make it slightly smaller without removing any functionality.

NvmExpressDxe_5.ffs is 18 kB.

If you have previously used NvmExpressDxe_4 and you are experienced with BIOS modding, I would appreciate if you could try this new version and provide feedback.

NvmExpressDxe_5.zip (31.1 KB)

@Ethaniel :
Thank you very much for having compiled and uploaded new/updated NvmExpressDxe_5 modules.
Can we expect a “small” variant of it as well?

@all users of my guide:
Please test the NvmExpressDxe_5 modules, which have been compiled by Ethaniel and offered >here< and post your result (success/failure) into this thread. Don’t forget to mention your specific mainboard/notebook model and the NVMe module variant you have inserted.
As soon as I get your positive feedback regarding the usage of the new/updated NVMe module(s), I will update the start post and replace the download links there.
Thanks in advance!


The "small" variant is not affected by any of the changes as that is a reduced functionality and simplified version of the "full" one, so I have no plans for a new "small" version at this time.

Welcome Win-Raid Forum Community!

I’m writing here, becouse I used all possible methods that I could find. I rarely ask for help, becouse I try to do things on my own instead of bringing others to spend their time on my tasks. But this time I must surrender and ask for your help.

I need to add NVMe capability to an old Gigabyte G1.Sniper Z87 rev 1.1 board. I tried to add drivers to the lates bios that I could find on official website, but my hope was lost, when I found additional “Pad-File” entries in new rom image.

I don’t want to write too much, becouse it will flood the forum, but I always want to describe as much as I can to help anybody with processing my problem.


Firstly I tried with uefitool v0.28 with standard v4 module and everything looked good, until I checked saved file and found like duplicated pad-file in other branch. Next tries were with newly posted v5 and small version, which ended the same.


After that I said ok, let’s try different method, so I used MMTool 4.50.0.23, with v4 and v5 it said “file size exceeds the volume size”. With small variant it said “Error in Inserting file”.


I was about to surrender and create a post here, but after some minutes of refresh I asked myself maybe I was missing something, so i started another way to make it, and found that it could be possible to exchange NVMe module with other module that I could not need.
So I tried another one with replacing SataDriver, and after replacing it looked well… until I checked for “pad-file” entries with uefitool… /o\ it’s the same as all the previous tries. So I ask you to help and tell me if it is safe to load that changed bios rom or not with only “pad-file” new entry or if you have a better image for me that I could try with.

One note at the end. Gigabyte bios structure looks a bit different from the one from the tutorial, becouse it contains “Compressed section”. Then deep inside there are guid’s that we want to update, but other than that everything looks like it should work.


Thank you in advance, any help is welcome!


MB: Gigabyte G1.Sniper Z87 rev. 1.1 (atm with old F2 bios version)
Bios: G1SNIPERZ87.F4 (latest version)


Uploaded files:
G1SNIPERZ87.zip - original Bios ver. F4
g1sniperz87.f4.zip - modded bios with replaced SataDriver
g1sniper_padfile.png - selected duplicated pad-file
g1sniper_padfile_properies.png - info about original pad-file and newly created on the upper branch

G1SNIPERZ87.zip (5.66 MB)

g1sniperz87.f4.zip (5.61 MB)

g1sniper_padfile.png

g1sniper_padfile_properties.png

@ZuBiK : Welcome to the Win-RAID Forum and thanks for your detaild information.
You are right - the correct insertion of any NVMe module without touching/creating a Pad-file is not easy with your specific mainboard BIOS.
Reasons:

  1. Due to the extremely limited space within the compressed DXE Driver Volume of your mainboard BIOS it is impossible to properly insert the NvmExpressDxe_4 or NvmExpressDxe_5 module without removing any other module.
  2. A rarely occuring bug of the AMI MMtool v4.50.0.23 is responsable for the error message the user gets when trying to insert the “small variant” of the NVMe module into your specific mainboard BIOS.

Solution: Take the AMI MMTool Aptio 5.00.0007 (get it >here<) and let it insert the NvmExpressDxe_small.ffs “as is”.
I just have tested it. The insertion worked perfectly and no Pad-file has been moved, removed or created.
Good luck!
Dieter (alias Fernando)

EDIT: Don’t try to replace any already existing DXE driver of the BIOS by an NVMe module. That will not work (due to the dependencies of the related module)!

Thank you very much for sharing your knowledge, experience and the most precious - time!

The trick with older MMTool worked as you described, the flashed bios seemed flawless.

I had some minor problem with flashing, but renaming long name of modded bios to shorter one (“Not able to Read BIOS File Successfully !!!” message) was a success. All seems well, system booted from the nvme drive.

Once again you’re doing a great job here. Big round of applause to this man! :smiley:

@ZuBiK , I would not be too concerned about the extra padding that most likely is needed so that the CPU microcodes right after the nested volume are properly aligned.

Only UEFITool can grown nested volumes, so I did the following test:
- Added NvmExpressDxe_5 at the end of the nested volume using UEFITool and saved it, nested volume was grown and padding was added
- Removed NvmExpressDxe_5 using MMTool and saved it, nested volume stays the same size and padding was removed
- Re-added NvmExpressDxe_5 using MMTool and saved it, this time it succeeded as the nested volume has enough free space and padding was re-added

I recommend flashing an image file last edited by MMTool as that is doing some more AMI specific corrections compared to UEFITool, but replacing NvmExpressDxe_5 with the same NvmExpressDxe_5 file and saving it should be enough.

@Ethaniel

Thanks for your work on the NvmExpressDxe_5 module. I confirm that its working on an Intel DH57JG.

Help with the modification NVMe SSD for SuperMicro X9SCL

X9SCM1_106.zip (2.7 MB)

Help is in the guide, wots ur difficulty on the matter?

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

EDIT: Not good, as u can see it has created a pad-file, Use UEFI tool (0.28) method.

X9SCM1_106.png

Can you take a download on the board?

X9SCM1_mod_bios.zip (2.59 MB)