|
|
http://blog.csdn.net/rikeyone/article/details/51483018$ w; p4 T# a/ v, i4 ^; {9 X( R
+ {+ H7 z1 E& p# V可以把第二阶段引导分为多级引导:
9 I2 A3 b8 _0 R& u比如分为如下所示的三级引导过程:
; l% h" A* a/ ~0 O+ s(1) firstMBRC
/ |/ o, V0 p0 a6 H$ j/ E第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。
* s" L& Y# M& E# m(2) secondMBRC(uboot-spl)
+ }# ], w6 F+ [6 ~, O第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。
* B, G+ b E, `% n1 B) g1 q(3) mainMBRC(uboot)
0 R6 o: `3 J6 W1 Q2 I第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。 # q3 E+ b$ H3 Q' V
所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|