AN 860: インテル® Arria® 10 SoC FPGAでのEarly I/O Releaseの使用

ID 683437
日付 10/22/2020
Public

3.4. U-Bootをコンフィグレーションして分割RBFファイルを使用

このセクションは、 インテル® Arria® 10 SoC FPGAのユーザー資料で定義されているU-bootのビルドフローに精通していることを前提としています。インテルでは、RocketBoards.orgサポート・ウェブサイトのGetting Startedセクションで提供されている情報およびAltera SoCエンベデッド・デザイン・スイート (EDS) ユーザ・ガイドを確認することを推奨しています。リンクはこのセクションの最後にあります。

インテル® Arria® 10 SoC FPGA HPSコンポーネントを含む インテル® Quartus® Primeプロジェクトがコンパイルされると、hps_isw_handoff/hps.xmlファイル内の生成メタデータには、インテルSoC EDSのbsp-editorツールで使用されるエントリーが含まれています。Early I/O Release機能が有効になっていることを示すエントリーは次のとおりです。

<option_flags>
<config name='chosen.early-release-fpga-config' value='1' />
</option_flags>

bsp-editorツールはこのエントリーを使用して、U-bootデバイスツリーでEarly I/O Release機能を有効にする必要があるかを特定します。

値の属性が「0」の場合、bsp-editorツールはU-boot devicetree.dtsファイルを生成します。このファイルには、次のchosenブロックが含まれます。U-bootは、リストされているcff-fileを結合 (ペリフェラル + コア) .rbfファイルとしてロードします。

chosen {cff-file = "socfpga.rbf";/* Bootloader setting: uboot.rbf_filename */}; 

値の属性が「1」の場合、bsp-editorツールは強調表示されているフィールドを次のようにchosenブロックに追加します。このブロックは、 インテル® Quartus® PrimeプロジェクトがEarly I/O Release機能を有効にしてコンパイルされた場合に生成されます。

chosen {cff-file = "socfpga.rbf"; /* Bootloader setting: uboot.rbf_filename */}; 

early-release-fpga-configフィールドを追加すると、U-bootのブート動作が変化します。U-bootは起動時に、リストされているcff-fileを結合.rbfではなく、ペリフェラルの.rbfとしてロードします。U-bootは起動時に次のメッセージを出力し、ペリフェラル.rbfファイルが正常にロードされたことを示します。

FPGA: writing socfpga.rbf ...
FPGA: Early Release Succeeded.

コアの.rbfファイルは後でロードする必要があります。コアの.rbfファイルは、U-bootを使用してロードする、もしくはオペレーティング・システムがブートするまで延期することができます。U-bootを使用してコアの.rbfをロードする場合は、fpga loadfs (または同様の) コマンドをbootcmd変数に追加する、もしくはU-bootコマンドラインに入力する、またはU-bootスクリプトを介して実行する必要があります。次に示す例は、コアの.rbfbootcmdメカニズムの一部としてロードするU-boot環境変数のセットアップです。

bootcmd=run core_rbf_prog; run mmcload; run mmcboot
core_rbf_prog=fpga loadfs 0 mmc 0:1 ${rbfcoreimage} core
rbfcoreimage=ghrd_10as066n2.core.rbf