SPRUGR9H November 2010 – April 2015 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , 66AK2L06 , AM5K2E02 , AM5K2E04 , SM320C6678-HIREL , TMS320C6652 , TMS320C6654 , TMS320C6655 , TMS320C6657 , TMS320C6670 , TMS320C6671 , TMS320C6672 , TMS320C6674 , TMS320C6678
The Queue N Register C (Figure 4-13) is used to provide additional information about the packet that is being pushed or popped from the queue. This register provides an option for the packet to be pushed onto either the tail of the queue (the default) or the head of the queue. This register must be written prior to writing the Queue N Register D during packet write (push) operations. This register must be read prior to reading Queue N Register D during pop operations if the packet size information is desired.
NOTE
Do not read this register in the Queue Management region, and do not read/write this register without also reading/writing Register D, because in either case, an implied pop/push will result. Register C must be part of an atomic write to the queue. This can be accomplished by writing to the Queue Proxy region or the VBUSM (DMA port) address range shown in Table 4-1. An atomic write to the DMA port requires a 64 bit type to be written to Reg. C (the 64 bit variable contains both Reg C and Reg D values).
31 | 30 | 17 | 16 | 0 |
HEAD_TAIL | Reserved | PACKET_SIZE |
W-0 | R-0 | R/W-0 |
Legend: R = Read only; W = Write only; R/W = Read/Write; - n = value after reset |
Bit | Field | Description |
---|---|---|
31 | HEAD_TAIL | Head/tail push control. Set to 0 to push packet onto tail of queue and set to 1 to push packet onto head of queue. |
30-17 | Reserved | Reads return 0 and writes have no effect. |
16-0 | PACKET_SIZE | This field indicates the packet size and is assumed to be zero unless a non-zero value is given. This field can be the total packet size, just the payload size, or some other value if desired. The QM simply sums these values for each push, and reports the current sum when Queue N Register B is read. |