www.ti.com
Switch
Switch
Endpoint
Endpoint
C0
C0
B0
B0
B2
B2
A1
A1
B1
B1
A0
A0
Open
Open
Open
Open
Open
Open
Open
Full
Open
Open
Full
Full
Retry
Retry
Retry
Retry
Retry
Retry
Accept
Retry
Retry
Retry
Action
Action
Retry
Retry
Scenario A - Default
Scenario B - In order mode
Data flow destined for the
same RX queue
RX queue status when
packet arrives
RX queue status when
packet arrives
Records SourceID/letter of
first retry packet
SRIO Functional Description
Although the switch fabric delivers the segments of multi-packet messages in the order they were sent,
buffer resources at the receiving endpoint may only become available after the initial segment(s) of a
message have had to be retried. The peripheral can accept out-of-order segments and track completion of
the overall message. Scenario A in
Figure 20
shows this concept.
For applications that are set up for specific message flows between a single source and destination, it may
require in-order delivery of messages. This is described in scenario B of
Figure 20
. This scenario is similar
to scenario A, although one message may be retried due to a lack of receiver resources, subsequent
pipelined messages may arrive just as resources are freed up. This is a problem for systems requiring
in-order message delivery. In this case, the peripheral needs to record the Src_id/mailbox/letter of the first
retried message and retry all subsequent new requests until resources are available and a segment for
that Src_id/mailbox/letter is received. As long as all messages are from the same source and that source
sends (and retries) packets in order, then all messages will be received in order. Note that this solution is
less effective when multiple sources share an RX queue. The RX CPPI Control register (Address offset
0744h) sets this mode of operation on all receive queues. Once this mode is set and a retry is issued, the
queue will continue to wait for an incoming message that matches the Src_id/mailbox/letter combination. If
no such packet arrives, the RX queue is unusable in a locked state. To reenable the queue, the in-order
bit in the RX CPPI Control register must be disabled by software for that queue, after which it may be
enabled again if desired. The in-order mode of operation is only valid on multi-segment queues because
single-segment messages will never generate RETRY responses.
Figure 20. RX CPPI Mode Explanation
SPRUE13A – September 2006
Serial RapidIO (SRIO)
49
Submit Documentation Feedback