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

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

16.5.3. コントローラー/DMA/FIFOバッファーリセットの使用方法

次のリストは、SD/MMCコントローラーのさまざまな部分に対するリセットの影響を示しています。
  • コントローラー・リセット - ctrlレジスターのcontroller_resetビットを1に設定することで、コントローラーをリセットします。コントローラー・リセットは、CIUおよびステートマシンをリセットし、BIUとCIU間のインターフェイスをリセットします。このリセットビットはセルフクリアであるため、リセットの発行後は、このビットが0に変わるまで待機します。
  • FIFOバッファーリセット - ctrlレジスターのFIFO reset (fifo_reset) ビットを1に設定することで、FIFOバッファーをリセットします。FIFOバッファーリセットは、FIFOバッファーのFIFOバッファーポインターとカウンターをリセットします。このリセットビットはセルフクリアであるため、リセットの発行後は、このビットが0に変わるまで待機します。
  • DMAリセット - ctrlレジスターのDMA reset (dma_reset) ビットを1に設定することで、内部DMAコントローラー・ロジックをリセットします。これにより、進行中のDMA転送が直ちに終了します。このリセットビットはセルフクリアであるため、リセットの発行後は、このビットが0に変わるまで待機します。
注: DMAリセットを実行する前に、DMAがアイドル状態であることを確認します。これに従わない場合、L3インターコネクトが不確定の状態で維持されることがあります。

インテルでは、最初にctrlレジスターのcontroller_resetfifo_reset、およびdma_resetビットを1に設定し、その後別の書き込みを使用してrintstsレジスターを0にリセットすることで、発生する割り込みをクリアすることを推奨しています。