在2020.1版本之后,u-boot階段會(huì)執(zhí)行boot.scr來加載后續(xù)的kernel和rootfs。但是在有些應(yīng)用情況下,對(duì)u-boot加載過程需要一定的定制化修改。例如,不是在FSBL階段加載bit文件,而是在u-boot階段加載bit文件。對(duì)于這類的定制化應(yīng)用,我們可以修改boot.scr來實(shí)現(xiàn)。
boot.scr是一個(gè)FIT類型的文件,但是可以用文本工具將其打開并查看其內(nèi)容。如下圖:
通常,boot.scr是在petalinux工程中自動(dòng)生成出來的。其相關(guān)原文件在petalinux 工程的/components/yocto/layers/meta-xilinx/meta-xilinx-core/recipes-bsp/u-boot/u-boot-zynq-scr路徑下。
在boot.scr文件中,你可以看到對(duì)于不同的boot mode都有相應(yīng)的加載和啟動(dòng)分支。
接下來,你就可以根據(jù)你的實(shí)際的應(yīng)用需求對(duì)其進(jìn)行修改。下面我會(huì)以zcu102 SD啟動(dòng)模式為例,讓U-boot在加載kernel和rootfs之前,自動(dòng)加載bit文件。
1. 首先,將原先/image/linux下生成的boot.scr復(fù)制一份,并命名為boot.mycmd。
2. 然后,用文本工具打開boot.mycmd。刪除一開始的亂碼部分,這部分是FIT類型文件的驗(yàn)證頭信息,用文本工具打開的話,就會(huì)顯示成亂碼,所以要先刪除
3. 接下來,在SD卡的加載分支里添加相應(yīng)的U-boot命令來實(shí)現(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上運(yùn)行,其結(jié)果如下
6. 加載完成,且DONE正常亮起。
-
文件
+關(guān)注
關(guān)注
1文章
579瀏覽量
25378 -
u-boot
+關(guān)注
關(guān)注
0文章
122瀏覽量
38847 -
Boot
+關(guān)注
關(guān)注
0文章
153瀏覽量
36769 -
bit
+關(guān)注
關(guān)注
0文章
48瀏覽量
32465
發(fā)布評(píng)論請(qǐng)先 登錄
U-boot的基本介紹

Porting U-Boot to the Control
u-boot的Makefile分析
u-boot簡(jiǎn)介
詳解U-Boot引導(dǎo)內(nèi)核分析

fireflyAIO-3399C主板U-Boot介紹
【u-boot】在stm32h7開發(fā)板體驗(yàn)u-boot

U-Boot架構(gòu)淺析

Linux U-Boot開發(fā)指南

評(píng)論