![](http://datasheet.mmic.net.cn/330000/PM7366_datasheet_16444405/PM7366_72.png)
RELEASED
DATA SHEET
PM7366 FREEDM-8
ISSUE 4
PMC-1970930
FRAME ENGINE AND DATA LINK MANAGER
PROPRIETARY AND CONFIDENTIAL TO PMC-SIERRA,INC., AND FOR ITS CUSTOMERS’ INTERNAL USE
59
also flushed to the TDRF queue if the Interrupt On Completion (IOC) bit is set in the TD, which
sends the corresponding TDR directly to the TDRF queue.
The queues, shown in Figure 12 are defined by a common base pointer residing in the Transmit
Queue Base register and eight offset pointers, four per queue. For each queue, two pointers
define the start and the end of the queue, and two pointers keep track of the current read and
write locations within the queue. The read pointer for each queue points to the offset of the last
valid TDR read, and the write pointer points to the offset where next TDR can be written. The end
of a queue is not a valid location for a TDR to be read or written. A queue is empty when the read
pointer is one less than the write pointer or if the read pointer is one less than the end pointer and
the write pointer equals the start pointer. A queue is full when the read pointer is equal to the write
pointer. Each queue element is 32 bits in size, but only the 17 least significant bits are valid. The
17 least significant bits consist of a 14-bit TDR and three status bits. The status bits are used by
the TMAC to inform the host of the success or failure of transmission (see Table 12). When the
TMAC writes TDRs to the TDRF queue, it sets bits [23:17] of the queue element to 0. Once a
TDR is placed on the TDRF queue, the FREEDM-8 will make no further accesses to the TD nor
the associated buffer.
Note that the maximum value to which an end pointer may be set is FFFF hex, resulting in a
maximum offset from the queue base address of (4*(FFFF-1)) = 3FFF8 hex. An end pointer must
not be set to 0 hex in an attempt to include offset 3FFFC hex in a queue.