打印
[i.MX]

关于IMX6启动时Uboot在哪里运行的困惑?

[复制链接]
7856|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaohu1218|  楼主 | 2015-1-19 18:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在研究IMX6Q的启动流程,BootLoader 只有Uboot,那CPU上电后把Uboot加载至哪里运行。
我的理解是上电后CPU执行固化的ROM程序,根据配置选择从哪里(比如SD卡)读取Uboot代码,将Uboot代码加载至1M的L2缓存。
之后在L2中运行Uboot,执行各种外设的初始化,比如DDR等。

但是又看到有人说是先读4K至片上RAM,然后根据flash_header 中的IVT(image vector table)结构体确定Uboot大小,初始化外设,再把Uboot Copy到DDR执行。


还是想请教大神,IMX6到底是怎么加载的Uboot?最关键的是DDR初始化在哪里执行的?
谢谢了!!!

相关帖子

沙发
彩虹超新星| | 2015-1-19 22:57 | 只看该作者
您好!你这个问题我略有涉猎过,关于IMX6的启动流程,你理解的前半部分没错,CPU一上电首先执行rom中固化程序,从配置选择中确定Uboot的获取设备,即确定启动设备,然后从启动设备(比如SD卡)中读取头几K程序(长度不同的设备不同)到片上RAM,然后从这几K程序的IVT中获取uBoot的程序信息(程序入口点、程序长度等),而确定这些信息后,CPU就会自动将uBoot复制到你自己定义的地址位置,注意,是你自己定义的地址位置,这要根据你程序设定,如果要将程序放在SDRAM运行,则将程序的运行地址定义在SDRAM的地址范围内。至于你说的1M的L2缓存,在ARM平台中是没有地址的,因此,代码无法加载到缓存运行。这是我个人见解,如果有错,请纠正!!!

使用特权

评论回复
板凳
zhaohu1218|  楼主 | 2015-1-20 10:51 | 只看该作者
彩虹超新星 发表于 2015-1-19 22:57
您好!你这个问题我略有涉猎过,关于IMX6的启动流程,你理解的前半部分没错,CPU一上电首先执行rom中固化程 ...

谢谢你!

使用特权

评论回复
地板
mini1986| | 2015-4-16 14:23 | 只看该作者
flash_header中就有对ddr3初始化的信息,可以详细看看,之前驱动三星的ddr时看过,具体启动过程还没有研究......

使用特权

评论回复
5
JackWellem| | 2016-1-19 09:48 | 只看该作者
彩虹超新星 发表于 2015-1-19 22:57
您好!你这个问题我略有涉猎过,关于IMX6的启动流程,你理解的前半部分没错,CPU一上电首先执行rom中固化程 ...

请问下在复制代码时的复制速度能否优化

使用特权

评论回复
6
彩虹超新星| | 2016-1-25 21:56 | 只看该作者
复制速度是由处理器预设好的,我估计是无法优化的!

使用特权

评论回复
7
彩虹超新星| | 2016-1-25 21:57 | 只看该作者
JackWellem 发表于 2016-1-19 09:48
请问下在复制代码时的复制速度能否优化


复制速度是由处理器预设好的,我估计是无法优化的!

使用特权

评论回复
8
彩虹超新星| | 2016-1-25 22:00 | 只看该作者
JackWellem 发表于 2016-1-19 09:48
请问下在复制代码时的复制速度能否优化

另外说下,复制速度同你讲u-boot复制到的位置有关,比如说你要讲u-boot放置到DDR,那就跟你DDR的写入频率有关了!

使用特权

评论回复
9
JackWellem| | 2016-1-27 15:38 | 只看该作者
彩虹超新星 发表于 2016-1-25 22:00
另外说下,复制速度同你讲u-boot复制到的位置有关,比如说你要讲u-boot放置到DDR,那就跟你DDR的写入频率 ...

此复制速度没办法优化,因为是复制速度是固化在ROM代码中的

使用特权

评论回复
10
kyzf829| | 2016-4-8 22:09 | 只看该作者
关注下,学学下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

26

帖子

1

粉丝