1.6.1. 操作コマンド
クアッドSPIフラッシュのリセット
コマンド | コード (16進数) | コマンド長 11 | 応答長 11 | 詳細 | |||
---|---|---|---|---|---|---|---|
NOOP | 0 | 0 | 0 | OKステータス応答を送信します。 | |||
GET_IDCODE | 10 | 0 | 1 | 応答には引数が1つ含まれます。これは、デバイスの JTAG IDCODE です。 | |||
GET_CHIPID | 12 | 0 | 2 | 応答には64ビットの CHIPID 値が含まれます。最下位ワードが先頭です。 | |||
GET_USERCODE | 13 | 0 | 1 | 応答には引数が1つ含まれます。これは32ビットのJTAG USERCODEで、コンフィグレーション・ビットストリームでデバイスに書き込むものです。 | |||
GET_VOLTAGE | 18 | 1 | n12 | GET_VOLTAGE コマンドは単一の引数をもちます。これは、読み出すチャネルを指定するビットマスクです。ビット0はチャネル0を指定し、ビット1はチャネル1を指定します (その他も同様)。 応答には、ビットマスクで設定されたビットに対する1ワードの引数が含まれます。返される電圧は、2進小数点以下の16ビットの符号なし固定小数点数です。例えば、0.75Vの電圧では0x0000C000が返されます。13 14 15 |
|||
GET_TEMPERATURE | 19 | 1 | n 16 | GET_TEMPERATURE コマンドは、指定した1つまたは複数のコア・ファブリックもしくはトランシーバー・チャネルの位置の温度を返します。 Stratix® 10デバイス: sensor_req 引数を使用して位置を指定します。sensor_req には、次のフィールドが含まれます。
Agilex™ 7および Agilex™ 5デバイス: sensor_req 引数を使用して位置を指定します。sensor_req には、次のフィールドが含まれます。
返される温度は、2進小数点以下の8ビットの符号付き固定値です。例えば、温度が10°C の場合は0x00000A00が返され、温度がマイナス1.5°Cの場合は0xFFFFFE80が返されます。 ビットマスクが無効な Location を指定している場合、コマンドはエラーコードを返します。これは、0x80000000-0x800000FFの範囲のいずれかの値になります。 Stratix® 10デバイス: センサーの位置に関しては、 Stratix® 10アナログ-デジタル・コンバーター・ユーザーガイドで、温度センサーのチャネルと位置を参照してください。 Agilex™ 7デバイス: ローカル内蔵温度センサーに関しては、 Agilex™ 7パワー・マネジメント・ユーザーガイドを参照してください。 Agilex™ 5デバイス: ローカル内蔵温度センサーに関しては、 Agilex™ 5 Power Management User Guideを参照してください。 |
|||
RSU_IMAGE_UPDATE | 5C | 2 | 0 | データソース (ファクトリー・イメージまたはアプリケーション・イメージのいずれか) からリコンフィグレーションをトリガーします。 このコマンドは、オプションの64ビットの引数を取ります。これは、フラッシュ内のリコンフィグレーション・データ・アドレスを指定するものです。この引数をIPに送信する際は、最初にビット [31:0] を送信し、次にビット [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つのフィールドがあります。
詳細については、Mailbox Client Intel® FPGA IPユーザーガイドの付録: CONFIG_STATUS および RSU_STATUS エラーコードの詳細を参照してください。 |
|||||
1 | Quartusバージョン |
Stratix® 10デバイス: Quartus® Prime開発ソフトウェアのバージョン19.4以降で利用可能です。フィールドは次の内容を示します。
Agilex™ 7デバイス: Quartus® Prime開発ソフトウェアのバージョン19.4から21.2で利用可能です。フィールドは次の内容を示します。
Agilex™ 7および Agilex™ 5デバイス: Quartus® Prime開発ソフトウェアのバージョン21.3以降で利用可能です。Quartusのバージョンは次の内容を示します。
例えば、 Quartus® Prime開発ソフトウェアのバージョン21.3.1の場合、次の値によってQuartusのメジャーリリース番号とマイナーリリース番号、およびQuartusの更新番号を示します。
|
|||||
2 | ピンの状態 |
|
|||||
3 | ソフト機能の状態 | 各ソフト機能の値を含みます。SDMピンに機能を割り当てていない場合にも当てはまります。
|
|||||
4 | エラー位置 | エラーの位置を含みます。エラーがない場合は0を返します。 | |||||
5 | エラー詳細 | Agilex™ 7 および Stratix® 10デバイス: エラーの詳細を含みます。エラーがない場合は0を返します。 | |||||
Agilex™ 5デバイス: このフィールドは予約されています。 | |||||||
RSU_STATUS | 5B | 0 | 9 | 現在のリモート・システム・アップグレードの状態を報告します。このコマンドを使用して、コンフィグレーション中および終了後にコンフィグレーションの状態を確認することができます。このコマンドは次の応答を返します。 | |||
ワード | 概要 | 詳細 | |||||
0-1 | 現在のイメージ | 現在実行中のアプリケーション・イメージのフラッシュオフセットです。 | |||||
2-3 | 失敗したイメージ | 最も優先度の高い失敗アプリケーション・イメージのフラッシュオフセットです。フラッシュメモリーに複数のイメージがある場合は、最初に失敗したイメージの値を格納します。値がすべて0であれば、失敗したイメージがないことを示します。失敗したイメージがない場合、ステータス情報の残りのワードに有効なデータは含まれません。
注: ASx4でリコンフィグレーションを行う際の nCONFIG 立ち上がりエッジでは、このフィールドはクリアされません。失敗したイメージに関する情報は、Mailbox Clientが新しい RSU_IMAGE_UPDATE コマンドを受信し、アップデート・イメージから正常にコンフィグレーションされた場合にのみ更新されます。
|
|||||
4 | 状態 | 失敗したイメージの失敗コードです。
エラーフィールドには2つの部分があります。
失敗がない場合は0を返します。詳細は、Mailbox Client Intel® FPGA IPユーザーガイドの付録: CONFIG_STATUS および RSU_STATUS エラーコードの詳細を参照してください。 |
|||||
5 | バージョン | RSUインターフェイスのバージョンとエラーソースです。 詳細は、ハード・プロセッサー・システム (HPS) のリモート・システム・アップデート・ユーザーガイドで、RSUステータスおよびエラーコードのセクションを参照してください。 |
|||||
6 | エラー位置 | 失敗したイメージのエラー位置を格納します。エラーがない場合は0を返します。 | |||||
7 | エラー詳細 | 失敗したイメージのエラー詳細を格納します。エラーがない場合は0を返します。 | |||||
8 | 現在のイメージ再試行カウンター | 現在のイメージで行われた再試行の数です。カウンターは最初は0です。カウンターは、最初の再試行後に1に設定され、2回目の再試行後に2に設定されます。 Quartus® Prime Settings File (.qsf) で最大再試行数を指定します。コマンドは set_global_assignment -name RSU_MAX_RETRY_COUNT 3 です。MAX_RETRY カウンターの有効な値は1から3です。実際に可能な再試行の数は MAX_RETRY -1 です。 このフィールドは、 Quartus® Primeプロ・エディション・ソフトウェアのバージョン19.3で追加されました。 |
|||||
RSU_NOTIFY | 5D | 1 | 0 |
RSU_STATUS 応答のすべてのエラー情報をクリアし、再試行カウンターをリセットします。1ワードの引数には次のフィールドがあります。
このコマンドは、 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を含むデザインで、Mailbox Client IPを介したクアッドSPIフラッシュメモリー・デバイスへのアクセスは利用することができません。ただし、HPSのソフトウェア・コンフィグレーションでQSPIを無効にしている場合は当てはまりません。
重要: クアッドSPIをリセットする場合は、クアッドSPIフラッシュのリセット で指定されている内容に従う必要があります。
|
|||
QSPI_CLOSE | 33 | 0 | 0 | クアッドSPIインターフェイスへの排他的アクセスを閉じます。
重要: クアッドSPIをリセットする場合は、クアッドSPIフラッシュのリセット で指定されている内容に従う必要があります。
|
|||
QSPI_SET_CS | 34 | 1 | 0 | 接続されているクアッドSPIデバイスの1つをチップセレクト・ラインを介して指定します。次のように1ワードの引数を取ります。
注: 各デバイスでは、1つのAS x4フラッシュメモリー・デバイスをサポートし、nCSO[0] に接続されているクアッドSPIデバイスからのASコンフィグレーションを行います。デバイスがユーザーモードに入ると、Mailbox Client IPまたはHPSで最大4つのAS x4フラッシュメモリーをデータストレージとして使用することができます。Mailbox Client IPまたはHPSでは、nCSO[3:0] を使用して、クアッドSPIデバイスにアクセスすることができます。
Stratix® 10デバイス: AS x4コンフィグレーション・スキームでは、このコマンドはオプションです。AS x4コンフィグレーション後、チップセレクト・ラインは最後に実行された QSPI_SET_CS コマンドに従う、またはデフォルトの nCSO[0] になります。 Agilex™ 7および Agilex™ 5デバイス: AS x4コンフィグレーション・スキームでは、このコマンドは各 QSPI_OPEN コマンドの後に必要です。 JTAGコンフィグレーション・スキームではすべてのデバイスにおいて、このコマンドは各 QSPI_OPEN コマンドの後に必要です。
重要: クアッドSPIをリセットする場合は、クアッドSPIフラッシュのリセット で指定されている内容に従う必要があります。
|
|||
QSPI_READ | 3A | 2 | N | 接続しているクアッドSPIデバイスを読み出します。最大転送サイズは4キロバイト (KB) または1024ワードです。
2つの引数を取ります。
部分的に読み出しが成功している場合に、QSPI_READ では誤った OK ステータスが返されることがあります。
注: デバイス・コンフィグレーションの進行中は、QSPI_READ コマンドを実行することはできません。
重要: クアッドSPIをリセットする場合は、クアッドSPIフラッシュのリセット で指定されている内容に従う必要があります。
|
|||
QSPI_WRITE | 39 | 2+N | 0 | クアッドSPIデバイスにデータを書き込みます。最大転送サイズは4キロバイト (KB) または1024ワードです。
3つの引数を取ります。
メモリーを書き込みの準備ができている状態にするには、このコマンドを発行する前に QSPI_ERASE コマンドを使用します。
注: デバイス・コンフィグレーションの進行中は、QSPI_WRITE コマンドを実行することはできません。
重要: クアッドSPIをリセットする場合は、クアッドSPIフラッシュのリセット で指定されている内容に従う必要があります。
|
|||
QSPI_ERASE | 38 | 2 | 0 | クアッドSPIデバイスの4/32/64KBセクターを消去します。2つの引数を取ります。
重要: クアッドSPIをリセットする場合は、クアッドSPIフラッシュのリセット で指定されている内容に従う必要があります。
|
|||
QSPI_READ_DEVICE_REG | 35 | 2 | N | クアッドSPIデバイスからレジスターを読み出します。最大読み出しは8バイトです。2つの引数を取ります。
読み出しが成功すると、OK応答コードが返され、それに続いてデバイスから読み出されたデータが返されます。返される読み出しデータは4バイトの倍数です。読み出すバイトが正確に4バイトの倍数でない場合は、4バイトの倍数で次のワード境界までパディングされます。パディングされるビット値は0です。
重要: クアッド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バイトの倍数ではないデータを次のワード境界までパディングします。このコマンドでは、データを0でパディングします。
重要: クアッドSPIをリセットする場合は、クアッドSPIフラッシュのリセット で指定されている内容に従う必要があります。
|
|||
QSPI_SEND_DEVICE_OP | 37 | 1 | 0 | コマンドオペコードをクアッドSPIに送信します。1つの引数を取ります。
コマンドが成功すると、OK応答コードが返されます。
重要: クアッドSPIをリセットする場合は、クアッドSPIフラッシュのリセット で指定されている内容に従う必要があります。
|
|||
QSPI_READ_SHA | 6E | 2 | 16/12/8 | ファームウェアに対して、フラッシュ・コントローラーからデータを読み出し、3つのセキュア・ハッシュ・アルゴリズム (SHA) のいずれかを使用してハッシュ値を計算するように指示します。返されるハッシュ値を同じアルゴリズムを使用して以前に計算されたハッシュ値と比較することで、フラッシュ・コンテンツの整合性を判断することができます。 このコマンドは、2つの32ビット・ワードを引数として取ります。 ワード0
ワード1
応答長は、コマンドで選択しているSHAバリアントによって異なります。
注: このコマンドは、 Agilex™ 7および Agilex™ 5デバイスでのみサポートされます。
注: Agilex™ 5デバイスにおけるこのコマンドでは、SHA512のみをコマンドと応答にサポートしています。
|
|||
GET_CONFIGURATION_TIME | 65 | 0 | 2 | コンフィグレーション・ネットワーク・コントロール・クロックの64ビット・サイクルカウントを最下位ワードを先頭にして返します。カウント値をコンフィグレーション・ネットワーク・コントロール・クロック周波数で割ることで、コンフィグレーション時間を概算します。コンフィグレーション・ネットワーク・クロックの動作周波数は、 Quartus® Primeにおけるクロックソース設定のコンフィグレーションによって異なります。 このコマンドは、サポートされている任意のコンフィグレーション・スキームで使用することができます。 通常、コンフィグレーション・サイクルカウントは下位32ビットでキャプチャーされます。ファームウェアが64ビットのサイクルカウントを返すことはほとんどありませんが、64ビットが返される場合は、2つの32ビット・ワードを連結して総サイクルカウント値を取得する必要があります。 次に例を示します。 返される応答: 0x007C27EE = 8136686サイクル コンフィグレーション・コントロール・クロック周波数: 200MHz コンフィグレーション時間: (8136686/200000000) × 1000 = 40.68ミリ秒
注: このコマンドは、 Agilex™ 7デバイスでのみサポートされます。
|
|||
コンフィグレーション・クロックソース | コンフィグレーション・ネットワーク・コントロール・クロック周波数 | ||||||
外部オシレーター (OSC_CLK_1) | 250MHz | ||||||
内部オシレーター | 170MHzから230MHz | ||||||
READ_SEU_ERROR | 3C | 0 |
|
SEUエラーが検出されると、エラー情報はエラー・メッセージ・キューに格納されます。このコマンドは、キューを検査し、そこからエントリーを削除する方法を提供します。 Device and Pin OptionsウィンドウでSEU_ERRORピンを設定すると、エラー・メッセージ・キューに1つ以上のエラーがある場合に、SEU_ERROR信号がHighの状態で維持されるようになります。エラー・メッセージ・キューが空の場合、信号はLowになります。 エラー・メッセージ・キューにエラーがない場合、応答長は1ワードになります。 キューに1つ以上のエラーがある場合、キューから最初のエラーが取り出され、後続のワードで返されます。このコマンドは、一度に1つの要素をキューから返します。
注: デザインにAdvanced SEU Detection Intel® FPGA IPが含まれている場合は、このメールボックス・コマンドを使用しないでください。
|
|||
ワード | 名称 | 詳細 | |||||
0 | Error Count | ビット [31:0]: エラー・メッセージ・キュー内のエラーの合計数 | |||||
1 | Sector Address | ビットの詳細に関しては、該当するSEU緩和ユーザーガイドを参照してください。 | |||||
2 | Error Data | ||||||
READ_SEU_STATS | 40 | 1 | 6 | このコマンドは、指定されているセクターのSEU統計を報告します。 このコマンドは、1つの32ビット・ワードを引数として取ります。 ワード0
応答長は次のとおりです。
時間 (秒) = サイクル/内部クロック周波数 詳細は、該当するSEU緩和ユーザーガイドを参照してください。
注: このコマンドは、 Agilex™ 5デバイスでのみサポートされます。
|
|||
INSERT_SAFE_SEU_ERROR | 41 | 2 | 0 | このコマンドは、選択しているセクターに1つまたは複数のエラーを挿入します。 検出が機能している場合、デバイスは可能な場合はこのエラーを訂正し、標準のSEUレポートメカニズムによってユーザーに報告します。 挿入は、あらかじめ定義されている、未使用のCRAMが提供されている位置のリストのみを対象にすることができます (CRAM_SEL 0から7で識別されます)。
1つの INSERT_SEU_ERROR メッセージで最大2つのCRAM_SELを指定することができます。CRAM Selectを使用して、次の挿入シナリオを実行することができます。
フレーム選択
次に例を示します。 |
|||
選択 | CRAM_SEL1 | CRAM_SEL0 | SEUエラータイプ | ||||
すべて偶数フレーム | 0 | 1 | 隣接ダブルビット | ||||
1 | 0 | ||||||
0 | 2/3 | マルチビット (訂正不可能) | |||||
2/3 | 0 | ||||||
1/2/3 | 1/2/3 | ||||||
偶数フレーム + 奇数フレーム | 0/1/2/3 | 4/5/6/7 | 2つのシングルビット | ||||
すべて奇数フレーム | 4 | 5 | 隣接ダブルビット | ||||
5 | 4 | ||||||
4 | 6/7 | マルチビット (訂正不可能) | |||||
6/7 | 4 | ||||||
5/6/7 | 5/6/7 | ||||||
このコマンドは、2つの32ビット・ワードを引数として取ります。
詳細は、該当するSEU緩和ユーザーガイドを参照してください。
注: このコマンドは、 Agilex™ 5デバイスでのみサポートされます。
|
|||||||
INSERT_ECC_ERROR | 42 | 1 | 0 | このコマンドでは、CNT/SDMの選択されているRAMにECCエラーを挿入し、リードバックを実行してECCエラーをトリガーします。ユーザーはシングルビットのECCのみを挿入することができます。
このコマンドは、1つの32ビット・ワードを引数として取ります。
注: このコマンドは、 Agilex™ 5デバイスでのみサポートされます。
|
|||
QSPI_READ_SHA512 | 6E | 2 | 16 | このコマンドは、2つの32ビット・ワードを引数として取ります。 ワード0
ワード1
返される応答長は16ワードです。
注: このコマンドは、 Stratix® 10デバイスでのみサポートされます。
|
|||
STATUS_VR | 713 | 1 | 1 | 電源管理ファームウェア (PMF) および電圧レギュレーター (VR) のデータのインターフェイスを提供します。このコマンドは、VID対応デバイスで、VRポーリングとPMFの両方が有効になっている場合に使用します。
次に説明する入力引数のいずれかを取ります。
このコマンドは、 Quartus® Primeプロ・エディションのバージョン23.3以降で利用することができます。
注: このコマンドは、 Agilex™ 7デバイスでのみサポートされます。
|
CONFIG_STATUSおよびRSU_STATUS の主要なエラーコードと軽微なエラーコードに関しては、付録: CONFIG_STATUS および RSU_STATUS エラーコードの詳細を参照してください。