![](http://datasheet.mmic.net.cn/110000/GT-96100A_datasheet_3491740/GT-96100A_262.png)
GT-96100A Advanced Communication Controller
262
Revision 1.0
12.3.2.5 TX DMA Pointer Registers
The TX DMA employs a single 32-bit pointer register per queue: TxCDP.
TxCDP - TX DMA Current Descriptor Pointer.
TxCDP is a 32-bit register used to point to the current descriptor of a transmit packet. The CPU must
initialize this register before enabling DMA operation. The value used for initialization should be the
address of the first descriptor to use.
12.3.2.6 TX DMA Notes
Transmit DMA process is packet oriented. The transmit DMA does not close the last descriptor of a packet, until
the packet has been fully transmitted. When closing the last descriptor, the DMA writes packet transmission sta-
tus to the Command/Status word and resets the ownership bit. A TxBuffer maskable interrupt is generated if the
EI bit in the last descriptor is set.
Transmit DMA stops processing a TX queue whenever a descriptor with a NULL value in the Next Descriptor
Pointer field is reached or when a CPU owned descriptor is fetched. When that happens, a Tx_End maskable
interrupt is generated. In order to restart the queue, the CPU should issue a Start_Tx command by writing ‘1’ to
the Start_Tx bit in the DMA command register. 1
The transmit DMA does not expect a NULL Next Descriptor Pointer or a CPU owned descriptor in the middle of
a packet. When that happens, the DMA aborts transmission and stops queue processing. A TX_Resource_Error
maskable interrupt is generated. In order to restart the queue, the CPU should issue a Start_Tx command.
A transmit underrun occurs when the DMA can not access the memory fast enough and packet data is not trans-
ferred to the FIFO before the FIFO gets empty. In this case, the DMA aborts transmission and closes the last
descriptor with a UR bit set in the status word. Also, a Tx_Underrun maskable interrupt is generated. Transmit
process continues with the next packet.
In order to stop DMA operation before the DMA reaches the end of descriptor chain, the CPU should issue a
STOP command by writing ‘1’ to the Stop_Tx bit in the DMA command register. The DMA stops queue pro-
cessing as soon as the current packet transmission is completed and its last descriptor returned to CPU owner-
ship. In addition, a Tx_End maskable interrupt is generated. In order to restart this queue, the CPU should issue a
Start_Tx command.
NOTE: Most of the terms used to denote either DMA commands (Start_Tx and Stop_Tx) or interrupts
(TxBuffer, Tx_End, TX_Resource_Error) actually reflect multiple terms (one per queue). For example,
the GT-96100A provides two Start_Tx commands. There is a separate Start_Tx_High command, associ-
ated with the high priority queue, and a Start_Tx_low command that is related to the low priority queue.
The same applies to the other commands and interrupts listed above.
1. When the DMA stops due to NULL descriptor pointer, the CPU has to write TxCDP before issuing a Start_Tx command. Otherwise, TxCDP
remains NULL and the DMA can not restart queue processing.