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

ID 683673
日付 4/01/2024
Public
ドキュメント目次

5.3.1. 操作コマンド

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

重要: 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進数) コマンド長 14 応答長 14 説明
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 State 最新のコンフィグレーションに関連するエラーについて説明します。コンフィグレーション・エラーがない場合は0が返されます。
エラーフィールドには2つのフィールドがあります。
  • 上位16ビット: 主要なエラーコード
  • 下位16ビット: 軽微なエラーコード

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

1 Quartus Version
19.4から21.2の間の Quartus® Prime開発ソフトウェアのバージョンで使用可能です。フィールドでは次のように表示されます。
  • 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]: Quartusのメジャーリリース番号
  • Bit [15:8]: 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 Pin status
  • 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 Current image 現在実行中のアプリケーション・イメージのフラッシュオフセットです。
2-3 Failing image

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

注: AS x4からリコンフィグレーションするための nCONFIG の立ち上がりエッジでは、このフィールドはクリアされません。失敗したイメージに関する情報が更新されるのは、Mailbox Client Intel® FPGA IPが新しい RSU_IMAGE_UPDATE コマンドを受信し、更新イメージから正常にコンフィグレーションされた場合のみです。
4 State 失敗したイメージの失敗コードです。
エラーフィールドには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インターフェイスのバージョンとエラーソースです。

詳細については、ハード・プロセッサー・システム (HPS) のリモート・システム・アップデート・ユーザーガイドを参照してください。

6 Error location 失敗したイメージのエラー位置を格納します。エラーがない場合は0を返します。
7 Error details 失敗したイメージのエラー詳細を格納します。エラーがない場合は0を返します。
8 Current image retry counter

現在のイメージに対して試行された再試行の数です。カウンターは最初は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: エラーステータス情報をクリアします。
  • 他のすべての値は予約済みです。

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

QSPI_OPEN 32 0 0

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

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

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

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

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

Agilex™ 7デバイスでのAS x4コンフィグレーション・スキーム実行中は、このコマンドはすべての QSPI_OPEN コマンドの後に必要です。

JTAGコンフィグレーション・スキーム実行中は、このコマンドはすべての QSPI_OPEN コマンドの後に必要です。

重要: クアッド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フラッシュのリセット で指定された指示に従う必要があります。

For CONFIG_STATUS and RSU_STATUS major and minor error code descriptions, refer to Appendix: CONFIG_STATUS and RSU_STATUS Error Code Descriptions in the Mailbox Client Intel® FPGA IP User Guide .

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