|
|
http://blog.csdn.net/rikeyone/article/details/514830182 C* ^: S3 I* V, g5 l1 Z) x. l
; ]/ Z9 r5 g0 G( L7 `8 G9 O1 H可以把第二阶段引导分为多级引导: 3 K1 o* _/ H4 @; [* d
比如分为如下所示的三级引导过程: 9 z5 D$ t+ T7 b( R
(1) firstMBRC
; I, o8 ]+ O, S9 w: |第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。 + F1 k7 }# @3 \ D$ n" k( q
(2) secondMBRC(uboot-spl) 5 e3 h: j" a+ ], }, P: f2 ^) h
第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。 / C6 V; O& {9 u
(3) mainMBRC(uboot) ! q9 Z& N2 j6 l" v
第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。 ! E) j% g' P! x0 A: k( }
所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|