Page 1 of 311
#1 [Guide] How to get full NVMe support for all Systems with an AMI UEFI BIOS by Fernando 03.04.2015 11:00

avatar

Introduction:

Here is a short description of NVMe given by Wikipedia (look >here<):

NVMe is a specification for accessing Solid-State Drives (SSDs), which are attached through the PCI Express (PCIe) bus. "NVM" stands as an acronym for "Non-Volatile Memory", which is used in SSDs.

While Advanced Host Controller Interface (AHCI) interface has the benefit of legacy software compatibility, it does not deliver optimal performance when an SSD is connected via PCI Express bus. This is because AHCI was developed back at the time when the purpose of a host bus adapter (HBA) in a system was to connect the CPU/memory subsystem with a much slower storage subsystem based on rotating magnetic media. Such an interface has some inherent inefficiencies when applied to SSD devices, which behave much more like DRAM than like spinning media.[3]

NVMe has been designed from the ground up, capitalizing on the low latency and parallelism of PCI Express SSDs, and fulfilling the parallelism of contemporary CPUs, platforms and applications. At a high level, the basic advantages of NVMe over AHCI relate to its ability to exploit parallelism in host hardware and software, manifested by differences in depth of command queues, interrupts processing, the number of uncacheable register accesses etc., resulting in various performance improvements.[3][24]:p. 17–18

The table below summarizes high-level differences between the basic NVMe and AHCI device interfaces:




Which users will benefit from an NVMe supporting SSD?

Everything seems to be prepared for a drastical SSD performance boost by the upcoming new data transfer standard named NVMe:

  • The latest Windows Operating Systems from Win8.1 up natively do support NVMe. For Win7 and Server 2008 R2 users I recommend to read the start post of >this< thread.
  • Nearly all mainboard manufacturers are meanwhile offering new BIOS versions with full NVMe support for their mainboards with an Intel 9-Series or X99 Chipset.
  • Many consumer SSDs with NVMe support are already available or will be available soon.

There is no doubt, that users with an up-to-date mainboard, whose original BIOS contains the required NVMe modules, will benefit from the performance boost initiated by a new NVMe supporting SSD.
But:
What about the Intel 6-8 Chipset Series mainboards without such NVMe support given by the mainboard manufacturer?
  • Is it possible to give them the required NVMe support by modding the BIOS?
  • If yes, which modules have to be inserted and how has it to be done?

These were the main questions, when I started this thread in April 2015.
Although we do not yet know everything, we made in December 2015 big progress in finding answers to the related questions. That is why I have completely updated the below part of this start post.
Since February 2017 we know, that the method works for AMD Chipset systems as well (look >here< for the report written by our Forum member AntiBear).



Guide about how to get full NVMe support
(valid for all Intel/AMD chipset systems with an AMI UEFI BIOS)

(last updated: 05/01/2019)
Changelog:
added: Link to the thread about how to install Win7 onto an NVMe SSD


This is what you should know:

  • It is no problem to get a PCIe or M.2 connected NVMe SSD working with any Intel Chipset system from 6-Series up without modifying the mainboard BIOS, if
    a) the NVMe SSD will be used for the storage of data (as drive D:, E: etc.) and
    b) an appropriate NVMe driver is present within the Operating System (either natively or loaded/integrated),
    but the usage of such SSD as bootable system drive C: (incl. the boot sector) usually requires a special mainboard BIOS EFI module, which has to be loaded while booting.
    Note: Some NVMe SSDs like Samsung's 950 Pro SSD are natively bootable in LEGACY mode (CSM and loading of Option ROMs has to be enabled within the BIOS), because their Controller chip contains its own NVMe supporting Option ROM module.
  • These are the best pre-conditions for a successful implementation and configuration of an NVMe SSD as bootable system drive:
    1. The desired OS should be Win10 (due to its native NVMe support).
    2. The mainboard BIOS should offer the required UEFI boot settings.
    3. It should be possible to get a modded BIOS successfully flashed into the system's BIOS chip.
    4. The on-board Intel SATA Controller should not been set to "RAID" mode within the BIOS.

    5. Tip: Before you start with the preparations, I recommend to read >this< report written by our Forum member Paulos7.
  • Alternative methods to use an NVMe SSD as bootable drive with older systems (no BIOS modding required):
    1. "Clover-EFI Bootloader Method" (the related guide written by our Forum member Nyctophilia can be found >here<)
    2. "DUET-USB Boot Method" (the related guides written by our Forum members noInk resp. mireque can be found >here<, >here< and >here<)


This is what you need:
(Note: You have to use WinRAR v5.xx or 7-Zip v18xx to be able to unzip the offered RAR archives!)
  • A mainboard with an AMI Aptio UEFI BIOS
  • An up-to-date BIOS for the related mainboard (original or already pre-modified)
  • An appropriate UEFI BIOS modding tool. These are the alternatives:
    • a) CodeRush's UEFITool, which can be downloaded from here (as RAR archive): >CodeRush's UEFITool v0.26.0< (>MIRROR<)
      Advantage: This tool is free available, works very reliable and can be used with all AMI UEFI BIOSes without any restrictions.
      Attention:The UEFITool should not be used, if the opened BIOS contains one or more listed "Pad-files". A possible BIOS modding issue (removal of the "Pad-file") is caused by a wrong BIOS configuration and not by the UEFITool.
    • b) AMI's Aptio UEFI MMTool (best choice for AMI Aptio IV BIOSes: v4.50.0.23)
      This tool is not free available. Tips: Do a Google search for "MMTool Aptio 4.50.0023", join the listed TweakTown site, scroll down to the "AMI (UEFI) BIOS Tools" section and download the desired tool.
  • An appropriate EFI NVME BIOS module, which has to be inserted into the "DXE Driver Volume" of the mainboard's UEFI BIOS.
    You have the choice between 2 different NVMe files:
    • a) NvmExpressDxe_4.ffs dated 04/18/2018 (uncompressed size: 21 KB, best choice for systems without native NVMe support) and
    • b) NvmExpressDxe_Small.ffs dated 04/01/2018 (uncompressed size: only 6 KB, recommended for BIOSes with limited DXE Driver Volume space)
    • Both sorts of NVMe modules have been compiled and optimized by our Forum member Ethaniel on the basis of the currently latest source code UDK2018, which had been built by the EDK2/Clover Team for rather different purposes regarding the NVMe usage.
      The file named "NvmExpress_Small.ffs" contains just the required code to support booting off an NVMe SSD and should be taken, if there is not enough space available within the BIOS (resp. its DXE Driver Volume) for the insertion of the bigger sized "NvmExpressDxe_4" module.
      Both NVMe modules have been successfully tested. For details look >here< and >here<.

    Here are the download links to latest NVMe EFI modules, which demonstrably worked for all users, who inserted them, and support the NVMe Controllers of all currently available NVMe SSDs:
    Notes:
    • The "Small" variant should be taken, if the BIOS tool gives you the message "File size exceeds the BIOS volume size" while trying to insert one of the above mentioned uncompressed modules.
    • After having successfully inserted any of the above offered NVMe modules the relate name "NvmExpressDxe_4" resp. "NvmExpressDxe_Small" will be shown by the related BIOS tool.
    • Credits go
      • a) to the EDK2 Team resp. the Clover Team at InsanelyMac (>LINK<) for the source file UDK2018,
      • b) to our Forum member davidm71 for his efforts to make the source file usable as additionally insertable EFI NVMe BIOS module, which is loaded while booting off an NVMe SSD in UEFI mode and
      • c) to our Forum member Ethaniel for having completely re-structured, optimized, shrinked and re-compiled the NVMe modules.
    • Since these special NVMe modules worked until now with all tested mainboards, whose BIOS is an AMI UEFI one, there is no doubt for me, that it will properly work with your special mainboard UEFI BIOS as well.


This is what you should do:

  1. Preparation:
    • Create a separate folder within the root of any PC partition, name it anyhow (here: D:\Source BIOS) and copy the "pure" (completely extracted) source BIOS file into that folder.
      Additionally you should create another, but currently empty folder for the later created modded BIOS (example: D:\Mod BIOS).
    • Unzip the downloaded UEFITool resp. AMI Aptio MMTool and the chosen NvmExpressDxE module into the "Source BIOS" folder.
  2. BIOS modification:
    • a) Guide for the usage of the UEFITool:
      • Opening the BIOS file and finding the target DXE Volume:
        • Double-click onto the file named UEFITool.exe.
        • Use the full size option to see the complete content of the UEFITool GUI.
        • Click onto "File" from the UEFITool menu bar, choose the option "Open image file..." and navigate to the folder, where the source BIOS is located. If it should not yet been shown within the pop-up window, choose the file type option "All files (*)", which is located just above the "Open" button.
        • After having double-clicked onto the BIOS file, which you want to get modified, you will see a picture similar to one of these:
        • Expand the shown image resp. capsule by clicking onto the right-direction arrow in front of them. Now you should see the main contents of the BIOS inclusive the most important "BIOS region".
          After having expanded the "BIOS region" by hitting onto the right-direction arrow in front of it, you will see a picture like one of these:
        • Due to the complicated and mainboard specific internal structure of the "BIOS region", it may be rather time consuming to find the DXE Volume, where all the EFI modules are located and where an additional EFI module like the NVMe one has to be inserted. The easiest way to find it, is to use the "Search" option of the UEFITool.
          This is what I recommend to do after having opened the source BIOS with the UEFITool:
          • Click onto the menu tab "File" and choose the option "Search...". Now you will get access to the UEFITool "Search" pop-up window.
          • Click onto the tab "Text" and enter the word "DXE" into the Text box (the "Unicode" option will be checked by default). This is the related picture:
          • Once you have hit the "OK" button, you will get a picture like this:
          • Double click onto any line of the "Messages" you can see at the bottom of the UEFITool GUI. The result is a picture like this one:

            As you can see, you are now within the "Compressed section" of a "DXE driver" (which one doesn't matter).
            This verifies, that you are now within the DXE Volume of the BIOS (= location, where the EFI modules are stored and can be inserted).
          • If you close the sub-folders of the related DXE driver GUID by clicking onto the downside arrow in front of it, you will get a picture like this, where all the GUIDs are listed, which are inside the DXE Volume:
          • Important: Make sure, that the target DXE Volume contains a module named "CSMCORE".
            Reason: Some BIOSes contain more than 1 DXE Volume, but only the one with the CSMCORE module is suitable for the insertion of a natively not present EFI module.
      • Insertion of the NVMe module
        • Once you have expanded the DXE Volume, scroll down to the undermost module, which is listed within the DXE Volume and has a GUID (no matter, whether its Subtype is "DXE driver" or "Freeform" and whether it is listed at the rightmost column with a "text").
          Here is the related picture (in this example it is the DXE File named "PcieLaneDXE", but - depending on the BIOS - it may have any other or even no name):
        • Right-click onto the GUID of the undermost listed "DXE driver", choose the option "Insert after...", navigate to the EFI NVMe module file you want to insert (must have the suffix *.ffs!), and double-click onto it.
          After having done that, you will see a picture like this:

          Note: If there should not be enough space within the DXE Volume for the insertion of the additional module, you will get the message "File size exceeds the Volume size". In this case it may be necessary to remove another "DXE driver" to get the required free space within the DXE Volume. >Here< is a tip given by our BIOS Guru CodeRush about which "DxE drivers" can be safely removed.
        • Don't forget to save the modded BIOS as final step of the modding procedure. You can start it either by clicking onto "File" > "Save image file..." or by hitting CTRL+S. Then you can navigate to the folder, which has been designed for the modded BIOS (e.g. D:\Mod BIOS), choose a meaningful BIOS file name with an appropriate suffix (you can use any suffix, if you choose the "All files" option) and click onto the "Save" button.
      • Verification of the successful insertion:
        • Immediately after you have saved the modded BIOS the UEFITool will offer you the option to open the reconstructed file. Click onto "Yes".
          If you had already closed the UEFITool, you will have to re-run the tool as written above.
        • Expand the content of the "BIOS region" and its GUIDs until you have found the specific GUID again, which contains the modules of the Subtype "DXE driver".
        • Scroll down and search for the "DXE driver" with the right hand text "NvmExpressDxE".
        • Expand the sub-sections of the freshly inserted NVMe module by clicking onto the downside arrows.
          This is, what you should see:
        • Warning: To avoid later problems after having flashed the modded BIOS, I recommend urgently to compare the original and the just modified BIOS regarding the undermost listed modules of the "DXE Volume" (for details look >here<). The only difference should be, that a new DXE driver named "NvmExpressDxe_4" resp. "NvmExpressDxe_small" has been added. All other listed modules should be untouched by the BIOS modification. If you should realize, that one or more natively present modules are missing within the undermost DXE Volume part of the modded BIOS, post a report into this thread, but don't flash this modded BIOS.
        • If everything looks fine, you can be sure, that the related module has been properly inserted into the correct GUID section, and you can close the UEFITool.
    • b) Guide for the usage of AMI's MMTool 4.50.0023:
      • Opening the BIOS file and finding the target DXE Volume:
        • Double-click onto the file named MMTool.exe.
        • Click onto the "Load Image" button and navigate to the folder, where the source BIOS is located. If it should not yet been shown within the pop-up window, choose the file type option "All files (*)", which is located at the bottom of the "MM Open" window.
        • After having double-clicked onto the BIOS file, which you want to get modified, you will see a picture similar to this one:
        • Scroll down within the great MMTool window until you find the module with the FileName "CSMCORE".
        • Click onto the line with the FileName "CSMCORE". After having done that, the number of the Volume will be shown within the box named "Vol. Index" in the upper part of the MMTool GUI.
          Here is the related picture of my test BIOS:

          In my test BIOS it was the Volume "1", but this is just an example. In other BIOSes the CSMCORE module may be within a Volume with another number (e.g. "4" or "02:01.00").
        • Since the CSMCORE module is always located within DXE Volume, you are now within the target Volume, where the NVMe module has to be inserted.
      • Insertion of the NVMe module
        • Make sure, that the correct Volume number(s) of the CSMCORE module is/are shown within the Vol. Index box.
        • Click onto the "Insert" tab on the on-top MMTool menu bar.
          Here is the related picture:

        • Click onto the "Browse" button and navigate the folder, where your desired NVMe module as "pure" *.ffs file is located.
        • Double-click onto the *.ffs file you want to get inserted.
        • Now you will see a picture like this:

        • You can choose within the "Insert FFS Options" area of the MMTool GUI, whether you want to get the previously chosen module inserted "as it is" (normal option) or in "compressed" form (option in case of limited space within the DXE Volume).
          Note: Don't touch the "For Option ROM only" area of the MMTool GUI!
        • Now you can click onto the "Insert" button, which is on the upper right hand side below the "Browse" button (see above picture).
        • After having done that, the insertion of the desired NVMe module will be done by the MMTool.
          Note: If the MMTool should not be able to insert the desired module properly, the MMTool will give you a meaningful error message (e.g. "Not enough space within the Volume"). In this case can try to get the "small" variant of the NVMe module in "compressed" form inserted.
        • As final step you have to store the modded BIOS:
          Click onto the button "Save Image as...", navigate to the previously created folder for the modded BIOS (e.g. D:\Mod BIOS) and give the modded BIOS a meaningful name (with the same extension as the original BIOS).
        • Now you have stored your modded BIOS within the related folder.
      • Verification of the successful insertion
        • Open the modded BIOS as written above by running the MMTool.
        • Scroll down the MMTool window showing the various modules of the DXE Volume (where the CSMCORE is located) until you come to bottom of that Volume.
        • The last (undermost) module of the related Volume Number should now be new and named either "NvmExpressDxe_4" or "NvmExpressDxe_small" (depending on the module variant you had previously inserted.
        • A picture like this is the proof, that the NVMe module has been successfully inserted:

  3. Flashing of the modded BIOS:
    • The preparation of the modded BIOS and the flashing procedure itself depends on the mainboard manufacturer and the mainboard's model.
    • If you do not know how to prepare a modded UEFI BIOS or how to get it properly flashed, please read the start post of >this< thread. Since the BIOS flashing procedure itself is not the topic of this thread, you should post all the BIOS flashing related questions/problems into the linked thread.
    • As medium for the modded BIOS during the flashing procedure you should take a 100% working and freshly FAT32 formatted USB 2.0 Flash Drive. It should contain just the modded "pure" BIOS file and nothing else.
    • It is not recommended to flash a modded BIOS from within the OS.
    • After having successfully flashed the modded BIOS, don't forget to re-enter the BIOS, to redo your personal BIOS settings and to make sure, that your system will be able to boot in UEFI mode.

    Success verification (the NVMe SSD has to be connected to the mainboard!):
    Enter the "BOOT" section of the BIOS and look for the listed bootable Disk Drives. If you now can see a new disk drive named "PATA" or "PATA SS", you can be sure,
    a) that you have correctly inserted the NVMe module into the BIOS and
    b) that the modded BIOS has been successfully flashed into the BIOS chip of your system.
    Note: Don't try to boot off the listed disk drive named "PATA" or "PATA SS"! You will not succeed, because the required Option ROM is usually missing within the NVMe SSD. Nobody (except the owner of a Samsung 950 PRO) is able to boot off an NVMe SSD in LEGACY mode.
  4. 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".
    • Here are some advices about how to get Win10 properly installed onto an M.2 or PCIe connected NVMe SSD:
      • Save the important data, which are currently on the NVMe SSD.
      • Create a bootable, FAT32 formatted USB Flash drive containing the desired Win10 image by using the tool Rufus (important: choose the UEFI mode partition table = GPT).
        Here is a picture, which shows the most important Rufus settings:
      • Enter the BIOS and navigate to the "BOOT" section and - if applicable - the "SECURITY" or "Keys" section.
        Make sure, that the "Secure Boot" and "Fast Boot" options are disabled. The "Compatibility Support Module" (CSM) can either be set to "Disabled" as well (better option, but requires full UEFI compatibility of the graphics adapter) or to "Enabled" with the ability/preference to load EFI BIOS modules for the Storage Disk Drives. If you see BIOS options for the "OS type", choose "other OS". This will disable the Secure Boot setting.
        Side note: Some users reported, they they had to disable the ASMedia SATA Controller within the "Storage Configuration" section to be able to boot off the NVMe SSD.
      • Most important: Unplug all storage disk drives except the NVMe supporting SSD.
      • Insert the prepared USB Flash drive and boot off it in UEFI mode (the related bootable USB drive should be shown by the Boot Manager with the prefix "[UEFI]").
      • When you come to the point, where you have to decide onto which Drive and which partition the OS shall be installed, delete all existing partitions from your NVME supporting SSD. After having done that, let the Win10 Setup create a new partition for your future drive C: on the related SSD. Then point to this just created partition as the desired future OS location.
      • The rest should be done by the Setup automaticly. You will get a message, that some additional partitions have to be created. Accept that and follow the advice of the Setup where to install the OS.
      • Once the OS is up and running, shut down the computer, remove the bootable USB Flash driver and reconnect all your previously used storage drives.
      • Before you restart cour computer, make sure, that the NVMe SSD resp. its listed "Windows Boot Manager" is on top of the bootable storage drives.

    Another option is to do a clean OS installation in UEFI mode onto any SATA connected SSD (a suitable NVMe driver should be available for the OS!) and to clone the complete disk drive content onto the NVMe SSD. After having inserted the NVMe EFI module into the BIOS, the formerly used SSD should be removed and the NVMe SSD inserted.
    Good luck!


This is what you hopefully will get:
Here are some benchmark results I got with my Z68 system running 2 different NVMe supporting SSDs:

400 GB Intel 750 PCIe SSD:


256 GB Samsung 950 Pro M.2 SSD (connected via M.2>PCIe adapter card):


256 GB Samsung SM951 NVMe M.2 SSD (connected via M.2>PCIe adapter card):

Good luck!
Dieter (alias Fernando)

#2 RE:[Discussions] NVMe Support by CodeRush 03.04.2015 11:46

avatar

Speaking of NVMe integration: this is not just a DXE driver to add into the firmware and proper NVMe support often requires a platform code update, new storage initialization code, changed to BIOS setup, new PEI driver and so on. It's not an easy task to get full NVMe support on previous Aptio4-based motherboards and I really doubt someone of 3rd parties can do it.

#3 RE:[Discussions] NVMe Support by Hyperia 03.04.2015 11:58

Ok bro :)

I'll Try :p

Let's start by noting the differences between the bios before this compatibility and those now ?

#4 RE:[Discussions] NVMe Support by Fernando 03.04.2015 12:34

avatar

Zitat von Hyperia im Beitrag #4
Let's start by noting the differences between the bios before this compatibility and those now ?
Since my ASRock Z97 Extreme6 mainboard offers NVMe support, I have done a look into the latest BIOS 2.01 Beta dated 03/19/2015, but could only find 2 modules with "nvme" within their names (the other ones may be hidden and just listed with a GUID). Both "nvme" modules have been attached as uncompressed files, but - as CodeRush already stated - users will not get NVMe support by simply inserting them.

#5 RE:[Discussions] NVMe Support by Hyperia 03.04.2015 13:28

Do not you have the tools to compare bit by bit the differences between these two bios ?
Someone to take the test using a motherboard with 2 bios ? (Gigabyte ?)

#6 RE:[Discussions] NVMe Support by Fernando 03.04.2015 13:32

avatar

Zitat von Hyperia im Beitrag #6
Do not you have the tools to compare bit by bit the differences between these two bios ?
Yes, you can use an Hex Editor like HxD, if you want to compare the hex code of 2 different BIOS modules, but you will need 2 rather similar ones. Otherwise it doesn't make sense.

#7 RE:[Discussions] NVMe Support by Hyperia 03.04.2015 13:43

Hmm ... you just have to make the right version before right ?
it seems so obvious that subtlety in the translation must escape.

There must be a new bios for which the release notes do not indicate that the addition of NVMe compatibility :)

#8 RE:[Discussions] NVMe Support by SkOrPn 05.04.2015 04:42

avatar

I'm curious, since both Intel and the NVMe guys said that NVMe is compatible with older legacy BIOS systems. How would we go about starting the quest to see about pulling these NVMe parts out of EUFI BIOS files, and seeing if they fit/work on older legacy BIOS systems?

Just curious now that Intel introduced a NVMe PCIe card that seems affordable. Thanks

#9 RE:[Discussions] NVMe Support by Fernando 05.04.2015 10:43

avatar

Zitat von SkOrPn im Beitrag #1
I'm curious, since both Intel and the NVMe guys said that NVMe is compatible with older legacy BIOS systems. How would we go about starting the quest to see about pulling these NVMe parts out of EUFI BIOS files, and seeing if they fit/work on older legacy BIOS systems?
AFAIK this wouldn't make much sense, because you won't get the NVMe supporting SSD bootable.
For details you may read >this< article.

#10 RE:[Discussions] NVMe Support by SkOrPn 05.04.2015 20:12

avatar

Zitat von Fernando im Beitrag #2
Zitat von SkOrPn im Beitrag #1
I'm curious, since both Intel and the NVMe guys said that NVMe is compatible with older legacy BIOS systems. How would we go about starting the quest to see about pulling these NVMe parts out of EUFI BIOS files, and seeing if they fit/work on older legacy BIOS systems?
AFAIK this wouldn't make much sense, because you won't get the NVMe supporting SSD bootable.
For details you may read >this< article.


NVMe already works on all systems with PCIe for extra storage, but on our legacy BIOS in order to boot to it you need it in the BIOS, just like AHCI is in the BIOS. Intel's bootable NVMe 750 SSD is bootable just like any other storage device, the only difference is it uses NVMe instead of AHCI or RAID to do the communication. If you replace the AHCI OROM with a NVMe OROM, then you just select NVMe in the BIOS instead of AHCI. Then install as the OS usual. Windows and Linux already have the drivers for NVMe built in, just like they have drivers for AHCI. The OS will see the device instantly. All we need is the NVMe orom bits placed in our BIOS files.

Intel already confirmed all of this Fernando, NVMe is compatible with legacy BIOS and its bootable. Its now up to the manufacturers to write the NVMe oroms for our bios (which wont be done), or have 3rd parties figure out how to include it, like was done with the Intel OROMs which were also not made for our aging systems. It shouldn't be that difficult to figure out.

Someone, like me, has to start poking around somewhere... lol

#11 RE:[Discussions] NVMe Support by Fernando 05.04.2015 21:07

avatar

Zitat von SkOrPn im Beitrag #3
Windows and Linux already have the drivers for NVMe built in, just like they have drivers for AHCI.
Only the latest Windows Operating Systems from Win8.1 up do natively support NVMe.

Zitat
All we need is the NVMe orom bits placed in our BIOS files.

I am not sure, whether the chipset manufacturers will develop special Option ROM modules for NVMe support. They are not interested in supporting old (= non-UEFI) systems.

#12 RE:[Discussions] NVMe Support by SkOrPn 05.04.2015 23:43

avatar

Zitat von Fernando im Beitrag #4
Zitat von SkOrPn im Beitrag #3
Windows and Linux already have the drivers for NVMe built in, just like they have drivers for AHCI.
Only the latest Windows Operating Systems from Win8.1 up do natively support NVMe.

Zitat
All we need is the NVMe orom bits placed in our BIOS files.
I am not sure, whether the chipset manufacturers will develop special Option ROM modules for NVMe support. They are not interested in supporting old (= non-UEFI) systems.



No the manufacturers won't be making new bios's with NVMe support, that is obvious. But I have the Asus NVMe rom already, Asus released it on April 3rd for their current ROG series. I just need to know how to pull the option rom out of the UEFI bios, and then check its size. If its under 128 Kbytes maybe I can mod it into a legacy bios? I will contact Intel and see if they would be willing to write a NVMe OROM for one of their Legacy BIOS based Motherboards. It just needs to be under 128 Kbytes as far as I know. If I can get that built, then I can mod it into my BIOS myself.

NVMe has been used for years now, so chances are they were already built for specific BIOS systems in the server sector. Someone probably already has the code lying around somewhere.

Fernando, is their a tool that can edit UEFI? Can MMTOOL do it?

#13 RE:[Discussions] NVMe Support by Fernando 05.04.2015 23:57

avatar

Zitat von SkOrPn im Beitrag #5
But I have the Asus NVMe rom already, Asus released it on April 3rd for their current ROG series.
What lets you think, that it is an Option ROM and not an EFI module?

Zitat
I just need to know how to pull the option rom out of the UEFI bios

This is very easy by using AMI's Aptio UEFI MMTool.

Zitat
and then check its size. If its under 128 Kbytes maybe I can mod it into a legacy bios?

The NVMe module of my ASRock Z97 mainboard is very small (19 KB uncompressed).

Zitat
Fernando, is their a tool that can edit UEFI?

What do you want to edit?

Zitat
Can MMTOOL do it?

The AMI Aptio UEFI MMTool is able to extract any module off an UEFI BIOS.

#14 RE:[Discussions] NVMe Support by SkOrPn 06.04.2015 00:12

avatar

Most excellent information. Thank you very much.

I do not know the differences from option rom and efi modules, which is why I created this thread to learn what is needed for this goal.

#15 RE:[Discussions] NVMe Support by Fernando 06.04.2015 00:31

avatar

Zitat von SkOrPn im Beitrag #7
I do not know the differences from option rom and efi modules.
The EFI modules cannot be used, when the OS has been installed in LEGACY mode.
The Option ROM modules are usually all together within the UEFI BIOS module named CSMCORE. For details please look into the start post of >this< thread.

Xobor Forum Software von Xobor