
GT-96100A Advanced Communication Controller
Revision 1.0
307
13. SERIAL DMA (SDMA)
13.1
Overview
There are 16 SDMA channels on the GT-96100A that are dedicated for moving data between the serial communi-
cations channels (MPSCs) and memory buffers. Each SDMA channel consists of a DMA engine for receiving
and one for transmitting.
The 16 SDMA channels are logically divided in two identical groups. Each group consists of 8 SDMA channels
- one SDMA channel per MPSC. In both groups SDMA channel 0 is allocated to data transfer from/to MPSC0,
SDMA1 is tied to MPSC1 and so on. Each MPSC can be programmed to use a specific SDMA channel from one
of the groups, making it possible to split the serial data flow into two logical streams. These streams can be
assigned a different priority tag at the CIU level.
Each SDMA channel has two dedicated FIFOs for data buffering (for a total of 32 FIFOs). All FIFOs are 256
bytes deep.
For receive operations, the MPSC moves received data into the dedicated FIFO of the corresponding SDMA.
Then, using descriptors set up by the user, the SDMA moves the data into memory buffers. For transmit opera-
tions, the SDMA uses descriptors set up by the user to move data out of buffers into the dedicated FIFO. The
MPSC moves the data down to the serial communications link.
The SDMA channel descriptors use a chained data structure. They work without CPU interference after appro-
priate initialization. SDMA channels can be programed to generate interrupts on buffer or frame boundaries.
When enabled, he receive SDMAs run freely and expect to find a valid descriptor, when one is required. When a
receive SDMA channel accesses an invalid descriptor, the receive SDMA process halts with a resource error sta-
tus indication.
When enabled, the transmit SDMAs run freely until the end of the descriptor chain is reached. When a transmit
SDMA accesses an invalid descriptor and the last descriptor was not marked as an end of frame descriptor, the
transmit SDMA process halts with resource error status indication.
The SDMAs in each group arbitrate for accessing the descriptors and buffers. A standard round-robin scheme is
used for arbitration within the group. The arbitration between the groups is done at the CIU level, which supports
a programmable, weighted round-robin algorithm.
SDMA buffers and descriptor reside either in SDRAM space or in PCI space. Address decoding is automatic and
does not require user intervention. However, the user may choose to override the address decoding and force one
(or more) of the SDMAs to direct all its accesses to the PCI.