Sundance Technology
ST201
PRELIMINARY draft 2
The TxDMAListPtr I/O register within the ST201 contains the physical address that points to the head of the TxDMAList. TxDMAListPtr must point to addresses which are on
Generally, it is desirable for the host system to queue multiple frames. Multiple TFD’s are linked together in a list by pointing the TxDMANextPtr of each TFD at the next TFD. The last TFD in the linked list should have a value of zero for it’s TxD- MANextPtr.
It is required that the host halt the TxDMA Logic by setting the TxDMAHalt bit before modifying TxD- MAList or writing a new value to TxDMAListPtr (unless it is already zero). When the host has fin- ished manipulating the list, it sets the TxDMARe- sume bit.
The TxDMA process returns to the idle state upon detection of a zero value for TxDMANextPtr. When a new frame is available to transfer, the host sys- tem must write the address of the new TFD into the TxDMANextPtr memory location of the last TFD, and either set the TxEnable bit, or utilize the ST201’s automatic polling capability. Using auto- matic polling, the ST201 will monitor the TxDMAN- extPtr memory location until a
a
The ST201 can be configured to generate TxDMA- Complete interrupts on a per frame basis by setting the TxDMAIndicate bit within the TFC field of each TFD. In response to a TxDMAComplete interrupt, when data transfer by TxDMA is finished, the host system acknowledges the interrupt and returns the frame data buffers to the system. In the case of a
The ST201 fetches the TFC before frame data transfer, and again at the end of TxDMA operation to examine the TxDMAIndicate bit. This allows the host system to change TxDMAIndicate while data transfer of the frame is in progress. For instance, a frame’s TFD might be at the end of the TxDMAList when it starts TxDMA, so the host system would
probably set TxDMAIndicate to generate an inter- rupt. However, if during the TxDMA process of this frame, the host system added a new TFD to the end of the list, it might clear TxDMAIndicate in the currently active TFD so that the interrupt is delayed until the next TFD.
The ST201 has the ability to automatically round up the length of a transmit frame. This is useful in some NOS environments in which frame lengths need to be an even number of words. Frame length
The MAC will initiate frame transmission (if trans- mission is enabled) as soon as either the entire frame is resident in the TxFIFO, or the number of bytes present in the TxFIFO is greater than the value in the TxStartThresh register.
As a frame transmits out of the TxFIFO, it is desir- able to be able to release the FIFO space so that it may be used for another frame. The value pro- grammed into TxReleaseThresh determines how much of a frame must be transmitted before its FIFO space can be released.
A TxReleaseError occurs when a frame experi- ences a collision after the frame’s release thresh- old has been crossed. The ST201 will be unable to retransmit the frame and the host needs to
Since TxDMA writes into one end of the TxFIFO and the transmit MAC reads from the other end, TxDMA and transmit completes (including errors)
15