仅对英特尔可见 — GUID: ggu1487286793828
Ixiasoft
仅对英特尔可见 — GUID: ggu1487286793828
Ixiasoft
7.2.2.1. 读DMA内部描述符控制器寄存器
内部Read DMA Descriptor寄存器提供以下信息:
- 主机存储器中描述符列表的原始位置。
- 描述符列表在内部端点读控制器FIFO存储器中的必要位置。
- 列表大小。最大为128个条目。每条目32字节。存储器需要4096 KB。
- 追踪DMA描述符完成的其他字段。
选择内部例化的Descriptor Controller时,通过Read Descriptor Controller Slave访问这些寄存器。选择外部例化的Descriptor Controller时,通过BAR0访问这些寄存器。Endpoint读控制器FIFO位于偏移0x0000
下表介绍内部Read DMA Descriptor Controller中的寄存器以及指定其地址偏移。可通过Read Descriptor Controller Slave访问这些寄存器。当您选择外部例化的DMA Descriptor Controller时,可使用用户定义BAR访问这些寄存器。同时软件必须将地址偏移添加到Read DMA Descriptor Controller的基地址,RdDC_SLV_ADDR。选择内部Descriptor Controller时,通过BAR0访问这些寄存器。Read DMA Descriptor Controller寄存器开始于偏移0x0000。
地址偏移 |
寄存器 |
访问 |
描述 |
复位值 |
---|---|---|---|---|
0x0000 |
Read Status and Descriptor Base (Low) | RW |
指定 PCIe* 系统存储器中读状态和描述符列表基地址的较低32位。该地址必须位于32字节边界。 |
未知 |
0x0004 |
Read Status and Descriptor Base (High) | RW |
指定 PCIe* 系统存储器中读状态和描述符列表的基地址较高32位。 |
未知 |
0x0008 |
Read Descriptor FIFO Base (Low) | RW |
指定Endpoint存储器中读描述符FIFO基地址的较低32位。该地址必须为描述符控制器Read Descriptor Table Avalon-MM Slave Port的Avalon-MM地址,且与Read Data Mover Avalon-MM Master Port所见地址相同。 |
未知 |
0x000C |
Read Descriptor FIFO Base (High) | RW |
指定Endpoint Avalon-MM存储器中读描述符FIFO基地址的较高32位。该地址必须为描述符控制器Read Descriptor Table Avalon-MM Slave Port的Avalon-MM地址,且与Read Data Mover Avalon-MM Master Port所见地址相同。 |
未知 |
0x0010 |
RD_DMA_LAST_PTR | RW |
[31:8]:保留。 [7:0]: DescriptorID. 读取时,返回所请求最后一个描述符的ID。如果DMA处于复位中,就返回一个值0xFF。 写入时,指定所请求最后一个描述符的ID。读取值和写入值的不同在于待处理的描述符个数。 例如,读取值为4,所请求的最后一个描述符就为4。要多指定5个描述符,软件应将9写入RD_DMA_LAST_PTR寄存器。DMA执行另外5个描述符。 要使读DMA记录每个描述符的Update位,编程该寄存器以每次仅传送一个描述符,或设置RD_CONTROL寄存器中的Update位。 达到RD_TABLE_SIZE后,描述符ID环回到0。 若要处理多于RD_TABLE_SIZE - RD_DMA_LAST_PTR的指针,就必须分两步进行。首先,通过写入与RD_TABLE_SIZE中相同的值,使指针符合RD_TABLE_SIZE,并等待该处理完成。然后,将剩余描述符的数量写入RD_DMA_LAST_PTR。 |
[31:8]: 未知 [7:0]:0xFF |
0x0014 | RD_TABLE_SIZE | RW |
[31:7]:保留。 [6:0]: Size -1. 该寄存器提供的列表小于128个条目的默认大小。较小尺寸可节省存储空间。用所需值-1编程该寄存器。 该值指定最后一个Descriptor ID。 |
[31:7]: 未知 [6:0]: 0x7F |
0x0018 | RD_CONTROL | RW |
[31:1]:保留。 [0]: Update. 控制如何处理所报告的描述符状态。设置Update位后,返回每个已处理描述符的状态。如果未设置该位,则仅发回RD_DMA_LAST_PTR寄存器中最近一个条目的状态。 默认值为0。 |
[31:1]: 未知 [0]: 0x0 |