如何在U-BOOT的boot.scr中加载bit文件-Xilinx-AMD社区-FPGA CPLD-ChipDebug

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

  转载自网络,原文链接如下 :

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

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

图片[1]-如何在U-BOOT的boot.scr中加载bit文件-Xilinx-AMD社区-FPGA CPLD-ChipDebug

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

图片[2]-如何在U-BOOT的boot.scr中加载bit文件-Xilinx-AMD社区-FPGA CPLD-ChipDebug

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

图片[3]-如何在U-BOOT的boot.scr中加载bit文件-Xilinx-AMD社区-FPGA CPLD-ChipDebug

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

1,首先,将原先/image/linux下生成的boot.scr复制一份,并命名为boot.mycmd。

2,然后,用文本工具打开boot.mycmd。删除一开始的乱码部分,这部分是FIT类型文件的验证头信息,用文本工具打开的话,就会显示成乱码,所以要先删除

图片[4]-如何在U-BOOT的boot.scr中加载bit文件-Xilinx-AMD社区-FPGA CPLD-ChipDebug

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

图片[5]-如何在U-BOOT的boot.scr中加载bit文件-Xilinx-AMD社区-FPGA CPLD-ChipDebug

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

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

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

图片[6]-如何在U-BOOT的boot.scr中加载bit文件-Xilinx-AMD社区-FPGA CPLD-ChipDebug

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

请登录后发表评论

    没有回复内容