|
|
http://blog.csdn.net/rikeyone/article/details/51483018/ ^$ {0 c0 M, t( R; n) L' g+ y
3 `6 l% s% X8 k8 P, m( b
可以把第二阶段引导分为多级引导: 3 g8 Y/ m5 z5 u8 w! ^
比如分为如下所示的三级引导过程: % [4 t0 L, k$ ]
(1) firstMBRC ' L- @% A; m- H* @) u
第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。 , u E) O8 n! s" x3 O
(2) secondMBRC(uboot-spl) , P0 c. E0 b- A ]# Y, j$ h
第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。
% ~. X; T3 c% n4 J/ a8 U(3) mainMBRC(uboot) 6 r K" X3 v3 l* ^# h: J
第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。 ) B1 x1 |* I/ P# J( A, t
所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|