更新Flash中的SPL和U-Boot
以下提供更新昉·星光 2
Flash中的SPL和U-Boot的两种方法:
注: 如需获取创建SPL和fw_payload
(U-Boot)文件的参考手册,请参阅《昉·星光 2单板计算机软件技术参考手册》中的“创建SPL文件”和“创建fw_payload文件”。
- 通过
tftpboot
命令更新SPL和U-Boot。 - 通过
flashcp
命令更新SPL和U-Boot。注: 方法2仅支持镜像版本为VF2_v2.5.0或高于该版本的镜像。
通过tftpboot
命令
通过tftpboot
命令更新SPL和U-Boot,请执行以下步骤:
- 部署TFTP服务器。以下是用于Ubuntu发行版上执行的示例命令:
sudo apt install tftpd-hpa
- 打开昉·星光 2,等待它进入U-Boot命令行界面。
- 执行以下命令设置环境变量:
setenv ipaddr 192.168.120.222;setenv serverip 192.168.120.99
- 使用ping命令,检查主机与昉·星光 2的连接情况。
- 初始化SPI flash:
sf probe
- 更新SPL二进制文件:
tftpboot 0xa0000000 ${serverip}:u-boot-spl.bin.normal.out sf update 0xa0000000 0x0 $filesize
- 更新U-Boot二进制文件:
tftpboot 0xa0000000 ${serverip}:visionfive2_fw_payload.img sf update 0xa0000000 0x100000 $filesize
通过flashcp
命令
通过
flashcp
命令更新SPL和U-Boot,请执行以下步骤:注: 方法2仅支持镜像版本为VF2_v2.5.0或高于该版本的镜像。
- 执行以下命令,安装
mtd-utils
安装包:apt install mtd-utils
- 通过SCP将最新的u-boot-spl.bin.normal.out和visionfive2_fw_payload.img文件移植到Debian系统上。
- 执行以下命令,查看MTD分区:
cat /proc/mtd
示例输出:
您可以看到QSPI Flash里的数据分区:
dev: size erasesize name mtd0: 00020000 00001000 "spl" mtd1: 00300000 00001000 "uboot" mtd2: 00100000 00001000 "data"
- 根据不同分区的内容,分别通过
flashcp
更新SPL和U-Boot:- 更新SPL的示例命令:
flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
- 更新U-Boot的示例命令:
flashcp -v visionfive2_fw_payload.img /dev/mtd1
示例命令和输出:
# flashcp -v u-boot-spl.bin.normal.out /dev/mtd0 Erasing blocks: 32/32 (100%) Writing data: 124k/124k (100%) Verifying data: 124k/124k (100%) # flashcp -v visionfive2_fw_payload.img /dev/mtd1 Erasing blocks: 682/682 (100%) Writing data: 2727k/2727k (100%) Verifying data: 2727k/2727k (100%)
- 更新SPL的示例命令:
- 重启系统,以使更新生效。