|
http://blog.csdn.net/rikeyone/article/details/51483018. Q6 x8 o, n- W
* H, D* B, L: r/ R* Y6 Z
可以把第二阶段引导分为多级引导:
5 G( e: u% v; b比如分为如下所示的三级引导过程: z+ g/ ?4 }! q" S3 `/ z$ H: _; i
(1) firstMBRC , I- F2 r( H6 Q* Q$ r4 Y3 Z1 i
第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。 6 T" e3 K6 [4 F2 W" F
(2) secondMBRC(uboot-spl) ) b* G/ x* w3 k- e4 Y& E: X" f
第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。
" }, L* G0 a- m5 Q( P(3) mainMBRC(uboot) 1 Y' W v8 V! W+ U! I5 a
第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。 ' |; N1 Q3 ]; \3 `
所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|