如何在U-BOOT的boot.scr中加载bit文件

作者:Terry Ni,来源:AMD Xilinx开发者社区

在2020.1版本之后,u-boot阶段会执行boot.scr来加载后续的kernel和rootfs。但是在有些应用情况下,对u-boot加载过程需要一定的定制化修改。例如,不是在FSBL阶段加载bit文件,而是在u-boot阶段加载bit文件。对于这类的定制化应用,我们可以修改boot.scr来实现。

boot.scr是一个FIT类型的文件,但是可以用文本工具将其打开并查看其内容。如下图:

通常,boot.scr是在petalinux工程中自动生成出来的。其相关原文件在petalinux 工程的/components/yocto/layers/meta-xilinx/meta-xilinx-core/recipes-bsp/u-boot/u-boot-zynq-scr路径下。

在boot.scr文件中,你可以看到对于不同的boot mode都有相应的加载和启动分支。

接下来,你就可以根据你的实际的应用需求对其进行修改。下面我会以zcu102 SD启动模式为例,让U-boot在加载kernel和rootfs之前,自动加载bit文件。

1. 首先,将原先/image/linux下生成的boot.scr复制一份,并命名为boot.mycmd。
2. 然后,用文本工具打开boot.mycmd。删除一开始的乱码部分,这部分是FIT类型文件的验证头信息,用文本工具打开的话,就会显示成乱码,所以要先删除

3. 接下来,在SD卡的加载分支里添加相应的U-boot命令来实现bit文件的加载,并保存。

4. 执行如下mkimage命令来生成新的boot.scr文件

mkimage -c none -A arm -T script -d boot.mycmd boot.scr

5. 最后,将生成的boot.scr和BOOT.bin拷贝到SD卡中,放入zcu102上运行,其结果如下

6. 加载完成,且DONE正常亮起。

最新文章

最新文章