|
http://blog.csdn.net/rikeyone/article/details/51483018
2 R& f4 h* Q5 Q1 {9 x0 M# S8 n0 U: b3 d* T& U$ E7 I
可以把第二阶段引导分为多级引导:
. u; H$ N2 |; h# J比如分为如下所示的三级引导过程: % O3 l+ V0 k: m, M' q
(1) firstMBRC
' Q$ l" H( `; f, o/ z# e& k第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。
, ]; X q/ y0 D8 A(2) secondMBRC(uboot-spl) 3 q! ~) M- P, ^) u3 w+ n
第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。
a" C8 S: X$ C3 [; R: \# c(3) mainMBRC(uboot)
- L* g- O) @! X3 D. Q第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。
1 g3 N9 _/ n$ Y# y" J所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|