ここで、最初のブートローダはシステムに大きく依存しています。ハードウェアのすべてをラムにファームウェアを列挙してダウンロードし、そのラムからプロセッサを起動する、ある種のUSBブート可能デバイスがあるかもしれません。
通常、最初の起動はフラッシュのようなものです。最初のブートローダをシンプルで、本質的に100%バグがなく、耐久性があり、信頼できるものにして、おそらくシリアルやその他の方法で取得して、2番目の/実際のブートローダを置き換えることができます。
理想的には、2番目のブートローダはフラッシュになりたい、2番目のブートローダは大量の作業を行い、ddrを初期化し、イーサネットベースのデバッグやファイル転送をしたい場合はイーサネットを設定し、 bootpなどがあります。はるかに大きく複雑なので、バグがあり、一次ブートローダよりも頻繁にアップグレードする必要があります。プライマリはうまくいけば上書きされないようになっているので、システムをレンジすることなく、2番目のブートローダを快適に置き換えることができます。
すべてのシステムで上記を使用していますか?いいえ、いくつかの/多くのものは単一のブートローダーしか使用しないかもしれません。シリアルポート上のキーストロークがブートローダを中断し、ブートローダを再ロードできる場所に移動することがあります。レンダリングの機会が少ないブートローダーの開発を可能にしますが、キーストロークとシリアルフラッシュローダーの事を前もって混乱させてしまう可能性もあります。ここでもまた、シリアルローダーの問題は常に存在するとは限らず、ブートローダ開発者にとっては便利です。多くの場合、フォールバックはjtag、またはリムーバブルプロムやレンタル時にプロムを再プログラムするための他のシステムの方法です(また、ボードが作成されたときに初めてシステムでプログラムするときと同じ方法で、コストを節約し、製造中にあらかじめプログラムされたフラッシュを使用して最初の起動が機能するようにレンガブルである)。
linuxのブートローダは、非常にごくわずかなセットアップRAMです。コマンドラインやatagsなどを準備して、Linuxに分岐してください。
答えがシステム、プロセッサ、設計エンジニア(あなたを含む)に大きく依存しているため、読み込まれた質問です。従来のプロセッサはフラッシュから起動し、ブートローダはメモリやその他のものを取得し、次のコードを実行することができます。そのコードの次のビットは、多くの場所、usb、ディスク、フラッシュ/ ROM、イーサネット/ bootp/tftp、pcie、mdio、spi、i2cなどから来ることができます。デザインが望む、または必要とする。