1、开发板已启动从0x0获取数据(内部64k的硬盘,里面含有三星固化的BL0段代码),将其读到a8软核中,进行运算,主要用于初始化时钟,96k的内部IRAM.并负责
指定启动设备(通常为外部硬盘),从指定的启动设备中拷贝BL1段代码(不超过16k)到I RAM中(96k),并从BL1代码的启示位置开始运行.
2、BL1段代码再从启动设备中取BL1段后面的代码BL2段代码,也将其拷贝到96k的IRAM中(BL1,BL2属于u-boot部分)。并从BL2的起始地址开始运行。
3、然后BL2段代码初始化外部内存以及其他的配置,并将硬盘启动设备中的内核,根文件系统加载到SDRAM中(512m)再到OS开始的起始位置开始运行,并挂载根文件系统。
注意OM(用于选择启动设备):
总共有六种启动方式:sd卡,nand ,one nand ,nor flash,sd mmc,uart/usb
启动设备由OM引脚来确定,启动设备有SSD,NAND,ONEnand NOrflash,sd mmc,uart,usb.
当第一级启动设备加载16kB的BL1 后,BL0对它进检验。如果不OK,则从第二级启动设备(仅限4位数据线的SD/MMC)加载16KB的BL1,BL0对它检验,如果还是不OK,则启UART串口模式,如果不OK(超时),则入USB模式.