L-tile和H-tile Avalon® 存储器映射 Intel® FPGA IP PCI Express* 用户指南

ID 683667
日期 11/11/2021
Public
文档目录

8. DMA描述符控制器的编程模型

Avalon-MM DMA Bridge模块包含一个可选DMA Descriptor Controller。使能该Descriptor Controller时,则必须遵循预定义的编程模型。编程模型包括如下步骤:

  1. 准备 PCIe* 系统存储器内的描述符列表,如下图所示。
    图 58. 描述符列表样本
  2. 编程描述符列表,提供所有描述符的源地址和目的地址以及大小。
  3. 对于单个描述符上的中间状态更新,也需要编程RD_CONTROLWR_CONTROL Update位。请参阅关于描述符的读DMA内部描述符控制器寄存器写DMA内部描述符控制器寄存器小节了解这些“位”。
  4. 告知DMA Descriptor Controller指示Read Data Mover将列表复制到其内部FIFO。
  5. 在通过其他描述符重编程描述符列表之前,请等待MSI中断发出最后一个描述符完成的信号。在最后一个描述符完成前,不可更新描述符列表。

配置实例如下:

  • Endpoint,包含具有DMA IP核的 Avalon® -MM Bridge
  • 内部DMA描述符控制器
  • 非突发 Avalon® -MM从接口

主机软件可编程 Avalon® -MM DMA Bridge的BAR0非突发Avalon-MM主端口以写入DMA Descriptor Controller内部寄存器。该编程为DMA Descriptor Controller提供针对PCIe Read和Write Data Mover生成DMA指示的必要信息。DMA Descriptor Controller通过Avalon-MM DMA Bridge的非突发Avalon-MM从接口将DMA状态发送到主机。DMA Descriptor Controller的非突发Avalon-MM主从接口均为内部接口,不能另作他用。

注: 使能内部DMA Descriptor Controller时,仅可使用BAR0编程内部DMA Descriptor Controller。使用BAR0时,将其作为非预可取处理。