[Experimental] NVMe Option ROM

Would anyone please help?

I am trying to mod AMIBIOS on ASUS P7B85-V board to make my NVMe device bootable. I had no success with adding NvmeExpressDXE module to BIOS, and now trying to add oprom there. But… how ould I get device DID / VID? In my device properties no DID / VID are listed…


nvme1.png




Hi,
im trying here to add your nvmeoprom module to gigabyte 990fxa-ud3 (rev 1.0) award bios with cbrom, but no luck. no option to boot from my drive in bios setup menu and it take much more time to load the bios with your module added. any advise?
thanks in advance.

@mSnus :
If you are searching for the HardwareIDs of the NVMe Controller, you should look into the “Storage Controllers” section of the Device Manager.
The details of the Disk drive doesn’t help.



Thanks a lot! The problem was solved in another way – I succeeded to flash the modded BIOS to my ASUS P8B75-V with 2 steps of AFUWINx64.EXE flashing:
1st with original BIOS .CAP file (with capsule), 2nd - modded .ROM file (capsule removed, with /GAN command line switch), without reboot between 1st and 2nd flashing.

@mSnus :

Tell me, when you reboot from the Windows system, does the reboot go well?

Yes, everything works smooth with new NVME disk. Transferred the system to it.

Hi. I allready made a mod for my ami/q35 based motherboard for intel optane 16gb sdd (only for test) and now i am trying to do this for my award/nforce based mobo (ASUS A8N-SLI Premium). VID/DID of my ssd are 8086/2522. I allteady tried to mod vmware and samsung ROMs, but nothing happends. Device (storage contriller with 8086/2522) is in the device list on POST SCREEN, but system not boot from it.

Is it possible to mod an old award/nforce4? Can anybody help me to make a good orom (or even a bios) for Asus A8N-SLI Premium and Intel Optane (8086/2522)?

Well. Its working with or without modifying bioses. At this moment I’m using the parallel EPROM in a PCI network card. someone know a PCI-e Card with SPI or parallel “hackeable” boot rom that can be used for this? I have a serial port card with spi, but I didn’t tried anythig becase there’s no documentation of the SPI ROM mapping.

thanks

User tireal spoke about a method to make the Samsung 970 PRO NVMe bootable on Windows XP:

How to add support for booting from NVME in Legacy BIOS mode:
1) Open >this< thread.
2) Download the archive from the first post named NvmeOpRom.zip
3) We write down the VID / DID of the NVMe media that we plan to use. (Either we search in Google, or, which is more reliable, we insert it into the motherboard through the m.2 to pci-e adapter, VendorID & DeviceId in the Device Manager)
4) Using OpRomCfg.exe, enter the values ​​from clause 3 and the checksum into the firmware.
5) Using the AFUWIN64 program, we save the current bios ROM firmware, make a backup of it.
6) If you have AMI, then take MMTool 3.19 / 3.22 and add the resulting NvmeOpRom.bin via Insert, check the “Link Present” checkbox and enter our VendorID / DeviceID, click Insert, then Save Image As. If AWARD, then it is better to prepare the programmer in advance, because avard is famous for the jambs of its native utilities and often kills the firmware with them, but you can try to find a cbrom that will work with your firmware normally. If Phoenix / Insyde - then everything is really bad.
7) Flash the resulting ROM image.
8) Go to the boot device selection menu and enjoy the line like “NVME 01: 00.00.1”.
9) Install Windows XP with added NVME drivers (item # 2 in Integral Edition).
10) We enjoy life without any Clover and flash drives stuck on a permanent basis.

Tested on Asus Z77 Sabertooth motherboard, AMI BIOS. NVME disk - Samsung 970 pro. Attention! For some time, Asus motherboards have only supported their own CAP format for firmware instead of ROM (MMTool and AFUWIN64 only work with ROM), in my case they differ in that CAP has 2048 additional service bytes at first.
I couldn’t write back the corrected ROM via AFUWIN64, and I made a program that took 2048 from the original BIOS CAP file and wrote them before the corrected ROM. I flashed the CAP firmware through the function of the motherboard FlashBack via USB, when the PC does not need to be turned on for flashing (there is no ROM check for originality). I did all this with a second computer at hand, it is not recommended to do it on the main one - you can make the motherboard inoperative if you do something wrong.

Sources:
https://habr.com/ru/post/481252/ (JerleShannara comments)
[Experimental] NVMe Option ROM

Comparison of performance in Windows XP, Windows 7 and Windows 10:


What we see in performance tests.
The performance of NVMe on Windows XP is inferior to the performance of Windows 7, but this is not surprising. It’s amazing that an NVMe drive actually worked on a 20-year-old system !!! But, both systems overtook Windows 10, which was supposed to work faster with NVMe, but in fact Vin10 crap in full. Here are the vaunted optimization algorithms, support for modern hardware and other nanotechnologies. There is nothing in the top ten, there is only marketing bullshit. We know that WinXP is the fastest OS!


EDIT by Fernando: This post had originally been written by YuriyCN in Russian language with Cyrillic letters. Since this a pure English language Forum, I have replaced the original text by the one, which was translated by onuracengiz (next post)

Direct Google Translate Result:

User tireal spoke about a method to make the Samsung 970 PRO NVMe bootable on Windows XP:

How to add support for booting from NVME in Legacy BIOS mode:
1) Open the topic [Experimental] NVMe Option ROM
2) Download the archive from the first post in it NvmeOpRom.zip
3) We write down the VID / DID of the NVMe media that we plan to use. (Either we search in Google, or, which is more reliable, we insert it into the motherboard through the m.2 to pci-e adapter, VendorID & DeviceId in the Device Manager)
4) Using OpRomCfg.exe, enter the values ​​from clause 3 and the checksum into the firmware.
5) Using the AFUWIN64 program, we save the current bios ROM firmware, make a backup of it.
6) If you have AMI, then take MMTool 3.19 / 3.22 and add the resulting NvmeOpRom.bin via Insert, check the “Link Present” checkbox and enter our VendorID / DeviceID, click Insert, then Save Image As. If AWARD, then it is better to prepare the programmer in advance, because avard is famous for the jambs of its native utilities and often kills the firmware with them, but you can try to find a cbrom that will work with your firmware normally. If Phoenix / Insyde - then everything is really bad.
7) Flash the resulting ROM image.
8) Go to the boot device selection menu and enjoy the line like “NVME 01: 00.00.1”.
9) Install Windows XP with added NVME drivers (item # 2 in Integral Edition).
10) We enjoy life without any Clover and flash drives stuck on a permanent basis.

Tested on Asus Z77 Sabertooth motherboard, AMI BIOS. NVME disk - Samsung 970 pro. Attention! For some time, Asus motherboards have only supported their own CAP format for firmware instead of ROM (MMTool and AFUWIN64 only work with ROM), in my case they differ in that CAP has 2048 additional service bytes at first.
I couldn’t write back the corrected ROM via AFUWIN64, and I made a program that took 2048 from the original BIOS CAP file and wrote them before the corrected ROM. I flashed the CAP firmware through the function of the motherboard FlashBack via USB, when the PC does not need to be turned on for flashing (there is no ROM check for originality). I did all this with a second computer at hand, it is not recommended to do it on the main one - you can make the motherboard inoperative if you do something wrong.

Sources:
https://habr.com/ru/post/481252/ (JerleShannara comments)
[Experimental] NVMe Option ROM

Comparison of performance in Windows XP, Windows 7 and Windows 10:

nvmespeedtest.jpg



What we see in performance tests.
The performance of NVMe on Windows XP is inferior to the performance of Windows 7, but this is not surprising. It’s amazing that an NVMe drive actually worked on a 20-year-old system !!! But, both systems overtook Windows 10, which was supposed to work faster with NVMe, but in fact Vin10 crap in full. Here are the vaunted optimization algorithms, support for modern hardware and other nanotechnologies. There is nothing in the top ten, there is only marketing bullshit. We know that WinXP is the fastest OS!


It gets interesting,translated version of the link as follows;
https://translate.google.com/translate?s…ru/post/481252/
Article shows this guide as a source;
https://linustechtips.com/topic/592133-h…r-motherboards/
In the end the source page ultimately shows this forum as the main source

@YuriyCN :
This is an international Forum, but all contributions should be written in English language and with latin letters. Only this way all members and visitors of the Forum can read and understand them by using at most 1 dictionary.
Please translate your post and write the text with latin letters.

Hi all.
I integrated the NvmeOpRom module into the asus asus p6x58d-e BIOS, and a successful boot.
But there was a problem, when the system is rebooted (win start - reboot), the BIOS does not see the nvme disk until you turn off the computer.
Maybe I’m doing something wrong when integrating rom into bios?

Thank you, OP! Using your option ROM, I have successfully booted from a Plextor NVME drive on a SuperMicro X8DTL-6F motherboard (AMI pre-UEFI BIOS) with dual Xeon X5676 and 96G of RAM. This makes booting the OS and compiling Visual Studio projects A LOT faster! The process is pretty much plug and play. The NVME driver is converted to PCIE 2.0 X4 via a cheap $2 converter in a X8 slot. It’s an old motherboard so only PCIE 2.0. The VID and PID are obtained this way:
Open Device Manager, under Storage Controllers, there is a Standard NVM Express Controller - this is the controller inside the NVME drive
Right click on it, select Properties
Click on the Details tab
Change the Property Dropdown list to Hardware Ids, I got something like PCI\VEN_1E95&DEV_23F1
So for me the VID (Vendor ID) is 1E95 and PID (Device ID) is 23F1
These values are used to fill in the blanks in MMtool. The BIOS was a backup copy obtained via DfuWin64 and then modified with MMTool and written back to to the board after modifications.
It works flawlessly. Thanks!

@bobhuang1 : Welcome to the Win-RAID Forum and thanks for your contribution.
Enjoy it being able to boot off an NVMe SSD with a Legacy non-UEFI system!
Dieter (alias Fernando)

Thank you, Dieter aka Fernando! I actually followed your guide on how to separate pre-UEFI and post-UEFI bioses. I have four more machines with H61 chipset (from different manufacturers, all with AMI bios) now booting from NVME, using your detailed guide to modify and reflash the bioses. This forum is my best source for bios mods. Thanks much for the hard work and good guides!

Hi,

I am a little bit confused; hereunder the last step I had done, would be great to have your assistance in this matter
Regards,

P.S

c:\BIOS>OpRomCfg NvmeOpRom.bin 2646 2263
Option ROM configured successfully.


FYI
www.win-raid.com/t871f50-HowTo-Get-full-…html#msg143726

Capture.PNG

Actually you don’t need to run OpRomCfg anymore, simply entering the VID and PID in mmtool is enough. Follow this very detailed guide (it’s posted by one of the guys here in Russian) with screenshots, it should work for you. Thanks.

Thank you for quick response, please refer to the enclosed image…

Capture.PNG

@Abdllaziz

Ur device ID is a Kingston A2000, follow the guide.

Ur MSI motherboard uses AMI Core8 legacy, not AMI AptioV, if you have problems in flashing the mod use the provided Flash utility in bios update 1.G or the internal flash utility in the bios motherboard.
Keep in mind that all bios mod operations flashes have some risks of breaking the bios/system, ur choice only.

@MeatWar

To be honest; I dont follow you correctly, my guessing right now is:
Due to motherboard structure (Old Building) I have to use their latest version same as I describe earlier to do modify some lines by employ @Ethaniel ROM

So, the necessary steps will be follows:
Start OpRomCfg to rewrite Vendor and Device IDs which were mentioned on post #56 to official MSI Bios version 1.G then use M-Flash to reflect those changes in the source to be operative as normal update.

Am I Right?