web-dev-qa-db-ja.com

u-boot.binとu-boot.imgの違い

U-Bootブートローダーをコンパイルしたところ、u-bootプログラムディレクトリに次のようなファイル名がいくつか表示されます。

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

基本的に、拡張子が.img.binのファイルに興味があります。それらの違いは何ですか? SDカードの場合はu-boot.img、NANDへのフラッシュの場合はu-boot.binですか?

10
FanQt

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を直接、またはOSカーネルをロードするのに十分なほど複雑です。他の人は最初に中間ブートローダー(MLO/X-Loader)をロードし、外部メモリが初期化されると、セカンダリブートローダーとしてU-Bootをロードする責任を負います。

この画像は、一部のTIOMAPプロセッサによって実装された後者のケースを示しています。 TI OMAP Boot Sequence

一部のデバイスでは、X-Loaderタスクの多くをU-Bootに移動し、ブートパラメーター(メモリアドレスなど)をu-boot.imgのヘッダーに配置することで、このブートプロセスが削減され、中間ブートローダーが不要になります。

U-Bootの導入方法を決定するには、デバイスのプロパティを調査する必要があります。

15
shibley