iMX8MM启动流程

  • 1. Boot ROM
  • 2. IVT和DCD
  • 3. 启动流程
  • 4. 总结

我移植的板子是讯为i.MX8MM开发板,参考板为官方 8MMINILPD4-EVK开发板。

  1. iMX8MM uboot2021.04 linux5.15.32移植
  2. iMX8MM启动流程
  3. iMX8MM u-boot2021.04移植
  4. iMX8MM linux5.15.32移植
  5. iMX8MM buildroot-2022.02.5构建根文件系统

1. Boot ROM

iMX8MM的Boot ROM与iMX6ULL相似,上电运行的第一个程序,作用是准备下一阶段的环境并且加载启动下一阶段的程序。这里不做过多的介绍,可以看本栏iMX6ULL的启动流程简单学习,也可以参考iMX8MM的参考手册深入学习。

2. IVT和DCD

IVT和DCD是镜像向量表(Image Vector Table)和设备配置数据(Device Configuration Data),这里不做介绍。可以看本栏iMX6ULL的启动流程简单学习,也可以参考iMX8MM的参考手册深入学习。

3. 启动流程

iMX8MM的启动流程和iMX6ULL的启动流程有略微的差别,官方在iMX8MM启动过程中使用了ARM可信固件(ARM Trusted firmware,ATF)。我们抛开ATF其他的作用不说,我们的目的是启动uboot进而启动linux内核。但是我们得知道官方提供的代码iMX8MM的启动过程,对我们之后的移植和调试有帮助。

ATF是ARM提供的一套软件架构供用户使用,用户可进行自由选择使用。这套软件架构的启动流程为BL1->BL2->BL31/32->BL33,BL1就是Boot ROM加载并启动BL2,BL2加载BL31、BL32和BL33并启动BL31和BL32,BL33就是uboot一般由BL31或BL32启动。这个启动过程并不是绝对的,我们所移植iMX8MM并不使用ATF的BL2和BL32,替代BL2功能的是uboot的SPL,不使用BL32。我们的启动流程为Bootrom->SPL->BL31->BL33(uboot)->Linux kernel,当然nxp也提供了另外一种启动方式可以自行了解。

4. 总结

简单了解iMX8MM的启动过程,对后面的移植和分析问题有帮助。本文仅供学习参考,如有问题欢迎指正。

iMX8MM启动流程相关推荐

  1. 源码分析-Activity的启动流程

    以android 6.0源码为参考,其他版本api会稍有不同 在Activity中,启动一个Activity的方法 @Override public void startActivity(Intent ...

  2. Centos 6启动流程详解

    author:JevonWei 版权声明:原创作品 Centos6 启动流程 POST开机自检 当按下电源键后,会启动ROM芯片中的CMOS程序检查CPU.内存等硬件设备是否正常运行,CMOS中的程序 ...

  3. 2014.4新版uboot启动流程分析

    原文 http://blog.csdn.net/skyflying2012/article/details/25804209 此处转载有稍作修改 最近开始接触uboot,现在需要将2014.4版本ub ...

  4. 解析并符号 读取dll_Spring IOC容器之XmlBeanFactory启动流程分析和源码解析

    一. 前言 Spring容器主要分为两类BeanFactory和ApplicationContext,后者是基于前者的功能扩展,也就是一个基础容器和一个高级容器的区别.本篇就以BeanFactory基 ...

  5. leveldb源码分析:Open启动流程

    leveldb概述 Leveldb 是一个持久化的KV存储系统,主要将大部分数据存储在磁盘上,在存储数据的过程中,根据记录的key值有序存储,当然使用者也可以自定义Key大小比较函数,一个leveld ...

  6. Nginx源码分析:启动流程

    nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> nginx简介 Nginx的作为服务端软件,表现的主要特点是更快.高扩展.高可靠性.低内存消 ...

  7. JVM启动流程和内存结构

    "Great haste makes great waste" JVM启动流程 JVM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自 ...

  8. mbr,gpt,开机启动流程.

    启动流程 SystemV 加载 BIOS 的硬件资讯与进行自我测试,并依据配置取得第一个可启动的装置: 读取并运行第一个启动装置内 MBR 的 boot Loader (亦即是 grub, spfdi ...

  9. Android手机启动流程与TEE OS

    2019独角兽企业重金招聘Python工程师标准>>> 转载:https://cloud.tencent.com/developer/article/1043659 一个移植了TEE ...

  10. 【拒绝一问就懵】之Activity的启动流程

    背景介绍 从事开发到了一定阶段,想要提高就必须搞明白系统的一些工作原理.为什么?因为只有明白了这些,你才能针对平台的特性写出优质的代码.当遇到棘手的问题时,你才能更快速的结合系统原理去寻找最优解决方案 ...

最新文章

  1. JSP简单练习-页面重定向
  2. python的应用论文_python 论文
  3. error: object MultivariateNormalDistribution is not a member of package
  4. Spring Boot 学习之,数据库三 ,事务
  5. 如何使用SQL Server Reporting Services将数据格式转换为有价值的数据集
  6. ASP.NET Core 使用Redis 存储Session 实现共享 Session
  7. fastboot下载大镜像报错 remote: data too large
  8. 雷电模拟器命令操作合集
  9. 数字逻辑EduCoder课设项目 厨房计时器系统设计 Logisim实现
  10. ORACLE ORA错误码大全 (备忘)
  11. 生产排程系统_APS生产排程系统应用-缩短产品生产周期
  12. Cisco Packet Tracer思科模拟器交换机的VTP技术
  13. android HDMI (一):HDMI基础篇
  14. MIUI V5八门神器不能用?一招教你搞定
  15. 偶然获得京东内推,四面之后成功拿下offer
  16. 新一代P2P网络电视PPlive试用
  17. NanoPC-T4|Android-Q HDMI驱动与显示
  18. C++程序设计(二)——课程管理系统/前篇
  19. 争对让望对思野葛对山栀注解_笠翁对韵四支第四段故事性理解与记忆之文人要改变志向去求得成功吗?...
  20. 数理统计仿真实验:大数定律、中心极限定理、矩估计与极大似然估计(含MATLAB代码)

热门文章

  1. 在LUA中使用异步IO的思考
  2. C#中手动引用COM组建的例子
  3. Uniapp 移动端调用摄像头扫描二维码或者条形码
  4. tmb100a linux,天猫魔盒Tmb100系列_LetvUi_YYF终极版
  5. bjui给出的一个标准应用的首页
  6. Tsai分享:资源分享(1)——视觉SLAM十四讲及视频
  7. linux qt程序向windows移植失败记.
  8. 带你学习《深入理解计算机系统》程序性能优化探讨(5)——高速缓存、存储器山与矩阵乘法优化
  9. 2019年,微信营销软件排行榜
  10. Rose软件安装教程