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
ですか?
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プロセッサによって実装された後者のケースを示しています。
一部のデバイスでは、X-Loaderタスクの多くをU-Bootに移動し、ブートパラメーター(メモリアドレスなど)をu-boot.img
のヘッダーに配置することで、このブートプロセスが削減され、中間ブートローダーが不要になります。
U-Bootの導入方法を決定するには、デバイスのプロパティを調査する必要があります。