Trouble getting NVMe to boot (RockPi 4C)

Hi, having some problems getting my NVMe to boot, I configured Debian on an SD card, setup my machine and everything works great.

I followed the instructions in the NVMe setup guide (https://wiki.radxa.com/Rockpi4/Linux_system_runs_on_M.2_NVME_SSD) up until the point where you work on your NVMe-enabled system, but I still cannot boot from NVMe.

If I insert my SD card back in, I can boot fine, and I can check out the NVMe is attached properly, fstab reads as it should and the volume is mounted at /boot (nvme0n1p4).

When I boot with just the NVMe, I don’t get any blue light indicator, is this normal?

Can anyone suggest my next steps to debug? Unfortunately I did not order the serial cable, will do so on my next purchase!

Thanks,
Alex

Info I should have added:

1.) I can’t get Ubuntu Server to boot at all (from SD Card, haven’t tried eMMC yet)
2.) I am using the PoE hat as well. I have tried powering from the PoE and from a 9v power plug, in neither case do I see any activity on the NVMe. I have installed the Radxa utility for managing the PoE hat.
3.) I rewrote the NVMe image once, thinking I had messed up the FS, still nothing

What SSD do you have? Controler plays a role in the whole booting process

Part list:

ROCK PI 4C - Heatsink × 1

ROCK PI 4x - M.2 Extension board v1.6 × 1

ACER M.2 NVMe SSD for Rock Pi4 - 128GB × 1

USB C 3.1 GEN2 TO M.2 NVME CASE 10GB/s - silver × 1

ROCK PI 802.3at PoE HAT - ROCK PI 4 × 1

ROCK PI 4 Model C 4GB - Board only (HDMI, DP, 2.4/5GHz WLAN, Bluetooth 5.0) - 4GB × 1

Using everything from Allnet

Do others get the blue activity LED when using NVMe? I don’t see it even if I write to the device when it’s installed as a secondary

Ok, so I reflashed everything from scratch, SD, insert and boot Debian Desktop, run procedure to update the SPI, attach NVMe and install Debian to NVMe, remove SD card and boot…

Nuffink.

I also tried the procedure above after removing the PoE hat, just in case (even though I’m not using it currently, I want to remove any variables).

When I mount the NVMe while booting from the SD Card, there is a red activity indicator actually on the NVMe, and the blue indicator flashes for SD card activity. Attempting to boot from the NVMe shows no blue LED, and no indicator on the NVMe itself.

I can see the NVMe in fdisk, everything looks great according to everything in the writeup from Radxa.

My only assumption left is that I’ve somehow mucked up something in the SPI. Does anyone know how I can zero out the SPI and reflash?

Alternatively (I apologize, I am a webdev by trade so my sysadmin skills are at stage 0.1) can anyone give any obvious steps to ensure that the NVMe is available as a boot device?

OK! Booting!!!

So, the answer for me was:

At the point that you have mtd0 mounted, to erase and rewrite the SPI, so I ran:

/usr/local/sbin/rockpi_erase_spi_flash.sh

and then

/usr/local/sbin/rockpi4c_write_spi_flash.sh
(took about 15 minutes to execute)

Shutdown, unplug the SD card, and boot! I watched the blue activity LED with gloom in my mind, but then it came on, and I am now booted in! One weird side-effect is that I now cannot boot from SD (unless I remove NVMe - as in the boot order seems to have changed) but that is not really a problem.

I think I am all set - I am only at 300MB/s speeds, moving up to NVMe Gen2 (intfc:dtoverlay=pcie-gen2) didn’t seem to have any effect, but I’ll take a look at the drive to see if it’s anything to do with that - for the moment 300MB/s is absolutely great.

1 Like

This worked for me as well. Booting from NVMe now, but limited on OS options. Not all options seem to boot from NVMe. Stuck with Armbian. The Android 10 img for the 4C seems to be missing something. Doesn’t work for me. I see that it says “Update”. Maybe it’s not a full img…?

RKupdate refers to the private image format that can only be flashed with Rockchip tools(also some reverse engineered open source tools). The GPT image for Android 10 is still wip, it should be released soon.