错误聚合器 - 5.0 简体中文

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

Document ID
PG302
Release Date
2023-05-16
Version
5.0 简体中文

有多个 Leaf Error Aggregator(叶节点错误聚合器)位于不同位置。它们用于记录各种错误,并将其传输到集中位置。“Central Error Aggregator”(中央错误聚合器)用于聚合来自所有叶节点错误聚合器的错误。

QDMA_GLBL_ERR_STAT 寄存器是中央错误聚合器的错误状态寄存器。位字段用于指示叶节点错误聚合器的位置。随后,通过查找各叶节点错误聚合器的错误状态寄存器来找到精确错误。

寄存器 QDMA_GLBL_ERR_MASK 是中央错误聚合器的错误掩码寄存器。其中具有对应错误的掩码位。当掩码位设为 1'b1 时,它将启用对应错误,将其传输至下一级以生成中断。在中断部分会描述生成中断的错误的详细信息。错误中断由寄存器 QDMA_GLBL_ERR_INT (0xB04) 控制。

每个叶节点错误聚合器都包含错误状态寄存器和错误掩码寄存器。错误状态寄存器用于记录错误。发生错误时,硬件会对该位进行置位,软件可按需写入 1'b1 以将该位清零。错误掩码寄存器具有对应错误的掩码位。掩码位设为 1'b1 时,它将启用将对应错误传输至中央错误聚合器的操作。错误掩码寄存器不影响将错误记录到错误状态寄存器的操作。

图 1. 错误聚合器

叶节点错误聚合器的错误状态寄存器和错误掩码寄存器如下。

C2H 串流错误

  • QDMA_C2H_ERR_STAT (0xAF0):这是 C2H 串流错误的错误状态寄存器。
  • QDMA_C2H_ERR_MASK (0xAF4):这是错误掩码寄存器。软件可对该位进行置位,以启用将对应 C2H 串流错误传输到中央错误聚合器的操作。
  • QDMA_C2H_FIRST_ERR_QID (0xB30):这是第一个 C2H 串流错误的 QID。

C2H MM 错误

  • QDMA_C2H MM 状态 (0x1040)
  • C2H MM 错误代码使能掩码 (0x1054)
  • C2H MM 错误代码 (0x1058)
  • C2H MM 错误信息 (0x105C)

QDMA H2C0 MM 错误

  • H2C0 MM 状态 (0x1240)
  • H2C MM 错误代码使能掩码 (0x1254)
  • H2C MM 错误代码 (0x1258)
  • H2C MM 错误信息 (0x125C)

TRQ 错误

  • QDMA_GLBL_TRQ_ERR_STS (0x264):这是 Trq 错误的错误状态寄存器。
  • QDMA_GLBL_TRQ_ERR_MSK (0x268):这是错误掩码寄存器。
  • QDMA_GLBL_TRQ_ERR_LOG_A (0x26C):这是错误记录寄存器。它显示错误发生时的地址的选择、功能和访问。

描述符错误

  • QDMA_GLBL_DSC_ERR_STS (0x254)
  • QDMA_GLBL_DSC_ERR_MSK (0x258):这是错误记录寄存器。它具有 QID、DMA 方向,以及错误的使用者索引。
  • QDMA_GLBL_DSC_ERR_LOG0 (0x25C)
  • QDMA_GLBL_TRQ_ERR_STS (0x264):这是 TRQ 错误的错误状态寄存器。

RAM 双位错误

  • QDMA_RAM_DBE_STS_A (0xFC)
  • QDMA_RAM_DBE_MSK_A (0xF8)

RAM 单位错误

  • QDMA_RAM_SBE_STS_A (0xF4)
  • QDMA_RAM_SBE_MSK_A (0xF0)