uboot
This is my study note of Uboot.
u-boot 功能
uboot被称为universal bootlooder,所以是通用的bootloder,uboot是bootloder的一种,不能说bootloder就是uboot,u-boot一般有如下两种方式,一种flash跟CPU封装在一起,另一种flash通过EMMC等控制器拓展到外部。
1 | 以上两种方式中,Flash从低址到高址分别存储Uboot->内核->文件系统,uboot主要的任务是启动内核: |
XIP和非XIP
CPU可以直接访问的就是XIP格式,如下:
不可访问到的就是非XIP格式,例如EMMC控制器访问SD卡启动uboot,此时SD卡就是非XIP格式,但是CPU可以直接访问的EMMC控制器为XIP格式,如下:
使用SD卡等非XIP设备启动uboot时,CPU一般都要访问BROM寄存器,通过执行BROM内部的代码将uboot拷贝到内存中。
BROM如何选择启动设备
- 通过bootpin选择某个设备启动设备
- 通过bootpin,选择某个顺序(优先级)启动(全志、瑞芯微)
1
BROM会初始化DDR寄存器,随后将非XIP设备内部的Uboot整个复制到DDR寄存器中,在每个非XIP设备的uboot前都存有DDR寄存器的参数,DDR寄存器通过这些参数进行初始化配置(强BROM),也有部分BROM是将非XIP设备Uboot内部一段代码放到RAM等中执行,通过这部分代码进行后续的所有操作,并将自身uboot再复制到外部DDR寄存器中(弱BROM)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 风声向寂!
评论
ValineDisqus