错误中断 - 4.0 简体中文

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

Document ID
PG302
Release Date
2022-05-20
Version
4.0 简体中文

有多个 Leaf Error Aggregator(叶节点错误聚合器)位于不同位置。这些聚合器用于记录错误,并将错误传输到中央错误聚合器。每个叶节点错误聚合器都包含错误状态寄存器和错误掩码寄存器。错误掩码是使能掩码。错误状态寄存器始终都会记录错误,与使能掩码值无关。仅当启用错误掩码时,叶节点错误聚合器才会将错误传输至中央错误聚合器。

中央错误聚合器会将所有错误聚合在一起。发生任何错误时,如果在错误中断寄存器 QDMA_GLBL_ERR_INT (0B04) 中,err_int_arm 位已置位,那么中央错误聚合器就会生成 Error Interrupt(错误中断)。当中断引擎提取错误中断时,err_int_arm 位由软件置位,并由硬件清零。错误中断适用于所有错误,包括 H2C 错误和 C2H 错误。软件必须对该 err_int_arm 位进行置位,才能再次生成中断。

错误中断仅支持直接中断。寄存器 QDMA_GLBL_ERR_INT bit[23] en_coal 必须始终编程为 0(直接中断)。

错误中断会从错误中断寄存器 QDMA_GLBL_ERR_INT 获取矢量。对于直接中断,该矢量是 MSI-X 表的中断矢量索引。

错误中断的进程如下。

  1. 读取错误中断寄存器 QDMA_C2H_GLBL_INT (0B04) 以获取功能和矢量编号。
  2. 传出 PCIe MSI-X 报文。

下图显示了错误中断寄存器模块框图。

图 1. 错误中断处理