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

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

7.2.2.2. 写DMA内部描述符控制器寄存器

表 71.  写DMA内部描述符控制器寄存器以下表格介绍内部写DMA描述符控制器中的寄存器并指定其偏移。当外部例化DMA描述符控制器后,通过用户指定的BAR访问这些寄存器。必须将此偏移添加到写DMA描述符控制器基地址,WrDC_SLV_ADDR中。当内部例化写DMA描述符控制器后,就通过BAR0访问这些寄存器。写DMA描述符控制器寄存器开始于偏移0x0100。

地址偏移

寄存器

访问

描述

复位值

0x0000

Write Status and Descriptor Base (Low)

R/W

指定 PCIe* 系统存储器的写状态和描述符列表基地址的较低32位。该地址必须位于32字节边界。

未知

0x0004

Write Status and Descriptor Base (High)

R/W

指定 PCIe* 系统存储器中写状态和描述符列表的基地址较高32位。

未知

0x0008

Write Status and Descriptor FIFO Base (Low)

RW

指定Endpoint存储器中写描述符FIFO基地址的较低32位。该地址为描述符控制器Write Descriptor Table Avalon-MM Slave Port的Avalon-MM地址,且与Write Data Mover Avalon-MM Master Port所见地址相同。

未知

0x000C

Write Status and Descriptor FIFO Base (High)

RW

指定Endpoint存储器中写描述符FIFO基地址的较高32位。该地址为描述符控制器Write Descriptor Table Avalon-MM Slave Port的Avalon-MM地址,且与Write Data Mover Avalon-MM Master Port所见地址相同。

未知

0x0010

WR_DMA_LAST_PTR

RW

[31:8]:保留。

[7:0]: DescriptorID.

读取时,返回所请求最后一个描述符的ID。如果无未处理的DMA请求或者DMA处于复位中,则返回值0xFF。

写入时,指定所请求最后一个描述符的ID。读取值和写入值的不同在于待处理的描述符个数。

例如,读取值为4,所请求的最后一个描述符就为4。要多指定5个描述符,软件应将9写入WR_DMA_LAST_PTR寄存器。DMA就执行另外5个描述符。

要使读DMA记录每个描述符的Update位,编程该寄存器以每次仅传送一个描述符,或设置RD_CONTROL寄存器中的Update位。

达到WR_TABLE_SIZE后,描述符ID环回到0。

若要处理多于RD_TABLE_SIZE - RD_DMA_LAST_PTR的指针,则必须分两步进行。首先,通过写入与WR_TABLE_SIZE中相同的值,使指针符合WR_TABLE_SIZE,并等待该处理完成。然后,将剩余描述符的数量写入WR_DMA_LAST_PTR

要使写DMA记录每个描述符的Status Update位,编程此寄存器每次仅传送一个描述符。

[31:8]: 未知

[7:0]:0xFF

0x0014 WR_TABLE_SIZE

RW

[31:7]: 保留。

[6:0]: Size -1.

该寄存器为用户提供指定小于128个条目默认大小列表的灵活性。较小尺寸可节省存储空间。用所需值-1编程该寄存器。

该值指定最后一个Descriptor ID

[31:7]: 未知

[6:0]: 0x7F

0x0018 WR_CONTROL

RW

[31:1]: 保留。

[0]: Update

控制描述符如何处理报告的状态。设置Update位后,返回每个已处理描述符的状态。如果未设置该位,则仅发回WR_DMA_LAST_PTR 寄存器中最近一个条目的状态。

[31:1]: 未知

[0]: 0x0