基于iTop-4412的U-Boot 2017移植[0]:Exynos4412基础
参考资料:
+ Exynos 4412的启动过程分析
+ 基于tiny4412的u-boot移植
Exynos4412 SoC基础
- Exynos4412的地址空间
iROM:这段地址空间对应Exynos4412内部固化的一段程序,Exynos4412启动的第一条指令就存放在这里。
iRAM:这段地址空间对应的是Exynos4412内部的一个存储器,这段存储器的特点是上电就可以用,不用初始化。
DMC0:这段地址空间就是核心板上的DDR3对应的存储空间,上电后需要初始化DRAM控制器才能使用。
- Exynos4412的启动过程
由图中数字顺序得知:
- iROM
- BL1
- OS
首先从iROM运行,然后根据OM的值判断从哪个存储设备(Nand\SD/MMC\eMMC\USB OTG)加载BL1到iRAM;
其次,BL1再根据OM的值判断从哪个存储设备加载OS到DRAM中;
最后,运行OS代码。
注意: iROM固化在SoC内部,BL1是Samsung提供的镜像文件E4412_N.bl1.bin,OS在这里可以认为是BL2,这部分是u-boot代码中编译生成的SPL,BL2是由BL1加载到iRAM中运行的。最后,BL2再根据OM值,从sdcard中将u-boot代码拷贝到DRAM中。
我们接下来要进行移植的U-Boot启动过程为iROM->BL1(E4412_N.bl1.bin)->