Exynos4412自制BL1

1. 自制BL1 参考Android_Exynos4412_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf,Exynos4412会自动把BL加载到0x0202_1400运行。所以BL1的入口地址需要设置为0x0202_1400,这样才能保证位置相关码可以正常执行。 Exynos4412内部的BL0会对BL1进行校验,BL1的头部为16字节的校验码,这个校验码是根据头部之后,其余的(8k-16)字节的数据计算出来的,工具源码可以参考mkbl1。对于编译生成的文件不足8k的情况,要将其用0填充到8k。当然,这里是以非安全启动方式来说明的。 编写源码时,要在对面中预留16字节的占位符,比如:...

Exynos4412自制BL2

1. 自制BL2 在官方提供的BL1或自制的BL1基础上,可以自制BL2。如果是使用U-Boot,编译时生成u-booot-spl.bin也是制作BL2的原材料。 如果是自制的BL1,BL2可以根据BL1随心定制。如果是在官方提供的BL1基础上进行开发,BL2要求为16k,其中最后2k使用0填充。可执行文件的大下不能超过(14k-4)字节,其中14k的最后4个字节是存储校验值的。相较于BL1的校验值,BL2的校验简单的多,只是把前(14k-4)的内容按字节进行累加即可。 这样生成的BL2在Exynos4412和Exynos 4412 Prime上是都可以使用的。当然,这里要求是非安全启动方式。 1.1. mkbl2源码 网上有C语...