|
http://blog.csdn.net/rikeyone/article/details/514830183 E5 v' s% [, r( j, l% M5 B+ R
: e3 J! V3 Q$ x1 e- t( m可以把第二阶段引导分为多级引导: " R9 D, R1 z, n2 h# i
比如分为如下所示的三级引导过程:
/ o5 e8 ^; M3 I' p/ j. T7 O(1) firstMBRC % Q6 v0 w, B) X7 _9 b) `. p
第一级引导程序需要符合BROM引导所需要的格式,会调用BROM中的驱动函数把secondMBRC拷贝到shareRAM中校验,并跳转执行,这个都是独立代码,一般使用汇编来做。 , A2 {- l( |5 ]& R# @4 H# i
(2) secondMBRC(uboot-spl)
3 o+ d' X/ p8 A) n- z+ a: w第二级引导程序的功能是调用BROM中的驱动函数把mainMBRC拷贝到DDR 中校验,并跳转执行。第二阶段可以使用uboot中的spl来实现,也可以由自己独立代码实现。
V( g/ X5 d( Z' b O(3) mainMBRC(uboot) ) r8 f+ }: Q/ _
第三级是主要的引导程序,前面的两级引导都是为了加载mainMBRC,它的主要功能是显示启动logo,加载kernel、dtb、rootfs文件系统,并且启动kernel。一般使用uboot来做。 ( u8 W) I; y( }8 ]
所以在boot分区,我们要烧写入这三部分的引导代码,mbrc、uboot-spl、uboot。 |
|