以IMX6ULL为例子

裸机启动

在编写led裸机程序链接生成bin文件。还要加上3k的头文件SPL程序。

内部BootROM启动一级程序,判断一个寄存器里面的值(外部flash用哪个)。将SPL程序读到内部ram中的0x09000000,执行SPL完成ddr初始化。再引导led程序到ddr中所链接的地址,从ddr链接地址位置开始执行。完成点灯。

uboot

uboot编译出来时就有uboot.bin和uboot.imx,其中uboot.imx有3k的SPL程序。

内部BootROM启动一级程序,判断一个寄存器里面的值(外部flash用哪个)。将SPL程序读到内部ram中的0x09000000,执行SPL完成ddr初始化。再将uboot加载到ddr中所链接的地址,跳转到ddr链接地址位置开始执行。

uboot启动linux

uboot启动完成之后,会自己执行一些命令将linux镜像解压等工作,随后放入ddr。跳转到ddr中linux的位置,启动linux。