|
http://blog.csdn.net/rikeyone/article/details/51483018
& z9 u, I5 I1 p+ @, G* T1 H- w6 O; R. j6 Q, V
可以把第二阶段引导分为多级引导: 7 T5 C; s: A* `
比如分为如下所示的三级引导过程:
) L0 A- i3 d: L3 g: Y: \(1) firstMBRC
& [0 m1 [* L% R: ~第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。
( \- C& g# D; \ N9 k; U" ^6 V(2) secondMBRC(uboot-spl) / s# j) [$ U. i0 M H& G! l
第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。 ; J' i% M6 H9 _
(3) mainMBRC(uboot) # J2 i( @8 ~, X. _& ^; h
第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。 2 E1 p2 T; r/ i: W- e8 I' U$ ^% }
所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|