学习Exynos4412启动流程前,我们先看看三星4412芯片启动框图:
我们从图中可以看到4412内部有64K的ROM和256K SRAM,在ROM中已经固化好了一段代码,当硬件上电后首先运行的就是这段代码,这段代码三星起名为BLO(iROM BOOT 代码)。其作用是初始化SRAM,并将eMMC中256k代码拷贝到SRAM中,进行初始化DRAM。在图中我们很清楚看到这一个运行过程。
1、在芯片的iROM中已经固化一个代码,当硬件上电后就读取OM电平从而确定硬件设置的启动模式:0110为从eMMC启动,1000位SD卡启动;
2、把已经设置启动存储单元代码复制到内部RAM中并跳转到RAM运行;
3、运行OS;
一、iROM
iROM把启动设备上特定位置处的程序读入片内存 (iRAM) ,并执行它。这个程序被称为 BL1(Bootloader 1) ,BL1 是三星公司提供的,无源码。
BL1又把启动设备上另一个特定位置处的程序读入片内内存,并执行它。这个被称为