以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。