Chinaunix首页 | 论坛 | 博客
  • 博客访问: 35426
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-15 12:29
个人简介

底层从业人员

文章分类

全部博文(3)

文章存档

2016年(2)

2015年(1)

我的朋友
最近访客

分类: LINUX

2016-02-03 23:26:43

 作者在芯片公司做了一年的启动,也是收获颇多,这里要非常感谢一位很牛叉的前辈,给了我无数的帮助.
  芯片的启动流程一般是BROM---->SPL----->BOOTLOADER------>KERNEL,现在有了armv8,多了一级,变成了BROM---->SPL----->ARM-TRUST-FRIMWORK----->TBOOTLOADER------>KERNEL.
    系统上电复位后执行BROM的代码,ram在芯片内部,一般几十k,brom除了初始化体系结构相关的内容,就是按照约定的协议去try 存储介质,这里要说明的是BROM是一个存储介质,类似于单片机里面的ROM,里面固化了一段程序,一般包含nand,emmc,usb的驱动和一些功能性的程序.功能性的程序主要就是从存储介质里面try程序,try出来校验,如果校验通过,就读到sram里面运行,注意这个时候内存还没有初始化,为什么内存还没有初始化,有两个原因,意识内存初始化需要参数配置,不同的内存需要的参数不一样,而是内存初始化的代码不是很小,不放在brom里面更加灵活,易于调试和改动,当spl被加载运行的时候,spil就会去初始化内存或者再加载一级spl,为什么这儿多级,有点晚了,下次再补上,总之,就是一级加载一级,最终初始化pmu,串口,ddr,时钟,设置好频率加载uboot,最终加载kernel.
阅读(2550) | 评论(0) | 转发(0) |
0

上一篇:IC 频率电压表

下一篇:没有了

给主人留下些什么吧!~~