インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

16.5.4. データ転送以外のコマンド

データ転送以外のコマンドを送信するには、ソフトウェアでcmdレジスターおよびcmdargレジスターを適切なパラメーターを使用して書き込む必要があります。コントローラーは、これらの2つのレジスターを使用してコマンドを形成し、それをCMDピンに送信します。コントローラーは、rintstsレジスターのエラービットを介してコマンドの応答におけるエラーを報告します。

応答 (エラーまたは有効) を受信すると、コントローラーは、rintstsレジスターのcommand_doneビットを1に設定します。短い応答はresp0にコピーされ、長い応答は4つのすべての応答レジスター (resp0resp1resp2resp3) にコピーされます。 長い応答の場合、resp3のビット31はMSBを表し、resp0のビット0はLSBを表します。

基本コマンドおよびデータ転送以外のコマンドの場合は、次の手順を実行します。

  1. 適切なコマンド引数パラメーターでcmdargレジスターを書き込みます。
  2. データ転送以外のコマンドに向けたレジスターの設定に示されている設定で、cmdレジスターを書き込みます。
  3. コントローラーがコマンドを受け入れるまで待機します。コマンドが受け入れられると、start_cmdビットが0に変化します。

    コマンドがコントローラーにロードされると、次の動作が発生します。

    • 前のコマンドが処理中ではない場合、コントローラーは実行に向けてコマンドを受け入れ、cmdレジスターのstart_cmdビットを0にリセットします。前のコマンドを処理中の場合、コントローラーは新しいコマンドをコマンドバッファーにロードします。
    • コントローラーが新しいコマンドをロードできない場合、つまり、1つのコマンドがすでに進行中で、2番目のコマンドがバッファーにあり、3番目のコマンドを試みている場合、コントローラーはハードウェア・ロック・エラーを生成します。
  4. ハードウェア・ロック・エラーの有無を確認します。
  5. コマンドの実行が完了するまで待機します。カードからの応答もしくは応答タイムアウトのいずれかを受信すると、コントローラーはrintstsレジスターのcommand_doneビットを1に設定します。ソフトウェアでは、このビットをポーリングする、もしくは生成された割り込み (有効になっている場合) に応答することができます。
  6. response timeout boot acknowledge received (bar) ビット、rcrcビット、またはreビットが1に設定されているかを確認します。ソフトウェアでは、これらのエラーによって発生した割り込みに応答する、もしくはrintstsレジスターのrercrc、およびbarビットをポーリングすることができます。応答エラーを受信していない場合、応答は有効です。必要に応じて、ソフトウェアで応答レジスターから応答をコピーすることができます。
注: コマンドの実行中に、ソフトウェアでクロックのパラメーターを変更することはできません。