Problems achieving full boot from NVME on Rock Pi 4c debian

I have purchased a rock pi 4 c and a samsung 970 EVO nvme drive. I have followed the steps from the tutorial here: https://wiki.radxa.com/Rockpi4/Linux_system_runs_on_M.2_NVME_SSD

A number of times. That didn’t result in any activity on boot, and this command:

sudo /usr/local/sbin/rockpi4b_upgrade_bootloader.sh

Did not result in the same output as is listed on the tutorial page. The command was not giving the first part of the listed output.

I then did the same steps as are detailed in this topic: Trouble getting NVMe to boot (RockPi 4C)

That resulted in a boot partially from the nvme drive, but only when the sdcard is still installed.

The boot partition is now listed as being on nvme0n1p4, and the free size of the root fs is in accordance with it being on the nvme drive. The system will however not boot without the sd card installed.

It is not clear to me why this is happening, nor how to fix it. Some advice would be very welcome.

edit: initially thought the root fs was still on the sd card. that appears not to be the case. it purely isn’t booting without the sd card installed.

I’ve put some more time into this, but I’m really not sure where to go from here. It seems to boot fully from the nvme drive, but only when the sd card is installed.

I can only conclude that the spi flash bootloader is not working, even though I am able to write the image to it (though only when I remove the nvme drive, no mtd device is listed when I boot from nvme/sd card combo).

As far as I can tell the packages on both the install on the sd card and nvme drive are identical and I can’t identify a reason why there should be no mtd device available when running from the nvme/sd card combo while it is available when running from the sd card only.

Once again, any advice would be very welcome.

This sounds exactly the same (as you already said) as happened to me - although I would say that here:

sudo /usr/local/sbin/rockpi4b_upgrade_bootloader.sh

I instead ran:

sudo /usr/local/sbin/rockpi4c_upgrade_bootloader.sh

note that I’m using the version for the 4c, which is downloaded in the same Radxa package (I fully intend to help update the wiki!).

Honestly, what eventually worked for me was zeroing out the SPI, then writing it using the scripts I mentioned in my own thread. Whether this is correct according to Radxa would be very useful to know.

samsung 970 EVO is known not working with u-boot at the moment, some user proved that making it into recovery mode(drop from PCIE gen3 to gen2 mode) by soldering one resistor, it can work under u-boot then.

Thanks for the quick replies!

@Alex_Wells I did use the 4c version indeed.

@jack that’s a bit of a shame. Is there any chance that it will work in future? It’s not a terrible waste since I was needing another nvme to put linux on a laptop anyway, but it does delay the moment that I can properly play with my rockpi. Is there a list anywhere of known working nvme drives? Do I specifically need a pcie gen2 drive?

Here we have some models tested:

https://wiki.radxa.com/Rockpi4/FAQs#Which_M.2_SSD_are_supported.3F

Thanks, google didn’t give that one up.

Is there any chance that the unsupported drives will start working any time soon? It would determine my strategy on whether I try to get ahold of one of the known boot compatible drives…

I got it to boot and I can ping it, but that is all. I can’t ssh to it and do not get a picture on the micro-HDMI. The Blue light is on all the time. Am I doing anything wrong? Followed the Guide from @Alex_Wells to get it to boot.

This is identical to the behaviour I was seeing while I was messing with this when I had simply used the dd command to duplicate the running SD card to the nvme drive. When I tried to boot without the SD card in, I was also getting solid blue light, though I didn’t try pinging it.

With the SD card in I could only run from the nvme when I dd’d the base image linked on this site (here I think: https://wiki.radxa.com/Rockpi4/downloads) onto the nvme drive, which I did on a different linux PC because it wasn’t possible to boot the rock pi with both the SD card and the nvme drive installed at that point.