Error Aggregator - 4.0 English

QDMA Subsystem for PCI Express Product Guide (PG302)

Document ID
PG302
Release Date
2022-05-20
Version
4.0 English

There are Leaf Error Aggregators in different places. They log the errors and propagate them to the central place. The Central Error Aggregator aggregates the errors from all of the Leaf Error Aggregators.

The QDMA_GLBL_ERR_STAT register is the error status register of the Central Error Aggregator. The bit fields indicate the locations of Leaf Error Aggregators. Then, look for the error status register of the individual Leaf Error Aggregator to find the exact error.

The register QDMA_GLBL_ERR_MASK is the error mask register of the Central Error Aggregator. It has the mask bits for the corresponding errors. When the mask bit is set to 1'b1, it will enable the corresponding error to be propagated to the next level to generate an Interrupt. The detail information of the error generated interrupt is described in the interrupt section. Error interrupt is controlled by the register QDMA_GLBL_ERR_INT (0xB04).

Each Leaf Error Aggregator has an error status register and an error mask register. The error status register logs the error. The hardware sets the bit when the error happens, and the software can write 1'b1 to clear the bit if needed. The error mask register has the mask bits for the corresponding errors. When the mask bit is set to 1'b1, it will enable the propagation of the corresponding error to the Central Error Aggregator. The error mask register does not affect the error logging to the error status register.

Figure 1. Error Aggregator

The error status registers and the error mask registers of the Leaf Error Aggregators are as follows.

C2H Streaming Error

  • QDMA_C2H_ERR_STAT (0xAF0): This is the error status register of the C2H streaming errors.
  • QDMA_C2H_ERR_MASK (0xAF4): This the error mask register. The software can set the bit to enable the corresponding C2H streaming error to be propagated to the Central Error Aggregator.
  • QDMA_C2H_FIRST_ERR_QID (0xB30): This is the Qid of the first C2H streaming error.

C2H MM Error

  • QDMA_C2H MM Status (0x1040)
  • C2H MM Error Code Enable Mask (0x1054)
  • C2H MM Error Code (0x1058)
  • C2H MM Error Info (0x105C)

QDMA H2C0 MM Error

  • H2C0 MM Status (0x1240)
  • H2C MM Error Code Enable Mask (0x1254)
  • H2C MM Error Code (0x1258)
  • H2C MM Error Info (0x125C)

TRQ Error

  • QDMA_GLBL_TRQ_ERR_STS (0x264): This is the error status register of the Trq errors.
  • QDMA_GLBL_TRQ_ERR_MSK (0x268): This is the error mask register.
  • QDMA_GLBL_TRQ_ERR_LOG_A (0x26C): This is the error logging register. It shows the select, function and the address of the access when the error happens.

Descriptor Error

  • QDMA_GLBL_DSC_ERR_STS (0x254)
  • QDMA_GLBL_DSC_ERR_MSK (0x258): This is the error logging register. It has the QID, DMA direction, and the consumer index of the error.
  • QDMA_GLBL_DSC_ERR_LOG0 (0x25C)
  • QDMA_GLBL_TRQ_ERR_STS (0x264): This is the error status register of the TRQ errors.

RAM Double Bit Error

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

RAM Single Error

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