[Experimental] NVMe Option ROM

Is that bios modified with the instructions I need for my disk to appear in the boot bios?

seems by accident I ticked wrong file in MMtool to insert
(original 950pro oprom instead of NvmeOpRom.bin)

here’s a corrected BIOS file, utilizing NvmeOpRom.bin for 1E4B/1202

ASUS-P6T_NVMe_02.zip (964.9 KB)

============

But for the first file in the MMtool insert section Textboxes Offset/VID and Seg./DID
I entered correct values 1E4B/1202
and after inserting MMtool did report correctly it’s running on 1E4B/1202

So I guess this should work, too ?

MMtool

No.

Yes, the NVMe drive should appear in BIOS in Boot section under Hard Disk Drives if you use the second BIOS file I’ve posted. According to @Dagal the first one might not work properly

wow tomorro i will try it … and i tell u whats happening thanks alot !!!

@c3rb3r0
Thanks for the BIOS files.
The latest BIOS file for your mainboard is an AMI non-UEFI one.

Here is a short guide about how to get the customized NvmeOpRom.bin file properly inserted into an AMI non-UEFI BIOS:

A. Customization of the NVMe Option ROM module

As first step the original (untouched) NVMe Option ROM, which is offered by Ethaniel within the start post of this thread, has to be customized by adding the matching HardwareIDs of the related NVMe Controller.
This can be done by running the “Command Prompt” as Admin, navigating to the content of Ethaniel’s Option ROM package, typing “OpRomCfg” and pressing the “Enter” button. Then you will see the required extended command (as example, the *.bin file will stay untouched).
As final step you can execute the customization of the NnvmeOpRom by typing a command like this and pressing the “Enter” button:
(Note: The HardwareIDs of the NVMe Controller are only valid for c3rb3r0’s in-use Acer SSD!):
OpRomCfg Command

To make it easier for you and the future visitors of this thread, I have already done the required modification of the NvmeOpRom.bin for the Forum member c3rb3r0 (for all others only as an example). It is attached to this post.

The following picture verifies, that the matching HardwareIDs of the specific NVMe Controller really have been written into the hex code of the module (don’t worry about the order of the Bytes, it is “Little Endian”):
Customized NvmeOpRom

B. Modification of an AMI non-UEFI BIOS

Please follow the related Guide, which is within the start post of >this< thread.
Unfortunately I forgot to write a detailed tutorial about how to insert a natively not present Option ROM module into the BIOS.
I will do it as soon as possible. Edit: It has been done by me on 2nd of March.

Good luck!

NvmeOpRom.rar (3.5 KB)

Thank you @Fernando for providing that Guide.

Now I’ve finally understood why the Bytes of Vendor/Device ID are in a different order



You’re welcome and good luck !

Update to my Award BIOS / Gigabyte Board project:

I’ve finally been successful !!! But I had to switch to a different SSD, though.

A friend of mine borrowed me some hardware to play around with.
He gave me a Samsung 970 EVO Plus 1tb drive and also a Gigabyte GA-X58A-UD5 Mainboard.

First I’ve tried everything I’ve done yet again but now with the X58 Board to clarify if some errors are due to that specific mainboard I own. But the results were the same as with the GA-P55A-UD4

Second I took NvmeOpRom.bin and customized it for 970 EVO Plus using OpRomCfg.exe
But after flashing there was no SSD showing up in BIOS

Then I modified the 950pro OpRom to match the 970 EVO Plus

This time the NVMe drive shows up in BIOS and Windows boots within seconds !

As for the long boot time with the Micron drive I can think of two possible reasons

Either:

Although the Micron Drive is operating pretty well with AMI BIOS / NvmeOpRom.bin
there might in fact be some kind of fault within that drive that prevents it from working porperly with Award BIOS / 950pro oprom

Or:

The original 950pro oprom in general doesn’t play nice when it’s assigned to a non-Samsung-manufactured drive

Can you think of any other possible reasons?

Unfortunately I have no other drives laying around to do more testing and currently I don’t want to invest my money in buying just a random SSD that might work or might not.

Maybe one of you could do some more testing?

Maybe @cmz ?

I’ve modified 950pro oprom to match 1C5C/1327
(according to a quick Google search this should be SKhynix BC501. Is that correct?)

1C5C-1327.zip (10.3 KB)

If you want you can patch this into your BIOS file and give it a try.

But as always everything you do is on your own risk. I am not responsible if something goes wrong.

If you try it please tell me your results afterwards.
If it works I’ll be willing to share my knowledge and the exact procedure I went through to make it work

Regarding NvmeOpRom.bin patched to Award BIOS not seeing any drive at all I have no idea. Maybe it’s just some kind of obscure yet frustrating unexpected misbehavior you have to expect when dealing with Award BIOS modding

1 Like

when i try to load bios to flash it in ez flash … cames this mensage :
boot block in file is not valid !!!

ok i try put file rom in pen drive usb and is working prefect. !!
this is GREAT !!!
Fantastic work!!
Thanks a lot !!!

1 Like

Now I have rescued some Intel dx58so motherboards, so can the bios be modified so that NVME boots from the bios?

You can…but this time only with a CH341 programmer, there’s no other option confirmed for mod flash on this model (Intel boards), if i can recall it correctly.

@Sierra
I added the rom in the link and when I tried it, the computer hangs after the boot screen while the card is inserted into the PCIE slot. While I continue my research, I can get an SSD belonging to one of the roms here “https://winraid.level1techs.com/uploads/default/original/3X/5/b/5bec3b7504fc5ba9de1ab1d1af8a47a7403560d2.png” and try it. These roms must be ready working roms and if you try one of these SSDs with a suitable rom and it works, I can take a shortcut and continue with this SSD. If it doesn’t work, then the problem will be a little deeper.
thank you for the file

@c3rb3r0

Congratiulations! You’re welcome!

If you ever wish to change your NVMe drive you can try - if you want - to apply the mod yourself by following > this < guide by communitymember @eierhals

Did you flash the first or the second BIOS file I’ve posted?

@cmz

In the linked screenshot I see 144D_A808.bin

These are the IDs of the Samsung 970 EVO Plus drive I was able to get it to work.

Your screenshot refers to one of the BIOSes from >this< TechPowerUp Forums thread

I’ve downloaded one of them (GA-X58-UD5 Rev1) and extracted 144D_A808.bin

It seems to be the original 950pro oprom as well.

When I compare it with the file that I have created for my 970 EVO Plus, they are almost identical.

There’s only one exception:
The very last bit at offset 0x45FF

Seems that the creator of that BIOS performed no checksum correction.
checksum-8 reports 06

0x45FF still contains the original value of 80 while I corrected it to 7A in order to get checksum-8 = 00

However, I flashed this rom to my BIOS and surprisingly it worked though.

NVMe gets recognized and boot time is good although checksum is 06

I would have expected that my system would freeze after POST and wouldn’t let me enter the BIOS if checksum is not 00, but it’s working fine instead

As for you, unfortunately I have no idea why your system freezes when you flash the file I made for your 1C5C/1327 device

I guess there are some Motherboard / SSD combos that don’t play nice together
or maybe some SSDs that work better with original 950pro rom than others

I assume that the devices that are patched into that BIOS from TechPowerUp Forum work fine and my personal 970 EVO Plus works fine, too, while my Micron 2300 gets recognized as a boot drive but is booting ultra slow.

What is the exact brand / model of your SSD ?

You’re right, legacy bios and compatibility are a matter of luck. I am adding the ssd model I use

1 Like

hello, I just recovered an EVGA X58 SLI LE (141-BL-E757-TR) motherboard and I would like to update the bios so that I can boot the operating system from the NVme drive.
The last bios version is : http://cdn.evga.com/bios/x58/E75783.bin

and the HardwareIDs of the NVMe Controller, is :
https://tecnicobenidorm.com/site/nvmem2.jpg

I would really appreciate your help with the modified bios.

Greetings to all the people who make this forum so great


Edit by Fernando: Thread title shortened and customized

@c3rb3r0
Since your mainboard is a very old one with an Award non-UEFI BIOS, I recommend to add Ethaniel’s NVMe Option ROM according to >this< thread.
As first step you should download and unzip the NvmeOpRom.zip, which is offered within the start post, and then try to customize the OptionRom using the HardwareIDs of the NVMe Controller of your NVMe SSD.
Once this is done, you can upload it for a check before going to integrate the customized NVMe Oprion ROM into the mainboard BIOS. This picture shows the current content of it:

Good luck!

1 Like

i descompres it … and i do this comand : OpRomCfg.exe NvmeOpRom.bin 1E4B 1202
it says : Option ROM configured successfully.

and now can i flash my bios with this file NvmeOpRom.bin ??
or do I need to do something else before ??

very thanks for your help and respond so fast

i open bin on HxD and i see this is ready inserted :
https://tecnicobenidorm.com/site/NVmeoprommod.jpg

@c3rb3r0
It is fine, that you succeeded creating a customized NVMe Option ROM module.

Step 1: Integrate the customized NvmeOpRom.bin into the original BIOS by using the CBROM tool.
Step 2: Flash the modified BIOS into the BIOS chip of your mainboard.