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

Good morning possible to have bios mod 2.40 complete in all sectors including Nvme for asrock Z77 oc Formula? and bios mod vega64 Gop support for GV-RXVEGA64GAMING OC-8GD https://download.gigabyte.com/FileList/B…GA64_8GD_F2.zip

@forzic17 :
I generally do not modify any BIOS upon request. Furthermore I haven’t written the detailed guide with the intention to do the BIOS modding finally myself.
So you should try it yourself by following my guide. If you are unsure regarding your result, feel free to attach your modded BIOS as *.ZIP archive. Then I (or someone else) will check it and tell you, whether it is ok for being flashed or not.
Good luck!

Hi, back there,
I’ve got MSI ZH77A-G43 mainbaord

And I’m trying to do add nVME DXE-driver (NvmExpressDxe_4.ffs) with UEFI Tool 0.26.
Firmware
https://de.msi.com/Motherboard/support/ZH77AG43
=> https://download.msi.com/bos_exe/mb/7758v1A.zip

I’m not sure, where at the bottom of the last GUID to add the module, it’s unclear to me.
[[File:Where_To_Insert_(NvmExpressDxe_4.ffs-GUID_5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3)_Original_BIOS-file.PNG|none|auto]]

Adding it either way directly after “44A10DA4-5B73…” (this selected, then “insert after”) the “NvmExpressDxe_4.ffs” - I lose padding file.
Here in thee preview before done editing (without saving changes yet - withiut opening the edited file yet)
- the padding appears still being there, and the new “5BE3BDF4-53CF-46A3” added after
[[File:(NvmExpressDxe_4.ffs-GUID_5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3)-inserted-after_05CA01FC-0FC1-11DC-90…(un)saved(Preview).PNG|none|auto]]

After having saved file: the padding file is lost: (see pictue below (right UEFI-Tool-window -modified saved file reopened (padding lost) -
compared to left UEFI Tool with the editing, but preview, not saved yet - where the padding appears still being there):
[[File:(NvmExpressDxe_4.ffs-GUID_5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3)_saved-_inserted-after_05CA01FC-0FC1-11DC-90…_padding_lost.PNG|none|auto]]

Ive also tried adding the (NvmExpressDxe_4.ffs) (= 5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3) after “97E40690E6” directly. Afaik the padding remains then, but the “5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3” will be sorted in between “User interface section” and pad “Pad-File”.
(not entirely sure whioch it combination it excatly, was, but at one combination of line to select within “44A10DA4-5B73…” paragraph the pad-file remains, but the result will be in another order with the new GUID being in between of some 2 lines from “44A10DA4-5B73”.

Where at the “44A10DA4-5B73…” paragraph, to add the :(NvmExpressDxe_4.ffs-GUID_5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3 ?

Or could it be an UEFI-Tool-Bug or did I do it wrong?

I won’t flash anything before being entirely certain.

Maybe important notes using in-circuit-serial-programming on MSI ZH77A-G43, if it’s not working by the JSPI1 port:
But got In-circuit serial programming working, BIOS was buggy, (so upgraing to 1.10 (0x1A) (old 1.4 BIOS version had serious RAM compatibilty issues even with reliable Samsung RAM)
by using SOIC-test clip/clamp with external programmer
directly after moment start, where it can read Chip-ID for ca. 5 seconds, but then it won’t longer by alone, and I have to short RST-Pin on Frontpanelconnector each time,
and placing a small jumper over reset button, )read Chip-ID correctly, for only 5 seconds period (too short zo read/program anything correctly),
then 5-second cycles, where it can, and can’t read the Chip-ID (FFFFFF. but NO complaint about wrong connecting any programmer to EEPROM wires)
at next reboot-loop while ME-firmware is not blocking SPI bus),
huurrying to shorting at PSU-ATX-24pin-connector (Green wire with black wire - from the Top on the connector shorting with a ca. 1mm fat wire,
and moving Jumper from Reset-pins over to the Power-On-Switch-Pins,
then leaving the Jumper on two power-on-switch-pins - leaving green-black wire on PSU connector still shorted),
If done all that right in time, nothing more to do, then should read chip ID permanently by alone, without further interaction.

If it’s not fast enough, just placing back Jumper to Reset-Pin and removing temporarily green and black wire connection on ATX 24-Pin cable,
and retrying to make all those steps within this 5 second period, where it can read Chip-ID (during boot-loop-restart when first 5-seconds-interval, before rebooting/ar´ttempting to reboot with reset switch shorting)

Getting all steps done in 5 seconds ahieved so that could read Chip-ID permanently (in-circuit), program EEPROM, and rereading it out 100% (in-circuit). Even recognizes ChipID without “ICSP VCC Enable”.
Didn’t need any capcitor nor any pull-up/down resitor on any pins. Just the 6 ICSP pins from programmer connected accordingly, and (Vcc + WP-HOLD +RESET pin EEPROM) pin shorted.

ZH77-G43_Winbond_W25Q64FV_SOIC8_TL866II_Plus_ICSP_Read8_Successful_ICSP_VCC_DISabled_3.PNG



Dumping EEPROM also worked, while bad working 1.4-BIOS was not updated by good version, but got two different ckechsum patterns after several read attempt,s both two checksum patterns repeating exactly, always (with ICSP VCC Enabled) (same result with ICSP VCC DISabled) Done ca. 40 read-outs and both two pattern results exchanginy by each other in a period of ca. 3 minutes.


But Writing 1.10 (0x1.1A) Image (via ICSP) from MSI website and verifying (read-out of programming) 100% OK.
And ZH77A-G43 Mainboard booting up fine now. Also with all 4 RAM DIMMs working perfect.

(Now trying to mod nvme-DXE,
but not sure, to risk, if firmware firmware would get bricked from modding entirlely, if that "PSU-Green-Wire-Black-wire-shorting +reset-pin/ then “pwr-pin-shorting”-trick still was working)
----
[Edit]
Never mind:
Search on google found this,that it is a bricked BIOS when pad-file gets removed.
[SOLVED] Bricked MSI-Z68A-GD55 G3 BIOS after flashing NVMe modded BIOS (3)

I’ll have to use MMTool instead.
[Edit]
OK Flashing successful, and “repaired” via ICSP (firmware/updated),
and now reflashed booting fine with updated CPU-microcode.
The last issue had been that MMTool 4.5 crashes. when selecting MM-Tool-CPU-patch section.
MMTool 5.0.7 doesn’t crsah, but add/extract/delete microcode-section grayed-out.
But at first I added the “NvmExpressDxe_4.ffs” with AMI Aptio MMTool 5.0.0.7, no issues, the pad-file will be moved after the inserted NVME_GUID, but all GUIDs
sub-sectuions look as on original. Then the trick using AMI Aptio MMTool 5.0.0.7, by with UBU together, made all out-of-date CPU-microcodes to be updated.
Also after using UBU to update the microcode on a clean firmware (where was not messed with the original padding) , the issue did no longer happen, that a pad file got moved into another/next to another DXE-GUID section being further ahead of the BIOS file.

Then was using FPT (FPT8R3) instead of MSI Builtin-Firmware-M-Flash, as “Lost_N_BIOS” recommended in this case as far I understood him.

Board still boots fine, now with the newest updated microcodes nd NVME DXE module (nVME not tested though)!

EDIT by Fernando: To save space I have resized the inserted pictures (can be enlarged anyway by clicking onto them)

Where_To_Insert_(NvmExpressDxe_4.ffs-GUID_5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3)_Original_BIOS-file.PNG

(NvmExpressDxe_4.ffs-GUID_5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3)-inserted-after_05CA01FC-0FC1-11DC-90...(un)saved(Preview).PNG

(NvmExpressDxe_4.ffs-GUID_5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3)_saved-_inserted-after_05CA01FC-0FC1-11DC-90..._padding_lost.PNG

Hi Fernando, a simply question for you:)

i’ve an old GA-Z77X-D3H gygabyte MB, and find a samsung 950 PRO ( exactly this https://www.samsung.com/it/memory-storag…sd/MZ-V5P256BW/ ).
now i read your guide, then i dont need to modify bios to boot the samsung 950 pro on my mb? i only need to use bios in legacy mode to have the ssd bootable from the list or not?
if yes… you know if there are other samsung model that do this with older MB?

thanks in advance :slight_smile:

@tiarna
I’ve got a similar mainboard (Gigabyte Z77X-UD(5)H). UEFI-BIOS-Updater shows that an UEFI-Module was present.
[[File:UEFI_BIOS-Updater_Z77X-UD(5)H_F16J_original_BIOS_nVME_present.PNG|none|auto]]

For verification for yourself, please check newest Z77XUD[3]H original BIOS version file on UEFI-BIOS-updater.

Many nVME boards afaik only have nVME boot-support in UEFI-mode.
My schenker S506 laptop offers VME boot support (even) in Legacy_Mode and, both in UEFI ind legacy without SSD option ROM.
The developers looked already at my Laptop BIOS. They couldn’t find the legacy-nvme bootaibilty part in the firmware, just for UEFI.

They say that the nVME bootability in legacy mode would be stored anywhere in the firmware, but not marked as module etc.

If your Z77X-UD[3]H does support nVME booting, you must probably check yourself, if its’ working in legacy mode as well, and if, with and without SSD option ROM.

Your 950Pro has an option ROM, so it should work in legacy mode as well as in UEFI, if your board has NVME in firmware, anyway.
SM951-nVME /without option ROM) is guaranteed to not work at all on Z77X-UD3H and Z77X-UD5H, if nVME module+firmware was missing in BIOS-file and missing nVME-controller’s-firmware.
I’M not sure if nVME SSDs with option-ROM still required compatible nVME modules for booting via UEFI and legacy.

I’d have an Samsung Sm951-nVME M.2 SSD, (afaik without option-ROM) to potently test on Gigabyte Z77X-UD5H, (but it’s in my laptop, and don’t want to open it), and I don’t have a PCIe-card to M.2 M- or B-M-/Key-adapter.

EDIT by Fernando: Unneeded fully quoted post removed and inserted picture resized (to save space)

UEFI_BIOS-Updater_Z77X-UD(5)H_F16J_original_BIOS_nVME_present.PNG

@tiarna :
Yes, users with a Samsung 950 PRO SSD don’t need to put an NVMe module into the mainboard BIOS. They can boot off the NVMe SSD in LEGACY mode.
Maybe the Samsung 960 PRO has an NVMe Option ROM within its NVMe chip as well, but I don’t know it for sure.

@Vincent12 :
Your experience verifies, that AMI’s MMTool v4.50 is the best and safest choice for the insertion of the NVMe module.
Question: Why didn’t you simply follow my guide?
Regarding the BIOS of the Gigabyte Z77X-UD5H you are wrong: It only contains Option ROMs from Intel, Marvell and Atheros, but no NVMe Option ROM. I just have checked it.
By the way: NVMe SSDs like the Samsung 950 PRO, which supports booting off NVMe SSDs in LEGACY mode, have the required NVMe Option ROM within the SSD chip and never within the mainboard BIOS.

@all:
Due to Christmas I will not be online for some days. I will be back on 26th December.

@Fernando
I got the MSI ZH77A-G43 together with Asrock Z77Pro4 and a Foxconn H68-M and three AMD boards AM3+ for 45€ incl. shipping (all sold “as defective” - seller couldn’t test due to missing components - appeared plausible) from ebay
the Arock Z77 Pro worked at once.

The MSI ZH77A-G43 (V1.4) had had problems in the first place (repaired see below), it had worked shortly having5-times power-up-probing-cycles, then booted fine, but BIOS a bit slow but hadn’t booted boot USB drive, and legacy-mode issues.

Then after sixth reboot, it hadn’t booted any longer, board staying in a reboot-loop,
didn’t do any firmware flashing (probably memory-initialization problem, but not beeping,
only when RAM removed, three shorter beeps (AMI error code memory initilization error/“memory failure”), but no longer reboot-loop.

But removing RAM hadn’t helped to read the chip ID by the programmer externally (see below) etc.


CPU+RAM inserted: The trick with shorting the green and black wire on 24Pin-PSU opened a 5-second-time-window where programmer could read Chip-ID,
and prevented the reboot-loop, which blocks reading the chip-ID permanently.

But this read the Chip-ID only in 5 seconds exchanging period with reading Chip-ID correctly with “EF 40 17” Winbond W25Q64FV) and at next period “FFFFFF” again

If I miss the 5-stime-window, remove black and green wire (mainbaord powers OFF), and shorting the RESET-switch-pins was required, for next opportunity,
reshorting black and green wire (mainbaord powers ON)24-pin-ATX, REST-Jumper resting shortly on giving a next time 5s window chance, then hurrying to moving the jumper over from RESET-Switch-Pins to the PWR-Switc-Pins.
And finally read Chip-ID permanently and could flash MSI V 0x1.A (1.10) (stock) BIOS by In-circuit-serial-programming (ICSP) via programmer externall with SOIC test clamp, mainboard working perfectly, etc,
and then done the firmware-modding etc.

----

Now that mainboard is booting up fine, it reads Chip-ID permanently by powering up the mainboard shorting black and green wire itself by alone, now I don’t need to place jumper on Reset-Pins nor PW-Switch-Pins,
to get the chip-ID via ICSP permanently.
Powering up the board via power switch only results and had lead to “FFFFFF” (but NO “Pin detected error - Check whether good pin” warning), but via black green wire-+etc-procedure-trick powering up, the programmer detects read chip-ID.
(When mainboard is/was switched off (board not powered), the Programmer Tl866II Plus software Xgecu would say “Pin detected error - Check whether good pin”)

----

I din’t brick anything for those board at least. :slight_smile:
I didn’t notice a description about padding at the UEFI nvme modding at start post. But then did a google search about padding on MSI BIOS, how to handle it, and found other thread/ and/or thread page, from Fernando, describing the padding issue.
I din’t flash any bricked BIOS.

----

Ah sry (was editing post) this night .
The MMTool 4.5 version crashed in this case instantly when selecting MMTool CPU patch tab.
(At least clicking on Insert/Extract/Delete section wouldn’t hang MMTool 4.5)

So just took MMTool 5.0.07 for adding NVME-DXE volume, and works reliable (for MSI ZH77A-G4. firmware).
And for microcode adding/replacing, still required together with UBU for this situation.
(using alone, CPU microcode options to add/remove/grayed out in MMTool 5.0.0.7, (MMTool 4.5 crashes here in CPU patch Tab) -but 5.0.07 and with/or by UBU itself works updating the CPU-microcodes
(At UBU.bat executing-starting, without MMTool it complains not having mmtool_a4.exe placed in.

----
But maybe 4.5 would not not crash if with UBU together used by.

But Yes, as Fernando strongly recommends in other thread, MMTool was best option here (anyway tested with MMTool v5.0.07 doing the job here), to insert the DXE volume, when there’s padding, e.g. at latter area where it will add a module/do the modification.nVME-


I wish you, and all people Happy christmas, New Year’s Eve and hopefully relaxing holidays etc.

(My Laptop still crashes always with faulty HDD, after selcting boot entry from faulty drive) Maybe similar behavior you have, (just right of start.attempt of computer - maybe different behavior on different PC-hardware/firmware)

When the computer is not booting with the SSD, you’d need hot.plugging, and check if the M.2 SSD is detected from a running system at all.
PCIe Slots can pricipially do hot-plugging (but not with PCIe graphics cards of course), but afaik it’s not best implemented yet.
Afaik nVME hot-plugging is still under developement, and afaik not currently available, even on newer computers.


Via an M.2-nVME to USB-C 3.1 enclosure, and test it by plugging the enclosure in a running Knoppix-Live-Linux-System or Windows.
And check whether the M.2 ADAT XPGA is detected at all,

As USB supports hot plugging.

If it’s still not detected, same with other PCIe card, then it’s the ADATA XPG8100SSD, and not from the nVME BIOS mod.

I’ve bought this cheap M.2-nVME-to USB 3.1 adapter on ALiexpress, fpr 13.99€ (ca. 18$) (+5.5$ shipping e.g to US) - Asmeida ASM2362 M.2-nvme to USB bridge chip
No Thunderbolt of course, but M.2 to Thunderbolt enclosures are still quiete expensive.
But does work also on TB3 ports (USB-C integrated port with USB 3.2 and TB3)

https://de.aliexpress.com/item/329592566…5a-2a133a41a347
Quite cheap price, Supports nVME SSDs, and USB-UASP and older USB-BOT, SSD-TRIM, SCSS-Unmap und ATA-Passthrough.
Included is one (short ca 10cm) USB-A to USB-C cable.

It supports even my (B+M)-Key Intel-Optane SSD (3D-xpoint) (tested myself), the enclosure has M-Key. and supports booting (so no SSD option ROM needed) It also can boot.
So it should work with M.2 B+M-Key Flash-SSDs as well, like with M-Key types.
Sry not intending to advertise.

Not meant as solution to use your drive with, just to test if your ADATA XPG 8200 sample was OK.

Anyway enclosure could come in handy, for other purpose in future.
https://forums.guru3d.com/threads/m-2-nv…is-dead.429142/

Keep in mind SMART is not working in Linux with this enclosure currently. Afaik but CrystalInfo could read M.2 SSD Smart-Data via ASM2363 enclosure.

I tried tto look if ADATA XPG8000 had issues, e.g on enclosures but couldn’t find anything.

@Vincent12 - FPT should never be used with stock BIOS, only with FPT dumped BIOS, or a programmer dumped BIOS, otherwise you will loose your serial, UUID, and possibly LAN MAC ID too depending on where it’s stored and how you flashed.
Sorry, too much text there for me to dig through to see what you did and why, only noticed that you mentioned my name and suggestion of FPT there at end. I may have suggested it, but probably only in a thread where the above mentioned files types/scenarios were the source flashed.

Not all BIOS brick if padding is added or removed, but you can only test/confirm if you have a programmer in hand and backup made so you’re ready to recover, otherwise if not, then always assume.
And, when editing BIOS in anyway, especially at Microcodes, but sometimes NVME mod or any main volume mod such as a setup or AMITSE mod, the padding files can be added or lost with either MMTool or UEFITool, always double check your before/after files before you flash them.
This can always be worked around to where it remains in place, when either tool does it, but sometimes it’s tricky! This kind of work around is not something general people would be able to do, advanced BIOS editing skills are required.

Hi, couple of questions I hope someone can give me answers for… still waiting for my m.2 NVMe drive to arrive but already doing some preparations :wink:

Using mmtool v4.50.0.23 i am only able to insert NvmExpressDxe_Small.ffs, using NvmExpressDxe_4.ffs I get the ‘Not enough space within the Volume’ message, but using UEFITool.exe I can insert NvmExpressDxe_4.ffs without it complaining about the size… What is the best to use? (both bios mods flash/boot just fine)
Do ‘Secure Boot’ en ‘Fast boot’ have to stay disabled after Windows installation succeeds or can they be turned back on after?

I downloaded the mentioned file for my Asus M5A99FX pro r2 to have nvme booting available, copied it in usb, and plugged it behind the pc then shutdown. Pressed the flashback button, green light flashes then stopped after may be about a minute.
Question/Problem:

  1. I forgot to get screenshot of original bios setup(got so excited) for comparison if the new modded bios got installed. Is there a program I can ran to see if nvme is now available?
  2. I will buy an nvme ssd and adapter if I have confirmation that nvme is available. I took some screenshots of bios after the flashback (attached). These are taken under the option where it says CSM enabled. It doesn’t say anything about nvme, but may be because I don’t have anything attached to the pcie slot?
  3. Where should I install the nvme ssd adapter, green or black slot? As of now, the video card is installed in in the green slot closest to the cpu.

Thank you.

@RvdH - Either is fine, and since you already flash tested without having someone check for you, and all is OK, I would go ahead and use the UEFITool edited one with the Full size NVME in there.
You can turn back on those settings I believe, fast boot for sure, but it may depend on your board/BIOS about the Secure boot (since you broke that with mod BIOS)

@LoMayok - there is no way for you to check that, other than dump the BIOS and look at the BIOS in BIOS tools. Sounds like flashback worked properly, and your board booted, so provided you put the NVME module in correct place in BIOS you should be all set.
Put in black x4 slot, otherwise it will make your graphics card run at x8

Hello and thanks with advanced to whom who can help
Never before tried something like that.

i have a
3 * Gigabyte - GA-Z68X-UD3H-B3 (rev. 1.3) using uefi firmware U1n (BIOS American Megatrends Inc. U1n, 11/07/2016)
https://www.gigabyte.com/Motherboard/GA-…B3-rev-13/sp#sp
&
1 * Gigabyte - GA-H97M-D3H (rev. 1.0) using uefi firmware F7 (BIOS American Megatrends Inc. U1n, 03/08/2015)
https://www.gigabyte.com/us/Motherboard/…3H-rev-10/sp#sp

i would like to add nvme drives (Samsung 970 EVO Plus NVMe) insted of the SSD 2.5" because of changes to our factory floor and I’m going to use a custom chassis for this PC’s (windows 10)

if some one can help guiding or creating the necessary bios files, it would be very appreciated!
&
another question:
can i install 2 NVME drives in one pc? (one for OS, one backup drive)


I’m aware i will not benefit to much from it, my problem is about actual space not preformance.

the adapter that i will use will be this one if what i’m asking is possible, unless some one think i should use other ones
https://www.amazon.com/watersouprty-Expr…77356799&sr=8-1

@it.omri :
Welcome to the Win-RAID Forum and Merry Christmas!
I have checked both linked BIOSes and realized, that both have nearly no free space for the additional insertion of an appropriate NVMe EFI module. This will make it very difficult for a BIOS modding newbie to get it successfully done without removing any other (not really required) BIOS module.
My advice: Start a new thread within >this< Sub-Forum, give it a meaningful title like "[Request] NVMe support for 2 old Gigabyte BIOSes" and paste a similar text and the same links into the start post.
Maybe our BIOS modding Guru Lost_N_BIOS will have the required time to do the related BIOS modifications for you.
Good luck!

Yes, if the mainboard has 2 free PCIe slots, which are offering the required PCIe data transfer lanes. You will need 2 M.2>PCIe adapters.
Regards
Dieter (alias Fernando)

Marry cristmas to you to:-)
To what subforum should i post as u adviced?

@it.omri :
Copy the text of your first post, go >here< and click onto the button “Create new Thread”.
Then give your new thread a short, but meaningful title and paste your previously copied text into the big post box.
Last step: Click onto the “Post thread” button.

Hi,
This is a huge thread…can anyone help with PCI-E Sata or NVMe M2 support for the GA-F2A88X-D3H AMD FM2+ board?

Thank You

@Glassfrog :
Welcome to the Win-RAID Forum!
There is no need for you to read more than the start post of this thread.
Which plan do you have and what is your problem,?
Regards
Dieter (alias Fernando)

Thanks you the quick reply.

I am looking to get a PCI-E sata drive booting openmediavault working, and then have 8x 6TB WD-Red drives connected up.
At the moment just trying to find out if this is even possible.

Regards,
Glassfrog

@Glassfrog :
It will be no big problem to get an NVMe SSD bootable with your current system after having inserted the required NVMe module into the BIOS of your mainboard. I just have successfully tested it with the latest F7 BIOS by using the AMI MMTool v4.50.
What I don’t know is, whether your mainboard will allow to use all your currently attached HDDs/SSDs plus the desired NVMe SSD simultaneously. Some specific SATA ports may share the data lanes with specific PCIe ports.
If you want to use a PCIe connected SATA SSD (which one?), you may have to insert a specific SATA AHCI module named SAMSUNG_M2_DXE into the BIOS, but this is not the topic of this thread. For details please look into the start post of >this< thread.