|
|
http://blog.csdn.net/rikeyone/article/details/514830184 V& j& y% y4 m; F8 B0 j- \; Q
/ I' o' U5 b1 a* `3 P7 \2 Q
可以把第二阶段引导分为多级引导:
- E# H# f, t% M) W& r比如分为如下所示的三级引导过程:
! b% P" ~, G3 X& P4 W(1) firstMBRC ' P/ t& m! [; V3 G
第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。 4 g: L1 J9 o% P9 O, r+ n1 g
(2) secondMBRC(uboot-spl)
) R2 Y. ^# B e& m' M第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。
8 g5 z7 p. w1 y6 s(3) mainMBRC(uboot)
2 r, I( l3 ~* Y: C6 X第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。
6 n$ E! u6 o2 E7 h+ _4 O9 d5 a所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|