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

Flashing is fine regardless of that invalid opcode thing, it’s the modified FW that’s broken.
The FW itself is fairly old and needs to have DXE drivers in specific compression format (Tiano) with a specific structure, also started later on with DEPEX section. Black screen after flashing indicates that DXE dispatcher not only fails to dispatch the newly-inserted driver, but also crashes in process.

UPD: try this attached file.

X9DR3P5.304.mod.zip (3.69 MB)

Thanks so much, I was able to flash and boot the server back up with your modded BIOS. The drive I believe showed up as well during boot “pata: SS” This is the first time I’ve gotten this far! I wasn’t able to boot Linux bc of what I believe is a required OS reload and will do that as soon as I get back. I’ll let you know how it goes!

I did an OS reload and rebooted the server after I flashed the new MOD. I can see the pata: ss drive show up now as a boot option, it even shows up in the BIOS, but it can’t seem to boot from the NVMe drive. Any ideas?

Bob,

You need to create a Uefi boot entry for your OS installation. If you restored a backup its possible that the boot entry in NVRam is missing. At this point you need to create an efi shell usb stick. Usually they are made by formating a usb disk fat32 and creating an EFI/BOOT folder and copying shellx64.efi into the BOOT folder. Depending on how old your firmware is you have to pick the right shellx64 that is compatible for your uefi version. From there you boot into shell and ‘map -r’ all your drives. You should see your nvme drive listed as fsn: where n is a number. From there you use bcfg to get a listing of your boot entries “bcfg boot dump” and after the last one you type “bcfg boot add n [path the windows boot loader] [Your OS Name]” where n is the sequential last number item and using the correct path to your OS’s bootloader efi file. I had to do this on my Z68 board to get my Nvme drive to load Clover and Mac OS. I suppose if you install your OS fresh it should add the uefi boot entries on their own. Good luck!

Also take note that it’s an UEFI-only driver and Linux installed in legacy mode can’t boot from it. Please make sure you are booting the installer in UEFI mode (even better, you an try to disable CSM completely, so no legacy mode will become available, but it can be impossible for EFI this old).

I don’t think I have the compatibility mode in my BIOS, it’s legacy or UEFI only. I attached a screenshot of the pci options.

I tried reloading the system after confirming I wasn’t in legacy mode and unfortunately it keeps showing the PATA :SS drive but not booting from it. It shows it both in the BIOS and also as a boot option in the F11 boot menu. This is happening with both Centos6 and 7. I’m pretty sure it’s not on the OS level but I could be wrong. So strange it shows the drive but can’t seem to boot from it.

4BFBBA9B-65CD-4914-9D82-F3FCF5C14D59.jpg

As it has been stated a thousand times on this forum before you can not boot from PATA:SS ! Trust me you need to create a UEFI boot entry if in fact your OS is installed in UEFI mode, and just like CodeRush has stated if its installed in legacy mode you will not be able to boot.

Interesting, we’re trying to mod the OS now to see if we can get somewhere. Thanks for the tip

I have a suggestion you can try.

I recently got NVME working on two old boards, one was a fresh install where the Windows Boot Manager entry was automatically created by the windows installer, and the other was a migration from mbr on sata to gpt on nvme. I used Macrium Reflect free to do the conversion and cloning for that one. It was a somewhat manual process where DISKPART was used to create empty EFI and MSR partitions, and then image over just the c:\Windows partition to the remaining space on the drive, from a previously created image file.

The last step is to use the Macrium rescue media (Windows PE variant) to populate the EFI partition by using the Fix Boot Problems tool. This tool also seems to have created a boot entry for me called UEFI: Intel 760p serial no… I get that to boot from on my migrated OS install versus Windows Boot Manager on my fresh install. Obviously the boot entry comes from somewhere, is it in NVRAM, or in a file on the EFI partition, and it has to be created by something. That was my takeaway from the experience.

Ok, I don’t know if that will help you. If that works for you great, otherwise it sounds like the right answer is to use the EFI shell as previously suggested.

Hi,

I just wanted to report success getting NVME boot to work on two old AM3+ boards.

Gigabyte GA-990FXA-UD3 R5 F1 bios and GA-970A-DS3P FX F2 bios.
With NVMEXPRESS DXE 4 and UEFITool.

Edit:
Max performance is 1200 MB/s read and 618 MB/s write with Intel 760p 128GB on PCI-Express 2.0 x4 slot.
But the PCIe 2.0 isn’t the bottleneck with this drive. It is starved for flash chips/channels.
A larger drive would have more flash channels and be even faster.

It was still a worthwhile upgrade in my opinion, despite the platform’s limitations.

There is no need to mod the OS, just do a fresh install of Win10 by following the start post of this thread.
You will be able to boot off the NVMe SSD, but the entry within the Boot Menu will be “Windows Boot Manager” (visible after having created the EFI boot partition by the Win10 Setup).
You cannot boot off the device named PATA SS, because this entry is only valid for booting in LEGACY mode, which is not possible due to a missing Option ROM (it is missing for everyone, not only for you).

Hi Fernando, CodeRush,

Success! We were able to reinstall the OS and then modify the CentOS7 grub boot line. We also learned we couldn’t just install the OS from IPMI or even from CD - we had to use the KVM spider, go into the BIOS, and select “Boot override UEFI CD”. Now when the server is rebooted, we get taken to the UEFI shell and just have to type in “exit” which is no big deal. Server then boots up ok.

We ran a non compressed DD speed test. When the size = 250M, speeds
are 832MB/s, when 1GB, 936MB/s. Just amazing.

Thanks so much Fernando, CodeRush for your help on this!

@WhatsSATA :
Welcome to the Win-RAID Forum and thanks for your report!
It is fine for you and for us, that you succeeded and now are able to boot off your NVMe SSD.
Enjoy it!
Dieter (alias Fernando)

@BobsHW19 :
Thank you for your final report and @CodeRush for his problem anlysis and for being able to repair the invalid opcode of the modded BIOS, which was the key for the solution!
We both (CodeRush and me) are happy, that you can now enjoy the speed of your NVMe SSD.
Enjoy it!

Hi.
I posted a few weeks ago that I’d like to modify my Asus P8Z77-V-Deluxe motherboard to support NVMe boot option. I only have PCIe 2.0 x4 available as both of my PCIe 3.0 x16 are occupied by GPU’s.
I plane to buy M.2 NVMe drive with PCIe Adapter.

I was able to modify the latest BIOS P8Z77-V-DELUXE-ASUS-2104.CAP as per instruction. I’m going to use the EZ BIOS method to flash .CAP file. I used the UBU tool to rename the file to Z77VD.CAP.

However, after reading ahead, I got confused and I have a few questions:

1. Under "Installation of the OS onto the NVMe SSD"

If not already done, you can now insert the NVMe SSD resp. its M.2>PCIe adapter into the M.2 port resp. PCIe slot, which offers the best possible performance and doesn’t share the PCI lanes with other devices (please look into your mainboard manual).
Important:
The “BOOT” section of the UEFI BIOS and the shortcut to the “Bootable Devices” will not show the NVMe SSD, although it may be bootable!
After having installed the NVMe supporting OS in UEFI mode onto the PCIe/M.2 connected SSD, you will see the new bootable system drive listed as “Windows Boot Manager”.

Q1: How can I install the OS over the NVMe drive if it’s not shown as bootable?

Q2: “Save the important data, which are currently on the NVMe SSD.” Which important data? I’m buy new NVMe drive. Should I be doing something on that drive prior to trying to install the OS?

Q3: “Side note: Some users reported, they had to disable the ASMedia SATA Controller within the “Storage Configuration” section to be able to boot off the NVMe SSD.” - So this renders the ASMedia SATA ports as permanently non-usable if wanting to boot from PCIe NVMe?

Q4: I have overclocked PC. May I restore my BIOS settings after flashing the modified BIOS? they are both of the same version, 2104.


Thank you.

just registered to say thank you.

my Samsung 970 Evo Works & boot perfectly with the Gigabyte GA-Z97X-UD5H rev1.0 BIOS F7.

@User147852 :
Welcome to the Win-RAID Forum and thanks for your feedback!
It is fine, that you succeeded, and we are glad, that we were able to help you.

Regards
Dieter (alias Fernando)

anyone?

@gil :
I am sorry for my delayed reply.
Here are my answers:

Because the NVMe SSD is only bootable in UEFI mode, which requires the presence of the (usually hidden) EFI boot partition on the NVMe SSD. This partition will be created during the installation of the OS in UEFI mode.
As long as the EFI partition with the “Windows Boot Manager” has not been created, the BIOS will not show the SSD as bootable device.

If there are no data on the NVMe SSD, there is no need to save any.

No, this remark has been added to avoid any problems during the OS installation, which have nothing to do with the NVMe SSD and its connection. Once the OS is up and running on the NVMe SSD, the user can re-connect all other previously used HDDs/SSDs resp. re-enable the related SATA Controller. In case of any troubles, you may have to try another setting.

You can try it, but there is no security, that the previously used overclocking settings will still work without any issues.

[quote="Fernando, post:3358, topic:30901"] @gil:
I am sorry for my delayed reply.
Here are my answers:
Zitat von gil im Beitrag #3351
Q1: How can I install the OS over the NVMe drive if it's not shown as bootable? [/quote] Because the NVMe SSD is only bootable in UEFI mode, which requires the presence of the (usually hidden) EFI boot partition on the NVMe SSD. This partition will be created during the installation of the OS in UEFI mode.
As long as the EFI partition with the "Windows Boot Manager" has not been created, the BIOS will not show the SSD as bootable device.

Thanks for your detailed reply.

Unfortunately, I didn't understand the answer to my 1st question.

Given the following:
1. I have successfully flashed the modified BIOS with the option to boot from NVMe PCIe drive
2. I have a Win10 installation USB media, created by Windows Installation Media Creation Tool
3. When I reboot the PC and select in BIOS setting "Boot From Device > UEFI USB Win10 Installation Media"
4. Win10 Installation is loaded

Questions:
1. While in Win10 installation, will I be able to select the NVMe PCIe SSD and have it as Drive C: for the Windows installation?
2. If no.1 statement is true, will then I'll be able to see in the BIOS Boot Settings the ability to boot Windows from the NVMe PCIe SSD?

Thanks again.
Gil.

Yes, if you have done everything correctly according to the guide (= start post).

Yes, but you will only see the option “Windows Boot Manager”.