AN 763: インテル® Arria® 10 SoCデバイスのデザイン・ガイドライン

ID 683192
日付 8/14/2020
Public
ドキュメント目次

5.1.7. ブート・ローダー・ソフトウェアの選択

インテル® Arria® 10のブートフローを次の図に表しています。

図 20. Arria 10のブートフロー

ブート・ローダー・ソフトウェアは、ソフトウェア開発プラットフォームにおいて最も重要なコンポーネントの1つです。ブートローダーの役割は、システムを初期化し、次のブートイメージであるOSまたはベアメタル・アプリケーションに制御をロードし渡すことです。

ブート・ローダー・ソフトウェアは、利用可能なHPSのオンチップメモリー外で動作するように設計されており、HPSのコンフィグレーションに不可欠な初期のハードウェア設定、HPSのフラッシュとペリフェラル・コンポーネントを制御するソフトウェアの機能、早期デバッグとトラブルシューティングを可能にするユーティリティーを提供します。

例えば、U-bootブートローダー・ソフトウェアは、HPSのECCレジスターをコンフィグレーションします。HPS IPコンポーネントに向けたArria 10外部メモリー・インターフェイスにおけるDDR SDRAMのECCコンフィグレーション設定は、ビット・ストリーム・ペリフェラルのRawバイナリーファイル (.rbf) に変換されます。ブート・ローダー・ソフトウェアは、ビット・ストリームからECC SDRAMのコンフィグレーション設定を抽出し、HPSでECCレジスターを設定します。

一般的なHPSシステムには数百のレジスターがあり、それらをMPUシステム・コンプレックス、ネットワークオンチップ・インターコネクト・コンポーネント、SDRAMメモリー、フラッシュ・ブート・ソース、およびペリフェラル・インターフェイスの特定のコンフィグレーションに設定する必要があります。ブートもしくは初期化を目的として使用される設定は、次の位置にカプセル化されています。
  • RBFファイル (RAWバイナリーファイル) - SDRAMに向けたレジスター設定、共有I/OとFPGAピンのコンフィグレーションを含みます
  • ブートローダー・デバイス・ツリー構造 (DTS) - クロックツリー、I/Oの多重化、および専用ピンのコンフィグレーション (スルーレート、プルアップ、プルダウン、一部のNoC設定) に向けたユーザー設定といくつかのデフォルト設定を含みます
  • U-Bootソースコード - 残りの設定に使用
注: ブートローダー・デバイス・ツリー構造は、Linuxのデバイス・ツリー構造とは異なります。この2つを混同しないでください。
インテルは、次の2つのタイプのブートローダーのオプションを提供します。
  • U-Bootブートローダー: オープン・ソース・コミュニティーから入手可能な多くの機能を継承しており、Linux OSユーザーの間で広く利用されています。GPLライセンスで管理されています。SoC EDSの一部として入手可能で、Linux向けGSRDで使用されます。
  • UEFIブートローダー: 機能が豊富で、RTOSユーザーに広く利用されています。オープンソースのBSDスタイルライセンスで管理されています。Intel Arria 10 UEFI Bootloader Wikiから入手することができます。

ガイドライン: お使いのソフトウェア開発プラットフォームに適したブートローダーを選択するには、GPLおよびオープンソースのBSDライセンスについて十分に理解し、どのライセンス条項がご自身の要件に最適かを検討します。

ガイドライン: 最新バージョンのブート・ローダー・ソフトウェアを使用することが推奨されます。

ガイドライン: 必要とされるさまざまな初期化設定の量を考えると、ブートローダーを最初から作成することは推奨されません。提供されているブートローダーのオプションには、HPSのさまざまな部分に対する最適なデフォルト・コンフィグレーション設定が含まれています。

次の図は、U-Bootブートローダーのフローを示しています。このフローは、UEFIのフローと類似しています。

図 21. ブートローダーのビルドフロー