インテル® Agilex™ SoC FPGAブート・ユーザーガイド

ID 683389
日付 11/10/2021
Public
ドキュメント目次

6.1. U-BootからのFPGAファブリックのコンフィグレーション

FPGAファブリックは、fpga load <device> <address> <size> のRAMバッファーからのデータを使用して、U-Bootからコンフィグレーションされます。

GSRDはHPS先行のブートモードを使用します。Linuxをブートする前に、次のスクリプトを実行するU-Bootによって、FPGAファブリックがコンフィグレーションされます。
setexpr.b reg *0xFFD120DC;
if itest $reg -eq 3;
then bridge enable;
else load mmc 0:1 $loadaddr ghrd.core.rbf; dcache flush; fpga load 0 $loadaddr $filesize; bridge enable;
fi

スクリプトでは、以下を行います。

  1. FPGAファブリックがコンフィグレーション済みであるかどうかを確認します。これは、 インテル® Quartus® Prime Programmerを使用して、または事前にHPSをコールドリセットする前の前回のブート時に実行できます。
  2. FPGAファブリックがコンフィグレーション済みである場合は、brigde enable コマンドを実行してブリッジをイネーブルしてから、終了します。
  3. FPGAファブリックがコンフィグレーションされていない場合は、
    1. フェーズ2コア・ファブリックのコンフィグレーション・ファイルをSDカードからDDRにロードします。
    2. データキャッシュをフラッシュして、SDMがデータにアクセスできるようにします。
    3. fpga load <device> <address> <size> コマンドを呼び出して、FPGAファブリックをコンフィグレーションします。
    4. bridge enable を呼び出して、ブリッジをコンフィグレーションします。

    GSRDは、RocketBoardsウェブサイトのIntel Agilex Soc GSRDウェブページに記載されています。

    注: ATFを使用するブートフローでは、SDRAMの最初の1 MBが保護領域としてコンフィグレーションされます。FPGAコンフィグレーション・ファイル (.rbf) には、0x100000 (1 MBオフセット) から0x20000000 (512 MBオフセット) までのアドレス範囲を使用する必要があります。