beautypg.com

Srio functional description – Texas Instruments TMS320C645X User Manual

Page 36

background image

www.ti.com

Source Address

DMA Read

Destination Address

Count

Byte Count

DSP Address

RSV

Interrupt Req

0

0

1

7

23

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 LSUn_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
LSUn_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