Intel Agilex® 7コンフィグレーションのユーザーガイド

ID 683673
日付 4/28/2023
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

5.3.1. 操作コマンド

クアッドSPIフラッシュのリセット

重要: Intel Agilex® 7デバイスの場合は、シリアルフラッシュまたはクワッド SPI フラッシュ・リセット・ピンをAS_nRSTピンに接続する必要があります。SDMはQSPIリセットを完全に制御する必要があります。 クワッドSPIリセットピンを外部ホストに接続しないでください。

RSU SDM コマンドの使用例

重要: すべての RSU 関連の SDM コマンド (RSU_IMAGE_UPDATERSU_GET_SPTRSU_STATUS、 と RSU_NOTIFY) は、SDM が AS x4 コンフィギュレーション モードを使用して QSPI フラッシュから RSU イメージをロードする場合にのみ有効です。
表 45.  コマンドのリストおよび説明
コマンド コード (16進数) コマンド長 15 応答長 15 説明
RSU_IMAGE_UPDATE 5C 2 0

ファクトリーまたはアプリケーション・イメージのいずれかであるデータソースからリコンフィグレーションをトリガーします。

このコマンドは、フラッシュ内のリコンフィグレーション・データ・アドレスを指定するための64ビットのオプションの引数を取ります。引数をIPに送信する際は、最初にビット[31:0]を送信し、次にビット[63:32]を送信します。この引数が指定されていない場合、その値は0と見なされます。

  • Bit [31:0]: アプリケーション・イメージの開始アドレス。
  • Bit [63:32]: 予約済み (0として書き込み)。

デバイスがこのコマンドを処理すると、デバイスの再構成に進む前に、応答ヘッダーを応答 FIFO に返します。 ホスト PC またはホスト・コントローラーが他の割り込み処理を停止し、コマンドが正常に完了したことを示す応答ヘッダーデータの読み取りに集中していることを確認します。 そうしないと、リコンフィグレーション・プロセスの開始後にホスト PC またはホスト・コントローラーが応答を受信できない可能性があります。

デバイスが再コンフィギュレーションを続行すると、外部ホストと FPGA の間のリンクが失われます。デザインで PCIe を使用する場合は、PCIe リンクを再列挙する必要があります。

重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定されている指示に従う必要があります。
RSU_GET_SPT 5A 0 4

RSU_GET_SPT は、RSUが使用する2つのサブ・パーティション表 (SPT0とSPT1) のクアッドSPIフラッシュの位置を取得します。

4ワードの応答には、次の情報が含まれます。

ワード 名前 説明
0 SPT0[63:32] クアッドSPIフラッシュのSPT0アドレスです。
1 SPT0[31:0]
2 SPT1[63:32] クアッドSPIフラッシュのSPT1アドレスです。
3 SPT1[31:0]
CONFIG_STATUS 4 0 6

最後のリコンフィグレーションの状態を報告します。このコマンドを使用し、コンフィグレーション中および終了後のコンフィグレーション状態を確認することができます。応答には次の情報が含まれます。

ワード 要約 説明
0 状態 最新のコンフィグレーションに関連するエラーについて説明します。コンフィグレーション・エラーがない場合は0が返されます。
エラーフィールドには2つのフィールドがあります。
  • 上位16ビット: 主要なエラーコード
  • 下位16ビット: 軽微なエラーコード

詳細については、Mailbox Client インテル® FPGA IPユーザーガイド 内、Appendix: CONFIG_STATUS and RSU_STATUS Error Code Descriptionsを参照してください。

1 Quartusバージョン
インテル® Quartus® Primeソフトウェア・バージョン19.4 ~ 21.2で利用可能で、フィールドには次のように表示されます。
  • Bit [31:28]: 最近使用されたファームウェアまたは決定ファームウェアのコピーのインデックス。 可能な値は 0、1、2、および 3 です。
  • Bit [27:24]: 予約済み
  • Bit [23:16]: 値は「0」である
インテル® Quartus® Primeソフトウェア バージョン 21.3 以降で利用可能で、Quartus バージョンは次のように表示されます。
  • Bit [31:28]: 最近使用されたファームウェアまたは決定ファームウェアのコピーのインデックス。 可能な値は 0、1、2、および 3 です。
  • Bit [27:24]: 予約済み
  • Bit [23:16]: Major Quartus リリース番号
  • Bit [15:8]: Minor Quartusリリース番号
  • Bit [7:0]: Quartus 更新番号
たとえば、 インテル® Quartus® Prime ソフトウェア・バージョン 21.3.1 では、次の値は Quartus のメジャーリリース番号とマイナー リリース番号、および Quartus アップデート番号を表します。
  • Bit [23:16] = 8'd21 = 8'h15
  • Bit [15:8] = 8'd3 = 8'h3
  • Bit [7:0] = 8'd1 = 8'h1
2 ピンの状態
  • Bit [31]: 現在のnSTATUS出力値 (アクティブ Low)
  • Bit [30]: 検出されたnCONFIG入力値 (アクティブ Low)
  • Bit [29:8]: 予約済み
  • Bit [7:6]: コンフィギュレーション・クロック・ソース
    • 01 = 内部オシレーター
    • 10 = OSC_CLK_1
  • Bit [5:3]: 予約済み
  • Bit [2:0]: 電源投入時のMSEL
3 ソフト機能の状態 SDMピンに機能が割り当てられているかどうかにかかわらず、各ソフト機能の値を含みます。
  • Bit [31:6]: 予約済み
  • Bit [5]: HPS_WARMRESET
  • Bit [4]: HPS_COLDRESET
  • Bit [3]: SEU_ERROR
  • Bit [2]: CVP_DONE
  • Bit [1]: INIT_DONE
  • Bit [0]: CONF_DONE
4 エラー位置 エラーの位置を含みます。エラーがなければ0を返します。
5 エラー詳細 エラーの詳細を含みます。エラーがなければ0を返します。
RSU_STATUS 5B 0 9 現在のリモート・システム・アップグレードの状態を報告します。このコマンドを使用し、コンフィグレーション中および終了後のコンフィグレーション状態を確認することができます。このコマンドは次の応答を返します。
ワード 要約 説明
0-1 現在のイメージ 現在実行中のアプリケーション・イメージのフラッシュオフセットです。
2-3 失敗したイメージ

最後に失敗したアプリケーション・イメージのフラッシュオフセットです。フラッシュメモリーに複数のイメージがある場合は、最初に失敗したイメージの値を格納します。値がすべて0であれば、失敗したイメージがないことを示します。失敗したイメージがない場合、続くワードのステータス情報に意味のあるデータは含まれていません。

注: x4からリコンフィグレーションするための nCONFIG の立ち上がりエッジでは、このフィールドはクリアされません。失敗したイメージに関する情報が更新されるのは、Mailbox Clientが新しい RSU_IMAGE_UPDATE コマンドを受信し、更新イメージから正常にコンフィグレーションされた場合のみです。
4 状態 失敗したイメージの失敗コードです。
エラーフィールドには2つの部分があります。
  • Bit [31:16]: 主要なエラーコード
  • Bit [15:0]: 軽微なエラーコード

失敗がない場合は0を返します。詳細については、Mailbox Client インテル® FPGA IPユーザーガイド 内、Appendix: CONFIG_STATUS and RSU_STATUS Error Code Descriptionsを参照してください。

5 バージョン

RSUインターフェイスのバージョンとエラーソースです。

詳細については、ハード ・プロセッサー・システムのリモート・システム・アップデートのユーザー ガイドの「RSU ステータスとエラー コード」セクションを参照してください。

6 エラー位置 失敗したイメージのエラー位置を格納します。エラーがない場合は0を返します。
7 エラー詳細 失敗したイメージのエラー詳細を格納します。エラーがなければ0を返します。
8 現在のイメージ再試行カウンター

現在のイメージに対して試行された再試行の数です。カウンターは最初は0です。カウンターは、最初の再試行後は1に設定され、2回目の再試行後には2に設定されます。

インテル® Quartus® Prime Settings File (.qsf) での再試行の最大数を指定します。コマンドは次のとおりです。set_global_assignment -name RSU_MAX_RETRY_COUNT 3MAX_RETRY カウンターの有効な値は1から3です。使用可能な再試行の実際の数は MAX_RETRY -1 です。

このフィールドは、 インテル® Quartus® Primeプロ・エディションソフトウェアのバージョン 19.3 で追加されました。

RSU_NOTIFY 5D 1 0
RSU_STATUS 応答のすべてのエラー情報をクリアし、再試行カウンターをリセットします。1ワードの引数には、次のフィールドがあります。
  • 0x00050000: 現在のリセット再試行カウンターをクリアします。現在の再試行カウンターをリセットすると、現在のイメージが初めて正常にロードされたかのように、カウンターがゼロに戻ります。
  • 0x00060000: エラーステータス情報をクリアします。
  • 他のすべての値は予約済みです。

このコマンドは、 インテル® Quartus® Primeプロ・エディション・ソフトウェアのバージョン 19.3 より前では使用できません。

QSPI_OPEN 32 0 0

クアッドSPIへの排他的アクセスを要求します。この要求は、他のQSPI要求の前に発行します。クアッドSPIが使用されておらず、SDMがデバイスをコンフィグレーションしていない場合、SDMは要求を受け入れます。SDMがアクセスを許可した場合はOKを返します。

SDMは、このメールボックスを使用するクライアントに排他的アクセスを許可します。他のクライアントは、QSPI_CLOSE コマンドを使用したアクティブなクライアントによりアクセスが閉じられるまで、クアッドSPIにアクセスできません。

デフォルトでは、HPSのソフトウェア・コンフィグレーションでQSPIをディスエーブルしない限り、HPSを含むデザインでは、メールボックス・クライアントIPを介したクアッドSPIフラッシュ・メモリー・デバイスへのアクセスは使用できません。

重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定されている指示に従う必要があります。
QSPI_CLOSE 33 0 0 クアッドSPIインターフェイスへの排他的アクセスを閉じます。
重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定された指示に従う必要があります。
QSPI_SET_CS 34 1 0 チップ セレクト ラインを介して、接続されているクワッド SPI デバイスの 1 つを指定します。以下に説明するように、1 語の引数を取ります。
  • ビット[31:28]: 選択するフラッシュ・デバイス。以下の値はそれぞれに対応します nCSO[3:0] ピン。
    • 価値 4'h0000 対応するフラッシュを選択します nCSO[0].
    • 価値 4'h0001 対応するフラッシュを選択します nCSO[1].
    • 価値 4'h0002 対応するフラッシュを選択します nCSO[2].
    • 価値 4'h0003 対応するフラッシュを選択します nCSO[3].
  • ビット[27:0]: 予約済み (0 として書き込み)。
注: Intel Agilex® 7 デバイスは、接続されたクワッド SPI デバイスからの AS コンフィグレーション用に 1 つの AS x4 フラッシュ メモリー デバイスをサポートします。 nCSO[0].デバイスがユーザー モードに入ると、最大 4 つの AS x4 フラッシュ メモリーをメールボックス・クライアント IP または HPS と共にデータ ストレージとして使用できます。メールボックス・クライアント IP または HPS は使用できます nCSO[3:0] クワッド SPI デバイスにアクセスします。

このコマンドは、AS x4 コンフィグレーション方式ではオプションです。チップ セレクト行は、最後に実行されたコマンドの後に続きます。 QSPI_SET_CS コマンドまたはデフォルト nCSO[0] AS x4 コンフィグレーションの後。 JTAG コンフィギュレーション・スキームでは、このコマンドを実行して、SDM_IO ピンを接続する QSPI フラッシュにアクセスする必要があります。

SDM_IO ピンを使用した QSPI フラッシュ メモリー デバイスへのアクセスは、AS x4 コンフィギュレーション・スキーム、JTAG コンフィギュレーション、および AS x4 コンフィギュレーション用にコンパイルされたデザインでのみ利用できます。 Avalon®ストリーミング・インターフェイス ( Avalon® ST) コンフィギュレーション・スキームでは、QSPI フラッシュ メモリーを GPIO ピンに接続する必要があります。

重要: クワッド SPI をリセットするときは、 クアッドSPIフラッシュのリセットを参照してください。
QSPI_READ 3A 2 N

接続されているクアッドSPIデバイスを読み出します。最大転送サイズは4キロバイト (KB) または1024ワードです。

2つの引数を取ります。
  • クアッドSPIフラッシュアドレス (1ワード)。アドレスはワード・アライメントされている必要があります。デバイスは、アライメントされていないアドレスに対して 0x1 のエラーコードを返します。
  • 読み出すワードの数 (1ワード)。
成功するとOKを返し、それに続いてクアッドSPIデバイスからの読み出しデータを返します。失敗応答の場合、エラーコードを返します。

部分的に読み出しが成功した場合、QSPI_READ が誤って OK ステータスを返すことがあります。

注: デバイス・コンフィグレーションの進行中は、QSPI_READ を実行することはできません。
重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定されている指示に従う必要があります。
QSPI_WRITE 39 2+N 0

クアッドSPIデバイスにデータを書き込みます。最大転送サイズは4キロバイト (KB) または1024ワードです。

3つの引数を取ります。
  • フラッシュ・アドレス・オフセット (1ワード)。書き込みアドレスはワード・アライメントされている必要があります。
  • 書き込むワードの数 (1ワード)。
  • 書き込まれるデータ (複数のワード)。
書き込みが成功すると、OK応答コードが返されます。

書き込み用のメモリーを準備するには、このコマンドを発行する前に QSPI_ERASE コマンドを使用してください。

注: デバイス・コンフィグレーションの進行中は、QSPI_WRITE コマンドを実行することはできません。
重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定されている指示に従う必要があります。
QSPI_ERASE 38 2 0 クアッドSPIデバイスの4/32/64 KBセクターを消去します。2つの引数を取ります。
  • 消去を開始するためのフラッシュ・アドレス・オフセット (1ワード)。消去するワード数に応じて、開始アドレスは次のようになります。
    • 消去するワード数が0x400の場合、4 KBのアライメント
    • 消去するワード数が0x2000の場合、32 KBのアライメント
    • 消去するワード数が0x4000の場合、64 KBのアライメント
    4/32/64 KB以外のアライメントされたアドレスに対してエラーを返します。
  • 消去するワード数は、次の倍数で指定されます。
    • 4 KB (100ワード) のデータを消去する0x400。このオプションは、最小消去サイズです。
    • 32 KB (500ワード) のデータを消去する0x2000
    • 64 KB (1000ワード) のデータを消去する0x4000
消去が成功すると、OK応答コードが返されます。
重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定された指示に従う必要があります。
QSPI_READ_DEVICE_REG 35 2 N クアッドSPIデバイスからレジスターを読み出します。最大読み出しは8バイトです。2つの引数を取ります。
  • 読み出しコマンドのオペコード。
  • 読み出すバイトの数。

読み出しが成功すると、OK応答コードが返され、それに続いてデバイスから読み出されたデータが返されます。読み出されたデータの戻り値は4バイトの倍数です。読み出すバイトが正確に4バイトの倍数でない場合は、次のワード境界まで4バイトの倍数でパディングされ、パディングされたビット値はゼロになります。

重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定された指示に従う必要があります。
QSPI_WRITE_DEVICE_REG 36 2+N 0 クアッドSPIのレジスターに書き込みます。最大書き込みは8バイトです。3つの引数を取ります。
  • 書き込みコマンドのオペコード。
  • 書き込むバイトの数。
  • 書き込むデータ。

セクター消去またはサブセクター消去を実行するには、次の例に示すように、シリアル・フラッシュ・アドレスを最上位バイト (MSB) から最下位バイト (LSB) の順序で指定する必要があります。

QSPI_WRITE_DEVICE_REG コマンドを使用してアドレス0x04FF0000のMicron 2ギガビット (Gb) フラッシュのセクターを消去するには、次に示すように、フラッシュアドレスをMSBからLSBの順序で書き込みます。

ヘッダー: 0x00003036

オペコード: 0x000000DC

書き込むバイトの数: 0x00000004

フラッシュアドレス: 0x0000FF04

書き込みが成功すると、OK応答コードが返されます。このコマンドは、4バイトの倍数ではないデータを次のワード境界にパディングします。このコマンドは、データにゼロを埋め込みます。

重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定された指示に従う必要があります。
QSPI_SEND_DEVICE_OP 37 1 0 コマンドオペコードをクアッドSPIに送信します。1つの引数を取ります。
  • クアッドSPIデバイスを送信するためのオペコード。

コマンドが成功すると、OK応答コードが返されます。

重要: クアッドSPIをリセットするときは、クアッドSPIフラッシュのリセット で指定された指示に従う必要があります。

CONFIG_STATUS および RSU_STATUS の主要なエラーコードおよび軽微なエラーコードの説明については、 Mailbox Client インテル® FPGA IPユーザーガイド 内、Appendix: CONFIG_STATUS and RSU_STATUS Error Code Descriptionsを参照してください。

15 この数には、コマンドまたは応答ヘッダーは含まれません。