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

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

16.4.3. CIU

カード・インターフェイス・ユニット (CIU) は、BIUおよびSD/MMCカードまたはデバイスとインターフェイスします。ホスト・プロセッサーは、コマンド・パラメーターをSD/MMCコントローラーのBIUコントロール・レジスターに書き込みます。これらのパラメーターはその後、CIUに渡されます。コントロール・レジスターの値に応じて、CIUは、SD/MMCプロトコルに基づきSD/MMCコマンドとデータ・トラフィックをカードバス上で生成します。コントロール・レジスターの値はまた、コマンドとデータ・トラフィックがCE‑ATAカードに送信されるかを決定します。SD/MMCコントローラーは、それに応じてコマンドとデータパスを制御します。

次に、CIUの動作の制約を説明します。

  • コマンドが発行されると、CIUは、読み出しステータスを確認する、もしくは転送を停止する場合にのみ別のコマンドを受け入れます。
  • 一度に発行できるデータ転送コマンドは1つのみです。
  • オープンエンドのカード書き込み動作中に、FIFOバッファーが空になったことでカードクロックが停止した場合、ソフトウェアはまずFIFOバッファーにデータを入れ、カードクロックを開始する必要があります。その後、SD/SDIO STOP_TRANSMISSION (CMD12) コマンドのみをカードに発行することができます。
  • SDIO/COMBOカードの転送中にカード機能が一時停止し、ソフトウェアで停止した転送を再開する場合は、FIFOバッファーをまずリセットし、新しいデータ転送コマンドのように、再開するコマンドを開始する必要があります。
  • カードデータ転送が進行中に、SD/SDIOカードのリセットコマンド (GO_IDLE_STATE、GO_INACTIVE_STATE、またはCMD52_reset) を発行する場合は、ソフトウェアでcmdレジスターのstop abort command (stop_abort_cmd) ビットを1に設定し、カード・リセット・コマンドの発行後にコントローラーがデータの転送を停止できるようにする必要があります。
  • カードの読み出し中に、FIFOバッファーがフルのためにカードクロックが停止した場合、ソフトウェアは少なくとも2つのFIFOバッファー位置を読み出し、カードクロックを開始する必要があります。
  • CE‑ATAカードデバイスの割り込みが有効になっている (ATAコントロール・レジスターのnIENビットが0に設定されている) 場合、保留中のRW_BLKコマンドが進行している際は、新しいRW_BLKコマンドを同じカードデバイスに送信しないでください。 (このドキュメントで使用されているRW_BLKコマンドは、CE‑ATA仕様で定義されているRW_MULTIPLE_BLOCK MMCコマンドです)。Command Completion Signal (CCS) を待機している間は、Command Completion Signal Disable (CCSD) コマンドのみを送信することができます。
  • CE‑ATAカードで割り込みが無効になっている (ATAコントロール・レジスターのnIENビットが1に設定されている) 場合は、同じカードデバイスには、ステータス情報を読み取る目的の新しいコマンドが許可されます。
  • オープンエンド転送は、CE‑ATAカードデバイスでサポートされていません。
  • send_auto_stop信号は、CE‑ATA転送でサポートされていません。ソフトウェアでcmdレジスターのsend_auto_stopビットを設定しないでください。

CIUは、次の主要な機能ブロックで構成されます。

  • コマンドパス
  • データパス
  • クロック制御