www.ti.com
SRIO Functional Description
In addition, multiple messages can be interleaved at the receive port due to ordering within a connected
switch’s output queue. This can occur when using a single or multiple priorities. The RX CPPI block can
handle simultaneous interleaved multi-segment messages. This implies that state information (write
pointers and sourceID) is maintained on each simultaneous message to properly store the segments in
memory. The number of simultaneous transactions supported directly impacts the number of states to be
stored, and the size of the buffer descriptor memory outside the peripheral. With this in mind, the
peripheral’s supported buffer descriptor SRAM is parameterizable. A minimum size of 1.25K bytes is
recommended, which will allow up to 64 buffer descriptors to be stored at any given time for one core.
These buffer descriptors can be configured to support any combination of single and multi-segment
messages. For example, if the application only handles single-segment messages, all 64 buffers can be
allotted to that queue. Note that a given RX queue can contain packets of all priorities which have been
directed from any of the receive ports.
A CPU may wish to stop receiving messages and reclaim buffers belonging to a specific queue. This is
called queue teardown. The CPU initiates a RX queue teardown by writing to the RX Queue Teardown
command register (Address Offset 0740h).
Teardown of an RX queue causes the following actions:
•
If teardown is issued by software during the time when the RX state machine is idle, then the state
machine will immediately start the teardown procedure:
–
If the queue to be torn down is in-message (waiting for one or more segments), then the queue will
be torn down and reported with the current buffer descriptor (teardown bit set, ownership bit
cleared, CC = 100b). All other fields of the buffer descriptor are invalid. The peripheral completes
the teardown procedure by clearing the HDP register, setting the CP register to FFFFFFFCh, and
issuing an interrupt for the given queue. The teardown command register bit is automatically
cleared by the peripheral.
–
If the queue is not in-message, and active (next descriptor available), then the next descriptor will
be fetched and updated to report teardown (teardown bit set, ownership bit cleared, CC = 100b). All
other fields of the buffer descriptor are invalid. The peripheral completes the teardown procedure by
clearing the HDP register, setting the CP register to FFFFFFFCh, and issuing an interrupt for the
given queue. The teardown command register bit is automatically cleared by the peripheral.
–
If the queue is not in-message, but inactive (next descriptor unavailable), then no additional buffer
descriptor will be written. The HDP register and the CP register remain unchanged. An interrupt is
not issued. The teardown command register bit is automatically cleared by the peripheral.
•
If teardown is issued by software during the time when the RXU state machine is busy, the teardown
procedure will be postponed until the state machine is idle.
After the teardown process is complete and the interrupt is serviced by the CPU, the software must
re-initialize the RX queue to restart normal operation.
The buffer descriptor queues are maintained in local SRAM just outside of the peripheral, as shown in
Figure 21
. This allows the quickest access time, while maintaining a level of configurability for device
implementation. The SRAM is accessible by the CPU through the configuration bus. Alternatively, the
buffer descriptors could use L2 memory as well.
50
Serial RapidIO (SRIO)
SPRUE13A – September 2006
Submit Documentation Feedback