x86 IBM-PC に Das U-Boot レガシー ブートをインストールするにはどうすればいいですか?

x86 IBM-PC に Das U-Boot レガシー ブートをインストールするにはどうすればいいですか?

U-Bootは両方第一段階と第二段階のブートローダは、IBM-PCのFSBLのように、第一段階に収まる必要がある。446 バイト最初のセクターの MBR の前 (またはそれ以下)。

また、FSBL コードを使用してディスクから 31,744 バイトを読み取り、そこにジャンプする 1.5 ステージ ブート ローダーもあります (セクター 1 から 62。DOS 準拠の最初のパーティションはセクター 63 から開始できるため)。これは U-Boot には当てはまらないと思います。

私はUEFIもkexecも求めていません。corebootや他のブートローダーコードを必要としないのであれば、読むそれは可能ですが、その方法については誰も明らかにしませんでした。

どの設定を使用すればよいですか? Chromebook Link または Edison? MBR に配置する 446 バイトのチャンクが生成されますか? セクター 1 から 62 に何かを配置する必要がありますか? 1.5 ステージには収まらないと思いますが、ディスク内の残りをどのように見つけるのでしょうか?

答え1

U-Bootはx86をサポートしていますがハードウェアx86 BIOSのサポートは含まれませんファームウェア

したがって、レガシー x86 PC で U-Boot を使用するための最初のステップは、BIOS を、U-Boot の最初のステージを含む独自のカスタム ファームウェアに置き換えることです。

これを実行すると、最初のハードディスクのブロック #0 から 446 バイトのブート コードをロードするなどの古い BIOS ブート規則は適用されなくなり、代わりに U-Boot の規則が使用されます。

もちろん、BIOS を交換するには、カスタム ファームウェアが最初にシステムのチップセットの初期化と、コールド スタート後の RAM のテストと有効化を処理できる必要があります。PC ハードウェアでは、すべての PC チップセットのチップセット プログラミング ドキュメントが簡単に入手できるとは限らないため、これは予想以上に大きな課題となる可能性があります。

U-Boot は BIOS 互換のブートローダでも、BIOS の簡単な代替品でもありません。ドキュメントに x86 をサポートしていると記載されている場合、それは U-Boot がカスタム ハードウェア上の x86 プロセッサを使用するハードウェア プロジェクトに簡単に統合できることを意味するだけです。

おそらく、GRUB Legacy に固有の用語 (第 1 ステージ、第 2 ステージ、ステージ 1.5) と、ブートローダーのより一般的なシステム設計用語を混同しているようです。

システム設計の観点から言えば、Linuxを実行することを目的としたレガシーx86 PCでは、BIOS第一段階のブートローダです。これは、コールド リセット後にプロセッサが最初に実行するように ROM (またはフラッシュ EEPROM) に配置され、必要なハードウェアを初期化し、固定された場所または明確に定義された場所から比較的コンパクトなプログラムをロードする役割を担います。

システム設計の観点から言えば、GRUB 全体は第 2 段階のブートローダになります。GRUB Legacy も「ステージ」と呼ばれるコンポーネントに分割されていますが、これらは GRUB の内部区分であり、レガシー BIOS の制限を回避するために作成されたものです。GRUB ステージはシステム設計と同じではありません。第一/第二ステージブートローダ用語。

関連情報