QDMA 描述符旁路输入端口 - 5.0 简体中文

QDMA Subsystem for PCI Express 产品指南 (PG302)

Document ID
PG302
Release Date
2023-05-16
Version
5.0 简体中文
表 1. QDMA H2C 串流旁路输入端口描述
端口名称 I/O 描述
h2c_byp_in_st_addr [63:0] I DMA 传输的 64 位起始地址。
h2c_byp_in_st_len [15:0] I 要传输的字节数。
h2c_byp_in_st_sop I 指示包起始。针对第一个描述符置位。针对描述符的剩余部分复位。
h2c_byp_in_st_eop I 指示包结束。针对最后一个描述符置位。针对描述符的剩余部分复位。
h2c_byp_in_st_sdi I H2C 旁路输入状态描述符/中断

如果设置此端口,则将其视为用户应用指示 QDMA 将状态描述符发送到主机,并在 QDMA 提取与此描述符关联的数据的最后一个字节时向主机生成中断。仅当已在 H2C SW 上下文中为此 QID 启用中断,并且驱动程序已装备中断时,QDMA 才会遵循请求以生成中断。只能为 EOP 描述符设置此项。

如果最后一个没有 h2c_byp_in_st_sdi 的描述符存在错误,那么 QDMA 将挂起。这会导致写回和 hw_ctxt.dsc_pend 位两者均缺失并且无限期断言有效。变通方法是发送一个长度为零的描述符,以触发完成 (CMPT) 状态。

h2c_byp_in_st_mrkr_req I H2C 旁路输入标记请求

置位后,描述符在 H2C 引擎流水线中传递,完成后,在队列状态端口 接口上生成标记响应。只能为 EOP 描述符设置此项。

h2c_byp_in_st_no_dma I H2C 旁路输入无 DMA

当通过此接口传入描述符并将此信号断言有效时,它会通知 QDMA 不要发送针对该描述符的任何 PCIe 请求。由于没有传出任何 PCIe 请求,因此 H2C 串流输出接口上不会发出任何对应的 DMA 数据。

此端口通常与 h2c_byp_in_st_sdi 结合使用,这样当用户逻辑已用完实际描述符并且仍要驱动 h2c_byp_in_st_sdi 信号时,就会导致状态描述符/中断。

如果在传入非 DMA 描述符时将 h2c_byp_in_st_mrkr_req 和 h2c_byp_in_st_sdi 复位,则描述符将作为 NOP 来处理,并完全在 QDMA 内部使用,不会产生任何接口活动。

如果设置了 h2c_byp_in_st_no_dma,那么必须设置 h2c_byp_in_st_sop 和 h2c_byp_in_st_eop。

如果设置了 h2c_byp_in_st_no_dma,那么 QDMA 将忽略此接口的地址和长度字段。

h2c_byp_in_st_qid [10:0] I 与 H2C 描述符环关联的 QID。
h2c_byp_in_st_error I 通过对该位进行置位即可指示队列中存在错误。此描述符将不予处理。将更新上下文以反映队列中的错误。
h2c_byp_in_st_func [7:0] I PCIe 功能 ID
h2c_byp_in_st_cidx [15:0] I 此 CIDX 将用于状态描述符更新和/或中断(聚合模式)。通常,在从描述符旁路输出接口接收到 CIDX 后,它就应保持不变。
h2c_byp_in_st_port_id [2:0] I QDMA 端口 ID
h2c_byp_in_st_vld I 有效。High 表示描述符有效,一个脉冲针对一个描述符。
h2c_byp_in_st_rdy O 已准备好接收描述符
表 2. QDMA H2C-MM 描述符旁路输入端口描述
端口名称 I/O 描述
h2c_byp_in_mm_radr[63:0] I DMA 数据的读取地址。
h2c_byp_in_mm_wadr[63:0] I DMA 数据的写入地址。
h2c_byp_in_mm_no_dma I

H2C 旁路输入无 DMA

当通过此接口传入描述符并将此信号断言有效时,此信号会通知 QDMA 不要发送针对该描述符的任何 PCIe 请求。由于没有传出任何 PCIe 请求,因此 H2C MM 输出接口上不会发出任何对应的 DMA 数据。

此端口通常与 h2c_byp_in_mm_sdi 结合使用,这样当用户逻辑已用完实际描述符并且仍要驱动 h2c_byp_in_mm_sdi 信号时,就会导致出现状态描述符/中断。

如果在传入非 DMA 描述符时将 h2c_byp_in_mm_mrkr_req 和 h2c_byp_in_mm_sdi 复位,则描述符将作为“无操作”(NOP) 来处理,并完全在 QDMA 内部使用,不会产生任何接口活动。

如何设置了 h2c_byp_in_mm_no_dma,那么 QDMA 将忽略地址。长度字段应设置为 0。

h2c_byp_in_mm_len[27:0] I DMA 数据长度。

高 12 位必须绑定到 0。因此,只有该字段的低 16 位可用于指定长度。

h2c_byp_in_mm_sdi I

H2C-MM 旁路输入状态描述符/中断

如果设置此端口,则将其视为用户指示 QDMA 将状态描述符发送到主机,并在 QDMA 提取与此描述符关联的数据的最后一个字节时向主机生成中断。仅当已在 H2C 环上下文中为此 QID 启用中断,并且驱动程序已装备中断时,QDMA 才会遵循请求以生成中断。

如果最后一个没有 h2c_byp_in_mm_sdi 的描述符存在错误,那么 QDMA 将挂起。这会导致写回和 hw_ctxt.dsc_pend 位两者均缺失并且无限期断言有效。变通方法是发送一个长度为零的描述符,以触发完成 (CMPT) 状态。

h2c_byp_in_mm_mrkr_req I

H2C-MM 旁路输入标记请求

表示用户指示 QDMA,一旦完成此描述符的数据传输,就必须向用户发送完成状态。

h2c_byp_in_mm_qid [10:0] I 与 H2C 描述符环关联的 QID。
h2c_byp_in_mm_error I 通过对该位进行置位即可指示队列中存在错误。此描述符将不予处理。将更新上下文以反映队列中的错误。
h2c_byp_in_mm_func [7:0] I PCIe 功能 ID
h2c_byp_in_mm_cidx [15:0] I 此 CIDX 将用于状态描述符更新和/或中断(聚合模式)。通常,在从描述符旁路输出接口接收到 CIDX 后,它就应保持不变。
h2c_byp_in_mm_port_id [2:0] I QDMA 端口 ID
h2c_byp_in_mm_vld I 有效。High 表示描述符有效,一个脉冲针对一个描述符。
h2c_byp_in_mm_rdy O 已准备好接收描述符
表 3. QDMA C2H 串流旁路输入端口描述 1
端口名称 I/O 描述
c2h_byp_in_st_csh_addr [63:0] I DMA 在当前指定的 64 位地址中写入数据。
c2h_byp_in_st_csh_qid [10:0] I 与 C2H 描述符环关联的 QID。
c2h_byp_in_st_csh_error I 通过对该位进行置位即可指示队列中存在错误。此描述符将不予处理。将更新上下文以反映队列中的错误。
c2h_byp_in_st_csh_func [7:0] I PCIe 功能 ID
c2h_byp_in_st_csh_port_id[2:0] I QDMA 端口 ID
c2h_byp_in_st_csh_pfch_tag[6:0] I 预取标签。预取标签指向用于在预取引擎中存储活动队列的 CAM。采用高速缓存旁路模式时,必须将 c2h_byp_out_pfch_tag[6:0] 环回到 c2h_byp_in_st_csh_pfch_tag[6:0]。采用简单旁路模式时,用户需要从 MDMA_C2H_PFCH_BYP_TAG (0x140C) 寄存器传入预取标签值。
c2h_byp_in_st_csh_vld I 有效。High 表示描述符有效,一个脉冲针对一个描述符。
c2h_byp_in_st_csh_rdy O 已准备好接收描述符。
  1. AXI4‑Stream C2H 简单旁路模式和高速缓存旁路模式使用相同的旁路端口 c2h_byp_in_st_csh_*。
表 4. QDMA C2H-MM 描述符旁路输入端口描述
端口名称 I/O 描述
c2h_byp_in_mm_raddr [63:0] I DMA 数据的读取地址。
c2h_byp_in_mm_wadr[63:0] I DMA 数据的写入地址。
c2h_byp_in_mm_no_dma I

C2H 旁路输入无 DMA

当通过此接口传入描述符并将此信号断言有效时,此信号会通知 QDMA 不要发送针对该描述符的任何 PCIe 请求。由于没有传出任何 PCIe 请求,因此不会从 C2H MM 接口读取任何对应的 DMA 数据。

此端口通常与 c2h_byp_in_mm_sdi 结合使用,这样当用户逻辑已用完实际描述符并且仍要驱动 c2h_byp_in_mm_sdi 信号时,就会导致出现状态描述符/中断。

如果在传入非 DMA 描述符时将 c2h_byp_in_mm_mrkr_req 和 c2h_byp_in_mm_sdi 复位,则描述符将作为 NOP 来处理,并完全在 QDMA 内部使用,不会产生任何接口活动。

如何设置了 c2h_byp_in_mm_no_dma,那么 QDMA 将忽略地址。长度字段应设置为 0。

c2h_byp_in_mm_len[27:0] I DMA 数据长度
c2h_byp_in_mm_sdi I

C2H 旁路输入状态描述符/中断

如果设置此端口,则将其视为用户指示 QDMA 将状态描述符发送到主机,并在 QDMA 提取与此描述符关联的数据的最后一个字节时向主机生成中断。仅当已在 C2H 环上下文中为此 QID 启用中断,并且驱动程序已装备中断时,QDMA 才会遵循请求以生成中断。

c2h_byp_in_mm_mrkr_req I

C2H 旁路输入标记请求

表示用户指示 QDMA,一旦完成此描述符的数据传输,就必须向用户发送完成状态。

c2h_byp_in_mm_qid [10:0] I 与 C2H 描述符环关联的 QID
c2h_byp_in_mm_error I 通过对该位进行置位即可指示队列中存在错误。此描述符将不予处理。将更新上下文以反映队列中的错误。
c2h_byp_in_mm_func [7:0] I PCIe 功能 ID
c2h_byp_in_mm_cidx [15:0] I 用户必须回显它在旁路输出接口上收到的描述符中的 CIDX。
c2h_byp_in_mm_port_id[2:0] I QDMA 端口 ID
c2h_byp_in_mm_vld I 有效。High 表示描述符有效,一个脉冲针对一个描述符。
c2h_byp_in_mm_rdy O 已准备好接收描述符。