2.2.2. HPS EMAC Rx interface stuck in unresponsive state
Description
The HPS EMAC RX might become unresponsive for the following network conditions:
- Line Rate: 1Gbps
- Feature: Hardware Timestamp for Precision Time Protocol (PTP) enabled
- Packet Types: Back-to-back (b2b) packets, multicast packets, or any packet with the least significant bit (LSB) set to '1' in the header of the next packet
When receiving network packets with the above conditions, the EMAC interface might become blocked, as indicated by the EMAC DMA Register 5 (Status Register) (dmagrp_status at offset 0x1014). The signature of this error is when the following bits are set in the Status Register:
- Bit 19:17: “3'b100: SUSPEND - Suspended: Receive Descriptor Unavailable”
- Bit 22:20: “3'b110: SUSPTX - Suspended; Transmit Descriptor Unavailable or Transmit Buffer Underflow”
- Bit 25:23: “0 0 0: Error during Rx DMA Write Data Transfer”
The issue occurs when the status of an earlier packet has not yet been forwarded, and bit 0 of the first word of the next packet read from the Rx FIFO has a value of ‘1’. This sequence causes the internal state machine to hang.
The issue can be triggered by sending User Datagram Protocol (UDP) data packets and PTP traffic with hardware timestamping enabled on the device.
Impact
Under high traffic conditions, this issue can impact the functionality of the EMAC, potentially causing network communication disruptions.
Workaround
To mitigate this issue for 1Gbps line rate, you should use software-based timestamping instead of the hardware timestamp feature. If hardware PTP is required, use 10Mbps or 100Mbps line rate. For other use cases that match this error signature, try using the 10Mbps/100Mbps line rate.
Status
Devices Affected | Planned Fix |
---|---|
Agilex 7 production devices with HPS:
|
None |