ASRock E3C226D2I m/b NVMe support


I would like to add NVMe support to the ASRock E3C226D2I motherboard.
I have an Aplicata Quattro M400 adapter, it adds PCIe switches to support up to four NVMe drives without PCIe bifurcation, and 3x Samsung 970 Pro NVMe drives.
I’ve checked the m/b BIOS and found there are some modules containing ‘nvme’ in their names. There is also a module with the ‘SAMSUNG_M2_DXE’ name.
Moreover, I’ve added an NvmExpressDxe_4.ffs module according to the guide.
The host OS is FreeBSD 12.1.
My system doesn’t see the NVMe drives neither in the BIOS nor in the OS.
But the OS sees PCIe switches of the Aplicata Quattro M400 adapter.

Is there anything that can be further done?

@arabesc - As you found, this BIOS already supports NVME by default, and nothing should be added (That will only mess things up)
What you need to do is test a single cheap NVME adapter with one drive, to confirm NVME works OK, I suspect the card itself may be the issue here.
Something like this is what I have in mind, it’s what I use -

Trying a single NVME in port 0 of youradapter may be similar test, but not 100% sure of that due to the onboard switches you mention.
Did you try all PCIE Ports, and same no matter which?

BIOS usually never sees NVME, and OS Must be installed a certain way or it will tell you it’s not compatible with the drives.
OS Install media should be GPT, and then install to a RAW Disk or GPT if you setup yourself.

The main issue here may be your mod BIOS, did you test the BIOS first without modifying it?

I’ve seen maybe one rare instance where stock NVME compatible BIOS didn’t work with NVME user had, but once he modified it then it did, but since it’s stock compatible by default that kind of mod needs done in a certain way (not covered in the guide)

@Fernando - can you advise, or remember how that should be done as a test? In CSM I see Storage option rom is set to Legacy only, this may need changed, correct?
There is no stock bifurcation set, at least not at the visible or hidden BIOS settings.

I am sorry, but I don’t know it.

I have a mini-ITX board, there is only one PCIe x16 slot.

I’ve checked the adapter in another newer board and it shows the drives in its BIOS.

Yep, I’ve started modding after I’ve tested the original BIOS.

Thanks, I have come to the same idea.

@arabesc - other boards/BIOS do not apply here, nothing can be compared. It’s good you check though, at least you know the adapter is OK
Have you tested the adapter with a single NVME in post 0 or 1, on this board? And, when trying that, don’t look for it in BIOS, just try OS install and see if the installer sees it or not.
OS install source must be on GPT initialized media (GPT USB), and then NVME should be ideally RAW. I would test with each NVME you have, or test each one on another board one at a time, just to confirm none are DOA

@Fernando - Thanks, I think you missed my main question though. When stock BIOS is NVME compatible, which edit do I do to switch out stock NVME module for our mod one? I think a few times I’ve seen that work when stock wasn’t
Do I just swap body at main NVME Module?

No, I haven’t tested that scenario yet.

The drives should be visible in the OS anyway, shouldn’t they?

p.s. holidays are coming, so there will be a break in my tests for a while.


@arabesc - In windows yes the drives would be visible in device manager as a spare/secondary no matter what, provided it’s Win8-10, other OS you may have to install drivers to first before you can see it, I’m not sure, especially about FreeBSD
Here is BIOS to test if updating your stock NVME Module with the one we use for NVME Mod in it’s place helps. Do not mod this further, flash, load optimized, and test your OS install or drives as a spare (one at a time in port zero or one of your adapter)

If that fails, I think we can test stripping out entire OG NVME compatibility (remove all three OG modules) and insert only the V4 NVME Mod, as if the BIOS never has NVME capability to begin with.
@Fernando , thanks for confirmation on PE32 body swap, BIOS is above if you want to check it. Is this true also ^^ ?
That should be a no fail situation I think, unless something here is not compatible with that adapter

With a cell phone this will be difficult. I will do it, when I am back home.

@arabesc - Did you test BIOS at post #8?

Sorry for the delay. I’ve been on vacation.
I’ve checked your BIOS and it hasn’t change anything. I booted from the Ubuntu installation media and it didn’t see the NVMe devices.

@arabesc - Sorry, I’m not sure if this is supposed to work with Linux/Ubuntu, I only know windows? Are you sure your NVME is not DOA? Can you see it in whatever ubuntu equiv of device manager for windows is, with the drive connected as a spare/secondary?
If not, then the drive or adapter is not compatible or DOA etc, the NVME Mod is only necessary for booting from the device, you should see the NVME anytime with stock BIOS when it’s connected as a secondary drive.
You will not see drive show up in disks until you initialize it, or attempt to install some OS to it (again, unsure about Ubuntu).

You may need special NVME ready ubuntu, or to edit the install ISO etc. This I can’t comment further on, you’d have to ask or research this on Ubuntu forums to find answer

Toss in a test Win10 install ISO, then you should see the drive at install, provided it’s working drive and adapter
Test all slots too, maybe some not compatible with that adapter?

@Fernando - is this NVME Mod windows thing only? Do you know anything about Ubuntu or Linux, should he see the drive at install, or even how/where he should see it as a spare/secondary with other disk as main OS drive?

@Lost_N_BIOS :
Since the BIOS of a mainboard/mobile system is neither built by Microsoft nor strictly designed just for Windows Operating Systems, I think, that the NvmExpressDxe_4 modules should work with Linux/Ubuntu as well, but I am not sure about it.
AFAIK the source code of the EFI NVMe BIOS modules was developed by Linux/Debian experts.

What’s DOA?
I highly doubt there is something wrong with the Samsung 970 Pro SSD.

I’ve got a riser card for one M.2 SSD, I’ve installed it and a new drive has appeared in the BIOS boot menu. It has rather strange name: “IDE: PATA SS:”

Under Linux, can you get a lspci -nn, lspci -tvnn and lsblk of your system with the adapter card and the NVMe SSDs plugged with it?

DOA is Dead On Arrival, a new product that is dead.

I’ve reverted to the original m/b BIOS that has been updated with the UBU tool and now I see the single Samsung 970 Pro M.2 SSD drive in the BIOS boot menu, its name appears ok.
I’ve checked the drive availability in the FreeBSD 12.1:

# nvmecontrol devlist
nvme0: Samsung SSD 970 PRO 512GB
nvme0ns1 (488386MB)

It seems there is some incompatibility with the Aplicata Quattro M400 adapter.


[quote="Lost_N_BIOS, post:12, topic:34295"] Are you sure your NVME is not DOA? Can you see it in whatever ubuntu equiv of device manager for windows is, with the drive connected as a spare/secondary? [/quote]
Yes, I'm sure that the drives and adapter aren't DOA. I've written that I've checked them in another computer and there were no issues.

@arabesc - IDE: PATA SS means BIOS mods works and now your NVME is ready and bootable to the OS, now you just need to set BIOS properly and get your disk ready for OS
Here’s how we do it for windows, see step #4 of the “This is what you should do” section (See Step #3 for confirmation and info about PATA SS) - [Guide] How to get full NVMe support for all Systems with an AMI UEFI BIOS

Nice, maybe your adapter is the issue! Please try to install on another adapter, with stock (non-modified BIOS), since it’s NVME compatible by default

FYI, it looks as "IDE: PATA SS" only with your modified BIOS, the name looks ok (as the SSD brand and model name) with stock BIOS.

I don’t have another adapter to try.
I don’t think it’s an adapter issue but some incompatibility between the adapter and motherboard BIOS. The adapter works ok in another newer board.