Jump to: navigation, search
StarFive VisionFive

The VisionFive2 is the next generation of VisionFive developed by StarFive. It is fully open-source with open-source software, open hardware design, and RISC-V open architecture.

Technical details

Tech spec

SDK binaries

VF2 releases

Community Images


Firmware Construction


  • branch: JH7110_VisionFive2_devel
  • config: starfive_visionfive2_defconfig
    • Set CONFIG_DISTRO_DEFAULTS=y if you want to boot from the preload FDT.


  • branch: master, platform=generic


  • Required tools:
    • spl_tool/create_spl
    • uboot_its/visionfive2-uboot-fit-image.its

FW boot sequence:

  • BootROM -> u-boot SPL -> openSBI (PLATFORM: generic) -> u-boot (as openSBI FW_PAYLOAD)


# u-boot compile                                                                   
make -C u-boot -j8 ARCH=riscv CROSS_COMPILE=riscv64-suse-linux-                    
# opensbi compile                                                                   
make -C opensbi ARCH=riscv CROSS_COMPILE=riscv64-suse-linux- \                     
  PLATFORM=generic FW_PAYLOAD_PATH=../u-boot/u-boot.bin \                          
  FW_FDT_PATH=../u-boot/arch/riscv/dts/starfive_visionfive2.dtb FW_TEXT_START=0x40000000
# spl                                                                              
cd tools/spl_tool                                                                  
./create_sbl ../../u-boot/spl/u-boot-spl.bin 0x01010101                            
cd ../..                                                                           
# u-boot payload                                                                   
cd tools/uboot_its                                                                 
cp ../../opensbi/build/platform/generic/firmware/fw_payload.bin .                  
../../u-boot/tools/mkimage -f visionfive2-uboot-fit-image.its -A riscv -O u-boot \
  -T firmware visionfive2_fw_payload.img                                           
cd ../../                                                                          
rm -rf build                                                                       
mkdir build                                                                                                                                                                
cp tools/spl_tool/u-boot-spl.bin.normal.out build/                                 
cp tools/uboot_its/visionfive2_fw_payload.img build/

Firmware update to SPI flash

  • Select the boot mode switch to RGPIO_0 = 0'b, RGPIO_1 = 0'b.
  • Copy u-boot-spl.bin.normal.out and visionfive2_fw_payload.img to your tftp server.
  • set the u-boot IP and the tftp server IP, for example:
setenv ipaddr; setenv serverip
  • Run the following u-boot commands:
#SPI flash probe
sf probe
# Download and flash the u-boot SPL
tftpboot 0xa0000000 ${serverip}:u-boot-spl.bin.normal.out
sf update 0xa0000000 0x0 $filesize
# Download and flash opensbi+u-boot-payload
tftpboot 0xa0000000 ${serverip}:visionfive2_fw_payload.img
sf update 0xa0000000 0x100000 $filesize
  • Board reset

Manual Installation

See also