Changing Descriptor Queues In Chaining Mode - Freescale Semiconductor MSC8144E Reference Manual

Quad core media signal processor
Table of Contents

Advertisement

operation stops after all message segments complete. If OMxMR[EIE] is set, the
interrupt Serial RapidIO error/write-port is generated.
If an internal error occurs while local memory is read, the transaction error bit is set
16.
(OMxSR[TE]) and outbound message controller operation stops after all message
segments complete. If OMxMR[EIE] is set, the interrupt Serial RapidIO error/write-port
is generated.
This process continues until the descriptor queue is empty (dequeue pointer equals the
enqueue pointer).
17.
The message unit clears OMxSR[MUB] after it processes the last descriptor or a
transaction error occurs.
If an error occurs, the message unit must be disabled, reinitialized, and reenabled before
18.
another message can be sent.

16.3.2.5.1 Changing Descriptor Queues in Chaining Mode

When software switches to another descriptor queue in local memory, it must wait for the
processing of the current queue to complete, as indicated by the busy bit (OMxSR[MUB]).
Software then disables the message controller by clearing OMxMR[MUS], changes the enqueue
and dequeue descriptor pointers (OMxDQEPAR and OMxDQDPAR), and reenables the message
unit by setting OMxMR[MUS].
16.3.2.5.2 Preventing Queue Overflow in Chaining Mode
Software must guarantee that descriptors are not added to an already full queue. When the
increment bit is used (OMxMR[MUI]), software can poll the queue full bit (OMxSR[QF]) before
enqueueing another descriptor. When software sets the enqueue pointer directly, software is
responsible for not overflowing the descriptor queue.
16.3.2.5.3 Switching Between Direct and Chaining Modes
The message unit architecture allows switching from Direct mode to Chaining mode and vice
versa after all required parameters are initialized in the appropriate registers and the message unit
is not busy, as indicated by clearing of the OMxSR[MUB]. If OMxMR[MUS] is cleared and then
set during a switch from Direct mode to Chaining mode, the message unit is reinitialized in
Chaining mode and the outbound message descriptor dequeue pointer address is saved as the new
base address of the circular queue in memory. During a switch from Chaining mode to Direct
mode, OMxMR[MUS] must also be cleared and set.
16.3.2.5.4 Chaining Mode Descriptor Format
The descriptor contains information the message unit controller needs to transfer data. Software
must ensure that each descriptor is aligned on a 32-byte boundary and that the descriptor queue is
on a queue boundary, that is, on a boundary equal to the number of queue entries × 32 byte (the
size of each queue descriptor). For each descriptor in the queue, the message unit controller starts
Freescale Semiconductor
MSC8144E Reference Manual, Rev. 3
RapidIO Message Unit
16-63

Advertisement

Table of Contents
loading

Table of Contents