|
http://blog.csdn.net/rikeyone/article/details/514830184 B6 z( b/ z- w+ A0 M
+ ? u4 w4 u9 h8 W+ U9 e可以把第二阶段引导分为多级引导: 3 M+ i/ w# a6 {5 {; k
比如分为如下所示的三级引导过程:
& @, t) V5 ^+ m' U8 }- h(1) firstMBRC # i2 K, [3 E4 v- }
第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。 ; c* T5 E8 h" O( E6 @" v
(2) secondMBRC(uboot-spl) 6 I; \: v* t9 C, q1 A
第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。 ) x7 W' ~3 e* {: t9 K. J
(3) mainMBRC(uboot) 8 p, M9 l! ^- H0 d$ a0 _
第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。
$ E1 S3 T2 h, Q% {' j所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|