全志H3启动分析,移植主线UBOOT
参考资源
启动流程
因为使用的是外扩SD卡,因此主要参考了这部分内容;Bootable SD card
SD卡Layout如下:
start
sector
size
usage
0KB
0
8KB
未使用,主要用于存放分区表
8KB
16
32KB
Init SPL
40KB
80
-
U-Boot
SD卡的起始地址处放的是分区表MBR(占用512B)或者GPT(更多),为了保证SD卡还能用于其他目的,所以前8KB是不能用的;
8KB开始存放U-Boot-spl以及U-boot镜像;
后续未使用区域可以分成FAT分区 + 其他分区,FAT分区中存放linux kernel + DTB文件 + boot.scr,其他分区主要存放根文件系统,或者其他分区;
上边这些规定都是全志内部固化的流程,芯片上电后首先运行内部一段引导程序,然后按照一定的优先级去遍历emmc sd nand usb等看是否能引导程序,如果是SD/eMMC,则会在8KB的偏移处引导程序(uboot-spl),再引导uboot,uboot会从sd卡FAT分区内引导linux内核,解析boot.scr,获取bootcmd,再从其他分区加载根文件系统,至此结束。
编译链
使用linaro工具链即可