1. S3C6410 启动流程
1). 6410上电后,首先执行片内iROM的程序(BL0),初始化时钟和看门狗等外围器件。
2). 然后把flash中头4K(BL1)的内容加载到片内的SRAM中执行。
3). 在SRAM中执行的BL1,初始化主内存后,将BL2加载到主内存,然后跳转到主内存中执行。
4). 最后BL2来加载kernal和rootfs到主内存中。
总结:从上面的流程图可以看到,uboot被分成了BL1和BL2两个部分,6410在片内给了一块叫做垫脚石的SRAM让我们可以
执行我们的BL1,在BL1中我们可以对外部的内存芯片进行初始化并加载BL2来执行,因为外部内存芯片容量很大,因此我们
可以把uboot主要功能都放在BL2中来做,最后加载kernel和rootfs到内存中,以完成操作系统的启动。
实际在6410的uboot,BL1和BL2是一个程序,在uboot程序开头会判断自己是SRAM中运行还是在主内存中运行,如果是
在SRAM中则执行头4K的即BL1的内容,如果是在主内存中运行则会直接跳转到4K以后即BL2中运行。
2. S5PV210 启动流程
1. BL0的作用和6410一样
2. BL1被加载到片内的SRAM中执行。
3. S5PV210的片内SRAM被增大到了96KB,从图上看出,三星希望BL1把BL2也加载到片内的SRAM中执行。
4. 最后BL2来加载kernel和rootfs到外部内存中执行,来完成操作系统的启动。
总结:从上面的流程来看,唯一不同的是,BL1和BL2都被加载到了片内的 SRAM中执行。但是片内的SRAM只有96K,
虽然比6410要大,但是还是有局限性,所以uboot并没有按照210官方手册方式进行处理,依然是和6410一样将BL2加载
到了外部内存中执行。