本文分析以NanoPC-T2平台为主。NanoPC-T2使用的是三星的S5P4418为主CPU。
系统上电时,S5P4418 会将位于 0x3400_0000 上的 Internal ROM 代码映射到 0x0000_0000 上进行执行。该代码将 SD 卡上从 0x0000_0200 开始的数据复制到内部 RAM 中,目标位置为 0xFFFF_0000,数据大小为 16KB。复制完成后,指令就会跳转到 0xFFFF_0200 继续执行,该代码会初始化 CPU的一些设备,包括时钟、DRAM 等,然后再将 SD 卡上第 64 号扇区开始的数据(uboot)复制到 DRAM 上,目标地址为 0x42C0_0000。复制完毕后再跳转到 0x42C0_0000 上继续执行。此时上电启动完成。