一、硬件结构

  S5PV210存储部分的硬件结构大致为:内置SRAM + 外接大容量DRAM + 外接大容量Nand(S5PV210采用的是iNand)。

  S5PV210内置了一块96kb的SRAM(即iRAM),同时还内置了一块64kb的NorFlash(即iROM)。

二、启动过程

  1、当CPU上电之后,开始从iROM中内置的代码BL0执行,这段代码执行的功能是禁止看门狗、初始化内部缓存、初始化堆栈和变量以及初始化系统时钟等,接着CPU会通过OM Pin判断从哪种方式启动(包括:UART/USB、SDMMC、NorFlash、OneNand、Nand、eSSD等方式),然后从相应的存储器中去读取第一部分启动代码BL1到内部的SRAM中。

  2、从iRAM中去运行刚读取的BL1代码,BL1代码的功能是初始化NandFlash,然后将BL2读取到IRAM中去运行。

  3、从iRAM运行BL2,BL2代码的功能是初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。

三、常用的USB启动和SD卡启动区别

  在USB启动方式时,内部BL0读取到BL1时是不做校验的,直接从BL1内部0xd0020010地址处开始执行,所以USB启动的镜像中是不关心头信息(从0xd0020000地址开始的16个字节)中的具体内容的。

  当选择从SD卡启动时,BL0首先会读取SD卡得到完整的镜像,来计算一个校验与checksum比对,如果对应则紧接着执行BL1,不对应则会转入第二种启动方式,如果本次启动即为第二种启动方式,则启动失败。