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

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

16.5.8.1.1. 一時停止

データの転送を一時停止するには、次の内容を実行します。
  1. カードのオフセット0x08にあるCCCRのSBSビットを読み出し、SDIOカードがSUSPEND/RESUMEプロトコルをサポートしているかを確認します。
  2. 必要な機能番号のデータ転送が処理中であるかを確認します。現在アクティブな機能番号は、CCCRのFunction Selectビット (FSx) であるカードのオフセット0x0Dのビット3:0に反映されます。
    注: Bus Statusビット (BS) であるアドレス0xCのビット0が1の場合は、FSxビットで提供されている機能番号のみが有効です。
  3. 転送を一時停止するには、Bus Releaseビット (BR) であるアドレス0xCのビット2を1に設定します。
  4. カードのオフセット0x0CにあるCCCRのBRビットとBSビットをそれらが0に設定されるまでポーリングします。現在選択されている機能がデータバスを使用している際に、BSビットは1になります。BRビットは、バスの解放が完了するまで1に維持されます。BRビットおよびBSビットが0の場合は、選択されている機能からのデータ転送が一時停止しています。
  5. 読み出しデータの転送中に、コントローラーはカードからのデータを待機することができます。データ転送がカードからの読み出しである場合は、SUSPENDコマンドが正常に完了すると、コントローラーに通知を行う必要があります。コントローラーはその後、データのステートマシンをリセットし、待機状態を終了します。これを行うには、ctrlレジスターのabort read data (abort_read_data) ビットを1に設定します。
  6. rintstsレジスターでdtoビットが1に設定されるまでポーリングを行い、データの完了を待機します。転送における保留中のバイト数を特定するには、コントローラーのtransferred CIU card byte count (tcbcnt) レジスターを読み取ります。この値を合計転送サイズから差し引きます。この数値は、転送を適切に再開するために使用します。