一、 bootloader 简介
AM335x 的 bootloader 一共有三级引导,第一级 bootloader 是在 AM3359 的内部 ROM 程序,第二级和第三
级 bootloader 是基于 u-boot 程序。第二级 bootloader 是 SPL(Second Program Loader), SPL 主要对中断、堆
栈、DRAM 等初始化,文件大小小于 110KB,可以运行在 CPU 的内部 RAM。第三级 bootloader 是 u-boot.img,
这一级 bootloader 初始化了以太网、时钟等设备,文件大小大于 200KB,无法运行在内部 RAM,需要运
行在 DRAM 中。
编译 u-boot 后,会生成三个 u-boot-spl.bin、 MLO、 u-boot.img 镜像。 u-boot-spl.bin 和 MLO 都是第二级
bootloader,不同在于 u-boot-spl.bin 用于串口启动时通过串口烧写下载到 DRAM 中并直接在 DRAM 运行,
而 MLO 是用于烧到 NandFlash 中,以便于可以从 NandFlash 启动。
二、FSBL First Stage Boot Loader(FSBL),主要完成以下几项工作:
1. 初始化单板,包括DDR控制器、PLL、时钟、MIO及部分外设的控制器寄存器配置;
2. 将bit文件下载到FPGA内;
3. 把u-boot.elf以及cpu1上运行的elf文件拷贝到内存中的指定位置。