greatjzy/tiny4412
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Frendly ARM Tiny4412 ARM A9 Exynos 4412 启动过程 首先,iROM里面固化了一段代码,这段代码提供的arm codes的基本运行环境,然后从启动设备(SD/MMC....)下载BL1,检查完BL1的完整性之后,执行BL1,BL1做了一些初始化工作,然后从启动设备下载BL2,检查完整性,将BL2拷贝到iRAM中执行,BL2下载OS,启动OS. BL1是由厂商提供的,Exynos 4412的BL1自然由三星提供但好像不是开源的,只有bin文件,自己写的裸板程序(或者Bootloader)作为BL2的时候,要计算checksum,放在文件最后这样才可以工作,uboot代码里面有怎么处理BL2程序,然后BL1 Bl2分别烧写到启动设备哪个块的代码,可以参考. First, iROM provides the basic environments for executing the arm codes. Second, the secure BL1 is downloaded from the booting devices: SD/MMC, eMMC4.3, eMMC4.4, and NAND. Next step, iROM checks the integrity of the downloaded BL1. BL1 code copies the BL2 image to internal RAM. BL1 code checks the integrity of the BL2 image. BL1 code should be independent of external platform configuration. The role of BL1 code is to do stepping stone for BL2 code which is generated by set makers. BL2 code copies the OS image(BL3) to external DRAM area and checks the integrity of OS code. BL2 code configures the operating frequency and DRAM initialization. If there is necessary to configure additional setting to system, the set makers can configure it in the BL2 code. BL2 code is independent of BL1 code. But the address of BL2 signature is fixed in BL1 and the size of BL2 image cannot exceed the BL1 secure context area.