VisionFive 2 Debian Image Released

Hello everyone,

I already saw solutions to upgrade firmware by using buildroot sdcardimage, but I did not noticed that so I will provide how I have solved this problem. It still may be usefull for others even it is quite builky I would say (but does not require to reflash SD card atleast :D)

Note: I have done everything mentione bellow by accesing u-boot from serial console , as well as using Linux machine, not Windows.

First stage (temporary boot debian 69 with old firmware):

  1. Mount sd card boot partition (partition 2) to your PC:
    sdc 8:32 1 29,8G 0 disk
    ├─sdc1 8:33 1 16M 0 part
    ├─sdc2 8:34 1 100M 0 part
    └─sdc3 8:35 1 29,6G 0 part

  2. Copy device tree for correct naming:
    cp {mount_point}/boot/dtbs/starfive/jh7110-visionfive-v2.dtb {mount_point}/boot/dtbs/starfive/starfive_visionfive2.dtb
    This should help with Failed to load /boot/dtbs/starfive/starfive_visionfive2.dtb error

  3. put SD to device and boot, wait till it fails to boot, because of: kernel_comp_addr_r or kernel_comp_size is not provided! (or stop boot manually)

  4. Now set kernel address and size:
    setenv kernel_comp_addr_r 0x50000000
    setenv kernel_comp_size 0x1000000

  5. Boot again (now it should boot to login prompt):
    run bootcmd

Second stage (firmware updating):
It is same as described in: Updating SPL and U-Boot, but instead of compiling binaries, you can download u-boot-spl.bin.normal.out and visionfive2_fw_payload.img from Releases · starfive-tech/VisionFive2 · GitHub

  1. Install mtd-utils
    apt install mtd-utils

  2. download u-boot-spl.bin.normal.out and visionfive2_fw_payload.img

  3. flash firmware to corresponding locations:
    flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
    flashcp -v visionfive2_fw_payload.img /dev/mtd1

Hope it helps! Have a nice day!

2 Likes