eLinux.org から:
<ブロック引用>http://elinux.org/Panda_How_to_MLO_%26_u-boot
第 1 段階のブートローダは、電源投入からボード上で直接実行されます。このブートローダの名前はわかりません (TI の公式 wiki では、Boot Rom と呼ばれています)。このブートローダーは、最小限の CPU とボード ハードウェアを初期化し、SD カード (FAT 形式である必要があります) の最初のパーティションにアクセスし、「MLO」と呼ばれるファイルをロードして実行します。 「MLO」は第 2 段階のブートローダーです。
第 2 段階のブートローダーは、明らかに X-loader または SPL のいずれかです。このブートローダも、SD カードの最初のパーティションを読み取り、「u-boot.bin」というファイルをロードして実行するようです。 「u-boot.bin」は第 3 段階のブートローダーです。
第 3 段階のブートローダーは U-Boot で、さまざまな組み込みボードや製品で人気のあるブートローダーです。このブートローダには、インタラクティブ シェル、変数、SD カードにアクセスしてその内容を表示する機能など、さまざまな機能がたくさんあります。次に何が起こるかは、パンダ ボード用の U-Boot のバージョンと、それがどのように構成されているかによって異なります。非常に単純な構成では、U-Boot は SD カードの最初のパーティション (これも FAT パーティションとしてフォーマットする必要があります) のルートでファイル「uImage」を探し、それを実行します。これは Linux カーネルです。 U-Boot はカーネルにコマンド ライン引数を渡します。カーネルの構成方法に応じて、U-Boot からのコマンド ラインを受け入れるか、ビルド時にコンパイルされたものを使用します。
これは「パンダ ボードの問題」であり、一般的な Linux には必ずしも当てはまりません。
ただし、ほとんどのすべて システムには、上記のような「マルチステージ」ブートがあります。たとえば、Windows を実行している PC を起動すると、次のように表示されます。
<オール>したがって、それは「非効率的」でも珍しいことでもありません。
PS:このリンクには、ブート ロード シーケンスの適切な説明もあります:
- http://omappedia.org/wiki/Bootloader_Project
PPS:「MLO」は「Mmc ローダー」の略です
ボードが起動したら、CPU が SDRAM の使用を開始する前に、メモリ管理ユニット (MMU) をセットアップする必要があります。 SoC には、その時点で使用できる 56KB の SRAM がありますが、u-boot を実行するには小さすぎます。余分なステップとして、SRAM から実行されるコードが読み込まれ、u-boot が開始されます。