インテル® Stratix® 10 SoC FPGAブート・ユーザーガイド

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

3.1. ブートフローの概要

FPGAコアとペリフェラルをコンフィグレーションする前に、HPSとHPS EMIF I/O先行をブートできます。MSEL[2:0] 設定により、HPSをブートするためのソースを特定します。このモードでは、HPSのブート中、FPGAに割り当てられたI/Oはすべてトライステートのままになります。その後、HPSはSDMに、HPS EMIF I/Oを除くFPGAコアとペリフェラルをコンフィグレーションするように要求できます。ソフトウェアは、FPGAコアとペリフェラルのコンフィグレーション・ソースを特定します。HPS First Bootモードでは、SSBLステージ中またはオペレーティング・システムのブート後に、FPGAコアをコンフィグレーションするオプションがあります。

注: HPS EMIF I/Oを初めにコンフィグレーションしてから、HPS FSBLをロードすることを、「フェーズ1コンフィグレーション」と呼びます。HPSによるFPGAコアとペリフェラルのその後のコンフィグレーションは、「フェーズ2コンフィグレーション」と呼びます。フェーズ1とフェーズ2のコンフィグレーション・ファイルは、同じ インテル® Quartus® Prime プロ・エディション開発ソフトウェア・バージョンから生成する必要があります。該当する場合、これにはインストールされたパッチが含まれます。

一般的なHPS First Bootフローは、次の図のようになります。FSBLまたはSSBLには、U-Boot、Unified Extensible Firmware Interface (UEFI)、またはカスタム・ブートローダーを使用できます。OSの例は、LinuxまたはRTOSです。フローには、パワーオンリセット (TPOR) からブート完了 (TBoot_Complete) までの時間が含まれています。

図 6. 一般的なHPS Boot Firstフロー
表 5.  HPS Boot Firstのステージ
時間 ブートステージ デバイスの状態
TPOR POR パワーオンリセット
T1からT2 SDM- Boot ROM
  1. SDMは MSEL ピンをサンプリングして、コンフィグレーションとブートソースを特定します。また、eFuse値に基づいてデバイスのセキュリティー・レベルを確立します。
  2. SDMファームウェアは、デバイスを初期化します。
  3. SDMは、ビットストリームを認証および復号化します (このプロセスは、コンフィグレーション全体で必要に応じて行われます)。
T2からT3 SDM- コンフィグレーション・ファームウェア
  1. SDMは、HPS EMIF I/Oと残りのユーザー構成のSDM I/Oをコンフィグレーションします。
  2. SDMは、FSBLをビットストリームからHPSオンチップRAMにロードします。
  3. SDMは、HPS SDRAM I/Oをイネーブルし、オプションでHPSデバッグをイネーブルします。
  4. HPSはリセットから解放されます。
T3からT4 第1ステージ・ブートローダー (FSBL)
  1. FSBLは、SDRAMを含むHPSを初期化します。
  2. FSBLは、SSBLを取得します。これは、HPSフラッシュから、またはSDMからフラッシュアクセスを要求することによって行います。
  3. FSBLは、SSBLをSDRAMにロードします。
  4. HPSペリフェラルI/Oピン・マルチプレクサーとバッファーがコンフィグレーションされています。クロック、リセットおよびブリッジもコンフィグレーションされます。
  5. HPS I/Oペリフェラルが使用可能です。
  6. HPSブートストラップが完了します。
T4からT5 第2ステージ・ブートローダー (SSBL)

ブートストラップが完了すると、次のいずれかの手順が発生する可能性があります。

  1. FPGAコアのコンフィグレーションは、次のいずれかのソースからSDRAMにロードされます。
    • SDMフラッシュ
    • HPS代替フラッシュ
    • EMACインターフェイス
  2. HPSは、SDMがFPGAコアをコンフィグレーションすることを要求します。2
  3. FPGAはユーザーモードに入ります。
  4. OSがSDRAMにロードされます。
T5からTBoot_Complete オペレーティング・システム (OS)
  1. OSがブートし、OSによってランタイムの起動に向けたアプリケーションがスケジュールされます。
  2. (オプションの手順) OSは、常駐SMCハンドラー (通常はSSBL) へのセキュア・モニター・コール (SMC) を介してFPGAコンフィグレーションを開始し、次にSDMへの要求を開始します。
注: コンフィグレーション、FSBL、SSBLおよびOSのソースファイルの位置はさまざまです。詳細については、HPS Boot Firstモードのシステムレイアウトの項を参照してください。
注: コンフィグレーションの失敗を回避するためには、インテルStratix 10デバイスに、 PCIe* 用のクロックとすべてのEタイル・トランシーバーのリファレンス・クロックが必要です。入力リファレンス・クロック refclk を提供する必要があり、デバイスのコンフィグレーションを成功させるには、クロックがデバイスの電源投入時にフリーランニングで安定している必要があります。
LタイルとHタイル (Eタイルには適用なし) - PCIe* リンクを介してインテルStratix 10デバイスをコンフィグレーションする場合、refclk 要件は必須です。それ以外の場合の、 PCIe* 以外のユースケースでは refclk 要件は必須ではありません。
  • PCIe* のユースケースでは、ファームウェアは、PLLキャリブレーション・コードを待機して、PLLが適切にキャリブレーションされていることを確認し、デバイスを解放してユーザーモードに入ります。したがって、PLLキャリブレーションには refclk が必須です。
  • PCIe* 以外のユースケースでは、コンフィグレーション中に refclk 電源がない場合、ファームウェアは適切なPLLキャリブレーション・コードがないとデバイス・コンフィグレーションをゲートしません。XCVRチャネルが正しく動作するように、ユーザーモードでXCVR PLLをキャリブレーションできます。
Eタイル (LタイルとHタイルには適用なし) - refclk 要件は必須です。Eタイルは、 PCIe* のユースケースをサポートしていません。
  • SPICOコントローラーが、(コンフィグレーション・ビットストリームの一部である) ファームウェアをEタイルにロードするには、refclk が必要です。
2 FPGA I/OおよびFPGAコアのコンフィグレーションは、SSBLまたはOSステージで行うことができますが、通常はSSBLステージでコンフィグレーションされます。