4.1. ポートリスト
4.2. クロック
4.3. リセット
4.4. マルチ・チャネルDMA
4.5. バーストAvalon Master (BAM) インターフェイズ
4.6. バースト Avalon-MM スレーブ (BAS) インターフェイス
4.7. Config Slaveのインターフェイス (RP のみ)
4.8. ハードIPリコンフィグレーション・インターフェイス
4.9. Config TLのインターフェイス
4.10. Configuration Interceptのインターフェイス (EP のみ)
4.11. ユーザーのFunctional Level Reset (FLR)
4.12. ユーザー イベント MSI-X 要求インターフェイス
4.13. データ・ムーバー・インターフェイス
4.14. ハードIPステータス・インターフェイス
8.1.6.1. ifc_api_start
8.1.6.2. ifc_mcdma_port_by_name
8.1.6.3. ifc_qdma_device_get
8.1.6.4. ifc_num_channels_get
8.1.6.5. ifc_qdma_channel_get
8.1.6.6. ifc_qdma_acquire_channels
8.1.6.7. ifc_qdma_release_all_channels
8.1.6.8. ifc_qdma_device_put
8.1.6.9. ifc_qdma_channel_put
8.1.6.10. ifc_qdma_completion_poll
8.1.6.11. ifc_qdma_request_start
8.1.6.12. ifc_qdma_request_prepare
8.1.6.13. ifc_qdma_descq_queue_batch_load
8.1.6.14. ifc_qdma_request_submit
8.1.6.15. ifc_qdma_pio_read32
8.1.6.16. ifc_qdma_pio_write32
8.1.6.17. ifc_qdma_pio_read64
8.1.6.18. ifc_qdma_pio_write64
8.1.6.19. ifc_qdma_pio_read128
8.1.6.20. ifc_qdma_pio_write128
8.1.6.21. ifc_qdma_pio_read256
8.1.6.22. ifc_qdma_pio_write256
8.1.6.23. ifc_request_malloc
8.1.6.24. ifc_request_free
8.1.6.25. ifc_app_stop
8.1.6.26. ifc_qdma_poll_init
8.1.6.27. ifc_qdma_poll_add
8.1.6.28. ifc_qdma_poll_wait
8.1.6.29. ifc_mcdma_port_by_name
8. ソフトウェア・プログラミング・モデル
マルチチャネル DMA IP for PCI Express Linux ソフトウェアは、次のコンポーネントでコンフィグレーションされています。
- テスト・アプリケーション
- カスタムドライバー用のユーザー空間ライブラリー (libmqdma)
- DPDK Pollモードベースのドライバー
- Chardev ベースのカーネル・モード・ドライバー (ifc_mcdma_chardev)
- PCIe エンドポイント・ドライバー (ifc_uio)
- カーネル・モード・ネットワーク・デバイス・ドライバー (ifc_mcdma_net)
ソフトウェア・ファイルは、以下に示すように、IP Parameter Editor から PCI Express デザイン例用のマルチチャネル DMA IP を生成すると、PCI Express デザイン例用のマルチチャネル DMA IP プロジェクト・フォルダーに作成されます。ソフトウェア・コンフィギュレーションは、 インテル® Quartus® Primeで生成されたサンプル デザインに固有のものです。
図 33. ソフトウェアのフォルダー構造
| ドライバー | 詳細 | ユースケース/アプリケーション |
|---|---|---|
| Custom |
|
カスタム API でこのドライバーを使用する独自のユーザー空間プラットフォームがある場合。 API 情報は、このユーザーガイドで共有されます。 例: DMA 機能を必要とするユーザー空間アプリケーション。 |
| DPDK |
|
DPDK をプラットフォームとして使用する場合、この PMD を DPDK フレームワークと統合して DMA を実行できます。 例: DPDK ベースの NFV アプリケーション |
| Kernel mode (No SRIOV) |
|
open、close、poll、read、write、readv、writev などの chardev API を使用する場合は、このドライバーを使用できます。 例: ファイル固有の操作を使用するアプリケーション。 |
| Netdev |
|
すべての TCP/IP アプリケーションがこのドライバーを使用できます。 iperf、 ネット・パフォーマンス、 スケイピー このドライバーを使用します。 |