|
http://blog.csdn.net/rikeyone/article/details/51483018
( d q, n" H: i' I+ F9 V8 k$ Y! n. }4 P: ]
可以把第二阶段引导分为多级引导: ! E) x, D/ l/ Z
比如分为如下所示的三级引导过程: # {+ t# w# K# H* O& x& k
(1) firstMBRC
W, N# `. g, A第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。
1 L9 @, [2 [4 E2 C! u* W, I(2) secondMBRC(uboot-spl) : l' i2 i; N6 h/ ]7 p- a
第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。 8 c" q. [3 J8 N7 I9 ?+ n
(3) mainMBRC(uboot) 1 W% }1 E% g- y
第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。
3 e8 `: i& s- A: m所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|