对于卡到主机传输,数据接收自 AXI4-Stream 接口并写入目标地址。数据包可跨多个描述符。C2H 通道启用时即可接受数据,并具有有效的描述符。接收到数据后,就会按顺序填充描述符。当描述符完成填充或者由于接口上出现包结束而导致描述符关闭后,C2H 通道会将信息写回含预定义的 WB Magic 值 16'h52b4
(表 2) 的主机上的写回地址,并对 EOP 和长度 (Length) 进行相应的更新。对于 C2H AXI4-Stream 接口上的有效数据周期,与给定数据包关联的所有数据都必须连续。
对于任一数据包的所有传输(最后一次数据传输除外)而言,tkeep
位必须全部为 1。在执行数据包的最后一次传输时,当 tlast
断言有效时,可指定 tkeep
不全为 1,以指定该数据周期并非完整的数据路径宽度。断言有效的 tkeep
位需打包到 lsb 中以表示连续数据。当 tlast
断言有效并且所有 0 位均开启时,tkeep
并非有效组合,无法使 DMA 正常工作。
C2H 串流描述符的长度(目标缓冲器的大小)必须始终为 64 字节的倍数。
偏移 | 字段 | ||
---|---|---|---|
0x0 | WB Magic[15:0] | Reserved [14:0] | Status[0] |
0x04 | Length[31:0] |
字段 | 位索引 | 子字段 | 描述 |
---|---|---|---|
Status | 0 | EOP | 包结束 |
Reserved | 14:0 | 保留 | |
WB Magic | 15:0 | 16'h52b4。此代码用于验证 C2H 写回是否有效。 | |
Length | 31:0 | 数据长度(以字节为单位)。 |
注释: C2H 串流写回地址无法跨越 4K 边界。