SOP Descriptor
Descriptor
EOP Descriptor
SOP Descriptor
EOP Descriptor
Buffer
Buffer
Buffer
Buffer
Buffer
Tx Queue Head Descriptor Pointer
Host
Memory
Port Tx
State RAM
Entry
Software Operation
A misqueued packet means that the port read the last EOP buffer descriptor before the host added the
new last packet to the queue, so the port determined queue empty just before the last packet was added.
The host corrects the misqueued packet condition by initiating a new packet transfer for the misqueued
packet by writing the misqueued packet’s SOP buffer descriptor address to the appropriate DMA State Tx
Queue head Descriptor Pointer.
The host may add packets to the tail end of an active Tx queue at any time by writing the Next Descriptor
Pointer to the current last descriptor in the queue. If a Tx queue is empty (inactive), the host may initiate
packet transmission at any time by writing the appropriate Tx DMA State head descriptor pointer.
The host software should always check for and reinitiate transmission for misqueued packets during
queue processing on interrupt from the port. In order to preclude software underrun, the host should avoid
adding buffers to an active queue for any Tx packet that is not complete and ready for transmission.
The port determines that a packet is the last packet in the queue by detecting the End of Packet bit set
with a zero Next Descriptor Pointer in the packet buffer descriptor. If the End of Packet bit is set and the
Next Descriptor Pointer is nonzero, then the queue still contains one or more packets to be transmitted. If
the EOP bit is set with a zero Next Descriptor Pointer, then the port will set the EOQ bit in the packet’s
EOP buffer descriptor and then zero the appropriate head descriptor pointer previous to interrupting the
port (by writing the completion pointer) when the packet transmission is complete.
Figure 14-13. Port TX State RAM Entry
1236
Ethernet Subsystem
SPRUH73H – October 2011 – Revised April 2013
Copyright © 2011–2013, Texas Instruments Incorporated