VIM3 Micron NVME


I have a VIM3 with M2X board and a Micron 2200 nvme SSD. Tried two of the same drives, both of them works in Linux and Windows, but not on VIM3.

root@Khadas:/# cat /sys/class/mcu/usb_pcie_switch_mode
root@Khadas:/# dmesg |grep -i nvme
[ 1.024166] nvme nvme0: pci function 0000:01:00.0
[ 1.024243] nvme 0000:01:00.0: enabling device (0000 -> 0002)
[ 61.848451] nvme nvme0: I/O 135 QID 0 timeout, disable controller
[ 61.956585] nvme nvme0: Identify Controller failed (-4)
[ 61.956653] nvme nvme0: Removing after probe failure status: -5
root@Khadas:/# lspci -v
00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 70
Bus: primary=00, secondary=00, subordinate=01, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: fc700000-fc7fffff [size=1M]
Prefetchable memory behind bridge: [disabled]
Expansion ROM at fc800000 [virtual] [disabled] [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Root Port (Slot-), MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] L1 PM Substates
Kernel driver in use: pcieport
lspci: Unable to load libkmod resources: error -12

01:00.0 Non-Volatile memory controller: Micron Technology Inc Device 5410 (rev 01) (prog-if 02 [NVM Express])
Subsystem: Micron Technology Inc Device 0100
Flags: fast devsel, IRQ 103
Memory at fc700000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [80] Express Endpoint, MSI 00
Capabilities: [d0] MSI-X: Enable- Count=32 Masked-
Capabilities: [e0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [f8] Power Management version 3
Capabilities: [100] Vendor Specific Information: ID=1556 Rev=1 Len=008 <?>
Capabilities: [108] Latency Tolerance Reporting
Capabilities: [110] L1 PM Substates
Capabilities: [200] Advanced Error Reporting
Capabilities: [300] Secondary PCI Express

root@Khadas:/# uname -a
Linux Khadas 4.9.224 #29 SMP PREEMPT Sat May 30 14:20:51 CST 2020 aarch64 aarch64 aarch64 GNU/Linux

Hi, enable pci-e mode on the system!

@Vladimir.v.v , I think ztardik was able to switch PCIe but the drive is not getting recognized…

@ztardik , It seems that the SSD memory controller was not recognized, this might mean this SSD could be incompatible or it doesn’t have proper drivers…
This happens to some SSDs…

Maybe the compatible kernel module is not present, check if the suitable module is present by using modprobe

I do not argue, but there you still need to reboot the system

Ah yes, that is a very important step…
but let us wait and see if the user has done that…

There is also the issue of compatibility and sufficient voltage.

Or does the mode change the value after the device is rebooted?

I think it might be better to just reboot, to make sure any system-wide changes can be properly set…

@Vladimir.v.v @Electr1

It’s my mistake, I should have written that this is after shutdown and power off.
Regarding power supply, I’m using a Lenovo USB-C charger 20V 3.3A, so no power issues there.
I’ve switched on the PCIe from ubuntu console, running the latest server image.

1 Like

hello, try to do it on Android too, and please let know

@ztardik I’m just curious, are you using a Linux image with a timestamp “200530” ?


I’m downloading this now: VIM3_Pie_V200624 (Latest release)

yes, this is necessary for general understanding, there you will also need to switch the mode from USB 3.0 to pci-e in the device settings and reboot the device

@Vladimir.v.v @Electr1

Does not work. In storage section only the internal 27G is shown.
Tried switching to USB 3.0 then back to PCIe with power off + power down after each step.

The drive is Micron MTFDHBA512TCK

check how correctly you connected the disk, disconnect and reconnect, and probably I would also advise you to change the file system to another and also check


i have two of these disks, both are new and working fine in my notebook (Thinkpad P51). Tried both of them mounted in the adapter card (M2X) and directly in the socket on the VIM3.
The controller is recognized as you can see from the lspci output:
01:00.0 Non-Volatile memory controller: Micron Technology Inc Device 5410 (rev 01) (prog-if 02 [NVM Express])
But there is no drive attached to the OS.

I’m afraid to assume that this is incompatibility. What file system does the fat32, NTFS drive have at the moment?

I think it’s NTFS, but it should not matter. It doesn’t show up with fdisk -l, so it is not recognized as is.
Isn’t the NVME support kernel based? In that case it should not matter because it works on other linux system.

try to format in fat32, I understand you, but we must exclude all options :slightly_smiling_face:

if nothing helps at all, then it is very similar to incompatibility :confused:

do you for example have other similar disks to test for vim3?

I’ve just tested with another drive, the board and M2X card are working.

So it looks like some compatibility issue with the Micron drive. How can we investigate this further? I need this drive running.

1 Like