StarFive VisionFive 2: Finally a RISC-V SBC for the Masses?

By

RISC-V is the new open standard Instruction Set Architecture (ISA) that is supposed to lead to the next revolution in computing, with no licenses attached (no royalties to pay to use the ISA standard), and an ISA that’s flexible to serve multiple use cases from embedded to super computer designs. Jim Keller, of Apple and AMD fame, is now working on RISC-V and while he’s probably not biased since he has a vested interest in it, he’s predicting (or planning) that RISC-V will take a major part of the server space within 5 years from now.

In the meantime, if you wanted to try your hands on actual, real world RISC-V hardware, the Vision Five 2 from Starfive is one of the best options available right now: it’s affordable, has very decent performance, and is planned to be fully supported by Debian upstream in the near future (Raspberry Pi users have to rely on a proprietary bootloader and GPU drivers since its inception).

If you are wondering where StarFive comes from, StarFive is a Chinese local high-tech company founded in 2018 with independent intellectual properties. It is the leader for RISC-V software and hardware ecosystem in China, and provides products and solutions on RISC-V covering CPU IP, SoC, development boards, and more. Currently, StarFive has about 300 employees, most them located in China with offices in Shanghai, Beijing, Chengdu, and Foshan. They also have R&D centers in Singapore and Malaysia. StarFive is a fabless company and JH-7110 (SoC of VisionFive 2) adopts TSMC’s mature 28 nm process technology.

The VisionFive 2 Out of its Package

Now, I also want to be clear. If you get into it right now, you are in for some rough edges. This is not a toy made for consumers. Let’s delve into this together.

Hardware: What do you get?

The specs are fairly decent on paper. I find the I/O part especially interesting. You can see that Starfive had no specific goal in mind for this board, and made it as flexible as possible to fit a large number of use cases.

Vision5 2 board in its package

Specs:

  • 4GB SOC with a a JH7110 RISC-V processor (also available in 2GB and 8GB versions)
  • 2 Ethernet ports (see below note for additional details about their speed depending on the Revision Model)
  • USB-c charger port
  • MicroSD port
  • eMMC storage slot
  • M2 NVME storage slot (full size)
  • HDMI port (full sized)
  • Audio jack

Note that there are two versions of this board. Rev 1.2 comes with a gigabit ethernet adapter and a 100 Mbps adapter, and the 1.3 comes with two gigabit ethernet adapters.

the top side of the VisionFive 2 Board

The JH7110 is the piece of magic at the center of this SBC:

The JH7110 chip that powers the VisionFive 2

It has a few interesting properties as you can see from this diagram:

The JH7110 specs themselves:

  • CPU sub-system
    • Quad-core 64-bit RISC-V SiFive U74 (RV64GC) processor @ up to 1.5 GHz with 32KB D-Cache, 32KB I-cache
    • Single-core 64-bit RISC-V SiFive S7 (RV64IMAC) monitor core with 16KB I-cache, 8KB DTIM
    • Single-core 32-bit RISC-V SiFive E24 (RV32IMFC) real-time control core with 16KB I-cache -Up to 2MB L2 cache
  • GPU – Imagination BXE-4-32 GPU with support for OpenCL 1.2, OpenGL ES 3.2, Vulkan 1.3
    • Video Decoder – H.265, H.264 4K @ 60fps or 1080p @ 30fps, MJPEG
    • Video Encoder – H.265/HEVC Encoder, 1080p @ 30fps
  • Memory
    • BUS RAM up to 256KB
    • Up to 8GB DDR4/3, LPDDR4/3 at 2133/2800 Mbps (directly included in the chip, as far as I understand)
  • Display interfaces
    • 1x HDMI 2.0 up to 4Kp30
    • RGB656, RGB888 up to 1080p30
    • MIPI DSI up to 2.5 Gbps or 1080p30
    • 1x DPI (Parallel RGB Display)
  • Camera interfaces
    • 1x MIPI CSI-2 interface up to 6 lanes of 1.5 Gbps; support for 1x 4D1C or 2x 2D1C MIPI sensors up to 4Kp30
    • 1x DVP sensor input interface
  • Audio
    • 32-bit audio DSP used for traditional audio/voice data algorithm processing
    • 8-channel TX and RX I2S/PCM TDM
    • 4x sets of I2S/PCM I/F with DMA support
    • 2x sets of SPDIF I/F, RX and TX modes
    • 4-channel PDM input for digital MIC
    • DAC output with PWM interface
  • PCIe – 2x PCIe 2.0 x1 up to 5 Gbps per lane (Note one of the PCIe 2.0 interface is multiplexed with USB 3.0)

Size-wise, it’s certainly not as small as the Raspberry Pi. You can see below a direct comparison with my old Raspberry Pi 1B and the more recent Vision Five 2:

VisionFive 2 Board vs a Raspberry Pi in size

You may wonder why an Imagination GPU (with non-free drivers) was chosen for a board that’s aiming to be fully-open at some point? Well, the problem in the GPU world is that there is just not a lot of choice when you are independent. If you are Raspberry Pi, then you can use the Broadcom GPUs because you work in the same company. If you are Qualcom, you use your own Adreno cores which are your own IP. Imagination is one of the few vendors that provides official GPU support for other companies out there, for both ARM and RISC-V. There may be some more alternatives in the future (people have been talking about having a fully open GPU for a while as well) but the market offering is not there yet.

Where to buy it the VisionFive 2?

Here’s a few places where you can get it - expect a price around 100 USD, more or less, depending on the RAM configuration you choose.

The prices are fairly consistent from one shop to another, so buying close to your region is probably the best strategy to get one.

Where to get help?

RVSpace is an online forum for the community of users and developers of the Vision Five 2 board (as well as the first one). https://forum.rvspace.org/c/visionfive-2/19

There’s not a huge amount of activity currently, so you can clearly tell the community is relatively small, but there are new posts every day and several distro developers there too (such as the ones porting Arch). It’s probably the best place to ask questions and troubleshoot problems anyway so if you acquire the VF2, I would highly recommend you keep an eye on what is happening there. This is also the place where the official announcements related to Vision Five are released.

Beginnings

To get started you need to flash the official Debian image from Starfive on a MicroSD card. Then you need to select the right jumper positions to ensure that the board will boot on the MicroSD and nothing else. There are several boot modes available:

  • Boot Rom
  • QSPI NOR/NAND Flash
  • SD card/eMMC
  • UART/USB/SD card update

…and they can be selected with the jumpers in different positions. Notice that you cannot boot directly boot on the NVME drive. More on that later.

Debian

Debian is distributed as a snapshot image that is refreshed every few months. I started on March 2023 Debian image and my first impressions were not positive. The image was extremely minimal with almost nothing available out of the box, 4K not working properly, and more small issues.

Then they released an image in June 2023, that’s a little bit bigger and much approachable - with a additional script you get to install nodejs, Firefox, Chromium, VLC and LibreOffice, which covers already a few use-cases. Note that these packages are not installed from the Debian repos, but come from Starfive as additional packages that are pre-compiled.

Video acceleration is supposedly working on VLC, and you need to setup several options to make it work, such as:

  • Video output device
  • Decoder as FFmpeg
  • Output as full screen by default … but for some reason it would not work on my end, and I would either get a black screen or a video rendering at slideshow framerates.

After this review was written, they have released a new version of the Debian image in November 2023 that still uses the same kernel 5.15, but comes with performance improvements for 4K display while they still recommend to stay at 1080p for the best performance. Note that Firefox is still stuck at the version 105 while the 121 is already out, which may lead to security vulnerabilities when browsing.

Desktop

While you are supposed to have a Debian that ships with a full desktop, in practice it’s very bare bones (at least in the June 2023 image that I tested here) and you don’t even have a file manager! Nautilus is nowhere to be seen. The network manager comes as is, without VPN support. All of this can be added of course, but it would have been great to add a few more things baked in to get you started.

The neofetch screen with the VisionFive 2

I could manage to install Firefox and Chromium that was provided by the Starfive script. On top of that, relying on the Debian repos, I could install easily:

  • of course basic stuff like vim, tmux and command line tools like htop, btop, ncdu etc.
  • XFE as a file manager
  • gedit (text editor)
  • weechat (irc)
  • evolution (mail client)

And everything was working mostly as you would expect, as long as you have reasonable expectations in terms of speed. After all, the processor runs at 1.5 Ghz max and the JH7110 chip has cores without a lot of cache to begin with.

I could for example browse the web fairly easily with Chromium, and it worked well on non-javascript intensive websites, like ours:

Browsing Boiling Steam on the Vision Five 2

But go to Youtube, and even a 360p video will be enough to make it stutter and load numerous times during playback. You can see how the cores can’t deal with that kind of workload (probably because of lack of GPU acceleration for video playback in browsers).

youtube will be too much for this board, right now

Quite a lot of software is available in the Debian repos, but you can’t do a regular upgrade for Debian as usual, since the Debian distro snapshot contains numerous patches to make the device work with proprietary bits - and not everything is upstreamed yet. The Raspberry Pi approach is to host their own Raspbian repos, but Starfive took a different approach where you have access to the regular RISC-V Debian repo, and they apply their own series of patches on top of that. Because of this choice, they strongly recommend not to use “apt upgrade” as it overwrites the patches introduced for some packages of their Debian distro and end up breaking your GUI session at the next reboot. Anything that touches Mesa is probably going to mess things up too.

MicroSD vs NVME

You can install a eMMC storage chip or a regular NVME drive under the board - this is much better than most ARM SBCs out there that don’t come with a proper storage port and instead rely only on MicroSD or USB. You can boot directly to eMMC if you have such a configuration. However most of us will probably go for a NVME drive, which can also be attached at the back of the board.

VisionFive 2 board with an attached NVME drive

The thing however is that you can’t really boot from NVME directly. My understanding is that you can boot from the MicroSD card as well as the eMMC, but the NVME is a different interface altogether. So what you end up doing is basically booting the first few seconds from the micro SD card, and then redirecting the boot sequence to the NVME drive.

You can fit a standard NVME drive on the VisionFive 2 board

The difference in performance is light and day. Once you use a NVME drive, the desktop is much more usable than with a microSD card: the latency and general wait times become much shorter, and the bottleneck becomes the CPU rather than the I/O speeds. While the desktop environment with the Vision Five 2 never feels fast, with the NVME drive it’s reaching an acceptable level: I can see myself using it for several hours as is without minding too much (and I did).

I conducted some I/O tests with the NVME drive, on Debian. I have got the following results with the NVME drive:

Category Test Result
HDParm Disk Read 199.16 MB/sec
HDParm Cached Disk Read 193.53 MB/sec
DD Disk Write 121 MB/sec
FIO 4k random read 39613 IOPS (158452 KB/s)
FIO 4k random write 9018 IOPS (36072 KB/s)

Fast enough, but there is probably something holding down the performance of the actual NVME drive. This could be linked to the PCIe 2.0 port used instead of more recent versions on the VisionFive 2, or the number of lanes, etc… In any case, the transfer speeds are WAY faster than what you get with a MicroSD card. And faster than with what you could get with the Raspberry Pi, until they released the 5th version which improves massively in I/O.

Geekbench Benchmarks

I could run Geekbench, version 5.4 which is an experimental build for the Risc-V architecture. Since the results are fairly similar to what others got with the same board (Vision Five 2), I assume that my results are probably reliable in terms of performance.

Now, I don’t know how reliable it is to compare Geekbench results between different architectures. Are the scores on ARM64 comparable to Risc-V 64 bits? Maybe, maybe not. So take the following with a pinch of salt.

If this is comparable, then this means the Raspberry Pi 4 is indeed much faster than the VisionFive2 for a bunch of workloads. We may be talking about something like 2x to 3x faster, if the scores are any indication. And it looks like the VisionFive2 performance is closer to that of a Raspberry Pi 3, according to what I could gather from Geekbench.

Full results below - for info this is what was tested in both cases - I refered to scores on Geekbench that were done on the Raspberry Pi 4 running at the same frequency as the Starfive Vision Five 2, 1.50 Ghz.

Spec Raspberry Pi 4 Model B Rev 1.1 Starfive Vision Five 2 v1.3
Operating System Debian GNU/Linux 11 (bullseye) Linux 5.15.0-starfive riscv64
Model Raspberry Pi 4 Model B Rev 1.1 Vision Five 2 Version 1.3
Processor ARM BCM2835 @ 1.50 GHz 1 Processor, 1 Core, 4 Threads rv64imafdc @ 1.50 GHz 1 Processor, 1 Core, 4 Threads
Memory 1.81 GB 3.80 GB

Note that I ran all my benchmarks on the NVME drive, while most of them are I/O related.

Single Core Performance Tests

First Geekbench runs single-core performance tests, across a variety of metrics. You will see that most of them are between 2x to 3x faster on the Raspberry Pi at the same frequency (1.5 Ghz), while there are some notorious outliers such as Machine Learning - for some reason this test is very, very slow on the Vision Five 2 compared to the Raspberry Pi. Maybe a fluke in its implementation? That, or there is some hardware acceleration going on that’s not clearly identified on Raspberry Pi.

And the numbers below:

Test Single Core Raspberry Pi 4 Model B Rev 1.1 Starfive Vision Five 2 v1.3 Difference
AES-XTS 33 11 300.0%
Text Compression 253 188 134.6%
Image Compression 271 29 934.5%
Navigation 196 149 131.5%
HTML5 260 108 240.7%
SQLite 244 129 189.1%
PDF Rendering 288 122 236.1%
Text Rendering 250 103 242.7%
Clang 228 148 154.1%
Camera 212 33 642.4%
N-Body Physics 127 53 239.6%
Rigid Body Physics 327 121 270.2%
Gaussian Blur 91 12 758.3%
Face Detection 254 119 213.4%
Horizon Detection 326 102 319.6%
Image Inpainting 357 100 357.0%
HDR 455 167 272.5%
Ray Tracing 307 71 432.4%
Structure from Motion 214 31 690.3%
Speech Recognition 178 97 183.5%
Machine Learning 111 1 11100.0%

As you can see, the Vision Five 2 is not nearly going to be a replacement for a Raspberry Pi 4 in terms of performance just yet.

Multi-Cores Performance Tests

The results are somewhat better for the multi-core benchmarks - thime time the gap is typically reduced to 1.5 to 2.5x more or less. The same tests that performed poorly in single core perform poorly in multi-core as well.

And the numbers below:

Test Multi-Cores Raspberry Pi 4 Model B Rev 1.1 Starfive Vision Five 2 v1.3 Difference
AES-XTS 131 44 297.7%
Text Compression 656 610 107.5%
Image Compression 1005 113 889.4%
Navigation 247 363 68.0%
HTML5 929 416 223.3%
SQLite 840 488 172.1%
PDF Rendering 889 455 195.4%
Text Rendering 683 337 202.7%
Clang 629 527 119.4%
Camera 441 128 344.5%
N-Body Physics 379 185 204.9%
Rigid Body Physics 1200 477 251.6%
Gaussian Blur 560 45 1244.4%
Face Detection 973 464 209.7%
Horizon Detection 811 394 205.8%
Image Inpainting 809 329 245.9%
HDR 1486 647 229.7%
Ray Tracing 1098 275 399.3%
Structure from Motion 648 123 526.8%
Speech Recognition 278 281 98.9%
Machine Learning 174 4 4350.0%

Power Consumption

The figures do not come from my tests, but according to the power consumption tests done by StarFive themselves, you should be looking at:

  • 4 to 5W when idle
  • up to 9W under higher workloads
  • A max of 13W when stretched out on tasks and several I/O at the same time

For server use, this seems very reasonable. Note that you don’t need a fan, the board never gets hot enough to justify it (less than 80C). So yay for silent operation!

Not a Production Environment… For Now

The current Debian being a snapshot at a certain point in time, and the use of “apt upgrade” being discouraged tells you that the current Debian image is not a safe bet to run anything in production. It’s probably fine for development at this stage, to have an actual piece of RISC-V hardware to test things on. But until they move to Debian upstream, this kind of hardware will have to wait to be ready for prime-time. You also have to keep in mind that running such a version may also be vulnerable to security issues.

Following the announcement in 2023 of Debian supporting RISC-V officially from there on, this is what Star Five had to say about it (as I am in touch with them):

We are thrilled about the official RISC-V support in Debian 13. Believe that there will be more cooperation between the Debian community and StarFive. Starting from VisionFive 2, we have been using the Debian image, and we will continue to dedicate efforts to further optimize the Debian desktop experience, enhancing the developer’s journey.

As for when things are going to be upstreamed, we should be in a much better state by the end of the year for most modules, according to Star Five, but the DRM part is not Star Five’s responsibility and depends on Imagination:

We are diligently working on upstreaming patches. The plan for the third quarter (of 2023) regarding upstream is to complete the major modules. DRM might be challenging, but the rest of the modules are progressing rapidly. For specific plans and progress updates, you can keep track of our RVspace page: https://rvspace.org/en/project/JH7110_Upstream_Plan Additionally, you can find relevant information on our GitHub page as well: https://github.com/starfive-tech/linux/tree/JH7110_VisionFive2_upstream

At the time of writing, most modules are already upstreamed and a few more are under review, so it looks like they are progressing pretty much as expected.

RISC-V used to be only about expensive boards until fairly recently, and now the VisionFive 2 is as close as we can get to an imminent Raspberry Pi moment for the RISC-V architecture. The fact that Debian works well and that you can install a great number of software without issue, with good performance (apart from things like Youtube which is still too demanding for this board), tells you things will look much better a year from now. It’s like seeing a preview of a new game, still unfinished, but giving you goosebumps already.

I have also been testing this board for several months, and the initial image from March 2023 was showing many more problems that were fixed in the June 2023 image. And since then, Star Five released new images again every 3 months or so, fixing some issues and introducing UWD support.

Alternatives to Debian

You are not limited to Debian, while Debian is the only one with official support. There are already many other distributions available for the Vision Five 2:

  • AltLinux (Russian distro with desktop environment, English is also supported)
  • Arch Linux (Experimental)
  • Alpine Linux (distro with very small footprint, often used in Docker deployments)
  • Armbian (originally for ARM SOC but now supporting RISC-V as well)
  • FreeBSD (not Linux as you already know)
  • OpenBSD (not Linux either)
  • Fedora33
  • Gentoo (Experimental)
  • Haiku (Experimental, not Linux, but inspired by BeOS)
  • 聚元PolyOS
  • Slackware (Experimental)
  • Ubuntu (23.04)
  • Pantavisor (for embedded development)
  • OpenEuler (a commercial distro with a community version, prepared by Huawei)
  • OpenKylin (Chinese Linux OS)
  • OpenSUSE
  • OpenWRT (to transform it into a router! Yes, it’s one of the use cases possible since you have two Ethernet ports)

Note that GUIX (check out Podiki’s article on why he uses GUIX) is apparently in the works as well to support the VisionFive2, so you may have yet another Linux distro available on top of the above, in short order.

Careful readers will notice that there is no distro that’s aimed at making this into a streaming box such as LibreELEC. The video drivers and the general state of GPU performance is just not there yet to make this kind of use case a reality at the moment.

Additionally, most of the Linux distributions mentioned above have no UI available - and are therefore aimed at server use. (AltLinux is one of the exceptions, as well as Arch Linux which received GPU support later in 2023). Since the current patches are necessary to boot the device, all of these distros are stuck on the latest kernel version (5.15 at the time of writing) provided by Starfive just like for Debian.

So in realistic terms there is not a huge reason right now to use another distro, except if you really want a different default DE and need some stuff in larger package repositories than what is available on RISC-V Debian. While I have not tried it, the possibility of having Arch Linux on such a board is enticing.

Gaming on the VisionFive 2

This will be the subject of a different article, more in-depth on that topic. The system drivers comes with:

  • OpenGL ES 3.2
  • EGL 1.4
  • OpenCL 3.0
  • Vulkan 1.3

While there does not seem to be an OpenGL implementation yet, you could probably get around that by using Zink and get OpenGL through Vulkan (that entirely depends on what is actually supported by the Vulkan driver on this board, though), or GL4ES from PtitSeb that does something similar by using OpenGLES. Using Box64, you can run Linux X86_64 clients directly on the board, as demonstrated in the below video of Super Hexagon:

There’s also Stardew Valley working on the board - but note that this video shows it running quite slowly while Box64’s performance on RISC-V has significanly improved since then with the implementation of a JIT.

You should also expect to run the plethora of native engines and emulators working on pretty much any architecture. I could play Doom with the Chocolate-Doom package (running in software mode) at good framerates. But things like Super Tux Kart do not work out of the box since they require OpenGL at least, and GL4ES won’t be sufficient in my experience (segmentation fault). So you need to recompile Super Tux Kart with GLES support (which exists, it’s just a compilation flag to change), which can be a bit tedious.

This and more will also be the topic of my upcoming gaming article related to this board.

My First Take

This board will make you realize how spoiled you are when you get a Raspberry Pi with most of the things working out of the box without much effort. When it comes to the Vision Five 2, the hardware is capable enough, while far away from the performance of Raspberry Pi 5 at the moment, but it comes with great benefits such as multiple ethernet ports and a NVME connector for fast I/O.

The thing that the board lacks the most is strong software support. The Debian image provided is good enough for development, but not for everyday use since you cannot rely on any kind of upgrade path. The community around the board is small but a few people are dedicated and that’s why we have got a great Arch Linux image already available.

If they manage to push all their patches on the mainline in 2024, there will come a time when we will be able to run any kind of distro with ease along with easy upgrades. This is the end game and the sooner they get there, the more the value of this board will increase. Apparently what slows down their progress is the fact that Imagination technologies (responsible for the GPU) also have to push their drivers to the mainline, and they are not in control of that piece of the work.

They are probably already working on their next RISC-V board as we speak, so it’s likely there will eventually be Vision Five 3 with better core performance down the road. As long as they keep at it, RISC-V could become a great platform for SBCs, but I expect it will take a little longer before we get there (a couple of years?). But make no mistake, RISC-V is moving forward, and some of this is driven by the fact that China faces import restrictions for a number of semi-conductors and needs to develop their own local chips for strategic purposes. I asked Starfive about the importance of RISC-V in China, and their answer was as I expected:

StarFive: RISC-V is gaining more and more attention from the industry. As you may notice, the 2023 RISC-V Summit China has over 2,000 audiences and recently a group of leading Chinese chip design firms (including StarFive) have formed a patent protection alliance for RISC-V. These proved that RISC-V is becoming one of the leading (at least most popular) architectures. And StarFive will keep contributing to and leading the growth of RISC-V in China.

In any case, RISC-V is progressing REALLY fast. I seriously did not expect to see a 100 USD board with such performance and usability at that point in time. It’s not yet at the Raspberry Pi stage, but it’s closer than you think.

Many thanks to StarFive for providing us with a review unit of the board (Rev 1.3).