itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)

我的itop4412开发板已经买了两年多了,工作太忙,很少利用起来,放着觉得挺浪费的,虽然工作中用不上,但心里有种冲动,一定要用起来,一定要走这个方向,嵌入式!之前也看完了驱动编程的教程,现在回过头来慢慢消化吧。


1.Exynos4412复位后是从soc的iROM的代码开始执行

内部的iROM有64K,iRAM有256K,内存映射如下:

itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)

iROM代码的主要工作就是为ARM 代码的执行提供基本的环境,关闭看门狗、关闭MMU、关闭cache、设置时钟分频器、设置PLL,然后读取OM引脚状态来决定启动模式:

itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)

2.iROM代码从外部下载BL1程序,并校验其完整性

iROM代码从SD/MMC,eMMC4.3,eMMC4.4,NAND下载程序,校验完整性。关于数据正确性,对于NAND FLASH,4412有1~16 bit的纠错能力,而eMMC和SDMMC自带纠错控制器,可以保证读写的正确性。BL1是SAMSUNG提供的二进制文件,没有源码。

3.OM启动模式分析
查看底板、核心板sch原理图 :
itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)
发现什么:OM2=X    OM5=OM3=Y  OM0=1  OM6=0  OM1=0  OM4=0,OM[5:1] 就是Y0YX0,然后打开pcb图:
itop4412 uboot 学习详细记录(一丶Exynos4412 的启动)
发现什么:pin 5 6 7 8都VDD1.8  , pin1为XOM2  ,pin2为XOM3 ,因此往板边上拨为1,往板内方向拨为0。
如果需要从TF卡启动,需要设置为00010,那么OM2=1,OM3=0,即pin1 = 1,pin2 = 0;
如果需要从eMMC启动,需要设置为10100,那么OM2=0,OM3=1,即pin1 = 0,pin2 = 1;


4.从4412开始都不需要JTAG接口?
4412的iROM支持TF卡,TF卡是移动设备。JTAG在老的设备中是用来第一次少些uboot的。