启动固件概述¶
SOM 初学者工具包使用两阶段启动过程。主引导固件在出厂时预安装在 QSPI 设备上。辅助引导设备是包含 Linux 内核和 Linux 根文件系统 (rootfs) 的 SD 卡。AMD 入门套件载卡硬件设计将 MPSoC 启动模式设置为 QSPI32。SOM 使用 QSPI 内容启动到
U-Boot,然后 U-Boot 切换到辅助启动设备。
在成功烧录镜像后就可以开始更新KV260的固件了KV260固件更新的方式分为两种,一种是使用使用 xmutil 启动固件更新,还有一种是启动KV260自带的映像恢复工具进行固件更新。我这里使用的是KV260自带的映像恢复工具进行更新。
如上图所示,通过以太网将 PC 连接到KV260。
1.将 PC 设置为与恢复工具
(192.168.0.XYZ) 位于同一子网上的静态 IP 地址,但不要设置为 192.168.0.111。
这里要注意的一点是不要选错网络设备了,一开始我一直在改以太网2的ip折腾了半天,结果发现自己搞错了orz,犯了低级错误,只要把板卡和主机连接的这个网络设备换成192.168.0.xxx就好。
2.打开设备电源时按住固件更新按钮
这里最好是在持续按着FWUEN按钮下,然后再按reset,这样就可以进入恢复应用程序了。
3.在 PC 上使用网络浏览器(例如
Chrome 或 Firefox)加载以太网恢复工具的
URL。
http://192.168.0.111
这里第三步在尝试的时候我用edge浏览器也是没有问题的,大家可以放心用。
4.使用 Web 浏览器中的以太网恢复工具
GUI 使用 PC 上文件系统中的文件更新 A 或 B 启动固件分区。以太网恢复工具界面如下图所示。
在最后一步中,其实有可能会烧录失败,在第三次的时候我才烧录成功。
然后启动后看一下目前的启动状态
sudo xmutil bootfw_status
深入理解一下的话
Kria SOM配置为从两个来源启动:QSPI和microSD。第一个引导顺序由位于 QSPI 中的固件完成,它还有两个映像:A 和 B。这些是固件(BOOT.BIN)被存储。必须设置希望系统使用的源(A 或 B)。
默认情况下会选择映像 A 作为用于启动序列的固件。KV260使用双源固件存储方法,因为它提供了故障安全的固件更新过程,此更新过程基本上允许在固件更新过程中犯错误。
另外一种运用xmutil更新固件的方法的话,我这里做一下简要描述。
首先就是从网站上下载下来boot.bin文件,然后将文件传输到开发板中,这一步实现其实可以有两种方法一种是通过ftp等方式去做还有就是将其放到网盘中然后用wget方式去实现,从网上去把boot.bin(BOOT-k26-starter-kit-20230516185703.bin)文件下载下来,可以下载到/home/petalinux下的任何目录,然后使用 xmutil 命令来更新固件。使用以下命令。
语法: sudo xmutil
bootfw_update -i <path-to-FW.BIN file>
例如sudo xmutil bootfw_update
-i ~/workspace/k26_update3.BIN
这里文件夹名字和bin的名字可能大家会不一样。
然后再查看一下当前固件的状态
sudo xmutil bootfw_status
随后再重启开发板,使用命令,或者直接按reset
sudo shutdown -r now
然后对其进行永久性更改,使用以下命令执行此操作。
sudo xmutil bootfw_update
-v
此命令必须在立即重新启动时运行,如果在不运行该命令的情况下再次重新启动,系统会恢复到之前的启动映像。运行该命令后,可以通过状态检查看到启动映像已经更新。
参考资料:
Kria SOM & Starter Kits - Xilinx Wiki - Confluence (atlassian.net)
启动固件概述 — 启动 SOM 固件 2022.1 文档 (xilinx.github.io)