|
http://blog.csdn.net/rikeyone/article/details/51483018
/ C+ `! v/ B# V, K. C- _3 O" _
; I2 W. f0 r! ?8 T8 a: t可以把第二阶段引导分为多级引导:
. X: ~5 [. _$ h. w& k0 E比如分为如下所示的三级引导过程: ( ?, N, N$ f! V# I& x4 I
(1) firstMBRC
" N1 P% k! {1 o# u9 P第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。
2 U* r' l5 F! @) c, {# p- M B" E(2) secondMBRC(uboot-spl)
! K5 M$ O& T6 k$ y第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。 : Y9 f. F( c$ }0 |
(3) mainMBRC(uboot)
% n" ^+ s. E4 q2 B! b! o. @9 Y; n第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。
3 v) ?. ] d) M所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|