NVME Base Troubles

Here is my setup:

  • Raspberry Pi 5
  • NVME Base (tried two units)
  • ADATA Legend 700 256gb (tried two units)
  • Official Raspberry Pi 27W USB-C

I am having a few different problems. I have the Pi booting from the SSD. However, sometimes it doesn’t boot to the SSD and boots with a blinking cursor. Secondly, when it does boot from the SSD, it will eventually die; the UI becomes unresponse/turns black, and SSH requests stop responding. A preconnected SSH will stay connected; however, basically every command, even sudo, returns unknown.

Current Bootloader Config:

 [all]

 BOOT_UART=1 

 BOOT_ORDER=0xf146

 NET_INSTALL_AT_POWER_ON=1

 PCIE_PROBE=1

I have attempted:

  • Reflashing my SSDs with a fresh install of raspberry pi os from my PC.
  • Soldering the 5v+ and - pins on the nvme base to the gpio 5+ and - pins.
  • Two different (but same model) SSDS
  • Two different (but same model) NVMe bases

I’m not sure if this setup just isn’t compatible or if I’m doing something wrong.

Power should not be a problem. If so, you can measure it. But in my experience the Pi with it’s single PCIe-lane will not challenge the SSD.

Steps to do:

  • make sure you to change the systemd journal to persist across reboots. The default is off. Google for “enable persistent logging for the systemd journal in Linux”. This is important because you want to see errors written to the journal after you power cycle your unresponsive unit
  • Once done, reboot and work until the system hangs
  • Reboot again and then run sudo journalctl -b -1 -g pcie. This will search the previous journal (generation -1) for lines with pcie.

Post the output. Maybe something is visible. BTW: it is a good guess that the model of the SSD is the culprit.

Aug 25 11:44:34 raspberrypi kernel: Kernel command line: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave nvme.max_host_mem_size_mb=32  numa=fake=4 system_heap.max_order=0 iommu_dma_numa_policy=in>
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000110000.pcie: host bridge /axi/pcie@1000110000 ranges:
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000110000.pcie:      MEM 0x1b80000000..0x1bffffffff -> 0x0080000000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000110000.pcie:      MEM 0x1800000000..0x1b7fffffff -> 0x0400000000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000110000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000110000.pcie:   IB MEM 0x1000131000..0x1000131fff -> 0xfffffff000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000110000.pcie: PCI host bridge to bus 0001:00
Aug 25 11:44:34 raspberrypi kernel: pci 0001:00:00.0: [14e4:2712] type 01 class 0x060400 PCIe Root Port
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000110000.pcie: clkreq-mode set to safe
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000110000.pcie: link up, 5.0 GT/s PCIe x1 (!SSC)
Aug 25 11:44:34 raspberrypi kernel: pci 0001:01:00.0: [1cc1:624a] type 00 class 0x010802 PCIe Endpoint
Aug 25 11:44:34 raspberrypi kernel: pci 0001:01:00.0: 4.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x1 link at 0001:00:00.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
Aug 25 11:44:34 raspberrypi kernel: pcieport 0001:00:00.0: enabling device (0000 -> 0002)
Aug 25 11:44:34 raspberrypi kernel: pcieport 0001:00:00.0: PME: Signaling with IRQ 38
Aug 25 11:44:34 raspberrypi kernel: pcieport 0001:00:00.0: AER: enabled with IRQ 38
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie: host bridge /axi/pcie@1000120000 ranges:
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie:      MEM 0x1f00000000..0x1ffffffffb -> 0x0000000000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie:      MEM 0x1c00000000..0x1effffffff -> 0x0400000000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie:   IB MEM 0x1f00000000..0x1f003fffff -> 0x0000000000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie:   IB MEM 0x1000130000..0x1000130fff -> 0xfffffff000
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie: PCI host bridge to bus 0002:00
Aug 25 11:44:34 raspberrypi kernel: pci 0002:00:00.0: [14e4:2712] type 01 class 0x060400 PCIe Root Port
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie: clkreq-mode set to default
Aug 25 11:44:34 raspberrypi kernel: brcm-pcie 1000120000.pcie: link up, 5.0 GT/s PCIe x4 (!SSC)
Aug 25 11:44:34 raspberrypi kernel: pci 0002:01:00.0: [1de4:0001] type 00 class 0x020000 PCIe Endpoint
Aug 25 11:44:34 raspberrypi kernel: pcieport 0002:00:00.0: enabling device (0000 -> 0002)
Aug 25 11:44:34 raspberrypi kernel: pcieport 0002:00:00.0: PME: Signaling with IRQ 44
Aug 25 11:44:34 raspberrypi kernel: pcieport 0002:00:00.0: AER: enabled with IRQ 44
Aug 25 11:44:34 raspberrypi kernel: input: BIQU BTT-HDMI7 as /devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb3/3-1/3-1:1.0/0003:04D9:8030.0001/input/input4
Aug 25 11:44:34 raspberrypi mtp-probe[452]: checking bus 3, device 2: "/sys/devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb3/3-1"
Aug 25 11:44:34 raspberrypi kernel: input: BIQU BTT-HDMI7 as /devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb3/3-1/3-1:1.0/0003:04D9:8030.0001/input/input5

It doesn’t actually seem to be showing any sort of PCI problems. I just attempted switching to Gen 3, and it seems to be working much better. I’ll report back after I run it for a longer period of time.