NVMe Mod for ASUS B85M-E Mainboard

Hej Guys,

I try to modify a ASUS B85M-E mainboard, but it is not possible for me to do this. It is the known problem with the .CAP BIOS file I think. After one day trying without success to modify this mainboard I have no more ideas how to fix it. Is there someone who was able to successfully solve this problem or who can help me with the BIOS for the mainboard above mentioned? Big, big thanks in advance :slight_smile:

1. EDIT/ADDENDUM:
I have alreay crashed one of my both ASUS B85M-E mainboards by using a faulty BIOS file… damn! Now I triedy every possible method to solve this problem without any success, I don’t know what to do now… If someone can help me or modify the BIOS file for the ASUS B85M-E mainboard (I want to use a Kingston A2000 SSD) I will pay/donate for your work!

2. ADDITIONAL INFORMATIONS:
- Mainboard Typ: ASUS B85M-E (exactely this I can ready on the PCB)
- Link to latest stock BIOS: https://dlcdnets.asus.com/pub/ASUS/mb/LG…E-ASUS-3602.zip

Thank you very much for your help, Christoph

Edit by Fernando: Thread title customized

@poex - Thanks for making a thread so I can more easily help you with this
Please do step #1-2 of below spoiler, but do not send me file at #1 yet, I do not need and you will delete after step #2. We’ll make a new #1 file, after we bypass lock/error you get at #2, then you will send me that instead.
You will need V9.1 ME System tools package, if you are already using 3602 BIOS

If you have already modified the BIOS in ANY way, you will need to re-flash it back to factory defaults using factory method (NOT FPT)!!!
Additionally, please remove all BIOS passwords, disable secure boot, and disable TPM or Encryption if you have enabled. Do this before moving on to below


If you do not have Intel ME drivers installed, install them now from your system driver download page, then start over here after reboot.
Check your BIOS’ main page and see if ME FW version is shown. If not then > DOWNLOAD HWINFO64 HERE <

Once HWINFO is open, look at the large window on the left side, expand motherboard, and find the ME area.
Inside that section is the ME Firmware version. Take note of the version. (ie. write it down or get a screenshot)

Once you have that, go to the thread linked below, and in the section “C.2” find and download the matching ME System Tools Package for your system.
(ie if ME FW version = 10.x get V10 package, if 9.0-9.1 get V9.1 package, if 9.5 or above get V9.5 package etc)
> DOWNLOAD " ME System Tools " packages HERE <

Once downloaded, inside you will find Flash Programming Tool folder, and then inside that a Windows or Win/Win32 folder (NOT x64).
Highlight that Win/Win32 folder, then hold shift and press right click. Choose “open command window here” (Not power shell! >> * See Registry file below *).

If you get an error, reply to this post with a screenshot of it, OR write down the EXACT command entered and the EXACT error given.

((If “open command window here” does not appear, look for the “Simple Registry Edit” below…))

Step #1

Now you should be at the command prompt.
You are going to BACKUP the factory un-modified firmware, so type the following command:
Command: " FPTw.exe -bios -d biosreg.bin "

>> Attach the saved "biosreg.bin ", placed into a compressed ZIP/RAR file, to your next post!!! <<

Step #2

Right after you do that, try to write back the BIOS Region dump and see if you get any error(s).
Command: " FPTw.exe -bios -f biosreg.bin "
^^ This step is important! Don’t forget! ^^

If you get an error, reply to this post with a screenshot of it, OR write down the EXACT command entered and the EXACT error given.

Here is a SIMPLE REGISTRY EDIT that adds “Open command window here as Administrator” to the right click menu, instead of Power Shell
Double-click downloaded file to install. Reboot after install may be required
> CLICK HERE TO DOWNLOAD CMD PROMPT REGISTRY ENTRY <

If the windows method above does NOT work for you…
Then you may have to copy all contents from the Flash Programming Tool \ DOS folder to the root of a Bootable USB disk and do the dump from DOS
( DOS command: " FPT.exe -bios -d biosreg.bin " )

@Lost_N_BIOS Ok, but I have one question to your instruction above. At first I need to install a Windows 10 OS on any type of hard drive to this PC/mainboard? Only if this is done, I have to start with your instruction? Thank you very much.

@poex - You can use any windows, but you have to install ME drivers before you can use FPT.
And, FPT MUST be ran from Admin CMD Prompt, if you are using Win10 here is registry fix to add Open CMD here as Admin, reboot after install - http://s000.tinyupload.com/index.php?fil…134606820377175
OR, if you do not use windows, you can use DOS if you want, boot to DOS on USB, then follow same instructions but use FPT.exe in command instead of FPTw.exe.
Make bootable DOS, then copy ALL contents of DOS folder to root of USB, then proceed.

hello I have the same motherboard and a SSD m2 evo 970 plus, could you get the bios modified so that the mainboard detects it?

Hallo,

Well, I have the same board with latest bios, NO MODS SO FAR! When I used my AXAGON PCEM2-S adapter with the classic M.2 m-key 500GB ADATA XPG SX8200 NVMe SSD in the grey pcie slot, I was then able to boot from UEFI USB Windows 10 installer, install Windows on the XPG SSD and boot straight away from it! Good!

This only confirms what I was hoping for, that the bios contains “some” NVMe boot drivers already, directly from Asus. I used CSM enabled settings with UEFI as first boot option for both the storage and other devices

But here comes the stranger part! Since the bios is DIP8 packaged and literally plug’n’play, easy to pull out and push back from the bed, I made a dump instantly to see… And to my surprise, there are no such common files like INIT13, nvmexpress dxe, nvme_mms dxe or anything else like that at all! What shall I be looking for?

Now, when I use my Chinese oem Apple SSD-to-PCIE adapter https://www.ebay.com/itm/303873719425 together with a 500GB Apple SSD which is a Samsung PM981a SSD in fact, the Windows installer says the operational system can’t be installed on that drive. In fact, it proceeds with installing Windows but after the first restart, it just don’t boot from the SSD…
At this point I must say that this exact Apple SSD in this exact SSD-to-PCIE adapter I used to use in a different PC/board with modded bios. I injected “Samsung m2 dxe” driver and then successfully installed and booted Windows from the Apple SSD!

Could this mean that:
a) it is possible that some vendors’ NVMe DXE drivers are missing in the bios which makes the board “incompatible” with this Apple SSD of mine?
b) if I inject the same “Samsung m2 dxe” into the correct place of the B85M-E dump, then the SSD might work?
c) question is, where is the correct place? Which GUID?

I will post the dump later as I am now typing on my iPad with no access to my files.

Any idea or suggestion would be appreciated!

George

Something is not right here… till now…from my knowledge, only a PCIe NVMe ssd with an embedded NVMe controller like the 950 PRO can do the job in an unsupported NVMe motherboard and no bios mod needed.
Also confusing is the CSM enable OS installation that you did… as a PURE NVMe/GPT/x64 system environment is a MUST

The behavior of the Apple PM981a is normal on an unsupported NVMe motherboard
Instead of the Samsung m2 DXE you can use the NvmExpressDxe in Fernando’s guide
The correct place for the insertion of the modules is described in the same guide

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

…and it seems like your knowledge is far over and in front of mine! Okay, but the problem is that once I succeeded to install Windows 10 and boot it, with the Samsung m2 dxe in bios I also tried a different dxe driver, including the one you pointed out. But then the OS wouldn’t boot. And I was not able to install the OS neither. So it seems that those particular Apple branded Samsung SSDs don’t work with any other dxe than the Samsung m2 dxe.

I also have an Asus AX88M board with AMD Kaveri CPU. The same situation. After I learned the way to inject the NVMe dxe drivers into the bios on the Chinese board I focused on this AX88M board that I have in my HTPC. Again, the init13, nvmemmc, nvmexpress and the Samsung m2 dxe drivers worked for me and another 128GB Apple SSD is there as a bootable OS drive. I tried a different nvme dxe driver and I ended up with non bootable SSD in pcie adapter. I mean, I saw the warning in the Windows installer regarding the drive not being able to boot the OS from. Though it let me finish the installation it did not boot from the drive. Soon as I replaced the common nvme dxe driver with the Samsung m2 file, all went nicely and smoothly again.

So as my combination of Apple SSD and Windows based PC is so unique and unusual, it makes me believe that this the only dxe driver compatible with the SSD.

I will give it a try again over the upcoming weekend and will post the results.

Regards

George

@GeorgettaCZ : The DXE BIOS module named “SAMSUNG_M2_DXE” supports Samsung’s SATA AHCI Controllers, but no Samsung NVMe Controllers.

This indicates, that the related SSD resp. its Storage Controller uses the SATA AHCI and not the NVMe data transfer protocol.

Edit: You can easily check, whether my diagnosis is correct or not by looking into the "Storage Controllers" section of the Device Manager.
If I am right, you will not see any NVMe Controller listed for a system, which was only bootable with the SAMSUNG_M2_DXE BIOS module (unless an additional NVMe SSD is attached for storage purposes, but without OS and boot sector).

@Fernando :
Good evening!

So I took the SSD once again out of the PC to share the photos of it.

Samsung SSD Pic1.png

Samsung SSD Pic2.png



The reality about this SSD’s controller is quite unclear to me since somewhere they say it is Samsung MZ-JPU512T/0A6 512GB SSUAX PCI-E x2 2.0 SSD Solid State Drive 655-1805D. And elsewhere they say it is MLC PCI Express 3.0 x4 SSD. so, correct me if I am wrong but my idea is following:

The M.2 is just a name for the particular pcb interface shape that is used for small SSD. As far as I understand this interface is devided for B and M keys.

Now M.2 SSD with B key has a SATA contoller onboard and has to be connected to the SATA controller of the motherboard. Right?? It is only a M.2 format of the classic SSD (like those 2.5" SATA SSDs). The data transfer goes between the storage of the SSD and the rest of the PC via the SATA controller that is connected with some PCI lines to the chipset.

The M.2 SSD with M key is called NVMe right because there is no “additional” interface chip between the storage and the chipset. So the NVMe storage is connected with the PCI lines directly to the chipset.

This is how I understand the difference between the two interfaces, simply described. I know there is much more behind but that is not important here at this moment.

What is important is the fact that my Apple SSD definately seems not to be a SATA AHCI type SSD! The Apple proprietary 12+16 pin interface is PCIE interface and the SSD is much quicker, as far as I remember, then any other SATA SSD I have compared with. They even do an adapter for this SSD for M key M.2 slot. https://www.compuny.cz/kategorie/redukce…ro-2013-2017-x/

26123252_1920-1920.jpg


And above all of this, I have never seen a PCI Express adapter with M.2 slot only for B-key SSD. There are adapters with two M.2 slots, one with M key for true NVMe SSDs and one with B key. But in front of this M.2 B key slot there is always a classic SATA port for a SATA data cable to be connected to one of the motherboard SATA controller connectors. So the B key M.2 slot is only a power source and holder for the SATA SSD. Means even a SSD drive with both B and M keys is still a NVMe SSD, to my understanding.

I cannot verify now what you were asking for in the Device manager since I do not have any OS installed to check the Device manager. First I have to experient. I will try to inject the SAMSUNG M2 DXE to see and eventually confirm your theory.

Regards

Edit by Fernando: Inserted pictures resized and turned into the normal (horizontal) position, unneeded fully quoted post removed (to save space)

Or maybe, you could just install hwinfo64 and go to drives, and see what protocol it is used.


Sure, but as I said before, currently I have no system to try on.

Well, the bios allows me to:
1. Set the Secure Boot to either "Windows UEFI Mode" or "Other OS".
2. Either disable the CSM and go with UEFI devices only OR enable the CSM and then within the CSM menu to set what boot driver shall be used for each sort of devices:
Network / Storage / Other PCI-E/PCI Devices.
And I can select for each of the devices from: Legacy Only / UEFI only / Both, UEFI first / Both, Legacy first / Ignore.

The CSM overrides the fact that my graphics (low-profile fanless nVidia GT605) card does not support UEFI boot mode, but only Legacy. So even if I turn off the CSM and reboot, an information appears during the POST:

IMG_20220108_205500.jpg


I am using either AsProgrammer 1.40 or the Colibri 1.0.1.63. So I dumped the bios. It is attached here. Then I followed the guide you pointed out, found the CSMCORE and:

B85M-E_MMTool_CSMCORE.jpg



  1. I used the MMTool to only inject this file NvmExpressDxe_4.ffs below the CSMCORE.

    B85M-E_MMTool_Nvme_4_DXE.jpg


    Then I checked the Nvme DXE presence with EFITool 0.26.

    B85M-E_UEFITool_Nvme_4_DXE.jpg


    The file is attached as well (B85M-E_Nvme_1file.RAR). Then I flashed it back to the chip. I did a bios reset with the jumper on the motherboard. The PC POSTed, so I booted up from USB UEFI Windows 10 (21H2) installer. I first jumped to CMD and wiped the SSD drive with DISKPART. Then I rebooted and started the Windows installer again. When chosing the drive for the OS, I can see the 476GB drive but the installer showed yellow exclamation mark saying that the OS cannot be installed on that drive. In fact, it says the drive is about to fail soon and asks me to install on different drive if I have any. Though I chose the clean SSD (which btw. was cosidered by HD Sentinel 2 weeks ago as 100% healthy and with no issues) and it got partitioned and then went through the installation smothly and quite quickly (~ 8 minutes) from the USB 3.0 but after the reboot it ended up in the W10 installation wiyard again. Means it does not see the bootable UEFI partiton on the SSD.
    Correct me if I am wrong but I thought, that at this moment the SSD is corectly partitioned and all the mandatory things for successful boot are present, you know, the Windows Boot Manager is there for sure. So the only reason it does not boot from the SSD is the non-working connection between the bios DXE driver and the Windows Boot Manager on the EFI boot partition.

  2. Long story short, I repeated the wiping and flashing circle with the Nvme_uncpmp.ffs file. Same result. Windows installed but not bootable.
  3. So I wiped the chip and again used the MMTool to inject these 3 files: NvmeINT13_uncpmp.ffs, NvmeSmm_uncpmp.ffs, NvmExpressDxe_4.ffs the same way, one by one, below the CSMCORE. No issues with file space when saving. Then I checked the files presence with EFITool 0.26.

    B85M-E_UEFITool_3files.jpg


    The file is attached as well (B85M-E_Nvme_3files.RAR). Then I flashed it back to the chip. Again I did a bios reset with the jumper on the motherboard. The PC POSTed, but without the USB drive plugged in, it ended up in BIOS.

  4. I thought a bit about what Fernando wrote that the SAMSUNG M2 DXE file only supports SATA AHCI drives. So for couple of minutes I admitted that my Apple SSD is NOT a NVMe drive and I started over. First I took a look back in the bios file for my Chinese Runing X79Z-VB10.

Btw. I am writing this whole story on this board - Chines X79Z-VB10 / sc2011 Xeon 2670 8c / 128 GB ECC-DD3@1600MHz / Quadro K2000 / Adata XPG SX8200 512GB in AXAGON PCEM2-S adapter, which originally did not support PCI-E/Nvme boot at all. But before I used the XPG SSD that Apple SSD ran this PC!

So I opened the bios file of the "VB10" with UEFITool 0.26 again just to share with you here, what it runs with as I am typing this…

VB10_DXEs.jpg


Those 5 additional DXEs are placed in a GUID container that also contains the CSMCORE a bit higher in the structure. So I thought that if I replicate this into the B85M-E bios, it has to work same way, right?? So just to make sure that I am typing the truth, I am now going to shut down the VB10, remove the XPG and replace it with the half-installed Windows on the Apple SSD, just to see it will POST and boot. And of course make some proving pictures!

To be continued…

b85m-e_nvme_1file.rar (6.93 MB)

b85m-e_nvme_3files.rar (6.94 MB)

B85M-E_DUMP.rar (6.92 MB)

Well my friend… its simple, pure UEFI NVMe OS install and run, must have a pure UEFI environment and that requires also EFI gop on the GPU, period.
The behavior of the bios back to CSM/Legacy automatically is correct as it detects a non supported EFI HW device to boot, simple as that and from here there is NO WAY to get any
system running PURE UEFI environment on current end user desktop platforms.
Now regarding ur NVMe bios mod and its failures just run a search on the forum: search.php?zeit=9999&s=2&forum=0&q=B85M-E
and ull see that u can go back to 2019 and users were successful.
Regarding ur mixed FFS adventure i can give u even more “wood to burn” for ur pleasure, just go an Asrock Z77 Extreme6 latest bios file and ull see wot i mean.
But the mod/guide presented here on Win-Raid forum by Fernando, besides successful reports on the web, wasn’t designed around those modules and u don’t see it mentioned in the guide. So ur choice only.

Last advice, use MMtool 4.x method with the NvmExpressDxe_4.ffs only or use the UEFItool method again with the same module only.
If u want to try inserting the original OEM board manufactures modules from AMI bios, this module is not to inject along side them. U can see earlier success reports on Anandtech for example.
Also if its an iGPU processor, take off the GT605 as its not needed for a successful UEFI OS installation/run, when added later ull get the same screen as u did before to CSM.

ASprogrammer or NEO programmer and compare new dumps after programming to trace any signs against original bins.
(How does the motherboard respond if SPI programmed with the original dump or an original Asus bios file? Does it come alive?)

Now if there’s any compatibility/issue with the NVMe drive itself and the adapter/motherboard, ull have to trace it urself, or sell both drives and adapter and buy new ones…really dont care.
Im not here to be responsible for the success or failure in any motherboard model or any mods, i can only share my experience but i do not own any “Airport field” with all the fxxxxn HW around the world to assure any user.
Being as must honest as i can, good luck on ur endeavor.

@MeatWar :
First of all, THANK YOU THE FREAKIN WHOLE LOT for all your time and patiance! U r awsome person with great character.
Second, I completely understand that only me, myself and I …am responsible for all I do and nobody else on this planet! Be it success or failure with roof on fire ;o))
Third, as much as I can, I do appretiate your kind will to share your experience and offering help which is more than enough, more than anybody can expect to get for free ;o)))

Now, to your suggestions!
Understood! I removed the GT605 and I go only with iGPU of the i3 CPU. Then I disabled the CSM and I set the Secure Boot to Windows UEFI mode. So no Legacy FW will be checked as a boot option, period.
(Emmmm…just another dumb idea of my sick brain… How about injecting some nVidia EFI GOP driver from another closest gen EFI enabled nVidia GPU to my GT605 vbios…?.. yeah, yeah, I know… non-sense…)

Affirmitive! I will go through the search later to see…
YES, I know I used ffs files that are not mentioned in any guide presented here. I took them from other forums and tried them as a second shot, while my first shot was using the Fernandos guide and the file(s) attached to that guide.
YES, if I flash back in the chip any of the original dumps I made, the PC boots and POSTs with no problem. Means the dumps are alright and healthy. And YES, I use AMI Aptio UEFI MMTool v4.50.0.23 for injections.

So I followed your suggestion, removed the GT610 (yes, its GT610 not GT605. I found out as I took her out. Sure, makes no difference.) and set the bios to only support UEFI. Then I made another new modded bios according to the guide and while now I know I can effort to use the non-compressed files for injections, I used the >uncompressed “NvmExpressDxE_4” module GUID 5BE3BDF4< . Then I flashed it back into the chip the modded bios with only the NvmExpressDxe_4 file injected. Next, I took out the Apple SSD and fitted in the PC the Axagon PCI-E adapter with Samsung 970 Evo 512 GB, in the lower gray x8 PCI-E slot, having the first, yellow x16 PCI-E slot empty. Voilá! Win 10 installed and booted! So I finally got to the desktop of the OS.

For some, to me unknown, reason the bios with NvmExpressDxE_4 started to cause self shutdowns. After first boot I just turned off and on again the PC. It POSTed, then it started to boot to Windows and just as the boot ring appears, the PC turned off it self. Never minde that. I created a new modded bios file, this time I injected a file named NvmExpressDxE_2.ffs that has about 29kB. Flashed the chip with CH341a Programmer v1.38, turned on the PC and all is fine now. The PC booted to Windows with no issues and still runs behind me as I type these words on my laptop. So probably some inapropriate power management in that DXE for my HW configuration… or a billion other different reasons ;o)))

At this moment, I was curious about the CSM. So I restarted the PC, jumped into the BIOS and enabled CSM. Then in CSM I set “Both, EFI first” for Storage type as well as for PCI-E/PCI type devices, saved setting, restarted. Boom! Windows booted normally. So I turned off the PC, pushed the GT610 back in the yellow x16 PCI-E slot and turned it on. Boom! Windows booted normally with the HDMI cable from the GT605 to my test monitor. This kinda denies and disproves your claim about full UEFI Nvme boot support… And proves the purpouse of CSM. Means, you can run devices with non-EFI firmaware/orom on an EFI-enabled bios motherboard.

So currently I run the B85M-E with Core i3, 2x 4GB DDR3, GT610 and a Samsung 970 Evo.
Now I will try to do the same but with the Apple SSD…

Cheers!

Edit by Fernando: Unneeded fully quoted post replaced by directly addressing and unneeded blank lines removed (to save space)

Thats me… Glad u made it, cheers.

EDIT: I never mentioned anything about the Samsung SSD… but i really dont recall any model of Macbook that started using M.2, to have an SATA M.2 drive… they all came out with as NVMe.

@GeorgettaCZ

I seriously doubt, that this >>100.000 times proved BIOS module has caused the unwanted shutdowns.
The NVMe EFI BIOS module has to be loaded while booting to get the NVMe Controller detected by the OS, but doesn’t have any impact on the PC while working.

I seriously doubt, that this >>100.000 times proved BIOS module has caused the unwanted shutdowns.
The NVMe EFI BIOS module has to be loaded while booting to get the NVMe Controller detected by the OS, but doesn’t have any impact on the PC while working.



As I wrote before, it could be a billion different reasons…

Anyway, Fernando, I have to admit that what I thought about the Apple SSD, was completely wrong and you were absolutely right! Look!

I checked again the Chinese VB10 board bios (I mentioned somewhere along the way) and just extracted “as is” them 5 files regarding NVMe/AHCI SSDs and injected them in the B85M-E bios via MMTool in the same row as they are in the VB10 bios. Meanwhile, though the Windows installer said not to install the OS on that drive, I insisted to proceed. Then after the installation, during the next POST, I turned off the PC and pulled out the Apple SSD from that PC and pushed it into the VB10 board where the installation of Windows worked with this SSD with no problem. Then I flashed the file in the B85M-E chip and pushed it back in the board.I booted the VB10 from the Apple SSD, went through the finalizing wizard and finally got to the desktop. Then I turned off the VB10 and pushed the Apple SSD back in the B85M-E… Voilá! Now the B85M-E POST showed Apple SSD_512G connected to SATA1_6G and Windows booted with no problem! Just to say, the bios is set to CSM enabled and with the fanless nVidia GT610 as the primary GPU. Never mind the POST takes ages to complete, but then the Windows loading ring just flashes couple of seconds and here I am in desktop!

So, YES, you were right, the Apple SSD is definitely a SATA AHCI controlled SSD.

It’s a PC for my grandma, she’s 86 by now and she’ll be pleased that the PC is much quicker now, comparing to 7200rpm SATA HDD ;o)))

Thank you, guys!

Cheers, good luck