注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

liuyue18301的个人主页

追逐梦想 光辉岁月

 
 
 

日志

 
 

DM6446启动过程  

2009-10-28 11:36:03|  分类: linux驱动 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

DM6446启动过程

1. RBL阶段:

   系统复位后,保存在片内ROM的RBL程序开始运行,RBL程序根据BTSEL[0-3]管脚的电位来判断相应的启动方式,如果是EMIFA启动方式,RBL程序便从外接flash的第一个扇区读取UBL的数据到内部RAM中,并掉转到UBL代码运行。

2. UBL阶段:

   UBL阶段主要完成系统时钟、DDR频率的初始化,准备好加载u-boot镜像的环境。然后加载u-boot代码到DDR中,并跳转到u-boot代码中运行。

3. u-boot阶段:

  (1)U-boot代码中首先设置最基本的系统硬件环境,包括系统PLL及DDR2的初始化、PSC的配置及使能UART0、AEMIF等硬件模块。

  (2)配置系统的内存(通过ATAG_ MEM块和mem=)NAND Flash和DDR2。

  (3)在flash中加载内核到指定的存储地址,并在flash中加载RAM Disk或通过NFS加载文件系统。

  (4)初始化传递到内核的引导参数(EMAC地址,串口,控制台,视频格式等)

  (5)获得ARM Linux机类型值(DVEVM为#901)。

  (6)设置kernel tagged list。

  (7)用初始值设置ARM的寄存器。

  (8)调用内核。

4. Linux内核启动阶段:

  (1)Linux内核从U-boot中得到参数并初始化相关硬件。

  (2)内核中的head.s代码开始运行,对压缩的内核进行解压。

  (3)start_kernel()运行。对内核中的MMU等进行初始化。

  (4)Linux的第一个进程init()运行,该进程根据系统中的配置文件初始化系统。

  (5)shell启动,用户开始登陆系统。

  评论这张
 
阅读(1331)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018