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

ID 683762
日付 12/16/2019
Public
ドキュメント目次

5.3.1. 操作コマンド

表 35.  コマンドのリストとその説明
コマンド コード (Hex) コマンド長 8 応答長8 説明
RSU_IMAGE_UPDATE 5C 2 0

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

このコマンドは、フラッシュ内のリコンフィグレーション・データ・アドレスを指定する64ビットのオプションの引数を取ります。引数を指定しない場合、その値は0とみなされます。

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

デバイスがすでにコンフィグレーション・コマンドを処理している場合は、ゼロ以外の応答を返します。

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ビット: 軽微なエラーコード

詳細は、表 36 および表 37 を参照してください。

1 バージョン RSUデータ構造のバージョン
2 ピンの状態
  • ビット [31]: 現在のnSTATUS出力値 (アクティブLow)
  • ビット [30]: 検出されたnCONFIG入力値 (アクティブLow)
  • ビット [29:3]: 予約済み
  • ビット [2:0]: 電源投入時のMSEL
3 ソフト機能の状態 各ソフト機能の値を含みます。SDMピンに機能を割り当てていない場合でも値は含まれます。
  • ビット [31:6]: 予約済み
  • ビット [5]:HPS_WARMRESET
  • ビット [4]: HPS_COLDRESET
  • ビット [3]: SEU_ERROR
  • ビット [2]: CVP_DONE
  • ビット [1]: INIT_DONE
  • ビット [0]: CONF_DONE
4 エラー位置 エラーの位置を含みます。エラーがなければ0を返します。
5 エラー詳細 エラーの詳細を含みます。エラーがなければ0を返します。
RSU_STATUS 5B 0 9 現在のリモート・システム・アップグレードの状態を報告します。このコマンドを使用し、コンフィグレーション中および完了後にコンフィグレーションの状態を確認できます。このコマンドは、次の応答を返します。
ワード 要約 説明
0-1 現在のイメージ 現在実行中のアプリケーション・イメージのフラッシュオフセットです。
2-3 失敗したイメージ

失敗したイメージのうち、最も優先順位が高いアプリケーション・イメージのフラッシュオフセットです。フラッシュメモリーで複数のイメージが使用可能な場合、最初に失敗したイメージの値を格納します。すべてが0の値は、失敗したイメージがないことを示します。失敗したイメージがない場合、ステータス情報の残りのワードに有効な情報は格納されません。

注: ASx4において、リコンフィグレーションを行うnCONFIGの立ち上がりエッジはこのフィールドをクリアーしません。失敗したイメージに関する情報は、Mailbox Clientが新しいRSU_IMAGE_UPDATEコマンドを受信し、更新イメージで正常にコンフィグレーションが行われた場合にのみ更新されます。
4 状態 失敗したイメージの失敗コードです。

エラーフィールドには2つの部分があります。

  • 上位16ビット: 重大なエラーコード
  • 下位16ビット: 軽微なエラーコード

失敗がない場合は0を返します。詳細は、表 36 および表 37 を参照してください。

5 エラー報告とバージョン インテルQuartus Prime開発ソフトウェア・プロ・エディションのバージョン19.4より、次のフィールドが含まれます。
  • ビット [31:28]: 現在使用されている決定ファームウェアのインデックスを指定します。
  • ビット [27:16]: エラーのソースです。インテルQuartus Prime開発ソフトウェア・プロ・エディション19.3以降のバージョンで利用可能です。次のエンコーディングが有効です。
    • 0x0000: エラーなし
    • 0x0ACF: アプリケーション・ファームウェアがエラーを報告
    • 0x0DCF: 決定ファームウェアがエラーを報告
  • ビット [15:8]: アプリケーション・ファームウェアのRSUインターフェイスのバージョンです。次のエンコーディングが有効です。
    • 0x0000: 19.3よりも前のリリース
    • 0x0001: 19.3リリース
  • ビット [7:0]: 決定ファームウェアのRSUインターフェイスのバージョンです。次のエンコーディングが有効です。
    • 0x0000: 19.3よりも前のリリース
    • 0x0001: 19.3リリース
    • 0x0002: 19.4リリース
6 エラー位置 失敗したイメージのエラー位置を格納します。エラーがなければ0を返します。
7 エラー詳細 失敗したイメージのエラーの詳細を格納します。エラーがなければ0を返します。
8 現在のイメージの再試行カウンター

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

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

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

QSPI_OPEN 32 0 1

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

注: SDMは、このメールボックスを使用してクライアントに排他的アクセスを許可します。アクティブなクライアントがQSPI_CLOSEコマンドを使用してアクセスを放棄するまで、他のクライアントはクワッドSPIにアクセスできません。
QSPI_CLOSE 33 0 1 クワッドSPIインターフェイスへの排他的アクセスを閉じます。
QSPI_SET_CS 34 1 1 チップ・セレクト・ラインで接続されているクワッドSPIデバイスの1つを指定します。次に説明されているように、1ワードの引数を取ります。
  • ビット [31:28]: 選択するフラッシュデバイスです。値4'b0000は、nCSO[0] に対応するフラッシュを選択します。nCSO[0] は、FPGAがクワッドSPIフラッシュデバイスにアクセスするために使用できる唯一の信号です。HPSは、nCSO[3:1] を使用してHPSデータにアクセスできます。
  • ビット [27:0]: 予約済み (0として書き込み)。HPSは、nCSO[3:1] を使用して3つの追加クワッドSPIデバイスにアクセスできます。

このコマンドは、AS x4のコンフィグレーション・スキームではオプションです。他のすべてのコンフィグレーション・スキームには必要です。

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

QSPI_READ 3A 2 N

接続されているクワッドSPIデバイスを読み出します。最大の読み出しサイズは4キロバイト (KB) です。 2つの引数を取ります。

  • クワッドSPIフラッシュアドレス (1ワード)。アドレスはワードでアライメントする必要があります。デバイスは、アライメントされていないアドレスにエラーコード0x1を返します。
  • 読み出すワード数 (1ワード)。

成功するとOKが返され、クワッドSPIデバイスから読み出されたデータが続きます。失敗応答はエラーコードを返します。

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

注: デバイス・コンフィグレーションの進行中に、QSPI_READコマンドを実行することはできません。
QSPI_WRITE 39 2+N 0 クワッドSPIデバイスにデータを書き込みます。3つの引数を取ります。
  • フラッシュ・アドレス・オフセット (1ワード)。書き込みアドレスはワードでアライメントする必要があります。デバイスは、アライメントされていないアドレスに対してエラーコード0x3FFを返します。
  • 書き込むワード数 (1ワード)。
  • 書き込まれるデータ (1ワードまたは複数ワード)。

書き込みに成功すると、OK応答コードが返されます。

書き込みに向けてメモリーを準備する際に、インテルでは、このコマンドを発行する前にQSPI_ERASEコマンドを使用することを推奨しています。

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

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

QSPI_WRITE_DEVICE_REG 36 2+N 0 クワッドSPIのレジスターに書き込みます。書き込みは最大8バイトです。3つの引数を取ります。
  • 書き込みコマンドのオペコード。
  • 書き込むバイト数。
  • 書き込むデータ。

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

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

ヘッダー: 0x00003036

オペコード: 0x000000DC

書き込むバイト数: 0x00000004

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

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

QSPI_SEND_DEVICE_OP 37 1 0 クワッドSPIにコマンドオペコードを送信します。1つの引数を取ります。
  • クワッドSPIデバイスに送信するオペコード。

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

RSU_NOTIFY 5D 1 0
RSU_STATUS応答にあるすべてのエラー情報をクリアーし、再試行カウンターをリセットします。1ワードの引数には次のフィールドがあります。
  • 0x00050000: 現在のリセット再試行カウンターをクリアーします。現在の再試行カウンターをリセットすると、現在のイメージが初めて正常にロードされたかのようにカウンターがゼロに戻ります。
  • 0x00060000: エラーステータス情報をクリアーします。
  • 他の値はすべて予約されています。
このコマンドは、インテルQuartus Prime開発ソフトウェア・プロ・エディション19.3よりも前のバージョンでは使用できません。
表 36.  CONFIG_STATUSおよびRSU_STATUSの重大なエラーコードの説明
重大なエラーコード エラーの種類 説明
0xF001 BITSTREAM_ERROR 符号なしビットストリームが使用されている可能性があります。ビットストリームが正しいキーで署名されていることを確認します。
0xF002 HARDWARE_ACCESS_FAILURE PMBusに準拠する電圧レギュレーターとの通信エラーです。パワー・マネジメントとSmartVID (Smart Voltage Identification) のパラメーター設定および、PMBusインターフェイス接続を確認します。
0xF003 BITSTREAM_CORRUPTION ビットストリームが破損しています。コンフィグレーション・デバイスまたはフラッシュのビットストリームが破損していないことを確認します。
0xF004 INTERNAL_ERROR

この重大なエラーのコードは、次のエラーイベントを示している可能性があります。

  • SDM Crypto IPタスク内のエラー
  • RSU動作エラー。詳細は、表 37 を参照してください。
0xF005 DEVICE_ERROR
SDMの内部デバイスエラーを示します。次のエラーが発生している可能性があります。
  • デバイス・クリーニングの失敗
  • HPSコンフィグレーションの失敗

お住まいの地域のフィールド・アプリケーション・エンジニア (FAE) にお問い合わせください。もしくは、 My Intel サポートページでサービスリクエストを発行し、さらなるデバッグに向けたエラーログのキャプチャーに関してサポートを得ます。

0xF006 HPS_WATCHDOG_TIMEOUT HPSウォッチドッグのタイムアウト・エラーです。デザインがウォッチドッグ・タイマーを正しくリセットしていることを確認します。
0xF007 INTERNAL_UNKNOWN_ERROR

不明なタスクによる内部デバイスエラーを示します。

お住まいの地域のフィールド・アプリケーション・エンジニア (FAE) にお問い合わせください。もしくは、 My Intel サポートページでサービスリクエストを発行し、さらなるデバッグに向けたエラーログのキャプチャーに関してサポートを得ます。

表 37.  CONFIG_STATUSおよびRSU_STATUSの軽微なエラーコードの説明
軽微なエラーコード エラーの種類 説明
0xD001 RSU_CMF_AUTH_ERR ファームウェアの認証エラーです。
0xD002 RSU_USER_AUTH_ERR デザインの認証エラーです。
0xD003 RSU_CMF_DESC_SHA_MISMATCH SHAがファームウェアの記述子と一致しません。
0xD004 RSU_POINTERS_NOT_FOUND_ERR デバイスがパワーオンリセット (POR) を終了した後の最初のブートで、ブートROMからデータを読み出すことができません。
0xD005 RSU_QSPI_REQ_CHANGE RSUの初期化中にクワッドSPIフラッシュをコンフィグレーションできません。
0xD006 RSU_FACTORY_IMAGE_FAILED イメージのロードに失敗しました (ファクトリー・イメージも含む)。
0xD007 RSU_CMF_TYPE_ERR ファームウェアのバージョンが以前にロードされたバージョンと一致しません。
8 この数に、コマンドおよび応答ヘッダーは含まれません。