0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-12 15:43 次阅读

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

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

100571760-306233-tu1.png

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

100571760-306234-tu2.png

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

100571760-306235-tu3.png

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

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

100571760-306236-tu4.png

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

100571760-306237-tu5.png

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

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

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

100571760-306238-tu6.png

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

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

    关注

    1

    文章

    540

    浏览量

    24402
  • u-boot
    +关注

    关注

    0

    文章

    116

    浏览量

    38044
  • Boot
    +关注

    关注

    0

    文章

    142

    浏览量

    35248
  • bit
    bit
    +关注

    关注

    0

    文章

    47

    浏览量

    31853
收藏 人收藏

    评论

    相关推荐

    关于U-boot的问题?

    U-Boot是不是下载好的文件然后在ubuntu里去编译?U-Boot的编译和移植的区别和关系是什么?U-Boot的移植=烧写?
    发表于 05-12 08:22

    【OK210试用体验】u-boot篇 -- u-boot初体验(续)

    u-boot版本切记是要相对较新的,早时候的u-boot是不支持S5PV210相关型号的,当然可以体验一下基于其他型号CPU的u-boot编译。 将下载好后的u-boot放到喜好的自
    发表于 08-22 01:44

    u-boot详解

    U-Boot主要目录结构 - board 目标板相关文件,主要包含SDRAM、FLASH驱动; - common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测; - cpu 与处理器相关
    发表于 07-04 04:56

    怎么对u-boot进行进行反汇编?

    知道是在makefile中加入ARM-Linux-objdump,但是很多目录下都有这个makefile文件,可不可以只反汇编start.S,如果可以是修改那个路径下的makefile?还有可不可对u-boot的全部源码进行反汇
    发表于 08-20 02:13

    Porting U-Boot to the Control

    In this paper, the way of porting U-Boot to Control Computer Based MPC8349 will beintroduced
    发表于 01-25 15:45 13次下载

    u-boot的Makefile分析

    u-boot的Makefile分析 U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。 U-BOOT的下载
    发表于 05-17 09:16 1989次阅读

    u-boot简介

    U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT
    发表于 10-14 11:17 3276次阅读

    fireflyFace-RK3399主板U-Boot模式启动

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式有启动加载模式和下载模式。
    的头像 发表于 12-04 08:52 4161次阅读
    fireflyFace-RK3399主板<b class='flag-5'>U-Boot</b>模式启动

    fireflyAIO-3399C主板U-Boot介绍

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式有启动加载模式和下载模式。
    的头像 发表于 12-04 10:31 1202次阅读

    fireflyAIO-3288C主板U-Boot介绍

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式有启动加载模式和下载模式。
    的头像 发表于 12-16 13:52 939次阅读
    fireflyAIO-3288C主板<b class='flag-5'>U-Boot</b>介绍

    fireflyAIO-3288J主板U-Boot使用简介

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式有启动加载模式和下载模式。
    的头像 发表于 12-20 10:06 1275次阅读
    fireflyAIO-3288J主板<b class='flag-5'>U-Boot</b>使用简介

    微雪电子AIO-3128C主板U-Boot使用介绍

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式有启动加载模式和下载模式。
    的头像 发表于 12-23 16:08 1114次阅读
    微雪电子AIO-3128C主板<b class='flag-5'>U-Boot</b>使用介绍

    fireflyAIO-3399J主板U-Boot使用介绍

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式有启动加载模式和下载模式。
    的头像 发表于 12-24 10:00 1314次阅读
    fireflyAIO-3399J主板<b class='flag-5'>U-Boot</b>使用介绍

    u-boot】在stm32h7开发板体验u-boot

    u-boot在2017版本中加入了对Cortex-M系列内核的支持,正好手上有个h7的开发板,所以拿来试试,学习一下uboot。一 u-boot版本选择其实开始选用最早支持的版本比较好,因为新版本
    发表于 12-01 15:06 11次下载
    【<b class='flag-5'>u-boot</b>】在stm32h7开发板体验<b class='flag-5'>u-boot</b>

    U-Boot架构浅析

    导读:嵌入式Linux系统搭建,bootloader是必不可少的一环,而U-Boot已成嵌入式Linux事实标准。所以较为深入的分析U-Boot的设计,对于更...
    发表于 02-07 11:56 7次下载
    <b class='flag-5'>U-Boot</b>架构浅析