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

电子说

1.2w人已加入

描述

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

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

Boot

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

Boot

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

Boot

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

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

Boot

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

Boot

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

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

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

Boot

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

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分