NOR是强制性的,因为它允许随机访问,NAND不允许
注:这种方案已不常用,因为需要NOR FLASH
Case2:CPU内具有引导代码
CPU在ROM中具有集成的引导代码。如:AT91 CPU上的BootROM,OMAP上的“ ROM代码”,等等。具体细节取决于CPU体系结构
此引导代码能够将第一级引导加载程序从存储设备加载到内部SRAM(因为DRAM尚未初始化)。 存储设备通常可以是:MMC,NAND,SPI闪存,UART(通过串行线传输数据)等等。
第一阶段的引导程序: 由于硬件限制,尺寸有限(SRAM比较贵), 由CPU供应商或社区项目提供
此第一阶段引导程序必须初始化DRAM和其他硬件设备,并将第二阶段的引导程序加载到RAM
因为本文专注嵌入式领域,故接下来将描述几种常见的嵌入式处理器的引导过程。
1.2.1 ARM Microchip AT91的引导
RomBoot:尝试从各种设备中找到有效的引导映像存储源,然后将其加载到SRAM中(DRAM还未初始化)。大小限制为4 KB,无法进行用户互动标准启动模式。
AT91Bootstrap:从SRAM运行。初始化DRAM,NAND或SPI控制器,并将辅助引导程序加载到RAM并启动它,此阶段没有用户互动的可能。
U-Boot:从RAM运行。初始化其他一些硬件设备(网络,USB等)。从存储或加载内核映像网络到RAM并启动它。此阶段Shell命令可以使用。
Linux内核:从RAM运行。完全接管系统(引导加载程序bootloader不再存在)。
1.2.2 ARM TI OMAP2+/AM33xx的引导
ROM代码:尝试从各种方法中找到有效的引导映像存储源,并将其加载到SRAM或RAM中(RAM可以是由ROM代码通过配置标头初始化)。尺寸限制为《64 KB。没有用户互动的可能。