- 设计示例具有对应 H2C 和 C2H 引擎的预定义描述符。
- H2C 描述符包含 128 字节的数据、源地址(主机)和目标地址(卡)。
- C2H 描述符包含 128 字节的数据、源地址(卡)和目标地址(主机)。
- 测试案例会向主机存储器源地址写入 128 字节的增量数据。
- PIO 会写入 C2H 引擎控制寄存器以启动传输 (
0x1004
)。 - C2H 引擎会启动 DMA 传输,但等待数据(环回设计)。
- PIO 会写入 H2C 引擎控制寄存器以启动传输 (
0x0004
)。 - H2C 引擎会从主机地址读取数据,并将其发送到卡。
- 此数据将环回至 C2H 引擎。
- C2H 引擎会从卡读取数据,并将其发送到主机目标地址。
- 测试案例会比较数据,确认是否正确。
- 测试案例会检查 H2C 和 C2H 描述符的完成计数(值为 1)。
- 随后,测试案例会通过将 H2C 和 C2H 引擎的控制寄存器
0x0004
和0x1004
中的 Run 位(位 0)断言无效,以禁用传输。
当传输开始后,通过描述符旁路接口传输 1 个 H2C 描述符和 1 个 C2H 描述符,然后按上文所述方式执行 DMA 传输。仅针对 64 字节的传输设置描述符。