参考文件:Sitara AM335x Bootload的流程分析
am335x上电后从Rom code开始运行,Rom code 地址0x4000_0000。
Rom code 是固化在芯片的一个引导程序,具体参见《AM335x and AMIC110 Sitara. Processors Technical Reference Manual》第26章。
Rom code运行后,根据sysboot引进配置,去遍历启动列表,寻找启动Image。启动列表主要分为存储器件和外设。从存储器件启动,启动Image需要有Image标头,标头含有入口地址和Image大小。
sysboot配置,SYSBOOT[4:0] = 10011,那么启动顺序为 NAND->NANDI2C->MMMC0->UART0。
上电后,串口输出8个“C”,即是Rom code程序跳转到UART启动了。
AM335X中内部RAM的大小为128KB,其中最后18KB由ROM代码使用。此外,启动时1 KB(0x402f0000 - 0x402f0400)无法访问,所以限制了U-Boot的大小为109KB以内。无法再109KB完成U-Boot的所有功能,那就将u-boot分成2部分。
MLO文件――初始化所需的引导设备(NAND,MMC,I2C等)。
U-Boot.img――初始化所有其他设备。U-boot.img在u-boot.bin基础上添加头信息后,可用被MLO引导。
原文:http://blog.51cto.com/2423357/2148005