
IP100A LF
Preliminary Data Sheet
19/97
March. 30, 2007
Copyright © 2004, IC Plus Corp.
IP100A LF-DS-R17
In the simple case of a single frame, the host system must create a TFD within the host system memory
containing the addresses and lengths of the fragments of data to be transmitted. The host system must
write zero into TxDMANextPtr since this is the only frame. The host starts the TxDMA Logic by writing
the memory location (a non-zero address) of the TFD into TxDMAListPtr register. The TxDMA Logic
begins transferring data into the IP100A LF.
The IP100A LF first fetches the fragment addresses and fragment lengths from the TFD and writes them
one at a time into registers, which are used to control the data transfer operations. If the TxDMA Logic
transfers more data than can fit into the TxFIFO, an overrun will occur.
The TxDMAListPtr I/O register within the IP100A LF contains the physical address that points to the
head of the TxDMAList. TxDMAListPtr must point to addresses which are on 8-byte boundaries. A value
of zero in the TxDMAListPtr register implies there are no pending TFD’s for the IP100A LF to process.
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 TxDMANextPtr.
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 system 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 IP100A
LF’s automatic polling capability. Using automatic polling, the IP100A LF will monitor the TxDMANextPtr
memory location until a non-zero value is found at that location in system memory. The
TxDMAPollPeriod register controls this polling function, which is enabled when TxDMAPollPeriod
contains a non-zero value. The value written to TxDMAPollPeriod determines the TxDMANextPtr polling
interval.
In response to a TxDMAComplete interrupt, when data transfer by TxDMA is finished, the host
acknowledges the interrupt and returns the frame data buffers to the system. In the case of a multi-frame
TxDMAList, multiple frames may have been transferred by TxDMA when the host system enters its
interrupt service routine. The host system can traverse the list of TFD’s, examining the TxDMAComplete
bit in each TFD to determine which frames have been transferred by TxDMA.
The IP100A LF 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 interrupt. 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 IP100A LF 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. The frame length is
rounded up to either a word or dword boundary, depending upon the value of WordAlign. Host systems
may disable frame length word-alignment by setting the WordAlign bits in the TransmitFrameControl to x1.
The MAC will initiate frame transmission (if transmission is enabled) as soon as either the entire frame is
resident in the TxFIFO register.
As a frame transmits out of the TxFIFO, it is desirable to be able to release the FIFO space so that it may
be used for another frame. The value programmed into TxReleaseThresh determines how much of a
frame must be transmitted before its FIFO space can be released.
7.4
Frame Reception and RxDMA
The frame RxDMA mechanism is similar to the TxDMA mechanism. RxDMA is structured around a