Reboot fails with root on nvme ssd [solved]

I run debian sid from a nvme ssd, booting the stock image from sd card, then switching root once the kernel is loaded. That works beautifully, although of course i would prefer native nvme boot.
this is my nvme ssd:

  Model: "Silicon Motion SM2263EN/SM2263XT SSD Controller"
  Vendor: pci 0x126f "Silicon Motion, Inc."
  Device: pci 0x2263 "SM2263EN/SM2263XT SSD Controller"

Anyway, what does not work is reboot. Whenever i issue “sudo reboot” the system hangs after reset, apparently because it can not find the nvme ssd:
This is what i get in the serial console:

[    4.193478] starfive soc:display-subsystem: [drm] Cannot find any crtc or sizes
[    4.200832] starfive soc:display-subsystem: [drm] Cannot find any crtc or sizes
[    4.271971] random: fast init done
[    4.379005] mmc_host mmc1: Bus speed (slot 0) = 198000000Hz (slot req 50000000Hz, actual 49500000HZ di
v = 2)
[    4.389116] mmc1: new high speed SDHC card at address aaaa
[    4.396704] mmcblk1: mmc1:aaaa SS08G 7.40 GiB
[    4.412348]  mmcblk1: p1 p2 p3 p4
[    4.500308] mmc_host mmc0: Bus speed (slot 0) = 198000000Hz (slot req 300000Hz, actual 300000HZ div = 
[    4.940288] mmc_host mmc0: Bus speed (slot 0) = 198000000Hz (slot req 200000Hz, actual 200000HZ div = 495)
[    5.390287] mmc_host mmc0: Bus speed (slot 0) = 198000000Hz (slot req 100000Hz, actual 100000HZ div = 990)
[    6.250267] ALSA device list:
[    6.253314]   #0: Starfive-PWMDAC-Sound-Card
[    6.257642]   #1: Starfive-HDMI-Sound-Card
[   34.490781] mipi_0p9: disabling
[  124.181761] nvme nvme0: Device not ready; aborting initialisation, CSTS=0x0
[  124.188818] nvme nvme0: Removing after probe failure status: -19
[  124.199603] Freeing unused kernel image (initmem) memory: 2196K
[  124.230471] Run /init as init process
Loading, please wait...
Starting systemd-udevd version 252.6-1
[  124.812057] starfive-eth-plat 16030000.ethernet end0: renamed from eth0
[  124.870864] starfive-eth-plat 16040000.ethernet end1: renamed from eth1
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.

Gave up waiting for root file system device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  /dev/nvme0n1p4 does not exist.  Dropping to a shell!

Any idea if that is fixable ? If i power-cycle it boots fine.

1 Like

Are you using a Quick Charge or a PD power supply? I have had similar problems with various Quick Charge 3.0 power supplies.

1 Like

I wonder is your firmware revision the same, or different, to the other person who had a problem with that chipset on the VF2.

Does not seem to be the case:

NVME Identify Controller:
vid       : 0x126f
ssvid     : 0x126f
sn        : xxxxxxxxxxxxxxxxxxx
mn        : Intenso SSD NVME                        
fr        : V0714C0 

1 Like

Ok, just tried three more power supplies i had in my drawers, turns out, the board does not boot with any of them. Every time it fails with missing nvme ssd.

It seems the cheap samsung phone charger i have used from start is the only one providing enough juice to get the system booting, but its not sufficient for reboot.

Thanks for the pointers, i will try to find a better power supply and report back.

1 Like

And here we go:

I can confirm that boot and reboot works with a 3A 5.1V Raspberry Pi Power supply.

Thanks a lot for your help !


So the same chipset as the other person with a problem but compared to their firmware (V0513A0), it looks like yours is a much later revision. It is good that a better power supply solved the problem.

1 Like

Just to add my 2c of my field experience:

I observe this sometimes, although with slightly different dmesg line bc I still run pretty old kernel. The error is same by the nature tho.

This happens when my 5V bus has lower voltage than expected by the board. 5V±100mV is fine in most cases and tolerable, but if a power supply or wires drop more than that, I have this error in most boot attempts.

Examples of bad supplies are: USB-2.0 “A” supplies, 5V rail provided directly to header with lengthy thin wire etc. (they’re good if your main power is out temporarily, just not good in longterm run)

To solve this, boot from a USB3.x ready 12V+ power supply which can negotiate 12V readily. This process is safe, onboard PMIC will step down this to safe 5V rail and other rails required by JH7110.