VisionFive Software v3.7.5 Release

More details about v3.7.5:

New Features:

  • A summary of the main new features are as follows.
  • Support JH7110 SDK v 5.7.5;
  • Support VisionFive2 v1.2A&1.3B SBC;
  • Support wave511 v4l2 driver;
  • Support PWM lighting control for 4-lane DSI Display;
  • Optimize the boot priority;
  • Enable SOF project on JH7110 HiFi4;
  • Enable STA and AP for WIFI/BT dongle;
  • Support fastboot in U-Boot;
  • Support G-Sensor for new Radxa 10 inch 1200*1920 MIPI 4-Lane LCD;
  • Add VUYA format support in Gstreamer;

Bug fix:

  • No console output after resume from hibernation;
  • Getting stuck when runing gst-play to play mp4 files via v4l2 driver;
  • Incorrect fix on mosaic cursor and drop 50% performance;
  • Drop frame when play 1080p60 video under Weston desktop;
  • Booting issue for some specific NVME SSD on Kernel 6.1;
  • HDMI hot-plug or touch failure issue under Weston dual-display mode;
  • Output mmc0 error logs after resume from hibernation;
  • Show garbled text on UART data path under 600bps baudrate;

Known Issues:

  • Only 22.05K/44.1K audio through PWMDAC are obviously out of sync when playing video/audio file;
  • Camera image cannot be output to MIPI LCD via v4l2test command;
  • Some TF cards may have compatibility issues;
  • Segmentation fault when running unit tests in DDK 1.19;
  • OpenCL CTS segmentation fault in DDK 1.19;

Can you expand this please: What is the new ‘optimised’ priority?

  • it is not mentioned at all in the Github release notes.
  • I tried to spot it here: …/commits/VF2_v3.7.5 but nothing jumps out at me.
1 Like

Speed reading the source code changes when comparing VF2_v3.6.1 to VF2_v3.7.5, my guess would be the FASTBOOT_USB, FASTBOOT_FLASH, FASTBOOT_MMC and lowering the PCIe initialisation delay from 300 ms to 100 ms.


Just test my new image with the new firmware (SPL+U-Boot). The board is able to boot my image using dip switch mode [0-1], even though the NVMe SSD is still in place.


If you read the release notes on GitHub it now says:

Woot! ???

If I read this right they just quietly rolled out official 6.1 kernel support. If so; are we going to get an official 6.1 based release soon?


The next official lonterm support Linux kernel will probably be selected in December ( ) so I’m sure that there has been and is a massive push by StarFive to have the JH-7110 fully included. I suspect that any mention of 6.1 is being used as a temporary placeholder, for an (as yet) unknown future kernel version. Basically I do not think that a custom StarFive 6.1 kernel is the goal (I see it more as a plan B). I do expect that the custom StarFive 6.1 kernel will receive updated patches from the 5.15 kernel and backported patches from the “-next” kernel, but a custom StarFive 6.1 kernel is not the ultimate target.

Currently the only StarFive SoC included in the official 6.1.55 longterm support kernel is the JH-7100. And that is still a major achievement, it is much further ahead than most of their RISC-V competitors.

Hi there,

I tried updating my VisionFive 2’s firmware as described here:

VisionFive 2 Debian User Guide | RVspace Point 4.4 “Updating U-boot in SPI (using mtd-utils)”:

apt install mtd-utils
cat /proc/mtd
flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
flashcp -v visionfive2_fw_payload.img /dev/mtd1

However, when issuing the first flashcp command, I got this error:

# flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
u-boot-spl.bin.normal.out won't fit into /dev/mtd0!

Has anyone an idea what went wrong here? Did the way on how to flash the mtd change? Did I overlook something?

I am currently on VisionFive2 Software v2.8.0 and wanted to change to VisionFive2 Software v3.7.5.

Thanks in advance for your help,


I always do it from the sdcard.img, without issue.

Boot that instead of debian, and then flashcp having used wget to download the files.

1 Like

Read this thread.
The summary of which would that the size of /dev/mtd0 grew over time from 0x20000 (128 KiB) to 0x40000 (256 KiB). And if you are accessing it from an older image the dtb (device tree binary, compiled from a dts - device tree source), is hard coded with the smaller size.

Obviously when you try to write a “u-boot-spl.bin.normal.out” that is larger than 128 KiB to a partition that is 128KiB, the SPL (Second Program Loader) firmware is corrupt because it is truncated at 128 KiB.

Thanks for posting this link to the thread. Inside it I did not find a solution but this thread: Flashcp => /dev/mtd0 2.11.5 which offers a lot of ideas on how to resolve this issue. Sadly my understanding of that matter is still limited, so I don’t know which of those ideas is the right one which doesn’t cause trouble (“bricking” the board — as I have no access to some serial hardware to restore the firmware when something goes wrong). Could someone who actually upgraded to firmware v3.7.5 post the way how it was done? Explantations would be a bonus!

Thanks in advance,


Replying and even quoting myself — because I found the solution (after trying around with those sdcard.imgs from the releases: found out that on the screen a login never appears and had to ssh as root to the VF2, but then wget never worked, scp also didn’t): VisionFive 2 Debian Image 202308 Released (latest) - #20 by bartoshe

Just boot the Debian Image 202308 and do it from within there.

Simple, isn’t it?



Yeah the login screen doesn’t appear, but then thats not new.

ssh in, wget in from a none https url, and then flash

I download the files to flash on the machine I ssh in from, and start like a python http server and wget that python server. I just find not having to dd a desktop OS easier.