User Guide

Table Of Contents
www.ti.com
Source Address
DMA Read
Destination Address
Count
Byte Count
DSP Address
RSV
Interrupt Req
001723
8
DestID
25 24
ID Size
27 26
xambs
29 28
Priority
OutPortID
31 30
Hop Count
Drbll
31 16 15
Packet
8 7 0
RapioIO Address/Config_offset
NodeID
CRC
16
Count*8
payload
2
xamsbs
1
wr ptr
29
address
32
ext addr
8
srcTID
4
wrsize
4
trans
8
sourceID
8
destID
4
ftype
2
tt
2
prio
3
rsv
5
ackID
TX Shared Buffer Pool
rdsize/
wsize
rdptr/
wptr
Count
translator
LSUn_REG4
LSUn_REG2
LSUn_REG3
LSUn_REG0
LSUn_REG1
LSUn_REG5
SRIO Functional Description
Figure 12. Example Burst NWRITE_R
For WRITE commands, the payload is combined with the header information from the control/command
registers and buffered in the shared TX buffer resource pool. Finally, it is forwarded to the TX FIFO for
transmission. READ commands have no payload. In this case, only the control/command register fields
are buffered and used to create a RapidIO NREAD packet, which is forwarded to the TX FIFO.
Corresponding response packet payloads from READ transactions are buffered in the shared RX buffer
resource pool when forwarded from the receive ports. Both posted and non-posted operations rely on the
OutPortID command register field to specify the appropriate output port/FIFO.
The data is burst internally to the Load/Store module at the DMA clock rate.
2.3.3.1 Detailed Data Path Description
The Load/Store module is for generating all outgoing RapidIO Direct I/O packets. Any read or write
transaction, other than the messaging protocol, uses this interface. In addition, outgoing DOORBELL
packets are generated through this interface.
The data path for this module uses DMA bus as the DMA interface. The configuration bus is used by the
CPU to access the control/command registers. The registers contain transfer descriptors that are needed
to initiate READ and WRITE packet generation. After the transfer descriptors are written, flow control
status is queried. The unit examines the DESTID and PRIORITY fields of LSU n_REG4 to determine if that
flow has been Xoffd. Additionally, the free buffer status of the TX FIFO is checked (based on the
OutPortID register field). Only after the flow control access is granted, and a TX FIFO buffer has been
allocated, can a DMA bus read command be issued for payload data to be moved into the shared TX
buffer pool. Data is moved from the shared buffer pool to the appropriate output TX FIFO in simple
sequential order based on completion of the DMA bus transaction. However, if fabric congestion occurs,
priority can affect the order in which the data leaves the TX FIFOs.
Here a reordering mechanism exists, which transmits the highest priority packets first if RETRY
acknowledges. Once in the FIFO, the data is guaranteed to be transmitted through the pins. Alternatively,
if an intended flow has been shut down, the peripheral signals the CPU with an interrupt to notify that the
packet was not sent and sets the completion code to 010b in the status register. The registers must be
held until the interrupt service routine is complete before the BSY signal is released (BSY=0 in
LSU n_REG6) and the CPU can then rewrite or overwrite the transfer descriptors with new data. Figure 13
illustrates the data path and buffering that is required to support the Load/Store Module.
36 Serial RapidIO (SRIO) SPRU976 March 2006
Submit Documentation Feedback