RapidIO Message Unit
MSC8144E Reference Manual, Rev. 3
Freescale Semiconductor
16-61
One of several ways software can initialize the message controller in Chaining mode is as
follows:
1.
Poll the status register message unit busy bit, OMxSR[MUB], to verify that the
outbound message controller is not busy.
2.
Clear the message unit start bit (OMxMR[MUS]).
3.
Initialize the descriptor queue dequeue pointer address registers (OMxDQDPAR; see
page 16-171) and the enqueue pointer address registers (OMxDQEPAR; see
page 16-176) to the same value for proper operation.
These registers must also be queue size aligned on a boundary equal to the number of
queue entries
×
32 bytes (the size of each queue descriptor). For example, there are 16
entries in the queue, the register must be 512-byte aligned.
The number of queue entries is set in OMnMR[CIRQ_SIZ]. See
Section 16.6.60, Outbound Message x Mode Registers (OMxMR), on page 16-167.
4.
Initialize the retry error threshold in the outbound message retry error threshold
configuration register (OMxRETCR; see page 16-177).
5.
Clear OMxMR[MUTM] for Chaining mode.
6.
If you are using single-segment multicast mode, set OMxMR[MM].
7.
Configure the other control parameters in the mode register (OMxMR).
8.
Clear OMxSR[MER, PRT, RETE, TE, QOI, QFI, EOMI, and QEI]. If OMxSR[MER,
PRT, RETE, TE, or QOI] are not cleared, the message controller does not start a new
message operation. Incorrect status is indicated if the other status bits are not cleared.
9.
Set the message unit start (OMxMR[MUS]) to enable the outbound message controller
and cause the descriptor queue dequeue pointer (OMxDQDPAR) to be saved as the base
address of the descriptor queue.
The method to start and complete transfers by adding descriptors after initializing the message
unit is as follows:
1.
Create one or more descriptors in local memory starting at the address to which the
descriptor queue enqueue pointer address register (OMxDQEPAR) is pointing.
2.
Either increment the enqueue pointer address registers (OMxDQEPAR) by setting
OMxMR[MUI] for each descriptor entry added or directly change the enqueue pointer
address register (OMxDQEPAR). If software sets OMxMR[MUI], the message
controller clears this bit after successfully incrementing the enqueue pointer.
3.
When the descriptor queue is not empty, the message controller reads the descriptor
from local memory using the address to which the dequeue pointer (OMxDQDPAR) is
pointing and sets the busy bit (OMxSR[MUB]).
Summary of Contents for MSC8144E
Page 1: ...MSC8144E Reference Manual Quad Core Media Signal Processor MSC8144ERM Rev 3 July 2009 ...
Page 48: ...MSC8144E Reference Manual Rev 3 xlviii Freescale Semiconductor ...
Page 86: ...MSC8144E Reference Manual Rev 3 1 38 Freescale Semiconductor Overview ...
Page 168: ...MSC8144E Reference Manual Rev 3 3 60 Freescale Semiconductor External Signals ...
Page 242: ...MSC8144E Reference Manual Rev 3 5 26 Freescale Semiconductor Reset ...
Page 314: ...MSC8144E Reference Manual Rev 3 8 24 Freescale Semiconductor General Configuration Registers ...
Page 414: ...MSC8144E Reference Manual Rev 3 10 14 Freescale Semiconductor MSC8144E SC3400 DSP Subsystem ...
Page 452: ...MSC8144E Reference Manual Rev 3 11 38 Freescale Semiconductor Internal Memory Subsystem ...
Page 520: ...MSC8144E Reference Manual Rev 3 12 68 Freescale Semiconductor DDR SDRAM Memory Controller ...
Page 1070: ...MSC8144E Reference Manual Rev 3 21 28 Freescale Semiconductor Timers ...