S5PV210系列(裸机一) S5PV210的启动过程详解

1、常用外部存储器

NorFlash:特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质。

NandFlash:特点是容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。分为SLC和MLC两种工艺
SLC:容量不大,价格高,时序简单,访问简单,稳定性高
MLC:容量可以做很大,价格低,容易出现坏块和位翻转,需要做ECC校验,访问比较复杂

eMMC/iNand/moviNand:同属于eMMC,iNAND是SanDisk出产的eMMC,moviNand是三星出产的eMMC

oneNand:三星出的Nand标准

SD/TF/MMC卡:同属于SD卡系列

eSSD:属于SSD固态硬盘的嵌入式MLC的NandFlash

SATA/IDE/SCSI硬盘:机械访问,速度慢

2、阅读数据手册

S5PV210_UM_REV1.1

S5PV210_iROM_ApplicationNote_Preliminary_20091126

3、总结启动过程

启动流程:

S5PV210系列(裸机一) S5PV210的启动过程详解_第1张图片

BL1 / BL2 : It can be variable size copied from boot device to internal SRAM area. BL1 max. size is 16KB. BL2 max. size is 80KB.
# 从引导设备复制到内部存储器区域的程序大小是可变的。
# BL1 最大是 16KB, BL2 最大是 80KB

1 iROM can do initial boot up : initialize system clock, device specific controller and booting device. 
# iROM 可以执行启动的初始化: 初始化系统时钟,设备特定的控制器和启动设备。

2 iROM boot codes can load boot-loader to SRAM. The boot-loader is called BL1.then iROM verify integrity of BL1 in case of secure boot mode.
# iROM引导代码 可以加载 BL1 到 SRAM 中,如果是在安全启动模式下,iROM 会较检 BL1 的完整性


3 BL1 will be executed: BL1 will load remained boot loader which is called BL2 on the SRAM then BL1 verify integrity of BL2 in case of secure boot mode.
# BL1 将会执行, BL1 会调用在 SRAM 中的 BL2,如果是在安全启动模式下,BL1 会较检 BL2 的完整性

4 BL2 will be executed : BL2 initialize DRAM controller then load OS data to SDRAM. 
# BL2 将会执行,BL2 初始化 DRAM 控制器,然后加载 OS 到 SDRAM

5 Finally, jump to start address of OS. That will make good environment to use system.
# 最后,跳到 OS 代码的其实位置并且为使用系统创造良好的环境
The booting sequence in internal ROM is as follows:
# iROM 的执行顺序如下
1. Disable the watchdog timer.
2. Initialize the instruction cache controller.
3. Initialize the stack and heap region.
4. Check secure key.
5. Set Clock divider, lock time, PLL (MPS value), and source clock.
6. Check OM pin and load the first boot loader (The size of boot loader depends on S/W) from specific device (block number 0) to iRAM.
7. If secure booting is successful, execute integrity check
8. If integrity check passes, then jump to the first boot loader in iRAM (0xD002_0010)
# 关看门狗
# 初始化指令cache
# 初始化栈
# 初始化堆
# 初始化块设备复制函数device copy function
# 设置SoC时钟系统
# 复制BL1到内部IRAM(16KB)
# 检查BL1的校验和
# 跳转到BL1去执行
The booting sequence in internal SRAM is as follows:
# 内部 SRAM 的执行序列如下:
1. Load the second boot loader from boot device to iRAM.
2. If secure booting is successful, execute integrity check.
3. If integrity check passes, then jump to the second boot loader in iRAM (The jumping address depends on user's software)
4. If integrity check fails, then stop the first boot loader.
5. The second boot loader Initializes the DRAM controller.
6. Load the OS image from specific device (block number 1) to DRAM.
7. Jump to OS code in DRAM (0x2000_0000 or 0x4000_0000)

# 从启动设备加载 BL2 到 iRAM
# 如果安全启动成功,执行完整性检查。
# 如果完整性检查通过,会跳转到位于 iRAM 中的 BL2 (跳地址取决于用户的程序)
# 如果完整性检查失败, BL1 会停止执行
# BL2 初始化DRAM控制器。
# 从特定的设备(块编号1)加载操作系统映像到 DRAM。
# 跳转 DRAM 中的操作系统代码(0 x2000_0000或0 x4000_0000)

第一次启动流程

S5PV210系列(裸机一) S5PV210的启动过程详解_第2张图片

第一次启动失败后,第二次启动流程

S5PV210系列(裸机一) S5PV210的启动过程详解_第3张图片

你可能感兴趣的:(S5PV210,裸机)