为什么" MLO"启动步骤需要什么?

时间:2016-01-15 06:21:14

标签: linux

现在我正在研究Pandaboard的启动步骤。根据{{​​3}},他们有多个启动步骤(Boot rom> X-loader或SPL> U-boot> Linux内核)。实际上,我不明白为什么他们这样的步骤效率低下。我不能加载u-boot而不是使用名为" MLO"的文件什么" MLO"实际上呢?是否有任何重要原因,他们必须放置" MLO"而不是直接加载u-boot?

2 个答案:

答案 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,您会看到:

  1. BIOS启动
  2. 从磁盘或USB加载引导扇区;或者从网络中读取PXE引导记录
  3. Windows内核启动(你在&#34之前/期间看到的东西;启动画面")
  4. 最后," Windows"本身开始
  5. 所以它既没有效率也没有#34;也没有异常。

    PS: 此链接还具有引导加载顺序的良好描述:

    PPS: " MLO"代表" Mmc LOader"

答案 1 :(得分:1)

当电路板启动时,仍然需要在CPU开始使用SDRAM之前设置存储器管理单元(MMU)。 SoC有56KB的SRAM,可以在那时使用,但它对于u-boot来说太小了。额外的步骤是从SRAM运行的代码将加载并启动u-boot。