模板: VisionFive2 Flash
来自Waveshare Wiki
板载Flash固件更新
每个版本的系统可能有不同的Flash固件,如果需要最新版,请对照官方文档,编译最新的SDK系统
也可以在GitHub上下载官方编译好的文件:
https://github.com/starfive-tech/VisionFive2/releases
#下载下面两个名称的文件 u-boot-spl.bin.normal.out visionfive2_fw_payload.img
https://github.com/starfive-tech/Tools/tree/master/recovery
恢复二进制文件:jh7110-recovery-xxxxxxxx.bin
VisionFive2 Lite 的固件与 VisionFive2 一致
如果你板子上的flash中的内容损坏或者你想更新请使用下面的方法
方法一 Windows系统更新
Windows准备
- 下载 tftpd64,官方下载地址 :https://pjo2.github.io/tftpd64/
- 配置 TFTP 服务器:
- 创建一个文件夹:G:\VisionFive-img\u-boot\2510 (我这里是示例)
- 将 u-boot-spl.bin.normal.out、visionfive2_fw_payload.img 放到这个文件夹下
- 打开 Tftpd64
- Current Directory 选择刚刚创建的文件夹
- Server interfaces 选择电脑连接到局域网的网卡 IP(需与 VisionFive2 在同一网段)
VisionFive2 设置
- 通过USB转串口模块连接主机与 VisionFive2/VisionFive2 Lite
- 连接网线,打开终端,接入电源
- 当终端显示在下图所示位置时,按下任意按键停止继续往下运行
- 输入以下命令进行初始配置
# 设置 vf2 的ip,要与主机在同一网段 setenv ipaddr 192.168.9.177 # 设置主机的 IP(Tftpd64 软件中 Server interfaces 设置的) setenv serverip 192.168.9.170 # 看看是否连接成功 ping 192.168.9.170
- 初始化SPI flash
sf probe
- 获取SPL二进制文件并加载进flash中
tftpboot 0xa0000000 visionfive2_fw_payload.img sf update 0xa0000000 0x100000 $filesize
- 获取U-Boot二进制文件并加载进flash中
tftpboot 0xa0000000 u-boot-spl.bin.normal.out sf update 0xa0000000 0x0 $filesize
- flash到此就更新完成了,VisionFive2按下复位按键即可重新启动,VisionFive2 Lite需要重新进行上电
如果配置都没有问题,但是连接不上
- 在执行 ping 192.168.9.170 命令时可能出现以下提示
- 这个情况通常是被Windows的防火墙给拦截了,我们关闭防火墙后再进行尝试即可
- 关闭防火墙按照下图进行操作,传输完成后,千万不要忘记将防火墙重新打开
方法二 Linux主机更新
使用tftpboot命令更新
准备工作
- PC主机一台(我这里使用的是Ubuntu)
- VisionFive2 主机
- USB转串口模块,要带杜邦线,用于连接VisionFive2 主机
- 网线一根,要和PC主机在同一局域网下
主机端设置
- 安装tftp
sudo apt-get update sudo apt-get install tftp-hpa tftpd-hpa sudo apt-get install xinetd
- 创建文件夹用来存放文件
mkdir /home/ubuntu/tftpboot chmod 777 /home/ubuntu/tftpboot
- 新建文件/etc/xinetd.d/tftp
如果没有/etc/xinetd.d 目录的话自行创建, 然后在里面输入如下内容:
server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/ubuntu/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
- 启动 tftp 服务
sudo service tftpd-hpa start TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/ubuntu/tftpboot" TFTP_ADDRESS=":69" TFTP_OPTIONS="-l -c -s"
TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。
- 重启 tftp 服务器
sudo service tftpd-hpa restart
- 将编译好/下载好的两个flash文件放入刚刚配置好的文件夹中
- 获取主机IP
ifconfig
VisionFive2 设置
- 通过USB转串口模块连接主机与 VisionFive2
- 连接网线,打开终端,接入电源
- 当终端显示在下图所示位置时,按下任意按键停止继续往下运行
- 输入以下命令进行初始配置
# 设备的IP地址,设置VisionFive2的地址,要和主机是一个网段的 setenv ipaddr 192.168.10.171 # Ubuntu主机的IP地址 setenv serverip 192.168.10.174
- ping一下主机看看能否成功通信
ping 192.168.10.174
- 初始化SPI flash
sf probe
- 获取SPL二进制文件并加载进flash中
tftpboot 0xa0000000 ${serverip}:u-boot-spl.bin.normal.out
sf update 0xa0000000 0x0 $filesize
- 获取U-Boot二进制文件并加载进flash中
tftpboot 0xa0000000 ${serverip}:visionfive2_fw_payload.img
sf update 0xa0000000 0x100000 $filesize
- flash到此就更新完成了,VisionFive2按下复位按键即可重新启动,VisionFive2 Lite需要重新进行上电
方法三 串口更新
如果觉得上述比较麻烦,可以使用串口传输使用xmodem协议所有的文件,但是速度比较慢,出错率较高
将串口连接到 VisionFive2
- VisionFive2 操作
- VisionFive2 Lite 操作
- 传输流程
传输文件 jh7110-recovery-20221205.bin ,按 0 然后回车传输文件 u-boot-spl.bin.normal.out ;按 2 然后回车传输文件visionfive2_fw_payload.img















