PCI Express* 用のインテル® Stratix® 10 HタイルおよびLタイル Avalon® メモリー・マップド・ハードIPユーザーガイド

ID 683667
日付 6/03/2020
Public
ドキュメント目次

8. DMA Descriptor Controllerのプログラミング・モデル

Avalon-MM DMA Bridgeモジュールには、オプションのDMA Descriptor Controllerが含まれています。このDescriptor Controllerをイネーブルする場合、定義済みのプログラミング・モデルに従う必要があります。このプログラミング・モデルには、次の手順が含まれます。

  1. 次の図に示すように、 PCIe* システムメモリーでディスクリプター・テーブルを準備します。
    図 58. ディスクリプター・テーブルのサンプル
  2. ディスクリプター・テーブルをプログラムし、すべてのディスクリプターのソースおよび送信先アドレスとサイズを提供します。
  3. 個々のディスクリプターの中間ステータス更新については、RD_CONTROL または WR_CONTROL Update ビットもプログラムします。これらのビットの説明については、読み出しDMA内部Descriptor Controllerレジスターおよび書き込みDMA内部Descriptor Controllerレジスターの項を参照してください。
  4. Read Data Moverにテーブルを独自の内部FIFOにコピーする指示を、DMA Descriptor Controllerに指示します。
  5. 追加のディスクリプターを使用してディスクリプター・テーブルを再プログラムする前に、MSI割り込みが最後のディスクリプターの完了を通知するのを待ちます。プログラムされた最後のディスクリプターが完了するまで、ディスクリプター・テーブルを更新できません。

以下は、コンフィグレーションの例です。

  • DMA IPコアを備えたAvalon-MM Bridgeを含むエンドポイント
  • 内部DMA Descriptor Controller
  • 非バーストAvalon-MMスレーブ

ホストソフトウェアは、Avalon-MM DMA BridgeのBAR0非バーストAvalon-MMマスターをプログラムして、DMA Descriptor Controllerの内部レジスターに書き込むことができます。このプログラミングは、DMA Descriptor ControllerがDMA命令をPCIe ReadおよびWrite Data Moverに生成するために必要な情報を提供します。DMA Descriptor Controllerは、Avalon-MM DMA Bridgeの非バーストAvalon-MMスレーブ・インターフェイスを介して、DMAステータスをホストに送信します。DMA Descriptor Controllerの非バーストAvalon-MMマスターおよびスレーブ・インターフェイスは内部にあり、他の目的には使用できません。

注: 内部DMA Descriptor Controllerをイネーブルすると、BAR0を使用して内部DMA Descriptor Controllerをプログラムできます。BAR0を使用する場合、トリートはプリフェッチ不可として扱われます。