Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

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

5.1.6.2.11.1. TX DMA Bus Error Handling Flow

If bus error is detected by EMAC while fetching the TX descriptors from system memory, it stops fetching descriptors and ignores descriptors that are yet to be fetched as a part of burst. However, it processes all the normal pre-fetched descriptors (if any) in the descriptor cache memory. While processing the descriptor where the bus error is detected, the packet transfer is terminated forcibly along with a control to tag, which enables MAC transmitter to automatically insert CRC error for that packet. The EMAC completes pending outstanding read requests on the TX channel. Also, it makes an attempt to close the descriptor with the error status (bit[27] of TDES3) and then automatically stops the corresponding TX DMA channel.

If bus error is detected by the EMAC while transferring TX packet data from system memory, it stops fetching descriptors, stops packet data reads and ignores descriptors that are yet to be fetched as a part of burst. The packet transfer is also terminated forcibly along with a control to tag which enables MAC transmitter to automatically insert CRC error for that packet. It completes pending outstanding read requests on the TX channel. Also, the EMAC makes an attempt to close the descriptor with the error status (bit[27] of TDES3) and then automatically stops the corresponding TX DMA channel.

If bus error is detected by the EMAC while writing back the descriptor to the system memory, it stops fetching descriptors, stops packet data reads and ignores descriptors yet to be fetched as a part of burst. The packet transfer is also terminated forcibly along with a control to tag which enables MAC transmitter to automatically insert CRC error for that packet. It completes pending outstanding read requests on the TX channel. Then it stops the corresponding TX DMA channel. In this case the error status (bit[27] of TDES3) write may not be successful as bus error is detected while writing back the descriptor itself.

When a TX DMA channel is stopped by the EMAC due to bus error, the software driver is expected to follow the steps as described in Handling Bus Errors and Recovery.