PCI Expressのマルチチャネル DMA インテル® FPGA IPユーザー ガイド

ID 683821
日付 4/20/2022
Public
ドキュメント目次

8.3.3.1. デバイス管理

IP Reset

IP リセットは、sysfs属性ファイルmcdma_ipresetを通じて実行されます。次のコマンドは、IP リセットを実行します。
echo 1 > /sys/bus/pci/devices/<bdf> /mcdma_ipreset

Open

ユーザー空間アプリケーションが char dev ノードで open システムコールを呼び出すと、カーネルモジュールは使用可能なチャネルをチェックしてそのアプリケーションに割り当て、チャネル・コンテキストをファイルディスクリプター・コンテキストのプライベート領域に格納し、ファイル・ディスクリプターが返されます。以降のチャネル固有の操作には、同じファイル・ディスクリプターが使用されます。

Close

すべての DMA トランザクションが完了したら、デバイスのオープン中に割り当てられたファイルをクローズする必要があります。この一環として、カーネルはそのデバイスに関連付けられたチャネル・コンテキストを取得し、それをデバイスに解放します。

図 43. Open/Close

Read & Write

ユーザー空間アプリケーションが DMA を実行したい場合、libmcmem ライブラリから取得した事前に割り当てられた DMA メモリーを提供することにより、標準の読み出し/書き込みシステムコールを呼び出す必要があります。アプリケーションは、バッファーの物理開始アドレスを提供する必要があります。カーネルモジュールは、DMA バッファーをハードウェア指定のディスクリプターに変換し、送信します。

図 44. Read/Write

Readv & Writev

readv および writev システムコールは、バッチで DMA 要求を送信するために使用されます。