在2020.1版本之后,u-boot階段會執(zhí)行boot.scr來加載后續(xù)的kernel和rootfs。但是在有些應(yīng)用情況下,對u-boot加載過程需要一定的定制化修改。例如,不是在FSBL階段加載bit文件,而是在u-boot階段加載bit文件。對于這類的定制化應(yīng)用,我們可以修改boot.scr來實現(xiàn)。
boot.scr是一個FIT類型的文件,但是可以用文本工具將其打開并查看其內(nèi)容。如下圖:

通常,boot.scr是在petalinux工程中自動生成出來的。其相關(guān)原文件在petalinux 工程的/components/yocto/layers/meta-xilinx/meta-xilinx-core/recipes-bsp/u-boot/u-boot-zynq-scr路徑下。

在boot.scr文件中,你可以看到對于不同的boot mode都有相應(yīng)的加載和啟動分支。

接下來,你就可以根據(jù)你的實際的應(yīng)用需求對其進行修改。下面我會以zcu102 SD啟動模式為例,讓U-boot在加載kernel和rootfs之前,自動加載bit文件。
1. 首先,將原先/image/linux下生成的boot.scr復(fù)制一份,并命名為boot.mycmd。
2. 然后,用文本工具打開boot.mycmd。刪除一開始的亂碼部分,這部分是FIT類型文件的驗證頭信息,用文本工具打開的話,就會顯示成亂碼,所以要先刪除

3. 接下來,在SD卡的加載分支里添加相應(yīng)的U-boot命令來實現(xiàn)bit文件的加載,并保存。

4. 執(zhí)行如下mkimage命令來生成新的boot.scr文件
mkimage -c none -A arm -T script -d boot.mycmd boot.scr
5. 最后,將生成的boot.scr和BOOT.bin拷貝到SD卡中,放入zcu102上運行,其結(jié)果如下

6. 加載完成,且DONE正常亮起。
-
文件
+關(guān)注
關(guān)注
1文章
593瀏覽量
26034 -
u-boot
+關(guān)注
關(guān)注
0文章
131瀏覽量
39713 -
Boot
+關(guān)注
關(guān)注
0文章
154瀏覽量
37702 -
bit
+關(guān)注
關(guān)注
0文章
48瀏覽量
32822
發(fā)布評論請先 登錄
U-boot的基本介紹
Porting U-Boot to the Control
u-boot的Makefile分析
u-boot簡介
詳解U-Boot引導(dǎo)內(nèi)核分析
fireflyAIO-3399C主板U-Boot介紹
【u-boot】在stm32h7開發(fā)板體驗u-boot
U-Boot架構(gòu)淺析
解析Rockchip平臺U-Boot核心文件:boot_rkimg.c到底做了什么?
如何在U-BOOT的boot.scr中加載bit文件
評論