一、前置知识
irom
妈的,百度就没人说清楚这是啥,都说用来启动,我一个程序员也不知道这是什么鬼,姑且当rom理解吧iram
个人理解是集成DRAM的东西 DRAM比sram快
icache
由于指令从内存读取速度的限制,所以在cpu与内存之间放了一类高速的,容量较小的寄存器,以缓存的方式来提高指令读取速度。
二、流程介绍
s5pv210启动的三个阶段BL0 BL1 BL2
BL0 是指S5PV210的iROM中固化的启动代码
关闭看门狗;
初始化 icache;
初始化堆栈;
顺便贴一个irom启动流程图
BL1 是指在iRAM自动从外扩存储器(nand/sd/usb)中拷贝的uboot.bin二进制文件的头最大16K代码
初始化RAM
设置时钟;
判断启动设备(nand/sd/onenand 等),检查校验和,然后从启动设备中拷贝前 16K 的代码 到 IRAM 的 0xD0020000 处;
若是安全模式启动,则进行完整性检查;
跳转到 IRAM 的 0xD0020010 地址上继续运行;
BL2 是指在代码重定向后在内存中执行的uboot的完整代码
第一步 启动其他外设
第二部 引导系统启动
三者之间的关系:(Interal ROM固化代码)BL0将BL1(bootloader的前16KB--BL1)加载到iRAM;
BL1然后在iRAM中运行将BL2(剩下的bootloader)加载到SDRAM;BL2加载内核,
把OS在SDRAM中运行起来,最终OS是运行在SDRAM(内存)中的。
这对于以后学习uboot很有帮助