7 transmit descriptor processor queues, 8 transmit descriptor queue – Cirrus Logic EP93xx User Manual

Page 328

Advertising
background image

9-26

DS785UM1

Copyright 2007 Cirrus Logic

1/10/100 Mbps Ethernet LAN Controller
EP93xx User’s Guide

9

9

9

9.2.3.7 Transmit Descriptor Processor Queues

The transmit descriptor processor uses two circular queues in Host memory to manage the
transfer of transmit data frame. The transmit descriptor queue is used to pass descriptors of
user's data buffers from the Host to the MAC. The transmit status queue is used to pass
information on the MAC's use of the data buffer back to the Host. Keeping these queues
separate enables the use of burst transfers to and from the queues, reducing the overall
amount of bus traffic and avoiding some potential latency problem.

9.2.3.8 Transmit Descriptor Queue

The Transmit descriptors are passed from the Host to the MAC via the Transmit descriptor
queue. The Transmit descriptor queue is a circular queue occupying a contiguous area of
memory. The location and size of the queue are set at initialization by the Host writing to the
Transmit Descriptor Queue Base Address Register and the Transmit Descriptor Queue Base
Length. The base address must point to a word aligned memory location. The Transmit
Descriptor Queue Base Length is set to the length in bytes of the queue. The length should
be an integral number of descriptors and must not exceed 64 Kbytes total. The Transmit
descriptor current address must also be set at initialization to point to the first descriptor to be
used. This would normally be the first entry (same value as the base address).

Following initialization, the MAC will start to use descriptors from the Current Descriptor
Address, wrapping back to the base pointer whenever the end of the queue is reached. In
normal operation the Host should not need to access these registers after the initialization.
The management of the descriptors is handled via the Transmit Descriptor Enqueue register.

Enqueueing descriptors is the process of adding descriptors to an existing queue. This is
achieved in transmit by writing the number of additional descriptors to the Transmit Descriptor
Enqueue register. The written value will be added to the previous value to keep a running
total, as descriptors are read by the MAC, the total is adjusted. The running total is available
by reading the enqueue register. One frame may be described by more than one descriptor,
but the final descriptor will contain the EOF bit. Not all the descriptors for a frame need to be
supplied at once.

No more than 255 descriptors may be added in one write. If a number greater than this needs
to be written. the write should be broken up into more than one operation (that is, to add 300
descriptors - first write 255, then write 45).

Advertising