Error conditions that flush the receive buffer, Error conditions flagged for the transport layer – Altera RapidIO MegaCore Function User Manual
Page 61
Chapter 4: Functional Description
4–15
Physical Layer
August 2014
Altera Corporation
RapidIO MegaCore Function
User Guide
You can specify a value of 4, 8, 16, or 32 KBytes to configure the receive buffer size in
non-Arria 10 variations. RapidIO Arria 10 varations have a receive buffer size of 32
KBytes. The receiver buffer is partitioned into 64-byte blocks that are allocated from a
free queue and returned to the free queue when no longer needed. The IP core
provides the current number of 64-byte blocks in the free queue in the arxwlevel
output signal.
As many as five 64-byte blocks may be required to store a packet.
Error Conditions that Flush the Receive Buffer
The following fatal errors cause the receive buffer to be flushed and any stored
packets to be lost:
■
Receive a port-response control symbol with the port_status set to Error.
■
Receive a port-response control symbol with the port_status set to OK but the
ackid_status
set to an ackID that is not pending (transmitted but not
acknowledged yet).
■
Transmitter times out while waiting for link-response.
■
Receiver times out while waiting for link-request.
The following event also causes the receive buffer to be flushed, and any stored
packets to be lost:
■
Receive four consecutive link-request control symbols with the cmd set to reset-
device
.
Error Conditions Flagged for the Transport Layer
The Physical layer passes data from the receive buffer to the Transport layer in 64-
Kbyte blocks. The Physical layer might identify an error condition after it begins
passing a packet from the receive buffer to the Transport layer. In that case, the
Physical layer flags an Errored packet indication to the Transport layer. The Physical
layer flags an Errored packet in the following cases:
■
CRC error—when a CRC error is detected, the packet_crc_error signal is asserted
for one rxclk clock period. If the packet size is at least 64 bytes, the Physical layer
flags the error. If the packet size is less than 64 bytes, the Physical layer identifies
and drops the errored packet before it begins sending the packet to the Transport
layer.
■
Stomp—the Physical layer flags an error if it receives a stomp control symbol in the
midst of a packet, causing the packet to be prematurely terminated.
■
Packet size—if a received packet exceeds the allowable size, the Physical layer cuts
it short to the maximum allowable size (276 bytes total), and flags the error.
■
Outgoing symbol buffer full—under some congestion conditions, the outgoing
symbol buffer has no space available for the packet_accepted control symbol. In
this case, the RapidIO IP core cannot acknowledge the packet, and the link partner
must retry transmission. The Physical layer flags an error to indicate to the
Transport layer that it should ignore the received packet because it will be retried.