现在我正在研究Pandaboard的启动步骤。根据{{3}},他们有多个启动步骤(Boot rom> X-loader或SPL> U-boot> Linux内核)。实际上,我不明白为什么他们这样的步骤效率低下。我不能加载u-boot而不是使用名为" MLO"的文件什么" MLO"实际上呢?是否有任何重要原因,他们必须放置" MLO"而不是直接加载u-boot?
答案 0 :(得分:3)
来自eLinux.org:
http://elinux.org/Panda_How_to_MLO_%26_u-boot
第一阶段引导加载程序直接在电路板上启动。一世 不知道这个引导程序的名称(来自TI官方维基,它 叫做Boot Rom)。此引导加载程序初始化最少量的CPU 然后,板卡硬件,然后访问SD卡的第一个分区 (必须是FAT格式),并加载名为" MLO"和的文件 执行它。 " MLO"是第二阶段的引导加载程序。
第二阶段的引导加载程序显然可以是其中之一 X-loader或SPL。这个引导程序显然也只是读取第一个 SD卡的分区,并加载一个名为" u-boot.bin"和的文件 执行它。 " u型BOOT.BIN"是第三阶段的引导加载程序。
第三阶段引导加载程序是U-boot,它是一种流行的引导加载程序 适用于许多不同的嵌入式板和产品。这个引导程序有 许多不同的功能,包括交互式shell,变量, 能够访问SD卡并显示其内容等。会发生什么 接下来取决于您对Panda板的U-boot版本, 以及如何配置。在一个非常简单的配置中,U-Boot会 寻找文件" uImage"在第一个分区的根目录中 SD卡(再次,必须格式化为FAT分区),和 执行。这是Linux内核。 U-Boot通过内核a 命令行参数。取决于内核的配置方式 可以从U-Boot接受命令行,或使用已编译的命令行 在它建成时进入它。
这是一个" Panda Board事情",一般不一定适用于Linux。
但是,大多数所有系统都有某种类型的"多阶段"像上面那样启动。例如,启动运行Windows的PC,您会看到:
所以它既没有效率也没有#34;也没有异常。
PS: 此链接还具有引导加载顺序的良好描述:
PPS: " MLO"代表" Mmc LOader"
答案 1 :(得分:1)
当电路板启动时,仍然需要在CPU开始使用SDRAM之前设置存储器管理单元(MMU)。 SoC有56KB的SRAM,可以在那时使用,但它对于u-boot来说太小了。额外的步骤是从SRAM运行的代码将加载并启动u-boot。