1. 启动方式确认读System Boot系统配置原理图启动模式有多种SD0 SD1 SD2不同配置确定其启动模式NC表示断路原理图得SD0 SD1 SD2101则启动方式为SD/MMC其中SD302. 确定启动端口有三个SD/MMC接口System configuration by function表格中确定端口需要确定VID1[3]和SD3SD30 VID1[3]测得0故端口0启动从SD0启动将SD卡已有镜像uboot代码插入SD0secureCRT中上电查看成功启动未插入SD卡时可能从SD/MMC1或2中启动3. 确定启动顺序查阅的启动顺序由Next TryUSE_FSNext PortPort SEL1和Port SEL0决定对应到VID1[0]VID1[2]VID1[4]Port SEL为上述的端口选择00结合原理图最终可得顺序为SD0SD2USB4. 启动过程SD①从iRAM中执行三星固化的代码初始化SD接口并将对应的存储设备中的user boot code搬移到iRAM中②跳转到user bootcode执行搬移uboot代码到内存上bl2③跳转到uboot代码执行其中以下部分为统一编制内存图硬件映射到对应地址的内存图。其中internal SAMiRAM和internal ROMiROM对应到结构框图中的64kb RAM和20kb ROM。internal ROM只读存储器中固化了一段程序将SD接口初始化提供从sd卡搬移数据到user bootcode下图为SD卡或Emmc的存储设备用户启动代码放在该位置不超过56kbuboot过程 iROM中固化BL0代码第0阶段的启动代码该代码搬移BL1代码到iRAM上跳转到BL1执行其代码会搬移BL2到内存上其中BL1和BL2打包为ubootpak.binuboot启动后开始搬移内核。5. Bootloader启动引导程序uboot针对不同架构或不同操作系统bootloader分为多种其中支持多架构多操作系统的是uboot。bootloader大多分两阶段①汇编实现完成依赖于cpu体系结构的初始化调用下一阶段②c实现完成体系结构之外的功能在芯片rom中固化有搬移bootloader一般是uboot的代码搬移到内存。超过56k需要分阶段搬移分多次搬到内存。6. 内核传参