インテル® Agilex™ コンフィグレーション・ユーザーガイド

ID 683673
日付 5/30/2022
Public

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

ドキュメント目次

5.3.1. 操作コマンド

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

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

RSUSDMコマンドの使用例

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

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

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

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

Once the device processes this command, it returns the response header to response FIFO before it proceeds to reconfigure the device. Ensure the host PC or host controller stops servicing other interrupts and focuses on reading the response header data to indicate the command completed successfully. Otherwise, the host PC or host controller may not be able to receive the response once the reconfiguration process started.

Once the device proceeds with reconfiguration, the link between the external host and FPGA is lost. If you use PCIe in your design, you need to re-enumerate the PCIe link.

重要: クアッド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 Intel® FPGA IPユーザーガイド 内、Appendix: CONFIG_STATUS and RSU_STATUS Error Code Descriptionsを参照してください。

1 Quartusバージョン
Available in インテル® Quartus® Prime software versions between 19.4 and 21.2, the field displays:
  • Bit [31:28]: Index of the firmware or decision firmware copy that was used the most recently. Possible values are 0, 1, 2, and 3.
  • Bit [27:24]: Reserved
  • Bit [23:16]: Value is '0'
Available in インテル® Quartus® Prime software version 21.3 or later, the Quartus version displays:
  • Bit [31:28]: Index of the firmware or decision firmware copy that was used the most recently. Possible values are 0, 1, 2, and 3.
  • Bit [27:24]: Reserved
  • Bit [23:16]: Major Quartus release number
  • Bit [15:8]: Minor Quartus release number
  • Bit [7:0]: Quartus update number
For example, in インテル® Quartus® Prime software version 21.3.1, the following values represent the major and minor Quartus release numbers, and the Quartus update number:
  • Bit [23:16] = 8'd21 = 8'h15
  • Bit [15:8] = 8'd3 = 8'h3
  • Bit [7:0] = 8'd1 = 8'h1
2 ピンの状態
  • Bit [31]: Current nSTATUS output value (active low)
  • Bit [30]: Detected nCONFIG input value (active low)
  • Bit [29:8]: Reserved
  • Bit [7:6]: Configuration clock source
    • 01 = Internal oscillator
    • 10 = OSC_CLK_1
  • Bit [5:3]: Reserved
  • Bit [2:0]: The MSEL value at power up
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 現在のリモート・システム・アップグレードの状態を報告します。このコマンドを使用し、コンフィグレーション中および終了後のコンフィグレーション状態を確認することができます。このコマンドは次の応答を返します。
ワード Summary 説明
0-1 現在のイメージ 現在実行中のアプリケーション・イメージのフラッシュオフセットです。
2-3 失敗したイメージ

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

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

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

5 Version

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

For more information, refer to RSU Status and Error Codes section in the Hard Processor System Remote System Update User Guide.

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 です。

This field was added in version 19.3 of the インテル® Quartus® Primeプロ・エディション software.

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

This command is not available before version 19.3 of the インテル® Quartus® Primeプロ・エディション software.

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ワードの引数を取ります。
  • Bits[31:28]: 選択されるフラッシュデバイス。値 4'b0000 は、nCSO [0] に対応するフラッシュを選択します。nCSO [0] は、FPGAがクアッドSPIフラッシュデバイスにアクセスするために使用できる唯一の信号です。
  • Bits[27:0]: 予約済み(0として書き込み)。
注: HPSは nCSO[3:1] を使用して、3つの追加のクアッドSPIデバイスにアクセスできます。

このコマンドはAS x4コンフィグレーション・スキームではオプションであり、チップ・セレクト・ラインは最後に実行された QSPI_SET_CS コマンドに従うか、AS x4コンフィグレーション後の nCSO [0] のデフォルトに従います。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 Intel® FPGA IPユーザーガイド 内、Appendix: CONFIG_STATUS and RSU_STATUS Error Code Descriptionsを参照してください。

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