u-boot.bin和u-boot.img有何不同?

13

我刚编译了U-Boot引导程序,我在u-boot程序目录中看到了一些文件名,它们是:

u-boot.bin
u-boot.img
u-boot.lds
u-boot.srec

我对扩展名为.img.bin的文件感兴趣。它们之间有什么不同吗? u-boot.img适用于SD卡,而u-boot.bin适用于闪存吗?

1个回答

24

u-boot.bin 是已编译的 U-Boot 引导程序的二进制文件。

u-boot.img 包含 u-boot.bin,还包括一个额外的头部,供引导 ROM 使用来确定如何以及在何处加载和执行 U-Boot。

这些文件的部署方式可能取决于您的设备性质、其启动 ROM 以及文件的加载位置。

启动 ROM 通常由 SoC/CPU 供应商提供。现在,许多启动 ROM 都能够加载 u-boot.img,读取文件头部,将 u-boot.bin 加载到内存中,并最终执行它。一些启动 ROM 足够复杂,可以直接加载 u-boot.bin,甚至是操作系统内核。而其他启动 ROM 可能首先加载一个中间引导程序 (MLO/X-Loader),一旦初始化了外部存储器,则由该引导程序负责作为次级引导程序加载 U-Boot。

以下图片显示了一些 TI OMAP 处理器实现的后一种情况: TI OMAP Boot Sequence

某些设备通过将许多 X-Loader 任务移入 U-Boot 并将引导参数(例如内存地址)放入 u-boot.img 的头部来减少此启动过程,从而避免了中间引导程序的需要。

您需要调查您设备的属性,以确定如何部署 U-Boot。


我有些迷惑。MLO 的作用是什么?u-boot.bin 和 MLO 是否等于 u-boot.img ?那单个的 u-boot.bin 又是用来干什么的呢?我应该何时使用 u-boot.bin ,何时使用 u-boot.img 呢? - FanQt
太好了!现在我明白这个概念了。我的设备使用u-boot-img。它可以从SD卡中读取所有数据。我的设备是TI Sitara am335x。每个我从供应商那里收到的工作套件都可以在卡上找到文件MLO+u-boot.img+uEnv.txt+uImage。u-boot.img中的头部内容是什么? - FanQt
我仍然看到您添加了非常有用和专业的新信息。谢谢。所以,我将继续分析这个 MPU 的文档,并不断学习。 - FanQt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接