To update u-boot,
Important. All manipulations to update uboot and reset variables must be performed with the Star64 NVMe DISCONNECTED from the board.
I recommend using the latest version of ArmbianTV LEGACY with the 5.15.131 kernel. Download the ArmbianTV image, unpack it, burn it to an SD card and run it on Star64, install the utility package for working with SPI\MTD.
apt update
apt install mtd-utils
Download the new version of u-boot with NVMe startup support.
https://disk.yandex.ru/d/DLTRMV6pcBnWfg
u-boot-spl.bin.normal.out
visionfive2_fw_payload.img
Install a new u-boot in SPI\MTD.
flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
flashcp -v visionfive2_fw_payload.img /dev/mtd1
Reset u-boot variables.
There are several ways to do this. If there is a UART console, run two commands in it.
env default -a
saveenv
Without using the UART console - download the u-boot variable reset image,
https://disk.yandex.ru/d/zsqznfa1ySI2gw
reset_default_env_uboot-star64-3.0.4.img
write it to the SD card, connect the SD to Star64 and turn on the power, wait 10-20 seconds and turn off the power.
After these steps, you can install the system on NVMe and run it directly from NVMe. for example, run ArmbianTV from an SD card and perform the installation on USB\SATA\NVMe according to the general instructions for Armbian.