# Honeycomb not recognising M.2 NVMe device

**URL:** <https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189>\
**Category:** NXP LX2160\
**Created:** [November 6, 2021, 2:41pm UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189 "2021-11-06T14:41:19Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![tim\_walls](https://avatars.discourse-cdn.com/v4/letter/t/65b543/32.png) [@tim\_walls](https://community.solid-run.com/u/tim_walls)\
**Post date:** [November 6, 2021, 2:41pm UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189/1 "2021-11-06T14:41:19Z")

</div>

Hi all,

So, my Honeycomb LX2 finally beat the chip supply crisis, and I’ve assembled it into a mostly working system. Boot from MMC works fine, but I can’t seem to access to the attached NVME drive.

Super grateful in advance for any advice :-).

# Background

When attempting to copy a boot image from uboot I get:

```auto
=> load mmc 0:1 0xa4000000 ubuntu-core.img
440401920 bytes read in 19192 ms (21.9 MiB/s)
=> nvme scan
=> nvme write 0xa4000000 0 0xd2000

nvme write: device 0 block # 0, count 860160 ... -19 blocks written: ERROR
=> 

```

Attempting to access the NVMe from within Linux (booted from MMC) gives similar results:

```auto
[135.741600] nvme nvme0: Device not ready; aborting reset
[135.762189] blk_update_request: I/O error, dev nvme0n1, sector 488396928 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0

```

# Questions

- Before I try another drive, are there any particular compatibility requirements I should be paying attention to?
- Are there any DIP switches or other configuration I may have missed required to make NVMe work?
- Any other ideas?

# Reference info:

The M.2 drive I’m using is: [Crucial P5 250GB M.2 2280SS](https://www.crucial.com/ssd/eol_p5/ct250p5ssd8)

The Linux OS image I’m using is: `lx2160acex7_2000_700_3200_8_5_2-bc46e34.img`

Initial uboot output:

```auto
U-Boot 2020.04-00026-gbc620478 (Jun 15 2021 - 19:24:32 +0000)

SoC: LX2160ACE Rev2.0 (0x87360020)
Clock Configuration:
       CPU0(A72):2000 MHz CPU1(A72):2000 MHz CPU2(A72):2000 MHz  
       CPU3(A72):2000 MHz CPU4(A72):2000 MHz CPU5(A72):2000 MHz  
       CPU6(A72):2000 MHz CPU7(A72):2000 MHz CPU8(A72):2000 MHz  
       CPU9(A72):2000 MHz CPU10(A72):2000 MHz CPU11(A72):2000 MHz  
       CPU12(A72):2000 MHz CPU13(A72):2000 MHz CPU14(A72):2000 MHz  
       CPU15(A72):2000 MHz  
       Bus: 700 MHz DDR: 3200 MT/s
Reset Configuration Word (RCW):
       00000000: 50838338 24500050 00000000 00000000
       00000010: 00000000 0e010000 00000000 00000000
       00000020: 0fc001a0 00002580 00000000 08000086
       00000030: 09240000 00000001 00000000 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 00027000 00000000
       00000070: 08a80001 00151020
Model: SolidRun LX2160ACEX7 COM express type 7 based board
Board: LX2160ACE Rev2.0-CEX7, SD
SERDES1 Reference: Clock1 = 161.13MHz Clock2 = 100MHz
SERDES2 Reference: Clock1 = 100MHz Clock2 = 100MHz
SERDES3 Reference: Clock1 = 100MHz Clock2 = 100Hz
DRAM: 31.9 GiB
DDR 31.9 GiB (DDR4, 64-bit, CL=22, ECC off)
       DDR Controller Interleaving Mode: 256B
WDT: Started with servicing (30s timeout)
Using SERDES1 Protocol: 8 (0x8)
Using SERDES2 Protocol: 5 (0x5)
Using SERDES3 Protocol: 2 (0x2)
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In: serial_pl01x
Out: serial_pl01x
Err: serial_pl01x
Net: EEPROM: TlvInfo v1 len=88
PCIe1: pcie@3400000 disabled
PCIe2: pcie@3500000 disabled
PCIe3: pcie@3600000 Root Complex: x4 gen3
PCIe4: pcie@3700000 disabled
PCIe5: pcie@3800000 Root Complex: no link
PCIe6: pcie@3900000 disabled
DPMAC3@xgmii, DPMAC4@xgmii, DPMAC5@xgmii, DPMAC6@xgmii, DPMAC7@xgmii, DPMAC8@xgmii, DPMAC9@xgmii, DPMAC10@xgmii, DPMAC17@rgmii-id [PRIME], DPMAC18@rgmii-id

MMC read: dev # 0, block # 20480, count 4608 ... 4608 blocks read: OK

MMC read: dev # 0, block # 28672, count 2048 ... 2048 blocks read: OK
crc32+ 
fsl-mc: Booting Management Complex ... SUCCESS
fsl-mc: Management Complex booted (version: 10.24.0, boot status: 0x1)
Hit any key to stop autoboot: 0 

```

---

<div class="post-metadata">

**Author:** ![jnettlet](https://dub1.discourse-cdn.com/flex005/user_avatar/community.solid-run.com/jnettlet/32/62_2.png) [@jnettlet](https://community.solid-run.com/u/jnettlet)\
**Post date:** [November 7, 2021, 10:31am UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189/2 "2021-11-07T10:31:36Z")

</div>

Can you test a SystemReady edk2 image from here [SolidRun Images](https://images.solid-run.com/LX2k/lx2160a_uefi) and see if it is able to access you nvme device?

---

<div class="post-metadata">

**Author:** ![tim\_walls](https://avatars.discourse-cdn.com/v4/letter/t/65b543/32.png) [@tim\_walls](https://community.solid-run.com/u/tim_walls)\
**Post date:** [November 7, 2021, 11:31am UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189/3 "2021-11-07T11:31:45Z")

</div>

Hi!

Thanks for helping :-); I’ll be honest, I’m not an expert from the UEFI prompt (give me a Sparcstation with an OpenBoot prompt and I’m away, but now I’m showing my age…,) but I’ve given it a go and I am thinking the short answer is ‘no’.

This is the output from the `devices` command:

```auto
Shell> devices
     T D
     Y C I
     P F A
CTRL E G G #P #D #C Device Name
==== = = = == == === =========================================================
  1B R - - 0 1 1 VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N
,1)
  27 R - - 0 5 0 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000230300000000
00)
  28 R - - 0 5 0 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000220300000000
00)
  29 R - - 0 5 0 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000210300000000
00)
  2A R - - 0 5 0 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000200300000000
00)
  3D R - - 0 3 3 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000110300000000
00)
  3E R - - 0 3 0 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000100300000000
00)
  49 R - - 0 1 1 VenHw(E248C411-0043-43BB-8514-758C3DFC302C)/Ctrl(0x0)
  52 R - - 0 1 2 PcieRoot(0x2)
  5A R - - 0 1 0 SD(0xCA)
  5B R - - 0 2 1 eMMC(0xCA)
  97 R - - 0 8 10 MAC(D063B4031EB6,0x1)
  98 D - - 1 0 0 MAC(D063B4031EB6,0x1)/VenHw(D79DF6B0-EF44-43BD-9797-43E93BC
F5FA8)
  9B D - - 1 0 0 MAC(D063B4031EB6,0x1)/VenHw(9FB1A1F3-3B71-4324-B39A-745CBB0
15FFF)
  A2 D - - 1 0 0 MAC(D063B4031EB6,0x1)/VenHw(5BEDB5CC-D830-4EB2-8742-2D4CC9B
54F2C)
  B4 D - - 1 1 0 MAC(D063B4031EB6,0x1)/IPv4(0.0.0.0)
  BC D - - 1 1 0 MAC(D063B4031EB6,0x1)/IPv6(0000:0000:0000:0000:0000:0000:00
00:0000)
  C3 D - - 1 0 0 MAC(D063B4031EB6,0x1)/IPv4(0.0.0.0)/Uri()
  C6 D - - 1 0 0 MAC(D063B4031EB6,0x1)/IPv6(0000:0000:0000:0000:0000:0000:00
00:0000)/Uri()
  E3 D - - 1 0 0 PcieRoot(0x2)/Pci(0x0,0x0)
  E4 D - - 1 0 0 PcieRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0)
  E5 B - - 1 5 3 VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N
,1)/VenMsg(7D916D80-5BB1-458C-A48F-E25FDD51EF94)
  E6 D - - 1 0 0 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000110300000000
00)/USB(0x0,0x0)
  E7 D - - 1 0 0 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000110300000000
00)/USB(0x1,0x0)
  E8 D - - 1 0 0 VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,0000110300000000
00)/USB(0x0,0x0)/USB(0x2,0x0)
  E9 D - - 1 1 0 eMMC(0xCA)/HD(1,MBR,0x30303030,0x20000,0xB0800)

```

I assume if UEFI had a driver/was able to access it as a block device then it would appear in this list?

That said, the `pci` command does show the drive:

```auto
Shell> pci
   Seg Bus Dev Func
   --- --- --- ----
    02 00 00 00 ==> Bridge Device - PCI/PCI bridge
             Vendor 1957 Device 8D80 Prog Interface 0
    02 01 00 00 ==> Mass Storage Controller - Non-volatile memory subsystem
             Vendor 1344 Device 5405 Prog Interface 2

```

(Vendor 1344 is Micron aka Crucial, so pretty sure that’s the right device. At least this reassures me I plugged it in the right way round ;-).)

---

<div class="post-metadata">

**Author:** ![ZeeGee](https://avatars.discourse-cdn.com/v4/letter/z/35a633/32.png) [@ZeeGee](https://community.solid-run.com/u/ZeeGee)\
**Post date:** [November 8, 2021, 3:53am UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189/4 "2021-11-08T03:53:29Z")

</div>

Incidentally I just bought the 1TB drive in the same series and discovered that it does not work with the Honeycomb board 😬

CT1000P5SSD8 is the exact model I have.

---

<div class="post-metadata">

**Author:** ![tim\_walls](https://avatars.discourse-cdn.com/v4/letter/t/65b543/32.png) [@tim\_walls](https://community.solid-run.com/u/tim_walls)\
**Post date:** [November 8, 2021, 8:09am UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189/5 "2021-11-08T08:09:55Z")

</div>

Ahh, this is good information to have.

For the timebeing I’ve worked around it by using a SATA drive (I have stuff to do and need to keep making progress…), but good to know I shouldn’t _assume_ the M.2 drive itself is dead.

---

<div class="post-metadata">

**Author:** ![jnettlet](https://dub1.discourse-cdn.com/flex005/user_avatar/community.solid-run.com/jnettlet/32/62_2.png) [@jnettlet](https://community.solid-run.com/u/jnettlet)\
**Post date:** [November 8, 2021, 10:43am UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189/6 "2021-11-08T10:43:34Z")

</div>

Sorry to hear about the incompatibility. I have not tested any Crucial drives personally. If you have time I can build a debug firmware that may hopefully provide more information on what the incompatibility issue is.

---

<div class="post-metadata">

**Author:** ![tim\_walls](https://avatars.discourse-cdn.com/v4/letter/t/65b543/32.png) [@tim\_walls](https://community.solid-run.com/u/tim_walls)\
**Post date:** [November 8, 2021, 12:05pm UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189/7 "2021-11-08T12:05:14Z")

</div>

I need to build/install a new OS image anyway (turns out Docker can’t run with the SolidRun provided images anyway because the kernel’s not built with required iptables/NAT options - boring story) so my time with a screwdriver and swapping SD cards isn’t quite over yet - so sure, I’d be more than happy to help if I can.

---

<div class="post-metadata">

**Author:** ![alex9373](https://avatars.discourse-cdn.com/v4/letter/a/ecc23a/32.png) [@alex9373](https://community.solid-run.com/u/alex9373)\
**Post date:** [December 5, 2021, 10:55pm UTC](https://community.solid-run.com/t/honeycomb-not-recognising-m-2-nvme-device/189/8 "2021-12-05T22:55:57Z")

</div>

In case you are shopping for another, I had better luck with:  
Disk model: Samsung SSD 970 EVO Plus 500GB  
I’m able to boot from eMMC to use the M2 card as the root partition.  
0000:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 (prog-if 02 [NVM E  
xpress])  
…  
LnkSta: Speed 8GT/s (ok), Width x4 (ok)
