|
|
http://blog.csdn.net/rikeyone/article/details/51483018, K r/ y9 V8 y5 \; H
: J+ Y$ g- B2 X/ s( S5 x J9 F
可以把第二阶段引导分为多级引导:
4 h$ o5 G: W3 m' ]比如分为如下所示的三级引导过程: ; x2 d: k3 g& \' W
(1) firstMBRC , c% g# b' g1 s! A1 |
第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。 $ H. s$ A4 F4 ~8 C6 B* | m
(2) secondMBRC(uboot-spl)
; T+ j5 {+ [, e6 t! C( x" N/ V第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。
/ d B+ T7 A) }% a(3) mainMBRC(uboot)
- a3 _ \, h9 l; ]/ G" J5 _第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。
E. [: _+ L8 ]7 W/ }) \) C2 ~所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|