ARM如何从SD卡启动?

Vro*_*del 0 boot arm bootloader system-on-chip

关于来自串行闪存设备的现代系统的启动概念,我有点迷失.在裸机上编程了大量简单的微控制器,从8位PIC到32位Power架构(总是通过重新编程正常的总线可寻址闪存),我想知道现代SoC如何从串行设备启动.我没有在网上找到太多,因为每个系统似乎都依赖于SD卡编程工具和辅助引导程序的组合,这两者都很少得到关注.

mar*_*rko 5

'how'是一个基于掩码PROM的主引导加载程序,它被烘焙到SoC中.除了初始化SD卡接口以及可能具有非常保守的时序的某些SDRAM之外,它不需要做太多工作(尽管有些设备在此时使用嵌入式SRAM).

然后它枚举卡接口,从它找到的第一张卡中读取FAT,并从那里将辅助引导加载程序复制到SRAM或SDRAM中并执行它.

通常存在一些限制,例如辅助引导加载程序是卡上的第一个文件,并且分配的锁是连续的.

然后,许多系统在此时加载另一个引导加载程序,这是引导操作系统的引导加载程序.