Done queue, Dma configuration ram, Figure 9-20. transmit done-queue structure – Rainbow Electronics DS3131 User Manual

Page 111: 4 done queue, Figure 9-19. transmit done-queue descriptor

Advertising
background image

DS3131

111 of 174

9.3.4 Done Queue

The DMA writes to the transmit done queue when it has finished either transmitting a complete packet
chain or a complete data buffer. This option is selected by the host when it configures the DQS field in
the transmit DMA configuration RAM (Section

9.3.5

). The descriptor location is indicated in the done

queue through a 16-bit pointer that the host uses along with the transmit descriptor base address to find
the exact 32-bit address of the associated transmit descriptor.

Figure 9-19. Transmit Done-Queue Descriptor

dword 0

Status(3)

CHRST

PRI

00b

HDLC CH#(6)

Descriptor Pointer (16)

Note:

The organization of the done queue is not affected by the enabling of Big Endian.

dword 0; Bits 0 to 15/Descriptor Pointer. This 16-bit value is the offset from the transmit descriptor base
address to either the first descriptor in a HDLC packet (can be a single descriptor) that has been transmitted
(DQS = 0) or the descriptor that corresponds to a single data buffer that has been transmitted (DQS = 1).

dword 0; Bits 16 to 21/HDLC Channel Number. HDLC channel number, which can be from 1 to 40.

000000 (00h) = HDLC channel number 1

100111 (27h) = HDLC channel number 40


dword 0; Bits 22 to 23/Unused. Set to 00b by the DMA.

dword 0; Bit 24/Priority Packet (PRI). This field is meaningless in the done queue and could be set to any value.
See Section

9.3.3

for details.


dword 0; Bit 25/Channel Reset (CH RST). This field is meaningless in the done queue and could be set to any
value. See Section

9.3.3

for details.


dword 0; Bits 26 to 28/Packet Status. These three bits report the final status of an outgoing packet. All of the
error states cause a HDLC abort sequence (eight 1s in a row, followed by continuous interfill bytes of either FFh
or 7Eh) to be sent, and the channel is placed out of service by the transmit DMA, setting the channel enable
(CHEN) bit in the transmit DMA configuration RAM to 0. The status state of 000 is only used when the channel
has been configured by the host to write to the done queue only after a complete HDLC packet (can be a single
data buffer) has been transmitted (i.e., DQS = 0). The status states of 001, 010, and 011 are only used when the
channel has been configured by the host to write to the done queue after each data buffer has been transmitted (i.e.,
DQS = 1).

000 = packet transmission complete and the descriptor pointer field corresponds to the first

descriptor in a HDLC packet (can be a single descriptor) that has been transmitted (DQS = 0)

001 = first buffer transmission complete of a multi- (or single) buffer packet (DQS = 1)

010 = middle buffer transmission complete of a multi-buffer packet (DQS = 1)

011 = last buffer transmission complete of a multi-buffer packet (DQS = 1)

100 = software provisioning error; this channel was not enabled

101 = descriptor error; either byte count = 0 or channel code inconsistent with pending queue

110 = PCI error; abort

111 = transmit FIFO error; it has underflowed


dword 0; Bits 29 to 31/Unused. Not used by the DMA. Could be any value when read.

Advertising