Rock 3A NVME boot

I recently received Rock 3A board and would like to use it with nvme drive. I tried to burn debian image on it but it won’t boot. Same thing burned to SD was successful.
i could not find any information about nvme boot except TBC sidenote on news page. Is it yet possible to boot from such drive?


I have exactly the same problem, it seems that the u-boot documentation holds the key

Since that I learned how to transfer image from SD to NVME and boot system from there,
I have fully working system on fast NVME but still SD card is needed to boot.

there is no spi boot guide now

I can flash an image to nvme but I can’t seem to change the boot sequence

So if I boot from sd card the led on my ssd comes on while it starts and I can mount the ssd but if I remove the sd card the led does not come on. it’s like the board does not see the nvme. on rockpi 4c it just boots normally after flashing iso with the same nvme

NVME is not yet supported in boot sequence, no driver in SPI for that on this board. For now it’s just not possible to boot directly and only from NVME (also on other boards on same soc like firefly p2). This may change some day, nvmes are ridiculously cheap today, even cheaper than sd and way cheaper than eMMC modules.

Still You can use nvme for system and benefit from it speed and durability. Just buy cheap sd card and boot from it, then format nvme and move system there, update uids of / partition and just reboot. You will have first phase (read-only) from sd and system from nvme. This is bit harder than just burning image to nvme but eventually Your system will be running at nvme speeds on durable medium.

1 Like

Any news on nvme direct boot?
Alternatively, can you suggest me some guide to follow to move the system to nvme?

1 Like

You can install u-boot into the spi flash refering to this guide:

1 Like

Thanks, it worked (using windows).

As stated by the Spi flash page, usb-a to usb-c cable didn’t worked for me. I grab the infamous old cables box, cut two old broken mouses usb cables, joined them together without too much effort (no soldering, just splice, twist and electrical tape insulation) and it worked.

I added jumper like in the picture,
sudo snap connect rkdeveloptool:raw-usb
rkdeveloptool ld DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=104 Maskrom
rkdeveloptool db rk356x_spl_loader_ddr1056_v1.10.111.bin Downloading bootloader succeeded.
rkdeveloptool wl 0 spi_image_20220210.img
Write LBA failed!

any ideas what I’m doing wrong here?
rkdeveloptool ppt
Partition Info(GPT)
00 00000040 idbloader
01 00001C00 vnvm
02 00001E00 reserved_space
03 00001F80 reserved1
04 00001FC0 uboot_env
05 00002000 reserved2
06 00004000 uboot`

You should remove the jumper after entering maskrom mode because that jumper is added to disable spi flash so that you can get into maskrom mode.

1 Like

sudo snap connect rkdeveloptool:raw-usb
rkdeveloptool ld DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=104 Maskrom

Remove the jumper then:

rkdeveloptool db rk356x_spl_loader_ddr1056_v1.10.111.bin Downloading

that did the trick thanks for the help!

I still need to have the SD card in the slot in order to boot from the nvme… Is anyone confirming otherwise?

I’ve installed according to that guide but still need an SD card inserted to boot from nvme.

I can’t reproduce it.

1 Like

I installed u-boot on multiple 3a boards and can start using nvme only.
Maybe your nvme is not bootable by itself?

else maybe post the output from each step?

Hi Dominik,
as I am new to the RockPi-3A (1.31) and also trying to get an NVMe running, I would very much appreciate if you could share a detailed description to how to get the NVMe working.
So far, I have a well running Ubuntu “Linux rock-3a 4.19.193-51-rockchip-gb2c01b3d79f2” running which is booting from a uSD card.
After snapping in a Kingston NVMe 500G I can do

sudo parted -l
… which gives me …
Error: /dev/nvme0n1: unrecognised disk label
Model: KINGSTON SNVS500G (nvme)
Disk /dev/nvme0n1: 500GB
Sector size (logical/physical): 512B/512B

Looks like it’s already up and ready to be formatted.

What I now struggle with is what @jack replied to your post in Oct’21. This stuff seems to be related to this URL:, right?
Can I apply that stuff to get my RockPi to boot from NVMe?
How do I have to wire the cable (also wiring the +5Vcc or only GND, D+ and D-) ?

I would be very thankful for further advice here :slight_smile:

You need to install u-boot to spi to be able to boot from nvme only, just follow steps from wiki and burn image directly to nvme via USB on different computer (like for SD card).
Also You should be able to start boot from small sd card and then from nvme (that don’t require spi installation)
What cables You want to connect? UART? this is also described on wiki but not every uart module works (also after update my uart module break boot process)
Good luck :slight_smile: