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

    文章

    561

    浏览量

    24664
  • u-boot
    +关注

    关注

    0

    文章

    120

    浏览量

    38180
  • Boot
    +关注

    关注

    0

    文章

    149

    浏览量

    35746
  • bit
    bit
    +关注

    关注

    0

    文章

    47

    浏览量

    31965
收藏 人收藏

    评论

    相关推荐

    U-boot的基本介绍

    从本文开始,将陆续推送“手把手教你移植U-boot”系列文章,目标是由浅入深地讲解U-boot的工作流程、原理、配置方法和移植方法,手把手教你完成U-boot的移植工作,默认硬件开发平台为ARM,操作系统为Linux。
    发表于 07-14 16:52 2715次阅读
    <b class='flag-5'>U-boot</b>的基本介绍

    U-boot的执行流程

    本文主要讲述了U-boot的执行流程。
    发表于 07-14 16:58 650次阅读
    <b class='flag-5'>U-boot</b>的执行流程

    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 2053次阅读

    u-boot简介

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

    详解U-Boot引导内核分析

    bootm命令是用来引导经过U-Boot的工具mkimage打包后的kernel image的。U-Boot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件
    的头像 发表于 04-13 15:22 5216次阅读
    详解<b class='flag-5'>U-Boot</b>引导内核分析

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

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

    fireflyAIO-3399C主板U-Boot介绍

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

    fireflyAIO-3288C主板U-Boot介绍

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

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

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

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

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

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

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式有启动加载模式和下载模式。
    的头像 发表于 12-24 10:00 1599次阅读
    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>架构浅析

    Linux U-Boot开发指南

    介绍 U-Boot 的编译打包、基本配置、常用命令的使用、基本调试方法等, 为 U-BOOT 的移植及应用开发提供了基础。
    的头像 发表于 03-06 10:28 1246次阅读
    Linux <b class='flag-5'>U-Boot</b>开发指南