u-boot学习笔记一:u-boot 2019启动流程分析

news/2025/2/21 8:07:43/

一目了然

  • 1 简述
  • 2 启动流程分析
    • 2.1 Boot ROM
    • 2.2 启动追踪

1 简述

u-boot学习笔记是基于NXP i.MX8系列芯片中imx8mq芯片学习记录的心得体会,各位大神在阅读过程中如发现有错误的地方,还请在评论区中指出,小生在此先拜谢了。

学习过程中使用的开发板是米尔科技开发的MYD-JX8MQ6-8E2D-130-E套装系列,软件工程是米尔科技提供的官方Yocto工程,此工程是米尔科技为适配自家设计的开发板而基于NXP官方软件驱动包修改的。有关软件代码包的获取可参考米尔科技官方提供的《MYD-JX8MX Linux开发手册》,可至米尔科技提供的官方链接处下载:http://d.myirtech.com/MYD-JX8MX/,本文是基于git commit 5de575f69729f48fc8f3a1b1c0c7337c9b678e1a (HEAD -> imx_v2018.03_4.14.98_2.0.0_ga-2gddr-MT3D1024M)对应的代码进行学习分析的。

2 启动流程分析

2.1 Boot ROM

在imx8mq芯片内部设计有128KB(查看NXP官方芯片数据手册发现实际大于128KB)的Boot ROM区域,此区域用于存储NXP官方提供的固化代码,一般不允许用户对此区域做操作。NXP官方提供的固化代码用于帮助芯片通过检测熔丝位的连接状态,判断芯片的启动方式,如下载烧录程序或者启动程序,从SD卡或者eMMC启动。所使用的米尔开发套件的熔丝位设计如下图所示。
Alt

2.2 启动追踪

当需要启动程序时,Boot ROM区域固化代码会负责找到程序的入口,加载运行程序。在此需要注意两个lds文件,即u-boot-spl.lds和u-boot.lds文件。在“include/configs/imx8mq_evk.h”文件中指定了使用“arch/arm/cpu/armv8/u-boot-spl.lds”文件,u-boot.lds文件路径为“arch/arm/cpu/armv8/u-boot.lds”。其中u-boot-spl.lds指定了SPL程序的入口,SPL程序也是Boot ROM首先加载启动的程序,其主要工作为负责板子的简单初始化和eMMC初始化、引导运行BL31、BL32和u-boot等程序。对于NXP iMX8M系列芯片,SPL与BL31等程序的启动流程如下图所示。
Alt
SPL运行完成时会加载运行BL31程序,即上图中ARM Trusted Firmware(ATF),在ATF运行过程中会检测BL32程序是否存在,若存在则加载运行BL32程序,即启动上图中OP-TEE OS,当OP-TEE OS加载运行起来之后,ATF会继续加载运行u-boot程序。在u-boot.lds指定了u-boot程序的入口,根据u-boot.lds文件的设置,可追寻u-boot程序的函数调用关系。追踪源码包并绘制从SPL程序启动到u-boot程序正常运行的函数调用图如下图所示。
Alt
与上图关系对应的每个函数的说明在文件IMX8 Uboot 2019启动流程分析.pdf中有详细描述。图片查看感觉不方便的开发者可直接下载思维导图文件:IMX8 Uboot 2019启动流程分析.xmind,也可直接私信或评论区联系博主获取。


http://www.ppmy.cn/news/867369.html

相关文章

imx8qm wifi sdio调试

imx8qm平台用的是有WIFI和BT功能的Murata 芯片,型号是LBEE6U41LQ,WIFI采用sdio接口,由WL_EN控制上电;BT是UART1接口,由BT_EN控制上电; 一.硬件原理 二.引脚信息 /* bt enable*/SC_P_USDHC2_VSELECT /* uar…

Matlab锂离子电池pi模型(附上完整源码+数据)

文章目录 介绍完整源码下载 介绍 锂离子电池是一种常见的可充电电池,广泛应用于移动设备、电动汽车和储能系统等领域。为了更好地理解和优化锂离子电池的性能,研究人员开发了各种数学模型来描述其动力学行为。其中,pi模型是一种常用的电化学…

SAP QM数据库表清单

QM 数据库表清单: 主数据 QMAT 检验类型 - 物料参数 QMHU 检验批和处理单位项目间的 QM 链接 QMTB 检验方法记录 QMTT 检验方法文本 QPAC 检验选择集的目录代码 QPAM 检验选择集目录 QPMK 检验主特性 QPMT 检验主特性文本 QPMZ 分配表检验方法/…

QM模块常用表

QM 数据库表清单: 主数据 QMAT 检验类型 - 物料参数 QMHU 检验批和处理单位项目间的 QM 链接 QMTB 检验方法记录 QMTT 检验方法文本 QPAC 检验选择集的目录代码 QPAM 检验选择集目录 QPMK 检验主特性 QPMT 检验主特性文本 QPMZ 分配表检验方法/主…

QM法化简C语言程序,QM基础教程

中文翻译教程首发CSDN,转载请标明出处:http://www.voidcn.com/article/p-qbuyghua-bpr.html NOTE:本中文教程相对官方原版教程,删减了Building Blinky on Windows/Linux 这章,读者可以参考我的另外一篇博文《使用QM的外部工具功能编译代码》中gcc的例子,其次增加了Add Free…

CSS---CSS面试题

目录 1.盒模型 2.offsetHeight /clientheight/scrollHeight 3.left与offsetLeft 4.对BFC规范的理解 5.解决元素浮动导致的父元素高度塌陷的问题 6.CSS样式的先级 7.隐藏页面元素 8.display: none 与 visibility: hidden 的区别 9.页面引入样式时,使用link与import有…

linux如何打开gz文件,gz文件扩展名,gz文件怎么打开?

.gz 文件类型:Gnu Zipped Archive 扩展名为.gz的文件是一个压缩文件。 文件说明:Archive file compressed by the standard GNU zip (gzip) compression algorithm; contains a compressed collection of one or more files; commonly used on Unix oper…

dwg文件怎么打开呢?

日常制图过程中,我们常常需要打开查阅大量CAD图纸。其中就有dwg文件,那么dwg文件怎么打开呢?有些时候会选择安装各种不同的CAD看图软件。小编今天给大家分享一个非常简单方便的方法。 1.先需要在电脑上面的浏览器搜索CAD,然后在下…