iMX6ULL启动流程

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

我移植的板子是讯为的TERMINATOR_V1.1开发板,参考板为官方 i.MX6ULL EVK开发板。

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

1. Boot ROM

我们知道ARM的启动地址是0地址,查看手册可知iMX6ULL的0地址是Boot ROM区域,Boot ROM区域的程序是上电运行的第一个程序即BL1。但是DDR的地址是在0x80000000处,我们的程序是存储在SD卡或EMMC等设备上,Boot ROM可根据我们的启动配置选择从不同的存储介质上加载并启动程序。


Boot ROM可以根据BOOT_MODE[1:0]两个选择启动模式,00生产的时候可能会用到,01串行下载模式调试uboot非常有用,10内部Boot模式可选择从不同的介质启动。

在internal boot模式下可以通过配置BOOT_CFG1[7:4]这四个值选择不同的介质启动,选择了不通的介质还需要配置其他的值配置不同的参数,这里不一一介绍下面以EMMC为例简要说明。

比如使用EMMC还有一些重要的参数需要选择,比如需要选择eSDHC1、eSDHC2那个接口,在我们的板子上这两个分别对应SD卡和EMMC。

到这里Boot ROM就可以根据配置去加载我们的uboot运行,Boot ROM把uboot加载到什么地址去运行,这是我们接下来要考虑的问题。

2. IVT和DCD

IVT全称镜像向量表(Image Vector Table),IVT包括程序镜像入口点、指向设备配置数据(DCD)的指针和ROM在引导过程中使用的其他指针。Boot ROM定位IVT在启动设备一个固定的地址,不同启动设备地址不同如下表。

IVT头的结构如下图,uboot在编译的时候会把IVT加在uboot的前面,这部分可以在uboot的tools目录下找到这个生成工具的源码。

DCD全称是设备配置数据(Device Configuration Data),Boot ROM可以根据这部分数据对设备做简单的配置,在uboot板级文件夹中的imximage.cfg文件中可以进行配置。

3. 启动流程

通过上述的介绍我们知道了iMX6ULL的启动过程,首先是Boot ROM根据配置(一般是引脚配置)选择启动设备,根据IVT加载启动uboot,然后uboot引导启动linux kernel,最后linux启动挂载根文件系统。

  1. Boot ROM加载并启动uboot
  2. uboot引导并启动linux kernel
  3. 根文件系统启动

知道了启动的过程就清楚我们每个阶段的目的和要做什么,对我们之后的移植有帮助,便于分析问题。

4. 总结

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

iMX6ULL启动流程相关推荐

  1. 3_IMX6ULL启动流程

    第三章 IMX6ULL启动流程 3.1 IMX6ULL启动方式 3.1.1 芯片手册讲解 ​ IMX6ULL芯片内部有一个boot ROM,上电后boot ROM上的程序就会运行.它会根据BOOT_M ...

  2. IMX6ULL学习笔记(四) —— uboot 启动流程

    IMX6ULL 学习笔记 version : v1.0 「2023.4.27」 author: Y.Z.T. 摘要: 随记, 记录 I.MX6ULL 系列 SOC 的uboot 启动流程 ⭐️ 目录 ...

  3. 万事开头难 - 介绍IMX6ULL启动方式

    不同开发板,启动方式不一样,今天我们来介绍imx6ull开发板的启动方式,这非常重要.若不了解清楚启动方式,后面的所有开发工作便无从谈起. 本文摘自100ask_imx6ull 开发板 配套学习手册- ...

  4. U-BOOT启动流程【03】

    前言 第一次学u-boot启动流程的时候我也是一头雾水,当然啦看一遍留个大概印象就好! 要想都学透的话也要花费很大的时间精力 本系列blog分三次写.本节讲最后一讲 在虚拟机中我的Vcode比较卡,所 ...

  5. 【正点原子Linux连载】第三十二章 U-Boot启动流程详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  6. 韦东山 IMX6ULL和正点原子_万事开头难 - 介绍IMX6ULL启动方式

    不同开发板,启动方式不一样,今天我们来介绍imx6ull开发板的启动方式,这非常重要.若不了解清楚启动方式,后面的所有开发工作便无从谈起. 本文摘自100ask_imx6ull 开发板 配套学习手册- ...

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

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

  8. Centos 6启动流程详解

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

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

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

最新文章

  1. 一篇价值百万的文章:我为什么在22岁辞去年薪150万的工作?
  2. 一举拿下高可用与分布式协调系统设计!
  3. php mysql模糊查询数组,php – 使用数组的MySQL查询
  4. UVA 10519 !! Really Strange !!
  5. 【数据库】PLSQL Developer出现ORA-12541TNS no listener错误解决方法
  6. JSF 2.2: HTML5 Support
  7. 早上起来CSDN的PC端主页积分变成了0
  8. mysql的每隔1分钟定时_深入研究MySQL(四)、备份与恢复
  9. PPC丢失后,手机信息如何保护?(C#)
  10. 老罗锤子手机公布会,我感到深深地愧疚
  11. WPF的prism框架
  12. windows下解压tar.gz文件
  13. froala富文本编辑器的使用
  14. 【Bzoj2242】计算器
  15. 手把手教你用python实现批量给图加水印
  16. 我失业了,公司与我解除劳动合同关系
  17. Excel打开时提示“因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。”最快的解决办法
  18. 这款pubMed文献爬虫下载器,妥妥的科研利器
  19. 分布式服务管理框架-Zookeeper客户端zkCli.sh使用详解
  20. 华三无线设备系列 (瘦AP转胖AP的配置方法)

热门文章

  1. 【企业为什么要进行数字化转型】之数字时代新模式
  2. kafka HW机制的作用
  3. GUET第五组2021——随机森林
  4. Vue知识点总结(一)
  5. django项目之官网需求分析实现
  6. 华为天才少年火了!刚毕业就拿201万年薪,全球仅4人!又是这个学校的
  7. 汽车重点转向驾驶员监控系统
  8. 程序媛的2013总结以及2014展望
  9. 中国叶酒市场趋势报告、技术动态创新及市场预测
  10. Java解决杨辉三角问题(这里提供了两种方法)