Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.8.7.6.7. Error Recovery Flow

The I3C master read or write transactions by I3C slave controller can encounter an error condition while transmitting or receiving data from the I3C master. The transfer error interrupt (TRANSFER_ERR_STAT bit in INTR_STATUS register) is set whenever the slave controller encounters an error condition.

Depending on Response Queue status level the RESP_READY_STAT interrupt might be set if the error response fulfills the Response Queue threshold value. If the RESP_READY_STAT interrupt is not set, the slave application must read the RESP_BUF_BLR value to understand how many responses are present in the Response Queue. The last response in the Response Queue is the error response. The slave application must read all the responses from the Response Queue and for the last response it should analyze the ERR_STATUS field of the response. In case the ERR_STATUS field indicates overflow, parity, or CRC error, the slave application must flush the RX FIFO. In case of DMA mode of operation, it must also reset the external DMA. The slave controller NACKs all transfers once it has encountered an error until RESUME bit is set in the DEVICE_CTRL register from the slave application and until the error status is cleared from the CCC_DEVICE_STATUS register by GETSTATUS CCC. For any other error status like underflow error or master early termination, the slave application is expected to reset the TX FIFO and CMD FIFO before applying the resume in DEVICE_CTRL register.

Figure 203. Error Recovery Flow