VIM3 and M.2 SSD - which ones work and which ones don't

I think the driver problem is caused by the kernel. It can run many devices in newer kernels.

For example, I have a Sierra LTE7455 modem. Kernel 4.9 does not work. But although I didn’t install any drivers, the 5.7 rc7 also works. Unfortunately “Khadas” work with old software.

@AlexO Thank you for sharing !, will cross-reference and add it to the list, I wish this list can be added to the official Khadas Docs instead of just being buried under all the new messages… but that is a request for @numbqq and @Frank,

@fkaraokur I agree, I had asked a similar set of user from another forum about what SSD’s work for them and what don’t and the reply I got was that most of what works and doesn’t work is shared common among both of us,

also some info from their group, the most commonly used SSDs by their standard are, The Samsung Evo SSDs (960, 970), and the Intel 660p SSD…

More info about their supported SSDs can be found here

Cheers!

Maybe you are right. But my laptop’s first kernel was exactly the 4.19.0-5-amd64 and it has been used/booted with aforementioned drive SK Hynix PC401 (HFS256GD9TNG-62A0A BB) for some time just well (till next linux-distro update).
*
At the same time I see Marvell’s storage 88SS1093 controller spec talks that exactly PCIe Gen3 x4 lanes interface is available for host while Khadas spec talks only about PCIe Gen2 (i.e. 2.0) interface availability, does it?
maybe that’s all results in poor compatibility consequences…

strange note I see at this post about PCIe Gen2/3 compatibility:

  • The CPU supports the PCIe 3.0 standards. This is in sharp contrast to PCI Express 2.0
  • The protocol is mostly observed in x86 based Intel & AMD chipsets.

PCIe is just (as the name implies) a high-speed peripheral interface. PCIe is also backward compatible like most peripheral interfaces like USB or Thunderbolt etc.

its not the reason the hardware that makes the device incompatible. rather the use of drivers that is more readily prevalent on Windows but is much lately introduced into Linux.

Till now those who have reported improperly working SSDs never shared a dmesg log of sorts so we never knew what the exact cause of compatibility failure is…

PS5012-E12S-32 (SiliconPower 1tb): doesn’t work
{nvme nvme0: Removing after probe failure status: -19}
SM2262ENG (SiliconPower 512gb): detected, works.

@AlexO can you share the dmesg logs as well ?
Thank you

You are right it worth that to see probably:

[    0.564057] amlogic-pcie-v2 fc000000.pcieA: Set the RC Bus Master, Memory Space and I/O Space enables.
[    0.564084] amlogic-pcie-v2 fc000000.pcieA: normal gpio
[    0.564120] amlogic-pcie-v2 fc000000.pcieA: GPIO normal: amlogic_pcie_assert_reset
[    0.651075] amlogic-pcie-v2 fc000000.pcieA: Error: Wait linkup timeout.
[    0.741505] amlogic-pcie-v2 fc000000.pcieA: link up
[    0.741649] amlogic-pcie-v2 fc000000.pcieA: PCI host bridge to bus 0000:00
[    0.741673] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.741692] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff]
[    0.741711] pci_bus 0000:00: root bus resource [mem 0xfc700000-0xfdffffff]
[    0.741745] amlogic-pcie-v2 fc000000.pcieA: the device class is not reported correctly from the register
[    0.741771] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
[    0.741796] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    0.741851] pci 0000:00:00.0: supports D1
[    0.741857] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    0.742027] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    0.742203] pci 0000:01:00.0: [1987:5012] type 00 class 0x010802
[    0.742305] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
[    0.809643] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.809669] pci 0000:00:00.0: BAR 8: assigned [mem 0xfc700000-0xfc7fffff]
[    0.809692] pci 0000:00:00.0: BAR 6: assigned [mem 0xfc800000-0xfc80ffff pref]
[    0.809723] pci 0000:01:00.0: BAR 0: assigned [mem 0xfc700000-0xfc703fff 64bit]
[    0.809775] pci 0000:01:00.0: BAR 0: error updating (0xfc700004 != 0x000000)
[    0.809820] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.809840] pci 0000:00:00.0:   bridge window [mem 0xfc700000-0xfc7fffff]
[    0.809869] pci 0000:00:00.0: Max Payload Size set to  256/ 256 (was  128), Max Read Rq  512
[    0.809971] pci 0000:01:00.0: Max Payload Size set to  256/ 256 (was  128), Max Read Rq  512
[    0.810269] chip type:0x29
....
[    0.813214] clocksource: Switched to clocksource arch_sys_counter
....
[    0.874901] PCI: CLS 0 bytes, default 64
....
[    1.208367] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 242)
[    1.208492] io scheduler noop registered (default)
[    1.208510] io scheduler deadline registered
[    1.208550] io scheduler cfq registered
[    1.208793] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[    1.208984] amlogic-pcie-v2 fc000000.pcieA: the device class is not reported correctly from the register
[    1.209176] aer 0000:00:00.0:pcie002: service driver aer loaded
[    1.209267] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
[    1.209289] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[    1.209311] pcie_pme 0000:00:00.0:pcie001: service driver pcie_pme loaded
[    1.217129] random: fast init done
[    1.217180] random: crng init done
....
[    1.231080] nvme nvme0: pci function 0000:01:00.0
[    1.231140] nvme 0000:01:00.0: enabling device (0000 -> 0002)
[    1.231218] nvme nvme0: Removing after probe failure status: -19

lspci:

01:00.0 Non-Volatile memory controller: Device 1987:5012 (rev 01) (prog-if 02 [NVM Express])
Subsystem: Device 1987:5012
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 103
Region 0: Memory at fc700000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [80] Express (v2) Endpoint, MSI 00
	DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
		ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
	DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
		RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
		MaxPayload 256 bytes, MaxReadReq 512 bytes
	DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
	LnkCap:	Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L0s unlimited, L1 <64us
		ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
	LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
		ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
	LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Not Supported
	DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
	LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
		 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
		 Compliance De-emphasis: -6dB
	LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
		 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [d0] MSI-X: Enable- Count=9 Masked-
	Vector table: BAR=0 offset=00002000
	PBA: BAR=0 offset=00003000
Capabilities: [e0] MSI: Enable- Count=1/8 Maskable- 64bit+
	Address: 0000000000000000  Data: 0000
Capabilities: [f8] Power Management version 3
	Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
	Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v1] Latency Tolerance Reporting
	Max snoop latency: 0ns
	Max no snoop latency: 0ns
Capabilities: [110 v1] L1 PM Substates
	L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
		  PortCommonModeRestoreTime=10us PortTPowerOnTime=60us
	L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
		   T_CommonMode=0us LTR1.2_Threshold=0ns
	L1SubCtl2: T_PwrOn=10us
Capabilities: [128 v1] Alternative Routing-ID Interpretation (ARI)
	ARICap:	MFVC- ACS-, Next Function: 0
	ARICtl:	MFVC- ACS-, Function Group: 0
Capabilities: [200 v2] Advanced Error Reporting
	UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
	UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
	UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP+ ECRC- UnsupReq- ACSViol-
	CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
	CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
	AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap+ ChkEn-
Capabilities: [300 v1] #19

that’s it.
Thak you as well!

yep, this was probably the reason, we need to increase the BAR memory allocation, maybe @numbqq could help here ?

If the BAR was the issue it won’t boot, at least that’s been my experience. I’m more concerned about the Probe error, I’m just wondering if the drive is bad or the controller doesn’t like Linux but finding out the controller for his NVME has been tougher than usual.

plz try start krescue and check how NVME works !!!

1 Like

Hi, I’m waiting for my VIM3 to arrive, do you think this SSD would work? A-Data SX6000 Lite: https://www.amazon.com/dp/B07N22YS84/ref=cm_sw_r_cp_awdb_imm_t1_Ent3FbWFTV5VQ

Thanks!

Hi, I have not seen on the forum that someone discussed this SSD model, I know for sure, Samsung will do, but you understand correctly, not every SSD can be suitable

@manuel-arguelles I have no idea of telling if its compatible or not, as the SSD controller is not specified.
if it using a phison branded controller, it has a high chance of compatibility, but there is no chance of knowing that.

if you need a decent quality SSD for a good price, go with the WD blue SN550 NVMe SSD, its reasonably priced, and has very low power consumption, best choice you can go for.

3 Likes

if you need a decent quality SSD for a good price, go with the WD blue SN550 NVMe SSD, its reasonably priced, and has very low power consumption, best choice you can go for.

CONFIRMED !!!

2 Likes

Yes, Samsung is too expensive to use with speed limits

I believe more SSD’s will be able to work with VIM3 boards once we will get a mainline kernel… Checked NVMe drivers in 5.X Linux branch - some many things changed. At least my cheap Silicon based NVME SDD started to work (there is quirk for it in mainline) in mainline kernel. So AOSP seems to be a solution - hoping Khadas team will be able to roll it out :slight_smile:

3 Likes

Hi @hyphop and @Electr1 can you please confirm the WD Blue SN550 works on the VIM3 and have personally known this to be the case? I have a VIM3 Pro currently on its way to me and was going to buy a drive and that seems excellent value. I intend to run the latest Armbian. I saw another user say it didn’t work VIM3 NVMe SSD Detection Failure. Multiple solutions attempted

Thanks

1 Like

YES ! like other drives from WD Blue series works well

2 Likes

Thanks very much, especially for how quickly you got back

1 Like

[About ADATA XPG SX 6000 PRO 256GB] (XPG SX6000 Pro PCIe Gen3x4 M.2 2280 Solid State Drive)


I thing that the screenshots say enough. :slight_smile:
working well at least :slight_smile:
the armbian is on the sd card , the swap is partition on the nvme disk and i am compiling mysql_cluster.
it is writing at the same moment on the sd card , on the ext4 partition on the nvmedisk and on the swap partition of the nvme disk.
working stable and well .
on the test with dd command write and read speed is about 500MB per second