VisionFive 2 refuses to boot any image other than sdcard.img

In the new picture, UART should be H/H, not H/L.


I cant help but think, reading all this, that I wish StarFive had just put a pair of pinheaders and jumpers in there; they take more space & cost more; but are much clearer to set and describe:
…mind you, I also wish for world peace and I don’t expect to get that either :frowning:

Thankyou @EVoyage for the really clear chart :+1:


tks for pointing out


There is a problem that firmware has to be updated for compatibility with different OS images.

We need firmware which works for any OS on SD, EMMC, NVME and in the future USB.
Any differences should be handled externally by /boot/uEnv.txt and extlinux/extlinux.conf.
Unfortunately discovery is bypassed and variables are hard-coded.
In Mar 24 u-boot, nvme scripts have been returned, but not included in the targets.

I am avoiding Visionfive’s images in favour of Armbian and looking at Ubuntu for the 6.2 kernel.
I have applied modifications bringing u-boot in line with standard and bypassing the hacks,
nearly every image works on SD, NVME, EMMC interfaces with flash boot.


Can you post an obsessively detailed HOWTO somewhere?


Upstream really should fix this, get rid of hardcoded crap.

1 Like

And not let you young-uns do some exploring and learning…
(on serial) hit any key while u-boot is coming up
? (for help) printenv (to peruse scripts)
obsessively detailed -

The problem is fixed when you don’t need a HOWTO, it just works.
This problem needs some diffs.
She (who must be obeyed) will be back with lists of tasks for me to perform, which don’t include coding.
It will be done, just not today. (found a bit of time today :wink:


Exploring the USB boot…
Enabling usb commands in starfive_visionfive2_defconfig…
Pcie0 port which connects the VL805 quad usb interface is “disabled” in u-boot starfive_visionfive2.dtb.
When “okay” it clashes with nvme scan so nvme drive isn’t detected.
So far, more to check out for usb boot…

1 Like

[Update] StarFive released a new image May 31, I flashed uboot.out and fw-payload but it still seems to not be booting the official image. I tried the 202303 debian image and I switched the board to SDIO boot mode

Could you try my Arch Linux image? Arch Linux Image for VisionFive 2

Oky! I’ll try it!

it doesn’t boot, I tried with DIP switches set to SD card mode and also set to the default positions (both up)

1 Like

Interesting, did you already try a difference model/brand of your micro SD and also using a USB Type C PD power supply?

hmm no! I’ll try it later and send the results as a reply in here!
I have another SD Card with diet-pi in it and it boots and works just fine; weirdly enough it doesn’t boot when the boot mode pins are set to SD Card, only when they are set to the default position (0, 0; both up)

So here’s the long awaited UART serial output!

When I boot with the switches set to QSPI, this is the output on serial

when I boot with the switches set to SDIO:

when booting with the switches set to SDIO and using the rescue option from the boot menu:

I’ve used the latest image, 202310 starfive-jh7110-VF2_515_v3.8.2-66-SD-minimal-desktop-wayland.img; I’ll try to update my bootloader thinguie to the latest version :eyes:

I’ve also noticed that I cannot boot newer versions of buildroot (sdcard.img), it gives me this error:

I tried version v3.6.1
the only image I managed to boot from was v3.4.5
this image doesn’t allow me to flash the newest version of visionfive2_fwpayload

ok I think I managed to flash the latest firmware, I installed dietpi and it has an option to update the firmware, it did show some output that seem’d like it was installing the latest firmware, and did run flashcp to install them, tho I don’t know how to check the current version of my firmware, I’ll make an image copy of my SD Card and try to boot the latest first party image

after updating to the latest firmware, still can’t boot the latest image

Your screenshots show too far down on the boot text.

The interesting bits (u-boot spl version, opensbi version, u-boot version) happen earlier.

1 Like

The error is right there in the screen capture – U-Boot can’t find the device tree file. You probably have a mismatched boot partition (type EFI system) layout against the U-Boot version you are using. The boot partition you are using is probably from a older release.